私はディープラーニングが初めてで、行列に関して次の関数の導関数を計算しようとしています:
商規則を使用すると、次のようになります:
ソフトマックス関数は一般的にディープラーニングのアクティベーション関数として使用されているため、私は何か間違っていると思います(したがって、常に導関数を持つことはできません)。私は同様の質問をしましたが、計算のこの部分については光沢がないようです。
私は正しい方向へのポインタをいただければ幸いです。
私はディープラーニングが初めてで、行列に関して次の関数の導関数を計算しようとしています:
商規則を使用すると、次のようになります:
ソフトマックス関数は一般的にディープラーニングのアクティベーション関数として使用されているため、私は何か間違っていると思います(したがって、常に導関数を持つことはできません)。私は同様の質問をしましたが、計算のこの部分については光沢がないようです。
私は正しい方向へのポインタをいただければ幸いです。
回答:
最後の非表示層は、ベクトル形成する出力値を生成します。出力ニューロンレイヤーは、カテゴリに分類するためのもので、SoftMaxアクティベーション関数が条件付き確率(与えられる)をカテゴリのそれぞれに割り当てます。最終(または出力)レイヤーの各ノードでは、事前にアクティブ化された値(ロジット値)は、スカラー積で構成されます。ここで、。つまり、各カテゴリ、カプセル化された、前の層の出力(バイアスを含む)の各要素の寄与を決定する、それを指す異なる重みベクトルがあります。ただし、この最終層のアクティブ化は、要素ごとに(たとえば、各ニューロンのシグモイド関数を使用して)行われるのではなく、ベクトルを次のようにマップするSoftMax関数の適用によって行われます[0,1]の要素のベクトル。これは、色を分類するための構成されたNNです。
ソフトマックスを次のように定義する
重みのベクトルに関する偏微分を取得したいが、ロジットに関する微分を最初に取得できます。つまり、:
(+1)以前のバージョンの投稿に忘れられていたインデックスがあり、softmaxの分母の変更が次のチェーンルールから除外されていることを指摘してくれたYuntai Kyongに感謝します。
連鎖ルールにより、
この結果を前の方程式と組み合わせると: