順伝播

順伝播

執筆済 AIニューラルネットワーク

入力から出力へ、層を順に計算していく過程。

a(0)=x,z(l)=W(l)a(l1)+b(l),a(l)=σ(z(l))

やっていること#

各層で

  1. 線形変換 — 特徴を混ぜ合わせる
  2. 非線形変換 — 表現力を持たせる

この繰り返し。行列積と要素ごとの関数適用だけなので、 GPU による並列化が効く。

計算量#

l の重みが nl×nl1 なら、その層の計算は 𝒪(nlnl1)。 バッチサイズ B なら B 倍。

実際には行列積がほとんどを占めるので、 GPU の 行列演算ユニットの性能がそのまま学習速度になる。

中間値を保持する#

学習時は、逆伝播で 各層の a(l)z(l) が必要になる。 そのため順伝播の中間結果をメモリに保持しなければならない。

メモリ𝒪(B×lnl)

これが大規模モデルの学習で GPU メモリが不足する主因。 勾配チェックポインティング(一部を捨てて再計算する)で メモリと計算時間を交換する手法がある。

参考文献#

  • Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning. MIT Press, 2016.(全文公開) https://www.deeplearningbook.org/
  • Aston Zhang et al. Dive into Deep Learning. Cambridge University Press, 2023.(全文公開) https://d2l.ai/
ノート一覧を閉じる