Upgrade to Pro — share decks privately, control downloads, hide ads and more …

慶應義塾大学 機械学習基礎09 注意機構とトランスフォーマー

慶應義塾大学 機械学習基礎09 注意機構とトランスフォーマー

More Decks by Semantic Machine Intelligence Lab., Keio Univ.

Other Decks in Technology

Transcript

  1. 本講義の到達目標と今回の授業の狙い - - 6 本講義の到達目標 ▪ DNNの基礎理論と実装の関係を理解する ▪ 種々のDNNをコーディングできる 今回の授業の狙い

    ▪ トランスフォーマーの根幹である注意機構について理解する ▪ トランスフォーマーの基礎を理解する ▪ 出席確認: K-LMS上の機械学習基礎のMainページへアクセス
  2. 注意機構 - - 10 ▪ RNN/LSTMの問題 ▪ 系列中のある位置の予測に最も影響す るのはその直前の位置の入力のみ 離れた位置の影響がモデル化困難

    ▪ 注意機構(attention mechanism) ▪ 各時刻に重要度を付与するので、離 れた位置からの関連をモデル化できる ▪ 応用例 ▪ BERT[Devlin+ 2018], Show, Attend and Tell[Xu+ 2016], ViT[Dosovitskiy+ 21] 言い換えタスクにおける注意 機構の可視化 https://github.com/jessevig/bertviz
  3. 注意機構の直感的理解 - - 16 ▪ x=1のときのyはいくつ? ▪ y=3はありそう ▪ y=5やy=0ではなぜダメか?

    ▪ 赤楕円のサンプルから遠い ▪ 青楕円はさらに重要度が低い ▪ 直感的には、注意機構は重要度 を定量化していると理解できる
  4. 注意機構を理解するための準備 - - 17 ▪ Nadaraya-Watson kernel regression (Nadaraya-Watson 推定量)

    :カーネル関数 ↑カーネル法やサポートベクトル マシンの中心概念であり、3年生 で学ぶ すべての点について、x軸に関する 類似度で重み付け
  5. Nadaraya-Watson kernel regression: 注意機構としての理解 - - 18 ▪ Nadaraya-Watson kernel

    regression (Nadaraya-Watson 推定量) :カーネル関数 ↑カーネル法やサポートベクトル マシンの中心概念であり、3年生 で学ぶ ▪ Nadaraya-Watson kernel regressionを注意機構を有する モデルとして考える Query(クエリ) Key-value(キー・バリュー) 注意(attention) x_iについて規格化されている =x_i全体について足すと1
  6. Nadaraya-Watson kernel regression αの例:ガウスカーネル - - 19 ▪ 意図:関係の強さを、近ければ 高く、遠ければほぼ0としたい

    ↑ガウスカーネル(Gaussian kernel) 差uが0のときに最大で、差uが大 きくなるとほぼ0になる ▪ Nadaraya-Watson kernel regressionを注意機構を有する モデルとして考える Query(クエリ) Key-value(キー・バリュー) 注意(attention) x_iについて規格化されている =x_i全体について足すと1
  7. Nadaraya-Watson kernel regression αの例:ガウスカーネル - - 20 ▪ 意図:関係の強さを、近ければ 高く、遠ければほぼ0としたい

    ▪ Nadaraya-Watson kernel regressionを注意機構を有する モデルとして考える Query(クエリ) Key-value(キー・バリュー) 注意(attention) x_iについて規格化されている =x_i全体について足すと1
  8. Nadaraya-Watson kernel regression softmaxの記法に注意 - - 21 ▪ 意図:関係の強さを、近ければ 高く、遠ければほぼ0としたい

    ▪ 注意:softmax関数の定義 ▪ 別の定義 ▪ 引数にiに関する項(x_i等) を含む場合、左のように書く ことも多い
  9. Nadaraya-Watson kernel regression 注意の可視化 - - 23 ▪ 予測値 ▪

    注意の可視化 縦方向 x=0 x=0.1 x=0.2 … x=4.9 横方向 x_1, x_2, …, x50 以降では、注意の計算方法を紹介する
  10. 多次元のquery, key, value - - 25 ▪ Query, key, valueの定義

    ←q次元の実数値ベクトル ←k次元の実数値ベクトル ←v次元の実数値ベクトル
  11. 注意・注意スコア関数・Attention pooling - - 26 ▪ Query, key, valueの定義 ▪

    注意αと注意スコア関数a ▪ Attention pooling(クエリに対 する予測) ←q次元の実数値ベクトル ←k次元の実数値ベクトル ←v次元の実数値ベクトル ↑v_iに重みをつけて足したもの
  12. 加法注意と内積注意 - - 27 ▪ Query, key, valueの定義 ▪ 注意αと注意スコア関数a

    ▪ Attention pooling(クエリに対 する予測) ▪ 代表的な注意スコア関数 ▪ 加法注意 ▪ Queryとkeyが異なる次元 の場合に利用 ▪ 内積注意 ▪ Queryとkeyが同じ次元の 場合に利用
  13. 内積注意の例: scaled dot-product attention - - 28 ▪ (=ともにd次元のベク トル)の場合

    ▪ Scaled dot-product attention 内積をとって次元数dのルートで 割る
  14. 内積注意の例 m個のkeyに対する注意 - - 29 ▪ (=ともにd次元のベク トル)の場合 ▪ Scaled

    dot-product attention ▪ m個のkeyのうちi番目に対する 注意 ▪ Attention pooling ↑式にiがないので注意。横方向に関するsoftmax
  15. 内積注意の例 計算してみよう - - 30 ▪ 以下を計算せよ ▪ m個のkeyのうちi番目に対する 注意

    ▪ Attention pooling ↑式にiがないので注意。横方向に関するsoftmax
  16. 内積注意の例: query, key, valueが行列の場合 - - 31 の場合 ▪ queryがn個

    ▪ key-valueペアがm個 ▪ 各valueはv次元 ▪ Scaled dot-product attention
  17. トランスフォーマー - - 36 トランスフォーマー(transformer)[Vaswani+ 2017] ▪ 機械翻訳用のニューラルネットとして提案 ▪ 自然言語処理タスクの多くで主流

    ▪ BERT, GPT-3/4等 ▪ 画像処理、マルチモーダル言語処理、時系列予測等 へ現在も爆発的に拡大中 トランスフォーマーを使いこなせれば、種々のタスク に実用レベルで対応できる [Vaswani+ 2017]
  18. トランスフォーマーの構成要素 - - 39 ▪ エンコーダ ▪ デコーダ ※エンコーダのみ・デコーダのみ のタイプもトランスフォーマーと

    呼ばれることが多い ▪ 位置埋め込み ▪ トランスフォーマー層 ▪ QKV注意 ▪ マルチヘッド注意 ▪ 残差接続 ▪ レイヤー正規化
  19. 位置埋め込み - - 40 位置埋め込み(Positional encoding, positional embedding) ▪ 系列の何番目であるかをベクトルで表す

    ▪ 位置埋め込みの代表例 ▪ 三角関数 [Vaswani+ 2017] ▪ 学習可能とする [Devlin+ 2018] ▪ 使用しない [Irie+ 2019] 単純に加算
  20. QKV注意 [Vaswani+ 2017] - - 42 ▪ 前述の内積注意(scaled dot-product attention)を利用して

    を得る ▪ 自己注意(self-attention) Query, key, valueが同じ入力から計算される 場合 ▪ クロス注意(cross-attention) Query, key, valueが異なる入力から計算され る場合 Q K V
  21. デコーダにおける注意機構 - - 46 ▪ Query = デコーダの入力 ▪ 例:予測時の入力

    ▪ Key = Value = エンコーダから の出力 ▪ デコーダの出力:翻訳結果など K V Q
  22. 本講義全体の参考図書 - - 47 ▪ ★機械学習スタートアップシリーズ これならわかる深層学習入門 瀧雅人著 講談 社(本講義では、異なる表記を用いることがあるので注意)

    ▪ ★Dive into Deep Learning (https://d2l.ai/) ▪ 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之著 講談社 ▪ ディープラーニングを支える技術 岡野原大輔著 技術評論社 ▪ 画像認識 (機械学習プロフェッショナルシリーズ) 原田達也著 講談社 ▪ 深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ) 坪井祐太、 海野裕也、鈴木潤 著、講談社 ▪ IT Text 自然言語処理の基礎 岡﨑直観、荒瀬由紀、鈴木潤、鶴岡慶雅、宮尾祐介 著、オーム社 ▪ 東京大学工学教程 情報工学 機械学習 中川 裕志著、東京大学工学教程編纂委員会 編 丸善出版 ▪ パターン認識と機械学習 上・下 C.M. ビショップ著 丸善出版
  23. 参考文献 - - 48 1. Nadaraya, E. A. (1964). On

    estimating regression. Theory of Probability & Its Applications, 9(1), 141–142. 2. Watson, G. S. (1964). Smooth regression analysis. Sankhyā: The Indian Journal of Statistics, Series A, pp. 359–372. 3. Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., Zhai, X., Unterthiner, T., ... & Houlsby, N. (2020). An image is worth 16x16 words: Transformers for image recognition at scale. arXiv preprint arXiv:2010.11929. 4. Fukui, H., Hirakawa, T., Yamashita, T., & Fujiyoshi, H. (2019). Attention branch network: Learning of attention mechanism for visual explanation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 10705-10714). 5. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need. In Advances in neural information processing systems (pp. 5998-6008).
  24. 加法注意 - - 53 ▪ Query, key, valueの定義 ▪ 注意αと注意スコア関数a

    ▪ Attention pooling(クエリに対 する予測) ▪ 加法注意の例 ▪ Queryとkeyが異なる次元なの で、Linear層を用いて次元を 揃える ▪ 学習パラメータ ← h x qの実数値の行列 ← h x kの実数値の行列
  25. 三角関数を用いた位置埋め込み - - 54 ▪ 入力 ▪ 例:d個のセンサでn時間観測 ▪ 位置埋め込み関数fでは、位置埋

    め込みPをXと加算する →PとXの次元を揃える必要有 ▪ 三角関数を用いた位置埋め込み の例 →なぜこの形なのか? 先頭から の位置 (n) 次元(d)
  26. 三角関数を用いた位置埋め込み: 直感的理解 - - 55 ▪ 意図 ▪ ある数字を、数字そのものではなく複数次元で表したい ▪

    例:0時ちょうどから53130秒後は「14時45分30秒」とも表せる ▪ 各次元で周期が異なる ▪ 秒針、分針、時針、日針、…の関係に似ている
  27. 三角関数を用いた位置埋め込み: 2進数との対応 - - 56 ▪ 2進数では下位ビットが短周期 位置埋め込みでは左側が短周期 0 =

    0 0 0 1 = 0 0 1 2 = 0 1 0 3 = 0 1 1 4 = 1 0 0 5 = 1 0 1 6 = 1 1 0 7 = 1 1 1 ▪ sinのみに変更すると、右になる ほど周期が延びる様子が見やす くなる 長周期 短周期 先頭から の位置 (n) 次元(d)