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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

慶應義塾大学 機械学習基礎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)