アドバンストビジョン

第6回: Transformerの構造

千葉工業大学 上田 隆一


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

アドバンストビジョン第6回

今日やること

  • Transformerの構造
  • Transformerの簡単な応用

(簡単じゃない応用は次回以降)

アドバンストビジョン第6回

Transformer(翻訳用途)の構造

  • エンコーダ、デコーダで構成される
    • 右図の左: エンコーダ
      • 入力: 翻訳前の文
        (例: これはペンです。)
    • 右図の右: デコーダ
      • 入力: 「翻訳開始」を表すトークンあるいは途中まで翻訳した文(例: This is)
      • 出力: 次の単語(例: a)
順に見ていきましょう

画像: CC-BY-4.0 by dvgodoy

アドバンストビジョン第6回

エンコーダ

  • 濃い黄色の枠が本体
    • 「Nx layers」: 何個も連結するということ
    • 詳しくは次のページ以降で
  • 入力(図の下方):
      • 文(次元ベクトルで表現されたトークンを並べたもの)
  • 出力: デコーダでの仕事に応じて重みの変わった
    • 文脈が反映されている
アドバンストビジョン第6回

層正則化(layer normalization)

  • 図中に3つある「Norm」
  • 各ベクトルの要素を正規化してベクトルごとの影響力を揃える
    • どう正規化するか?
      • 1: の平均値が、標準偏差が
      • 2: ごとに(学習対象)というパラメータを用意してに変換
        • 要素の位置ごとに重要度が異なるため
アドバンストビジョン第6回

自己注意機構

  • 自分自身の情報でトークンのベクトルを変える
    • 文脈が反映される(詳しくは次ページ)
  • 仕組み: Q、K、Vをすべて自身への入力から作成
    • クエリ: (前回はだった)
    • キー: (同上)
    • バリュー:
    • 出力: Softmax
  • 前回の注意機構は交差注意機構
アドバンストビジョン第6回

自己注意機構の補足[Google2017]

  • 単に代名詞と名詞を関連づけるだけなら、
    次の「it」は「dog」か「street」か分からない
    • 1: The animal didn't cross the street because it was too tired.
      • it: dog
    • 2: The animal didn't cross the street because it was too wide.
      • it: street
  • KVQ: クエリ(it)に対して、名詞だけではなく行列で全てのトークンを作用させることで、itがどちらに近いかまでを計算可能に
    • "You shall know a word by the company it keeps!" [Firth1957](再掲)
アドバンストビジョン第6回

マルチヘッド注意機構

  • Transformerの実装では注意機構が複数に分割される
    • 行列)が分割される
        • : を横に切った行列
    • ANN的には、ごとに結合が切れて独立
      • それぞれが文の解釈方法を変える
        (ように学習されるらしい)
  • 出力のを結合元の行列に
アドバンストビジョン第6回

フィードフォワード層(全結合層)

  • 自己注意機構を通った文が通される
    • 右図の2つの点線の枠のうち上のほう
    • 非線形な活性化関数(オリジナルはReLU)を通して特徴をより強調
アドバンストビジョン第6回

その他補足1

  • 注意機構もフィードフォワード層もスキップ接続を使用
    • 各層で学習/出力されるのは差分
    • 学習初期に各層にわかりやすい入力をするため
      • 層が深いので必要
  • 図に描かれていないがドロップアウト層
    が何ヶ所かに使用されている
    • ドロップアウト: 学習の単位(バッチ)ごとに一定割合のニューロンを働かなくする処理
      • 特定のニューロンに特定の役割を背負わせないで過学習を防止
アドバンストビジョン第6回

その他補足2

  • 活性化関数として、ReLUの代わりにGELU(Gaussian Error Linear Unit)が使用されることも
    • 素直に微分可能

画像by Ringdongdang CC BY-SA 4.0

アドバンストビジョン第6回

エンコーダのまとめ

  • 次のような挙動を実現するように学習される
    • 文をトークンのベクトルを並べて位置の情報を加えた行列で受け取る
    • 自己注意機構と全結合層で中の各ベクトルを文脈にあわせて操作
      • ↑繰り返し
    • 文脈の反映されたを出力
  • 受け取る逆伝播誤差がどんなものかは
    デコーダ側による
アドバンストビジョン第6回

デコーダ(とデーコーダの先)

  • 本体は緑の枠内
    • 途中までの作文に対応する行列を受け取り
  • デコーダの先に具体的な仕事をするためのANNが接続される
    • 翻訳の場合は次の単語を予測するための全結合層
    • デコーダはこの仕事がしやすいようにに変更
アドバンストビジョン第6回

デコーダの本体

  • (自己注意機構+交差注意機構+フィードフォワード層)
  • 自己注意機構
    • 翻訳途中の文の文脈を考慮してを操作
    • 図中の「Masked」の意味: 文の後半にマスクをかける仕組み
      • 学習の際、完成された翻訳例が入力されてくるので必要に
      • 例: 「This is」の次を考える訓練をするときに、「This is a pen.」が入力されてくるので、の「a pen」に対応する要素にマスク
  • 交差注意機構
    • デコーダの出力を反映
アドバンストビジョン第6回

デコーダの先

  • 全結合層でデーコーダの入力の次の単語を予測
    • skip-gramのように学習可能
    • 出力は各トークンが次にくる確率
      • トークンの種類だけ次元がある
  • この部分の誤差を逆伝播することで学習が進行
    • 損失関数: 交差エントロピー

        • が正解でが出力
        • : 正解のトークン
アドバンストビジョン第6回

Transformer(翻訳用途)の構造のまとめ

  • 結局どんな問題を解いていたのか?こういう確率の問題
    • 次に来る単語翻訳前の文章翻訳途中の文章
  • Transformerの工夫
    • 翻訳前の文章、翻訳途中の文章に位置情報を付加
    • 文脈の考慮
      • 翻訳前の文章から注目すべき箇所を自己注意機構で
        発見して埋め込みに反映(エンコーダ)
      • 翻訳途中の文章を自己注意機構にかけて文脈を考慮した上で、
        さらにエンコーダからの文脈を交差注意機構で反映
アドバンストビジョン第6回

Transformerの応用

  • 感情分析
  • 文章生成

(より高度なものは次回以降)

アドバンストビジョン第6回

Transformerエンコーダによる感情分析

  • Transformerを分類タスクに応用することを考える
    • 入力: 文(例: 今日、100円を拾いました。)
    • 出力: 感情(楽しい、嬉しい、悲しいなど)
  • エンコーダで構成可能[中井2025]
    • 文の先頭に[CLS]というトークン(クラストークン)を加えて学習
    • 学習すると出力のクラストークンに分析のための情報が集まるように
  • Vision Transformerによる物体認識は基本この構造がこのまま使える(次回)
アドバンストビジョン第6回

Transformerエンコーダによる文章生成

こちらも[中井2025]から(4.3.2項)

  • 右図の構成で訓練すると文章をランダムに生成していける
    • 文脈が考慮されているので、かなり自然な出力が得られる(内容が正しい保証はなにもなし)
  • GPTはデコーダを使用(次々回以降にやります)
アドバンストビジョン第6回

まとめ

  • Transformerエンコーダ
    • 埋め込みに文脈を反映
      • 位置情報の付加自己注意機構
  • Transformerデコーダ
    • エンコーダの機能+交差注意機構で別の言語を文脈に反映可能
    • 学習の際にマスク
  • その他の参考文献: [菊田2025]
アドバンストビジョン第6回