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

October 22, 2022
Tweet

More Decks by Yoshitaka Ushiku

Other Decks in Technology

Transcript

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

    View full-size 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 full-size slide

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

    View full-size slide

  4. 読書の秋

    View full-size slide

  5. 読書の秋

    View full-size slide

  6. 読書の秋

    View full-size slide

  7. 読書の秋

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size 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 full-size 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 full-size 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 full-size slide

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

    View full-size 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 full-size 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 full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size 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 full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide