画像は、フィードフォワードネットワークのどこかにある典型的なレイヤーを示しています。
のアクティベーション値です ニューロン 層。
接続している重量は ニューロン レイヤーを ニューロン 層。
は、 ニューロン 層。ロジスティック関数で使用される場合、これは「ロジット」と呼ばれることがあります。
フィードフォワードの方程式は次のとおりです。
簡単にするために、バイアスは1のダミーアクティベーションとして含まれ、暗黙的に反復で使用されます。 。
チェーンルールを使用して、ネットワーク内の個々のスカラー値を特定し、フィードフォワードニューラルネットワークでの逆伝播の方程式を導き出すことができます(実際、これは練習用の紙の練習としてよく行います)。
与えられた ニューロン出力に関する誤差関数の勾配として。
1。
2。
3。
ここまでは順調ですね。ただし、要素を表すために行列とベクトルを使用してこれらの方程式を呼び出すほうがよい場合がよくあります。私はそれを行うことができますが、派生の真ん中にある同等のロジックの「ネイティブ」表現を理解することはできません。スカラーバージョンに戻って参照し、乗算の次元が正しいことを確認することで、最終形式がどうあるべきかを理解できますが、方程式をこれらの形式に入れる必要がある理由がわかりません。
実際には、ベクトルと行列の演算のみを使用して、テンソルベースの逆伝播の導出を表現する方法はありますか、それとも上記の導出に「適合」することですか?
列ベクトルの使用 、 、 と重み行列 プラスバイアスベクトル の場合、フィードフォワード操作は次のとおりです。
次に、私の導出の試みは次のようになります。
1。
2。
3。
どこ 要素ごとの乗算を表します。バイアスの方程式を示すことは気にしていません。
どこに置いたの??? フィードフォワード操作からの正しい方法と、方程式の正しい形式を確立するための線形微分方程式の知識がわかりません。私はいくつかの偏微分項を書き出すことができましたが、なぜ要素ごとの乗算、他の行列乗算を使用する必要があるのか、そして最終的に正しい結果が得られること以外に、乗算順序が示されているとおりである必要がある理由についての手がかりはありません。
純粋なテンソル導出があるのか、それともすべてが最初の方程式セットの単なる「ベクトル化」なのかはわかりません。しかし、私の代数はそれほど良くないので、どちらかの方法で調べたいと思っています。テンソル代数でより深く考えることでこれらの演算をネイティブでよりよく理解していれば、たとえばTensorFlowでいくつかの良い理解ができるかもしれません。
アドホック/間違った表記については申し訳ありません。私は今それを理解しています より適切に書かれている エーサンの答えに感謝します。私が本当に欲しかったのは、詳細な偏導関数ではなく、方程式に代入する短い参照変数です。