✅
誤差逆伝播
はじめに
概要
- シラバス:E資格2024#2
- 誤差逆伝播はどのようなものを理解する
モデル訓練のステップ
- アーキテクチャの設計
- 入力層設計
- 中間層設計
- 出力層設計
- 誤差計算
- モデルに誤差を反映する
- 重みの更新の設定をする
- 最適なモデルを手に入れる
キーワード
誤差逆伝播, 学習係数
学習内容
誤差逆伝播法
新たな重みを計算するため、ネットワークの各層にさかのぼって、偏微分して勾配(重み)を求めていく計算手法
移動量を求める
-
手順
- 誤差関数を偏微分して傾きを求める
- 誤差関数を重みで偏微分した値に学習係数をかけ、移動量を求める
- 誤差(E)が0に近づくように新たな重み(W)を求める
-
新たな重み= 現在の重み-移動量
W:重み(パラメータ)
t:現在の学習ステップ(イテレーション)
ε:学習係数
∇E:損失関数の勾配
重みの適用
計算で求めた新たな重み(W)を先ほどのニューラルネットワークに当てはめて、再度出力された値と正解の値の誤差(E)を求め、その誤差(E)を0に近づけるように新たな重み(W)を計算する
反復学習
- 重みの更新の実行回数を設定する
- 学習回数を増やしすぎると時間がかかったが、極端に少ないと、十分な学習ができない場合がある
- 学習係数の値を小さくし、学習反復回数を増やすと、より学習の精度を上げることができる
勾配の計算
勾配の計算=偏微分の計算を用いる
逆伝播の計算
下記の画像で説明する
出典:
澁谷直樹@キカベン, 1層と2層のニューラルネットワークで誤差逆伝播法を詳しく説明してみる(2024), https://note.com/kikaben/n/nfb46c377cb1e
順伝播の場合
入力:x
線形変換:
活性化:
損失値:
逆伝播の場合
損失値を偏微分にする:
活性化値を偏微分にする:
線形変換した値を偏微分にする:
結果:
これらの偏微分をベクトルとしてまとめたものが勾配(gradient)である
Discussion