| Up | Transformer のアルゴリズム | 作成: 2026-03-19 更新: 2026-03-19 |
[ T(ID_1), ‥‥, T(ID_m) ] ↓ トークンベクトルに翻訳 [ TV(ID_1), TV(ID_2), ..., TV(ID_m) ] これを,つぎに簡略表記 [ x_1, ‥‥, x_m ] ↓ 位置エンコーディング [ x_1^(1), ‥‥, x_m^(1) ] ↓ レイヤー1 処理 [ x_1^(2), ‥‥, x_m^(2) ] ↓ レイヤー2 処理 ︙ ↓ レイヤー(n-1) 処理 [ x_1^(n), ‥‥, x_m^(n) ] ↓ レイヤーn 処理 [ o_1, ‥‥, o_m ] (2) Self-Attention [ x_1, ‥‥, x_m ] の移動ベクトル [ z_1, ‥‥, z_m ] を算出 z_ij = α_i (V_j)^T (α_i:加重平均) ^T:転置 K_i = x_i W_K V_i = x_i W_V = softmax( Q_i (K_1)^T/√D, ‥‥ , Q_i (K_m)^T/√D ) ) D:トークベクトルの次元 (3) [ p_1, ‥‥, p_m ] これを,「one-hot 確率分布」 に仕立てる。 p_i の i は, 入力テクスト [ T(ID_1), ‥‥, T(ID_m) ] の ID_i に対応 logits_i = W o_i^T p_i = softmax( logits_i ) 訓練 Training 時は,逆伝播で,つぎになるようにパラメータ調節: → p_1,ID_2 が one-hot ︙ p_(m-1) = ( p_(m-1)1, ‥‥, p_(m-1)),NT ) → p_(m-1),ID_m が one-hot p_m :無視 このときの [ p_1, ‥‥, p_m ] に 「確率分布」 の意味は無い。 訓練用テクストの入力が変われば,内容が変わるからである。 入力テクスト2:「今日は山に‥‥」 (4) 「確率分布」 は存在しない 例えば softmax 関数が見えるが,これも本来の使い方 (「確率分布の凸凹を強調する」) ではない。 即ち, 凸凹が強調された正規表現を無理矢理つくり, 確率分布に見せ掛ける といったものである。 (5) 要点 訓練後,つぎの能力を現すものになる: 文脈整合的なテクストを作成する |