Up | 「教師あり」の概要 | 作成: 2025-06-03 更新: 2025-06-03 |
o_i (D次元ベクトル) に対し, 「教師」のチェックが入る。 これは,「誤差 (損失)」として loss_i (NV次元ベクトル) を作成する。 つぎに,この誤差を減らすための「体の矯正」として,パラメータの調節をする。 これは,トークンベクトルと各種重み行列の更新ということになる。 誤差は,順伝播 x_i^(1) → x_i^(2) → ‥‥ → x_i^(NL) → o_i の各レイヤーでの誤差が累積したものと見る。 誤差を減らすための重み行列の調節は,レイヤーごとに──レイヤー独自の重み行列に対して──行う。 このようにしないと,ここまでうまくチューニングされてきたパラメータを損なうことになるからである。 この処理を,「誤差逆伝播(backpropagation)」の形で行う。 誤差は,「勾配」に表現する。 レイヤーごとに誤差発生の割合が違うことは,勾配が各レイヤーで違うという表現になる。 「誤差逆伝播」は,「勾配」のことばでいえば,「勾配降下」である。 重み行列は,このプロセスで更新される。 トークンベクトル TV(ID_i) の方は,レイヤーごとの勾配 (局所的な勾配) を連鎖律で合成して得た勾配を用いて,更新する。
TV(ID_i) │ ▼ x_i^(1) = TV(ID_i) │ ▼ x_i^(2), ‥‥ , x_i^(NL), o_i │ ▼ 損失 loss_i が計算される ▲ │ ∇loss_i/∇x_i^(NL), ‥‥ , ∇loss_i/∇x_i^(1) を計算 ▲ │ ∇loss_i/∇TV(ID_i) を計算(連鎖律) ▲ │ TV(ID_i) := TV(ID_i) - η・∇loss_i / ∇TV(ID_i) η : 学習率 (learning rate) |