Up [ p_1, ‥‥, p_m ] の導出 作成: 2025-06-03
更新: 2025-06-25


    Transformer 脳が成長するとは,入力テクスト
      S → [ t_1, ‥‥, t_m } → [ x_1, ‥‥, x_m ]
    から出力される
      NT次元確率分布ベクトルの列
       [ p_1, ‥‥, p_m ]
    が,つぎのようになることである:
     ・p_i ( i = 1, ‥‥, m ) は, 「ほぼ one-hot」
     ・p_ik ( i < m ) が「ほぼ1」ならば,k = ID_(i+1)
    p_i がつぎの表現になるわけである:
     ・「x_i のつぎは x_(i+1)」 ( i < m)


    [ p_1, ‥‥, p_m ] は,ここまでの処理の最終出力
       [ o_1, ‥‥, o_LEN(S) ]
    から,以下のようにつくられる。

    o_i は D次元で,p_i は NT次元。
    そこで先ず, NT×D 行列 W_O を使って,NT次元ベクトル logis_i をつぎのように導く:
        logits_i = o_i W_O^T
    そしてこれを,確率分布に変換する::
       p_i = softmax( logits_i ) 

    こうして導いた [ p_1, ‥‥, p_m ] は,学習のはじめのうちは, 「x_i のつぎは x_(i+1)」の表現にはなっていない。
    そこでこれを「x_i のつぎは x_(i+1)」の表現になるようにするのが,この後に続く「誤差逆伝播」のプロセスである。


    表記「W_O」の意趣は,
     ・「W」は, 「重み行列 Weight」の「W」
     ・「O」は, 「o_i」の「o → O」
    W_O も「重み行列」なのは,生成AI 論の流儀ではこうなるからである。 ──その流儀は:トークンベクトルを調節するパラメータを「重み」と呼ぶ。

    W_O の導入は,無理矢理の導入である。
    学習前に,ランダムに初期化してつくっておく。
    そして,トークンベクトルや重み行列 W_Q, W_K, W_V と同様に,「成長」させる。

    Transformer は,厖大な数の意味不明なパラメータと,これを計算するやたら複雑なアルゴリズム・構造を,導入する。
    Transformer の成功は,「厖大で複雑な<意味不明>」にも秘訣がある。