参考文献
- ニューラルネットワークと深層学習(Web上の教材)
- http://www.bioinf.jku.at/publications/older/2604.pdf(LSTM の原論文)
シチュエーション(まずL+1層パーセプトロンの場合)
- 層目を入力層、 層目を出力層として、 層が連なっているとする。
- を、 層目の 番目のニューロンから 層目の 番目のニューロンへの接続の重みとし、 を 層目の 番目のニューロンのバイアスとする( )。
- を 番目の 番目のニューロンの活性化前の値、 を 番目の 番目のニューロンの活性化後の値とする。つまり、活性化関数を とすると、以下の関係が成り立つ。
- と はニューラルネットワークへの入力ベクトル に依存する と だが、いまはある入力ベクトルに固定されていると考えて を省略する。
- それぞれの文字の下の添え字を取ってベクトル(重みについては行列)とみなすと ともかける。
- コスト関数を とする(例えば正解 とニューラルネットワークの出力 の2乗誤差 など)。
- 但し、 がニューラルネットワークの出力 の関数でかかれていることは仮定する。
やりたいこと
- 任意の について 及び を求めたい(これらを求める1つの手続きを知りたい)。
やり方
まず、 の最終出力 に関する偏微分 はただちに求まる。
次に、 の最終出力の活性化前の値 に関する偏微分を考えると、上の を利用して以下のようになる。
そうなると任意の について 及び を求めるのは容易で、つまり、以下のようにかける。
RNN の場合
入力層と出力層しかないニューラルネットワークを考える。出力層が1層しかないので や の右上の添え字を省く。この出力層をまた入力層につなげてループさせるとする。すると、何回ループしたときの出力なのかの区別が必要なので、 や とかく。 とおく。
1ループ前への伝播は以下のようになる。