Up 処理の流れ 作成: 2025-06-03
更新: 2025-06-20


    順伝播の最終出力の
      [ o_1, ‥‥, o_LEN(S) ]
    から糸 [ p_1, ‥‥, p_LEN(S) ] をつくる。

    これは,[ x_1, ‥‥, x_LEN(S) ] を通す糸にはなっていない。
    「誤差 (損失)」を
      [ loss_1, ‥‥, loss_LEN(S) ]
    に表現する。


    つぎに,この誤差を減らすための「TVとWの矯正」として,パラメータの調節をする。
    これは,TV と W の更新ということになる。

    誤差は,順伝播
      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)