$30 off During Our Annual Pro Sale. View Details »

全日本CV勉強会発表資料 Learning Transformer in 40 Minutes

全日本CV勉強会発表資料 Learning Transformer in 40 Minutes

cvpaper.challengeのメンバーとして全日本コンピュータビジョン勉強会で発表を行った時の発表資料(前編)です。

第六回全日本コンピュータビジョン勉強会(2021.04.18 )
https://kantocv.connpass.com/event/205271/

山本さんによる後編はこちら
https://drive.google.com/file/d/1dwvc2yNi66iuz9Z63j_2cTic2qmNIOyP/view

Seitaro Shinagawa

April 18, 2021
Tweet

More Decks by Seitaro Shinagawa

Other Decks in Technology

Transcript

  1. cvpaper.challenge V&L group
    発表者: 品川(前半) 山本(後半)
    1
    http://xpaperchallenge.org/cv
    Learning Transformers
    in 40 Minutes

    View Slide

  2. Vision and Language group @ cvpaper.challenge
    2
    研究機関横断で全国各地から研究者が集まって
    研究を進めているコミュニティです
    実はVision&Languageのグループもあります
    片岡(産総研)
    本発表はこのグループが主導
    で行っているメタサーベイ企画
    の一部です
    鈴木(産総研)
    品川(NAIST)山本(早稲田大)
    就活中
    アドバイザー陣とHQ

    View Slide

  3. 発表の流れ
    3
    今回はメタサーベイでまとめているTransformerに
    ついての概要や知見について話します
    前半(品川)
    1.Transformerの躍進(導入的な話題)
    2.Transformer解体新書(モデルの概要説明)
    3.Transformerの学習と推論(学習の枠組み)
    後半(山本)
    • Transformerを巡るこれまでの歴史・動向・課題
    (メタサーベイで得られている知見の紹介)
    • 使えるツールの紹介

    View Slide

  4. 1. Transformerの躍進
    4

    View Slide

  5. いま、Transformerがアツい
    5
    Transformerの登場以降
    1 Transformerの
    躍進
    DALL-E (https://openai.com/blog/dall-e/)
    大規模かつ多様なデータでの学習が盛んに
    人間と一見遜色ない言語生成・画像生成の報告も
    GPT-3の検索結果

    View Slide

  6. CVにもTransformerの波が・・・
    6
    1 Transformerの
    躍進
    2020/12/23
    A Survey on Visual Transformer (2020)
    https://arxiv.org/abs/2012.12556
    2021/01/04
    Transformers in Vision: A Survey
    https://arxiv.org/abs/2101.01169
    2021/03/06
    Perspectives and Prospects on Transformer
    Architecture for Cross-Modal Tasks with
    Language and Vision
    https://arxiv.org/abs/2103.04037
    Computer Vision界隈でもTransformerが流行りだしてる
    サーベイ論文もここ最近たて続けに出てきた
    知っとかないといけない・・・でも分量が多い・・・
    詳しく調べて勘所を提供したい←我々の動機

    View Slide

  7. Transformerは何を可能にしたのか?
    7
    1 Transformer
    の躍進
    NLP界隈の悩み:時系列をRNNで扱うのは時間がかかる
    RNN
    𝑥0
    embedding
    RNN
    𝑥1
    embedding
    RNN
    𝑥2
    embedding
    ℎ0
    ℎ1
    ℎ2
    逐次的に更新される隠れ層ℎ𝑡−1
    が入力なので遅い
    並列化して一度に処理できないか・・・?
    ℎ0
    ℎ1

    View Slide

  8. Transformerの登場
    8
    1 Transformer
    の躍進
    Self-attentionで時系列データを一度に処理(学習時)
    RNN
    𝑥0
    embedding
    RNN
    𝑥1
    embedding
    RNN
    𝑥2
    embedding
    ℎ0
    ℎ1
    ℎ2
    学習の高速化により大規模データでの学習が可能に
    →NLP分野での大規模学習時代の到来
    ℎ0
    ℎ1
    Transformer block

    View Slide

  9. CV界隈にとっての嬉しさ
    9
    1 Transformer
    の躍進
    CNNは局所結合を重ねた構造
    大域的な関係性を見るのは苦手
    Self-attentionで大域的な関係性も見られるようになった
    Transformer block
    Transformerは領域同士の
    関係性を大域的に見ることが可能

    View Slide

  10. Self-attentionの適用事例
    10
    1 Transformer
    の躍進
    Self-Attention Generative Adversarial Networks [Zhang+, 2018]
    • GANによる画像生成にSelf-attentionを適用した例
    • 点が示す領域をクエリとしたとき、画像のどの領域が強く対応
    しているかを可視化
    • 各クエリ点が近くの領域や遠くの領域を見ていることがわかる

    View Slide

  11. Transformerは最強?
    11
    1 Transformer
    の躍進
    Transformerの強み
    • RNNより処理が速い→大規模学習向き
    • CNNより大域な特徴も見られる→性能が高くなりそう
    Transformerの弱み?
    • ぶっちゃけよくわからんことが多い点
    • ゆえに世界中がいま分析や応用に躍起
    この構造がベストなのか?
    精度を上げるには学習にどういう工夫がいるのか?
    データセットのサイズはどのくらいの規模が必要か?
    これらの疑問を解消するため、
    我々はArXivの奥地へと進んだ・・・

    View Slide

  12. 2. Transformer解体新書
    12

    View Slide

  13. 親の顔より見たかもしれない図
    13
    2 Transformer
    解体新書

    View Slide

  14. 基本構成はそんなに難しくない
    14
    2 Transformer
    解体新書
    Transformer block
    Transformer block
    Transformer block
    classification head
    positional encoding
    embedding
    入力
    入力をトークンごとにベクトル化
    Self-attentionを中心とした
    メインの処理
    分類の予測を行う
    位置情報の付与

    View Slide

  15. 基本構成はそんなに難しくない
    15
    2 Transformer
    解体新書
    Transformer block
    Transformer block
    Transformer block
    classification head
    positional encoding
    embedding
    入力
    入力をトークンごとにベクトル化
    位置情報の付与
    Self-attentionを中心とした
    メインの処理
    分類の予測を行う

    View Slide

  16. positional encoding
    16
    2 Transformer
    解体新書
    self-attentionには各トークンの位置を考慮する機構がない
    →明示的に位置embeddingを与えることで性能が向上
    大きく分けると3種類?
    a) sin関数とcos関数で明示的に与える(学習不要)
    b) 学習可能なパラメータとして適当に初期化して学習する
    c) 位相部分のみを学習可能なパラメータとする
    positional encoding
    𝑓 𝒙 = 𝒙 + 𝒑𝒐𝒔𝒆𝒎𝒃
    入力
    𝒙
    出力
    𝑓 𝒙
    単純に足し合わせることが多い

    View Slide

  17. positional encoding
    17
    2 Transformer
    解体新書
    a) sin関数とcos関数で明示的に与える(学習不要)
    • Sinusoidal positional embeddings (SPEs) [Vaswani+, NIPS2017]
    • Transformerの元論文をはじめとしてよく使われている
    𝑃𝐸 𝑝𝑜𝑠,2𝑖
    = sin 𝑤𝑖
    ⋅ 𝑝𝑜𝑠 = sin
    1
    100002𝑖/𝑑𝑚𝑜𝑑𝑒𝑙
    ⋅ 𝑝𝑜𝑠
    𝑃𝐸 𝑝𝑜𝑠,2𝑖+1
    = cos 𝑤𝑖
    ⋅ 𝑝𝑜𝑠 = sin
    1
    100002𝑖/𝑑𝑚𝑜𝑑𝑒𝑙
    ⋅ 𝑝𝑜𝑠
    𝑆𝑃𝐸
    = 𝑃𝐸 𝑝𝑜𝑠,0
    , 𝑃𝐸 𝑝𝑜𝑠,1
    , 𝑃𝐸 𝑝𝑜𝑠,2
    , 𝑃𝐸 𝑝𝑜𝑠,3
    , ⋯ , 𝑃𝐸 𝑝𝑜𝑠,2𝑛
    , 𝑃𝐸 𝑝𝑜𝑠,2𝑛+1
    = sin 𝑤0
    𝑡 , cos 𝑤0
    𝑡 , sin 𝑤1
    𝑡 , cos 𝑤1
    𝑡 , ⋯ , sin 𝑤𝑛
    𝑡 , cos 𝑤𝑛
    𝑡
    つまり、SPEは𝑤𝑖
    ごとにsinとcosの組を並べて得られるベクトル

    View Slide

  18. SPEsの気持ちは時計型embedding?
    18
    2 Transformer
    解体新書
    from:https://github.com/jalammar/jalammar.github.io/blob/master/noteboo
    kes/transformer/transformer_positional_encoding_graph.ipynb
    sin 𝑤0
    𝑡 , cos 𝑤0
    𝑡
    長針
    周期短い
    短針
    周期長い
    sin 𝑤𝑛
    𝑡 , cos 𝑤𝑛
    𝑡

    sinとcosの組を時計の針とみると、位置𝑡は時刻で𝑤𝑖
    は針の動く速さ
    次元を2nとすると、sinとcosはn組→n個の針がある時計
    “私”
    “は”
    “元気”
    “です”
    “。”

    View Slide

  19. 位置embeddingは足すべきか?
    19
    2 Transformer
    解体新書
    from:https://github.com/jalammar/jalammar.github.io/blob/master/noteboo
    kes/transformer/transformer_positional_encoding_graph.ipynb
    位置embeddingは入力に足す実装が多い
    best practiceは不明。concatする方が良い可能性もある
    Sinusoidal positional embeddingsの場合
    • ベクトルの最初の数十次元が位置情報に
    よって汚染される(学習済みembedding
    を使うときは注意が必要?)
    • これはソフトにconcatしているともいえる
    Learnable positional embeddingsの場合
    • すべての次元が位置情報によって汚染さ
    れ得る
    • が、良い性能が出ているのでたぶん学習
    でうまく住みわけがなされている模様

    View Slide

  20. positional encoding
    20
    2 Transformer
    解体新書
    b) 学習可能なパラメータとして適当に初期化して学習する
    • Learnable positional embeddings [Gehring+, ICML2017]
    • BERTやGPT、ViTなどよく使われている
    https://huggingface.co/transformers/_modules/transfo
    rmers/models/vit/modeling_vit.html#ViTModel
    初期化の方法は様々
    HuggingfaceのViTだとゼ
    ロベクトルで初期化
    他にも一様分布や
    正規分布などの場合がある
    (実装による)

    View Slide

  21. positional encoding
    21
    2 Transformer
    解体新書
    c) SPEsの𝑤𝑖
    部分を学習可能なパラメータとする
    • Learnable sinusoidal positional embeddings [Wang+, ICLR2021]
    • Sinusoidalの形だと2つの位置の内積がcosの和で表される
    𝑃𝐸 𝑝𝑜𝑠,2𝑖
    = sin 𝑤𝑖
    ⋅ 𝑝𝑜𝑠
    𝑃𝐸 𝑝𝑜𝑠,2𝑖+1
    = cos 𝑤𝑖
    ⋅ 𝑝𝑜𝑠
    𝑃𝐸(𝑝1)
    ⋅ 𝑃𝐸 𝑝2
    = sin 𝑤1
    ⋅ 𝑝1
    ⋅ sin 𝑤1
    ⋅ 𝑝2
    + cos 𝑤1
    ⋅ 𝑝1
    ⋅ cos 𝑤1
    ⋅ 𝑝2

    sin 𝑤𝑛
    ⋅ 𝑝1
    ⋅ sin 𝑤𝑛
    ⋅ 𝑝2
    + cos 𝑤𝑛
    ⋅ 𝑝1
    ⋅ cos 𝑤𝑛
    ⋅ 𝑝2
    = Σ𝑖
    𝑛 cos 𝑤𝑖
    𝑝1
    − 𝑝2
    距離が遠いほど類似度が小さい(単調性)が成り立つのは
    𝑤𝑖
    の大きさによる→学習で求めることを提案

    View Slide

  22. Transformer blockについて
    22
    2 Transformer
    解体新書
    Transformer block
    Transformer block
    Transformer block
    classification head
    positional encoding
    embedding
    入力
    入力をトークンごとにベクトル化
    Self-attentionを中心とした
    メインの処理
    分類の予測を行う
    位置情報の付与

    View Slide

  23. Transformer block
    23
    2 Transformer
    解体新書
    Transformer block
    学習方法やタスクに非依存のTransfomerの基本処理単位

    𝒙 = 𝑇𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚𝑒𝑟 𝒙
    ベクトルの配列 𝒙 (トークン数×次元)を入力として
    同じサイズの出力ෝ
    𝒙を返す

    View Slide

  24. Transformerブロックの中身
    24
    2 Transformer
    解体新書
    Transformerブロックの中心的要素はたった3要素
    1. Multi-head attention (次元分割型Self-attention)
    2. 残差接続(Residual connection)
    3. Layer Normalizationによる正規化
    (あとはFeedforwardとドロップアウトがある)
    ややこしい図(前述)でいうところのこの部分

    View Slide

  25. Self-attention
    25
    2 Transformer
    解体新書
    辞書型の非線形処理機構
    周りの情報を取り入れて新しいベクトルを作る
    self-attention

    𝒙 = 𝒔𝒆𝒍𝒇𝒂𝒕𝒕𝒆𝒏𝒕𝒊𝒐𝒏 𝒙

    View Slide

  26. Self-attention
    26
    2 Transformer
    解体新書
    𝑊𝑄
    𝑊𝐾
    𝑊𝑉
    𝑛, 𝑑
    +
    =

    このクエリについて
    みると・・・
    • 他のクエリについても同様に求められる
    • 内積はノルム正規化なしなので注意
    • 次元の大きさに応じてスケーリング 𝑑して類似度的に扱っている
    • 正規化して正確にcos類似度にしても良いはずだが速度優先?
    𝑛, 𝑑
    𝑠𝑜𝑓𝑡𝑚𝑎𝑥
    𝑄 ⋅ 𝐾𝑇
    𝑑
    ⋅ 𝑉
    ベースの料理(Query)に関係する周りの料理を選び(Key)
    その材料(Value)で新しい料理(ベクトル)をつくる
    attention map

    View Slide

  27. Multi-head attentionへの拡張
    27
    2 Transformer
    解体新書
    次元分割型Self-attention(Multi-head attention)
    =

    Self-attentionの内積はベクトルの各要素にわたって大域
    的な類似度を取っている
    高次元にすると、
    次元ごとの小さな特徴が無視されやすい



    attention
    map
    • 小さなベクトルに切り分け計算
    • トークン間の多様な類似性を
    発見できる
    • 多様性を上げる損失関数を加
    えると性能向上[Li+, EMNLP2018],
    [Huang+, EMNLP2019]

    View Slide

  28. 残差接続(Residual connection)
    28
    2 Transformer
    解体新書
    • 入力からの差分を学習する
    • 入力からの差分の学習が不要の場合
    sublayer部分が0になるように学習が進む
    • 学習の安定化、性能向上に寄与
    𝑅𝑒𝑠𝑖𝑑𝑢𝑎𝑙 𝑥, 𝑠𝑢𝑏𝑙𝑎𝑦𝑒𝑟 = 𝑥 + 𝑠𝑢𝑏𝑙𝑎𝑦𝑒𝑟(𝑥)
    多層での学習性能を上げる工夫

    View Slide

  29. Layer normalization
    29
    2 Transformer
    解体新書
    𝐿𝑎𝑦𝑒𝑟𝑛𝑜𝑟𝑚 𝑥 =
    𝑥 − 𝐸 𝑥
    𝑉𝑎𝑟 𝑥 + 𝜖
    ∗ 𝛾 + 𝛽
    入力系列をトークンごとに正規化する操作
    𝑛, 𝑑
    Layernorm
    Layernorm
    Layernorm
    Layernorm
    𝑛, 𝑑
    嬉しい特徴
    Large batch訓練がbatch accumulationで安心してできる
    ※batch normalizationだと統計量が変わってしまう
    𝛾, 𝛽は学習パラメータ

    View Slide

  30. 3. Transformerの学習と推論
    30

    View Slide

  31. NLPにおけるTransformerの類型
    31
    3 Transformerの学習
    と推論
    大きく分けて2種類のタイプがある
    • 【Seq2seq】 Attention is all you need [Vaswani+, NIPS2017]
    • 【BERT】 BERT: Pre-training of Deep Bidirectional
    Transformers for Language Understanding [Devlin+, ACL2019]

    View Slide

  32. Seq2seq型
    32
    3 Transformerの学習
    と推論
    EncoderとDecoderの2種類のTransformerで構成
    Encoder Decoder

    View Slide

  33. Seq2seq型
    33
    3 Transformerの学習
    と推論
    EncoderとDecoderの2種類のTransformerで構成
    Encoder情報はKey, Value情報としてDecoderへ
    Encoder Decoder
    Key
    Value

    View Slide

  34. 自己回帰型と非自己回帰型
    34
    3 Transformerの学習
    と推論
    自己回帰型のSeq2seq
    • 時系列を時々刻々と順番に予測していく
    • 訓練時に未来の系列がリークしないようにAttention
    mapにマスクする(−∞で置き換える)工夫が必要
    −∞ −∞ −∞
    −∞ −∞
    −∞
    「私 は 元気 です」をデコーダで出力するように学習する場合


    元気
    です
    Query
    Key
    「私」に対応するQueryは、未来
    の情報である「は」「元気」「です」
    のKeyを考慮しない
    (ちなみに推論時も同様にマスク
    されている)

    View Slide

  35. 非自己回帰型のSeq2seq
    35
    3 Transformerの学習
    と推論
    全系列を一度に予測する
    Levenshtein Transformer [Gu+, NeurIPS2019]が有名
    トークン
    の消去
    トークン用
    穴の作成
    穴埋め
    トークンの消去、トークン穴の作成、穴埋め
    の操作を通して全系列を段階的に編集する

    View Slide

  36. BERT型
    36
    3 Transformerの学習
    と推論
    非自己回帰のDecoderに似た新しい言語モデルの枠組み
    事前学習で以下の2つのタスクを行うことで色々なNLPタスクで効果
    を発揮(V&LのモデルやViTもこの流れを汲んでいる)
    • Masked language modeling (MLM)
    • Next sentence prediction (NSP)
    BERT
    [CLS] [SEP]
    文A 文B

    View Slide

  37. Masked Langauge Modeling
    37
    3 Transformerの学習
    と推論
    系列の一部をマスクしてマスクした箇所を予測するタスク
    BERTでは15%を選択し、そのうち80%は[mask]トークンで置き換え、
    10%はランダムなトークンで置き換え、10%はそのままにする
    (ViTでもpatch単位で同じことをしている)
    BERT
    [CLS] [SEP]
    文A 文B
    予測 予測 予測

    View Slide

  38. Next sentence prediction
    38
    3 Transformerの学習
    と推論
    2つの文AとBが連続しているかを2値で予測するタスク
    (V&Lのモデルでは画像とテキストがマッチするかで使われている)
    BERT
    [CLS] [SEP]
    文A 文B
    連続/不連続
    RoBERTa[Liu+, 2019]では性能向上に寄与しないとして排除されてる

    View Slide

  39. Segment embeddingsの追加
    39
    3 Transformerの学習
    と推論
    どちらの文に所属しているかをより明示的に扱うためのembedding
    を追加で加算してembeddingを作る

    View Slide

  40. ここまでのまとめ
    40
    前半はTransformerの概要についておさらいしました
    前半(品川)
    1.Transformerの躍進(導入的な話題)
    2.Transformer解体新書(モデルの概要説明)
    3.Transformerの学習と推論(学習の枠組み)
    ご質問があればSlackへお願いいたします。

    View Slide