5

導関数を取ることの背後にある概念は何ですか? 興味深いのは、何らかの方法でシステムを教えるために、その重みを調整する必要があるということです。しかし、なぜ伝達関数の導出を使用してこれを行うのでしょうか。私たちを助ける派生物には何がありますか。微分が特定の点での連続関数の勾配であることは知っていますが、問題とは何の関係があるのでしょうか。

4

6 に答える 6

1

その理由は、損失を最小限に抑えようとしているからです。具体的には、勾配降下法によってこれを行います。これは基本的に、パラメーター空間の現在のポイント (現在の重みの完全なセットによって決定される) から、損失関数を減少させる方向に進みたいということを意味します。丘の中腹に立って、斜面が最も急な方向を下っていく様子を視覚化します。

数学的には、パラメーター空間で現在のポイントから最も急降下する方向は負の勾配です。そして、勾配は、各単一パラメーターに関する損失関数のすべての導関数で構成されるベクトルに他なりません。

于 2016-03-05T23:18:28.883 に答える
0

Neural Nets を使い始めた当初、私もこの疑問を抱いていました。

ここでの他の回答は、重みを更新しようとしているときに微分項が計算に表示されることを明確にする数学を説明しています。しかし、これらの計算はすべて、重みを更新する方法の 1 つである逆伝播を実装するために行われています。今すぐ読んでください...

1 日の終わりに、ニューラル ネットワークが試みているのは、入力したデータに合わせて重みを更新することだけであると考えるのは正しいことです。この声明の中にあなたの答えもあります。ここで混乱しているのは、逆伝播アルゴリズムの考え方です。多くの教科書では、デフォルトで backprop を使用してニューラル ネットを更新していますが、重みを更新する他の方法もあるとは言及していません。これは、ニューラル ネットとバックプロップが同じものであり、本質的に接続されているという混乱につながります。これはまた、ニューラル ネットワークのトレーニングにはバックプロップが必要であるという誤った信念にもつながります。

バックプロパゲーションは、ニューラル ネットワークをトレーニングする方法の 1 つにすぎないことを覚えておいてください (最も有名な方法ですが)。さて、バックプロップに関連する数学を見たことがあるはずです。したがって、微分項がどこから来るのかがわかります(他の回答でも説明されています)。他のトレーニング方法では導関数が必要ない可能性がありますが、ほとんどのトレーニング方法では導関数が必要です。その理由を知るために読んでください....

これについて直感的に考えてみてください。私たちは重みの変更について話しているのです。変化に関連する直接的な数学演算は導関数です。重みを変更するには導関数を評価する必要があることは理にかなっています。

まだ混乱している場合はお知らせください。回答を修正して改善します。情報の一部として、もう 1 つの一般的な誤解は、バックプロップがニューラル ネットワークの一部であると想定されているように、勾配降下がバックプロップの一部であるというものです。勾配降下法はコスト関数を最小化する 1 つの方法にすぎません。他にも使用できる方法はたくさんあります。上記の回答の1つは、「具体的に勾配降下」と書かれている場合にも、この間違った仮定をしています。これは事実上正しくありません。:)

于 2016-03-06T21:32:07.440 に答える
0

ニューラル ネットワークのトレーニングとは、ネットワークの重みに関する関連する「エラー」関数を最小化することを意味します。現在、関数値のみを使用する最適化方法 (Nelder と Mead、Hooke と Jeeves などのシンプレックス法)、さらに一次導関数を使用する方法 (最急降下、準ニュートン、共役勾配)、および二次導関数も使用するニュートン法があります。 . したがって、導関数法を使用する場合は、誤差関数の導関数を計算する必要があります。これには、伝達関数または活性化関数の導関数が含まれます。バックプロパゲーションは導関数を計算するための優れたアルゴリズムであり、それ以上のものではありません。

于 2016-03-07T02:46:42.663 に答える