予測と正解のずれ(損失)を小さくする方向に、勾配を使って重みを少しずつ更新する。
ニューラルネットの学習は、「予測する → 正解とのずれ(損失)を測る → 損失が小さくなる方向(勾配)に重みを少し動かす」のくり返しです。勾配は誤差逆伝播(backpropagation)でまとめて計算します。霧の山で、足元の傾きだけを頼りに少しずつ下っていくイメージです。
誤差逆伝播:ニューラルネットは層を何段も重ねた関数です。出力の損失から入力側へ向かって、連鎖律(合成関数の微分のルール)で各層の勾配を順に計算すると、全部の重みの勾配を1回の逆向きの計算で求められます。PyTorch などのライブラリは、この計算を自動で行います(自動微分)。
| 用語 | 意味 |
|---|---|
| 順伝播 | 入力から予測と損失を計算する |
| 逆伝播 | 損失から各重みの勾配を計算する |
| 更新 | オプティマイザーが勾配を使って重みを動かす |
| ミニバッチ | 1回の更新に使うデータのまとまり。全データを1回ずつ使うと1エポック |
面接ではこう答える
ニューラルネットの学習は、予測して、正解とのずれである損失を測り、損失が小さくなる方向に重みを少し動かす、のくり返しです。各重みをどちらに動かせばよいかを表すのが勾配で、出力側から入力側へ連鎖律で順にさかのぼって計算する誤差逆伝播で、全部の重みの勾配を効率よく求めます。実際にはミニバッチという小さなまとまりごとに更新し、学習率で一歩の大きさを決めます。
MLとの関わり学習がうまく進まないときに、どこを疑うか(損失・勾配・学習率)を考える土台になります。