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

CNN vs. ViT

CNN vs. ViT

第57回 コンピュータビジョン勉強会@関東
https://kantocv.connpass.com/event/260132/
で読みました。CNNとViTの争いの現時点の情報をお届けしています。ただECCV 2022の論文を読んだのかと言われると怪しい…(ECCV2022の論文「も」読んだというのが正しい)

Yoshitaka Ushiku
PRO

October 22, 2022
Tweet

More Decks by Yoshitaka Ushiku

Other Decks in Technology

Transcript

  1. ECCV 2022 読み会
    CNN vs. ViT
    牛久 祥孝
    losnuevetoros

    View Slide

  2. 自己紹介(学職歴)
    2013.6~2013.8 Microsoft Research Intern
    2014.3 博士(情報理工学)、東京大学
    2014.4~2016.3 NTT CS研 研究員
    2016.4~2018.9 東京大学 講師 (原田牛久研究室)
    2016.9~ 産業技術総合研究所 協力研究員
    2016.12~2018.9 国立国語研究所 共同研究員
    2018.10~ オムロンサイニックエックス株式会社 Principal Investigator
    2019.1~ 株式会社 Ridge-i Chief Research Officer
    2020.4~ 津田塾大学 非常勤講師
    2021.7~ 東北大学 非常勤講師
    2022.1~ 合同会社ナインブルズ 代表
    [Ushiku+, ACMMM 2012]
    [Ushiku+, ICCV 2015]
    画像キャプション生成 動画の特定区間と
    キャプションの相互検索
    [Yamaguchi+, ICCV 2017]
    A guy is skiing with no shirt on
    and yellow snow pants.
    A yellow train on the tracks
    near a train station.

    View Slide

  3. 自己紹介(その他)
    主な学術団体活動
    ACM・IEEE・情報処理学会・応用物理学会 一般会員
    コンピュータビジョン勉強会@関東 幹事
    電子情報通信学会 情報・システムソサイエティ 庶務幹事
    著作権管理委員会 委員
    代議員
    人工知能学会 論文誌編集委員会 編集委員
    建築情報学会 理事
    日本ディープラーニング協会 有識者会員
    共立出版 コンピュータビジョン最前線 編集
    主な研究プロジェクト
    2022-2025 人と融和して知の創造・越境をするAIロボット JST Moonshot(PM:牛久祥孝)
    2021-2025 マテリアル探索空間拡張プラットフォームの構築 JST 未来社会創造事業(代表:長藤圭介)
    2017-2020 多様なデータへのキャプションを自動で生成する技術の創出 JST ACT-I(代表:牛久祥孝)
    2017-2021 機械可読時代における文字科学の創成と応用展開 JSPS 基盤研究(S)(代表:内田誠一)

    View Slide

  4. 読書の秋

    View Slide

  5. 読書の秋

    View Slide

  6. 読書の秋

    View Slide

  7. 読書の秋

    View Slide

  8. Vision Transformer
    • 画像からTransformerのみで学習すると
    – ResNet152層とほぼ同等の精度かつ25%程度の学習時間
    – JFT-300Mという大規模データセットが必要
    – 知識蒸留を組み合わせて、ImageNetの1000クラス画像データのみの学習でも
    EfficientNetを超えたDeiTも有名 [Touvron, ICML’21]
    • エンコーダのみのTransformer
    – 実はオリジナルのTransformerよりも構造が単純で理解も容易
    [Dosovitskiy+, ICLR 2021]

    View Slide

  9. Vision Transformerで物体検出やセグメンテーションを行うには
    [Dosovitskiy+, ICLR’21]
    • ViTのような粗いパッチだけだと…細かいバウン
    ディングボックスの位置決めやセグメンテー
    ションの精度が落ちる
    • 一方で細かいパッチを多く作ってしまうと、ア
    テンションの計算で時間がかかる(パッチ数の2
    乗オーダー)

    View Slide

  10. Swin Transformer
    • CNNでおなじみのピラミッド構造を持ち込む
    – アテンション計算を各ローカルウィンドウに限定して計算量削減
    – これらのレイヤーと少し区切りをずらしたレイヤーを交互に挟む
    →ローカルウィンドウを超えた受容野を達成
    – 物体検出で評価(セグメンテーションはSwin-Unet [Cao+, 2021])
    [Liu+, ICCV 2021]
    Best paper!

    View Slide

  11. Swin TransformerはビジョンのタスクでSoTA
    ・・・畳込みはオワコンなのか?
    識別(ImageNet)
    検出・分割(COCO)
    [Liu+, ICCV 2021]
    Best paper!

    View Slide

  12. 本日のテーマ:ViT vs. CNN
    • 精度の比較
    – Conv層をViT前に入れると良いよ! [Xiao+, NeurIPS 2021]
    – Local AttentionはDepth-wise Convと同じ! [Han+, ICLR 2022]
    – CNNも頑張るとTransformerを超えるよ! [Liu+, CVPR 2022]
    • 特徴量の比較
    – ViTの特徴量とCNNの特徴量を色々比べた [Raghu+, NeurIPS 2021]
    – CNNはハイパスフィルタ、ViTはローパスフィルタ [Park+Kim, ICLR 2022]
    • 頑健性の比較
    – 今日のECCV論文

    View Slide

  13. 本日のテーマ:ViT vs. CNN
    • 精度の比較
    – Conv層をViT前に入れると良いよ! [Xiao+, NeurIPS 2021]
    – Local AttentionはDepth-wise Convと同じ! [Han+, ICLR 2022]
    – CNNも頑張るとTransformerを超えるよ! [Liu+, CVPR 2022]
    • 特徴量の比較
    – ViTの特徴量とCNNの特徴量を色々比べた [Raghu+, NeurIPS 2021]
    – CNNはハイパスフィルタ、ViTはローパスフィルタ [Park+Kim, ICLR 2022]
    • 頑健性の比較
    – 今日のECCV論文 本当は
    MLP vs. ViT vs. CNN
    にしたかったけど
    (発表時間も準備時間も)無理

    View Slide

  14. 本日のテーマ:ViT vs. CNN
    • 精度の比較
    – Conv層をViT前に入れると良いよ! [Xiao+, NeurIPS 2021]
    – Local AttentionはDepth-wise Convと同じ! [Han+, ICLR 2022]
    – CNNも頑張るとTransformerを超えるよ! [Liu+, CVPR 2022]
    • 特徴量の比較
    – ViTの特徴量とCNNの特徴量を色々比べた [Raghu+, NeurIPS 2021]
    – CNNはハイパスフィルタ、ViTはローパスフィルタ [Park+Kim, ICLR 2022]
    • 頑健性の比較
    – 今日のECCV論文

    View Slide

  15. Transformer に conv 層
    • pretrained CNN+Transformerという良くある話ではない
    • Conv 層を先に入れると収束早い(左)+安定性増す(右)
    [Xiao+, NeurIPS 2021]

    View Slide

  16. Local AttentionとDepth-wise Convの関係性
    • AttentionとConvの図解
    – 縦方向が空間次元、横方向がチャネル次元
    – 普通の縦×横の画像ではないので要注意
    普通のConv 普通のAttention
    =Global Attention
    または
    MLP-Mixer
    Local Attention
    (Swin-Tのやつ)
    または
    Depth-wise Conv
    1x1 Conv 全結合MLP

    View Slide

  17. 動的な重みのDepth-wise Conv
    • Local AttentionとDepth-wise Convの唯一の違い
    =重み(パラメータ)が動的か静的か
    • 実験結果(の一部)
    – Swin TransformerのAttentionをDepth-wise ConvにしたDWNet
    – Depth-wise Convを動的にした2種のdynamic DWNet
    CNNとViTで精度がほぼ一緒になった!

    View Slide

  18. 2020年代のConvNet = ConvNeXt
    • ResNetを拡張したConvNeXt
    モダンな
    – データ拡張
    – Depth-wise conv
    – 活性化関数
    – 正規化
    etc.
    • Swin-Transformerを超えるよ!
    [Liu+, CVPR 2022]

    View Slide

  19. 本日のテーマ:ViT vs. CNN
    • 精度の比較
    – Conv層をViT前に入れると良いよ! [Xiao+, NeurIPS 2021]
    – Local AttentionはDepth-wise Convと同じ! [Han+, ICLR 2022]
    – CNNも頑張るとTransformerを超えるよ! [Liu+, CVPR 2022]
    • 特徴量の比較
    – ViTの特徴量とCNNの特徴量を色々比べた [Raghu+, NeurIPS 2021]
    – CNNはハイパスフィルタ、ViTはローパスフィルタ [Park+Kim, ICLR 2022]
    • 頑健性の比較
    – 今日のECCV論文

    View Slide

  20. 特徴量の比較
    • ViTとCNN (ResNet) の途中の層の特徴量の類似度比較
    [Raghu+, NeurIPS 2021]

    View Slide

  21. 特徴量の比較
    • ViTとCNN (ResNet) の途中の特徴量の類似度比較
    ViTは最初の方の層と最後の方の層でも
    特徴量が似ている
    [Raghu+, NeurIPS 2021]

    View Slide

  22. 特徴量の比較
    • ViTとCNN (ResNet) の途中の特徴量の類似度比較
    CNNは最初の方の層と最後の方の層で
    特徴が異なってくる様子が見られる
    [Raghu+, NeurIPS 2021]

    View Slide

  23. 特徴量の比較
    • ViTとCNN (ResNet) の途中の特徴量の類似度比較
    • CNNは局所→大域な特徴量を学習
    • ViTは最初から大域的な特徴量を学習
    [Raghu+, NeurIPS 2021]

    View Slide

  24. 特徴量の比較
    • ViTとCNN (ResNet) の途中の層同士の類似度を直接比較
    • ViTの最後の方の層はCNNと異なる特徴量になっている
    [Raghu+, NeurIPS 2021]

    View Slide

  25. 特徴量の比較
    • 最終層の各位置の特徴量の類似度比較
    ViTは位置ごとに
    ユニークな特徴量を学習
    CNNは比較的広範囲で
    特徴量が類似
    ViTでもCLSトークンを消し
    Global Average Poolingを
    入れると特徴量が類似する
    [Raghu+, NeurIPS 2021]

    View Slide

  26. ViTは損失関数を平坦にするので汎化性も良い
    [Park+Kim, ICLR 2022]
    CNNとViTでの
    損失関数の様子
    ViTの方が
    損失関数のヘシアンの
    固有値が小さい
    =より平坦

    View Slide

  27. ViTは損失関数を平坦にするので汎化性も良い
    [Park+Kim, ICLR 2022]
    CNNとViTでの
    損失関数の様子
    ViTの方が
    損失関数のヘシアンの
    固有値が小さい
    =より平坦
    CLSトークンを廃止してGAPにするとより平坦に
    ViTでは元々はCLS
    Swin-TではGAP

    View Slide

  28. Convはハイパスフィルタ、ViTはローパスフィルタ
    [Park+Kim, ICLR 2022]

    View Slide

  29. Convはハイパスフィルタ、ViTはローパスフィルタ
    [Park+Kim, ICLR 2022]
    ResNetは高周波ノイズに弱いが、
    ViTはそれらに頑健

    View Slide

  30. ResNetにアテンションブロックを入れるAlterNet
    • ResNet-50に複数回のアテンションを導入
    • 他はResNetと同様(左)だがCIFAR-100で効果あり(右)
    [Park+Kim, ICLR 2022]

    View Slide

  31. 本日のテーマ:ViT vs. CNN
    • 精度の比較
    – Conv層をViT前に入れると良いよ! [Xiao+, NeurIPS 2021]
    – Local AttentionはDepth-wise Convと同じ! [Han+, ICLR 2022]
    – CNNも頑張るとTransformerを超えるよ! [Liu+, CVPR 2022]
    • 特徴量の比較
    – ViTの特徴量とCNNの特徴量を色々比べた [Raghu+, NeurIPS 2021]
    – CNNはハイパスフィルタ、ViTはローパスフィルタ [Park+Kim, ICLR 2022]
    • 頑健性の比較
    – 今日のECCV論文

    View Slide

  32. 某 機械学習の学習におすすめのTwitterアカウントより

    View Slide

  33. 結局どっちが頑健なのか
    • TransformerはCNNよりも入力に対する摂動にロバストだよ
    2021年3月→[Bhojanapalli+, ICCV 2021]
    • TransformerはCNNよりも敵対的な摂動にロバストだよ
    2021年4月→[Mahmood+, ICCV 2021]
    • TransformerはCNNよりも自然な摂動にロバストだよ
    2021年5月→[Paul+Chen, AAAI 2022]
    • TransformerとMLPはCNNよりも敵対的摂動にロバストだよ
    2021年10月→[Benz+, BMVC 2021]
    • 分布外データには強いけど、敵対的摂動には大して変わらんよ
    2021年11月→[Bai+, NeurIPS 2021]
    • パッチの摂動が自然ならViTの方が、敵対的ならCNNの方がロバストだよ
    2021年11月→[Gu+, ECCV 2022]
    • パッチの敵対的な摂動だとCNNの方がViTよりもロバストになるよ
    2022年3月→[Fu+, ICLR 2022]
    • 分布外データに対しても変わらんよ
    2022年7月→[Pinto+, ECCV 2022]
    標準:@mi141より
    太字:追加
    橙色:ECCVの論文

    View Slide

  34. ViTの方がCNNよりロバストって言うけれど
    • 摂動する大きさを少し大きくしたら両方ともダメになる
    – ImageNetの検証データ上での比較
    [Bai+, NeurIPS 2021]

    View Slide

  35. ViTの方がCNNよりロバストって言うけれど
    • 敵対的なサンプルを学習するとCNNがダメになる
    • ように見えるけど…
    [Bai+, NeurIPS 2021]

    View Slide

  36. ViTの方がCNNよりロバストって言うけれど
    • 敵対的なサンプルを学習するとCNNがダメになる
    • ように見えるけど…
    • 活性化関数をReLU→GELUにしたらCNNでもロバストだった
    [Bai+, NeurIPS 2021]

    View Slide

  37. ViTの方がCNNよりロバストって言うけれど
    • PatchAttack: パッチのテクスチャを強化学習によって摂動
    [Yang+, ECCV 2020]
    • おっ、ViTの方がロバストか…?
    [Bai+, NeurIPS 2021]

    View Slide

  38. ViTの方がCNNよりロバストって言うけれど
    • PatchAttack: パッチのテクスチャを強化学習によって摂動
    [Yang+, ECCV 2020]
    • おっ、ViTの方がロバストか…?
    • データ拡張手法をViTに合わせたらCNNもロバストだった
    [Bai+, NeurIPS 2021]

    View Slide

  39. パッチによる摂動に注目してみよう
    • Naturally Corrupted Patch
    – ViTの方がCNNよりも頑健だった
    • Adversarial Patch
    – ViTの方がCNNよりも脆弱だった
    両方ともアテンション機構に起因しているっぽい
    [Gu+, ECCV 2022]
    CNN
    ViT

    View Slide

  40. パッチによる摂動に注目してみよう
    • Naturally Corrupted Patch
    – ViTの方がCNNよりも頑健だった
    • Adversarial Patch
    – ViTの方がCNNよりも脆弱だった
    両方ともアテンション機構に起因しているっぽい
    [Gu+, ECCV 2022]
    自然な崩壊パッチ?
    ノイズやブラーなど
    [Hendrycks+Dietterich, ICLR
    2019]
    CNN
    ViT

    View Slide

  41. 守る方法はあるか
    • ViTは敵対的なパッチにアテンションが集中しがち
    • であれば、softmaxに温度パラメータを入れてアテンション
    を分散させよう(単純)
    – 温度を上げても正答率はあまり変わらない
    – Fooling Rateは抑制できる
    [Gu+, ECCV 2022]

    View Slide

  42. ちゃんと比較しよう
    • 学習モデル
    – BiT [Kolesnikov+, ECCV 2020]
    • 要するにResNet、いろいろなデータにfine-tuningしやすい工夫入り
    • ViTと紛らわしいのはどうにかならないだろうか
    – ConvNeXt [Liu+, CVPR 2022]
    • 先程紹介した、2020年代のCNN
    – ViT [Dosovitskiy+, ICLR 2021]
    – Swin Transformer [Liu+, ICCV 2021]
    • 学習データと学習方法も統一
    – 要するに [Bai+, NeurIPS 2021] を最強のViTとCNNで比較したもの
    • バイアスの影響、分布外検出、キャリブレーション、誤識別
    検出を評価
    [Pinto+, ECCV 2022]

    View Slide

  43. 結論
    • TransformerはCNNと変わらない
    – 共変量シフト条件下で汎化する頑健な特徴に注目する
    – 代わりに、訓練集合から偽の単純な識別的特徴を選んでしまう脆
    弱性がある
    – アテンションの存在は、より複雑でロバストな特徴の学習を促進
    しないのでは
    • ConvNeXtはアテンションを用いない場合、現在の
    Transformerよりも優れたロバスト性を示す場合がある
    – ただし、明確な勝者は存在しない
    [Pinto+, ECCV 2022]

    View Slide

  44. まとめ
    • ViTとCNNの勝負は今のところ引き分け
    • 大事なのはアテンションなのか畳み込みなのか、ではないの
    では
    MetaFormer [Yu+, CVPR 2022]

    View Slide