2.1K Views
April 26, 24
スライド概要
【論文の学術分野】:Computer Vision and Pattern Recognition
【論文正式名称】:PeLK: Parameter-efficient Large Kernel ConvNets with Peripheral Convolution
【原論文のリンク】:http://arxiv.org/abs/2403.07589
【論文投稿日付】:2024/03/16
【コメント】:CVPR2024の採択論文
【概要】:コンピュータビジョン分野では、ViTの高い性能に触発され今もなおCNNの研究が盛んです。例えばカーネルサイズを拡大させ、CNNにViTのような長距離依存性を獲得させる研究が注目されています。ここでは、そうした中ではじめてカーネルサイズ100を超えるモデルとして登場したPeLKについて紹介します。
【注意書き】:研究室内で発表に利用したものです。自分用のメモも兼ねていますので、情報が混みあっています。解釈に誤りがある可能性がありますので、ご参考いただく際はご注意ください。**資料の転用は禁止しております。**
人工知能(ディープラーニング)研究者。現在博士課程に在籍。主な実績:CVPR2024主著論文採択。研究テーマ:コンピュータ・ビジョンの分野で深層学習モデルがどのように機能するかを包括的に研究。
論文紹介 PeLK: Parameter-efficient Large Kernel ConvNets with Peripheral Convolution コンピュータビジョン分野では、ViTの高い性能に触発され今もなおCNNの研究が盛んです。 例えばカーネルサイズを拡大させ、CNNにViTのような長距離依存性を獲得させる研究が注目されています。 ここでは、そうした中ではじめてカーネルサイズ100を超えるモデルとして登場したPeLKについて紹介します。
論文紹介 PeLK:カーネルサイズ100を超えるCNN 2024/04/20 立教大学人工知能科学研究科 瀧雅人研究室D2 安木 駿介
論文概要 論文タイトル • PeLK: Parameter-efficient Large Kernel ConvNets with Peripheral Convolution 貢献1 • PeLKはPeripheral Convolution(周辺畳み込み)という新たに提案する畳み込みを用いて、非常に小さな パラメータコストで非常に大きな高密度カーネル(例えば51×51、101×101)を実現 貢献2 • 様々な視覚タスクにおいて最先端の性能を達成 貢献3 • 周辺畳み込みの最適設計原理が人間の視覚と驚くほど類似していることを示し、生物学的な着想を得たメ カニズムが、強力な最新のネットワークを設計するための有望な候補となり得ることを示唆
研究背景 ViTの成功に触発され、ラージカーネルCNNなどの研究が活発化している。 2017 2018 2019 2020 2021 2022 2023 2024 CV分野をCNNが席巻 ViTの台頭 いくつかの研究は、ViTの強力な性 能は、その大きな受容野によるもの であるとしている。 self-attentionメカニズムにより、 ViTは広い空間範囲から文脈情報を捉 え、長距離の依存関係をモデル化する ことができる。 CNNの対抗 ViTの進展に触発され、CNNはカー ネルサイズの拡大などにより対抗し てきた。 例えばCNNにラージカーネルを装 備する研究が盛ん。これにより、様々 な視覚タスクにおいて、ViTと同等か、 それ以上の性能を発揮できることが明 らかになっている。受容野(正確には 有効受容野)の拡大も確認されている。
ラージカーネルCNNs 2022年以降、代表的な3つのラージカーネルCNNが提案されてきた ただし、カーネルが大きくなり続けると、性能が飽和する課題が残っていた。 ConvNeXt(7×7) • これ以前のラージカーネルCNN研究はいくつも存在するが、カーネルサイズ拡大による性 能の劣化に悩まされていた。ConvNeXtは、Swin Transformerの設計を模倣し、CNNを近 代化することでSwin Transformerをも上回り、7×7というそれまでのCNNと比較して大き なカーネルの適用に成功。 RepLKNet(31×31) • 小さなカーネル(例えば3×3や5×5)を並列に構成(reparameterization)することで、初め てカーネルサイズを31×31に拡張。 SLaK(51×51) • 分解(decomposed)畳み込みと動的スパース性(dynamic sparsity)を組み合わせ、ストライプ 畳み込みの形で51×51までカーネルをスケールアップ(例えば、51×5+5×51)。こちら もreparameterizationを採用。しかし、カーネルサイズが大きくなり続けると飽和し始める。 図は「http://arxiv.org/abs/2207.03620」より引用
前例のない大きさのラージカーネルCNNを どのように設計するか?
カーネル設計の再検討:Dense or Stripe SLaKのようなStripeなカーネル設計は、RepLKNetの反省に対処していることもあり、 一見望ましい設計に思える。 SLaK:Stripeなラージカーネル RepLKNet:密なラージカーネル スモールカーネル スモールカーネル Denseラージカーネル Stripeラージカーネル 𝑘 ≤ 51 𝑘 ≤ 31 RepLKNetでは、純粋に密な畳み込みカーネルと スモールカーネルを並列に訓練する方法で、カーネ ルサイズを31×31まで拡大。この方法によるカー ネルサイズの拡大は、上流タスクよりも下流タスク 性能の改善に効果的であることが示された。 ただし、カーネルサイズが大きくなるにつれて、性 能の飽和や、計算量とメモリのオーバーヘッドが2 次関数的に増加するという問題があることを浮き彫 りにした。 SLaKでは、カーネルサイズをさらに拡大するた めに、分解畳み込み(と動的スパース性(後述))を導 入。M×Mの大きなカーネルを、M×NとN×M (ここでN<M)の細長い畳み込みの組み合わせで 近似することで、実質的にカーネルサイズを 51×51まで拡大。 この分解には、長距離依存性の捕捉と、短いエッジ による局所的な詳細特徴の抽出のバランスをとる狙 いがあり、また計算量の削減にもつながる。
カーネル設計の再検討:Dense or Stripe しかし実際には、RepLKNetのような密なラージカーネルが、SLaKのようなStripeな ラージカーネルの性能を常に上回るといった結果が得られた。 SLaK:Stripeなラージカーネル RepLKNet:密なラージカーネル スモールカーネル Stripeラージカーネル スモールカーネル Denseラージカーネル 𝑘 ≤ 51 𝑘 ≤ 51 RepLKNet SLaK 51×51 > 51×5+5×51 51×51 & 動的スパース性 > 51×5+5×51&動的スパース性 詳細はPeLK論文「http://arxiv.org/abs/2403.07589」表1参照 RepLKNet論文で試されていなかった更なるカーネル拡大(31→51)や動的スパース性の有無に関係なく、 RepLKNet>SLaKとなり、Denseなカーネルの性能面での優位性が明示されている。
カーネル設計の再検討:Dense or Stripe とはいえ先述の通り、RepLKNetのように純粋に密なカーネルを拡大することは、 パラメータ数の極端な増大をもたらす。 性能 円のサイズ=パラメータ数 密なグリッド畳み込みは一貫して Stripe畳み込みの性能を上回る(y軸)が、 パラメータ(円の大きさ)が急激に増加 する。
人間の視覚処理システムを考慮した カーネル設計
カーネル設計の再検討:周辺視野 人間の視覚の周辺視野の仕組みに照らせば、 密なカーネルの外側にまでパラメータを敷き詰める必要はないかもしれない。 周辺視野(Peripheral Vision) ヒトの視覚は、視線の中心からの距離に応じて、視野全体を中心領域と周辺領域に分割している。 端的に言えば、視野全体を複数の輪郭領域に分割し、それぞれが異なる粒度で情報を認識する仕組みがある。 ※補足・・・中心領域の視細胞(錐体と桿体)の数は周辺領域の100倍以上である 人間の周辺視野には最小限の数の視細胞しかない。周辺相互作用にも密なパラメータは必要ないのでは? 密な畳み込みの強力な性能を維持するために、密な計算を維持しつつ、周辺視覚機構を導入することで、 パラメータ効率の良い設計ができるのでは?
PeLK設計における5つの工夫
PeLK設計における5つの工夫 畳み込み領域をグリッドで分割し、重みを共有 畳み込み中央領域の細粒化によりヒトの中心視野を模倣 インセプションスタイルによる、チャネルの冗長性の利用 SLaK同様、動的スパース性を用いたモデルの強化 PeLK カーネル単位の位置埋め込みによる、ぼやけへの対処 呼周 ん辺 で畳 いみ る込 部み 分と
工夫1:畳み込み領域をグリッドで分割し、重みを共有 カーネルの周辺領域では密なパラメータを必要としない設計を考案 通常の畳み込み 25 通常、5×5のコンボリューションでは、 5×5の パラメータを要する。 周辺畳み込み 9 周辺畳み込みでは、例えば5×5のコンボリュー ションをパラメータ化するために3×3のコンボ リューションを用いることが可能であり、同じ色 の位置は同じパラメータを共有する。
重みを共有する領域(共有グリッド(Sharing grid))の定義 𝑘 × 𝑘の領域を𝑘′ × 𝑘′の領域に分割。 𝑘′は上限3などに留まらないことに注意。
工夫2:畳み込み中央領域の細粒化によりヒトの中心視野を模倣 3 × 3や5 × 5 などのように、パラメータを共有しない細粒領域を定義し、ヒトの視覚の中心領域を模す。 中央領域の細粒化設計が性能維持の鍵であることが示されている(後述) 𝑘 = 9, 𝑘 ′ = 5 中央の細粒領域 𝑟𝑐 = 1 𝑘 = 9, 𝑘 ′ = 5, 中央の細粒領域の半径𝑟𝑐 = 1の例 同じ色の位置は同じパラメータを共有する。
整理:周辺畳み込み(peripheral convolution)の共有グリッドの例 𝑚はデフォルトで2なので → 𝑚1 = 2 𝑚2 = 4 𝑚3 = 8 【𝑘 = 37の周辺畳み込みカーネルの例】 𝑚はパラメータ共有領域の指数成長のベース(可変だが基本は2) 𝑘′ = 13, 中央の細粒領域の半径𝑟𝑐 = 2、𝑚 = 2の例 𝑖 =5 左図の見方 • 1グリッド=濃い枠線で囲まれた領域 • 1グリッド内の全てのマスは1つのパラメータを共有する • この例では、 37 × 37 の畳み込みをパラメータ化するために、 13 × 13の畳み込みを用いることになる。 𝑖 =4 𝑖 =3 𝑖 =2 𝑖 =1 𝑖 =0 𝑖 =1 <𝑚について> 人間の視力は指数関数的に低下することが知られており(※)、これにヒン トを得て、指数関数的に増加するように共有グリッドが設計されている。 𝑠𝑖ҧ ※「Human peripheral blur is optimal for object recognition」 <𝑠𝑖ҧ について> 𝑠𝑖ҧ は1グリッドの縦方向の辺の長さ。横方向については 𝑠𝑗ҧ などで表記される。 中央の細粒領域では固定で1。周辺領域では指数関数的に増加する。 𝑟𝑐 = 2
工夫3:カーネル単位の位置埋め込みによる、ぼやけへの対処 パラメータの共有範囲が広いと、局所的な詳細のぼやけが懸念される。この対処法が位置埋め込み。 複数のカーネルで1枚の位置埋め込みを共有する 【 「位置埋め込み+周辺畳み込み」の演算の図解】 14 X中の畳み込み対象領域の 位置埋め込み 特徴マップ (Positional Embedding) ● ● ● ● ● ● ● ● ● ● 複数のカーネルで1枚の位置埋め込みを共有する 円グラフの青領域のように、FLOPもごくわずか ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 14 14 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 【入力特徴マップX】 14 実際の重み 重み共有グリッドカーネル 【出力特徴マップY】
工夫4:インセプションスタイルによる、チャネルの冗長性の利用 筆者によれば、ラージカーネル畳み込みのチャネルは冗長性が高く(※)、 インセプションスタイルの設計と相性が良い。 ※PeLK論文では、InceptionNeXt論文を参照しつつ「ラージカーネル畳み込みのチャネルは冗長性が高い」としている。 一方、 InceptionNeXt論文では「冗長性が高い」と直接表現していないことに注意。 インセプションスタイル 𝑝 畳み込みなど スモールカーネル 1 4 𝑝が あたりまで性能を維持 InceptionNeXt論文からの解釈「http://arxiv.org/abs/2303.16900」 1−𝑝 【入力特徴マップX】 恒等写像(処理しない) ラージカーネル 1 𝑝が8 あたりまで性能を維持 チャネルに冗長性あり InceptionNeXt論文からの解釈「http://arxiv.org/abs/2303.16900」
工夫4:インセプションスタイルによる、チャネルの冗長性の利用 ラージカーネル畳み込みのチャネルの冗長性を考慮し、 部分的なチャネルへの畳み込み適用(部分的周辺畳み込み)により性能を維持しつつ効率化 【入力特徴マップX】 3 8 周辺畳み込み 5 8 恒等写像 【出力特徴マップY】
工夫5:SLaK同様、動的スパース性を用いたモデルの強化 チャネルに冗長性がある場合、部分的周辺畳み込みのみならず、 動的スパース性戦略のようなスパース性とも相性が良いことが期待される。 SLaK同様、動的スパース性を用いてモデルを強化する 【初期化手法】 SNIPやERKなどがある SLaKではSNIP 【剪定方法】 学習ステップ開始 SLaKでは、最小の重みpを削 除。(SLaKデフォルト=30%) Prune(剪定) スパースな初期化 【接続追加方法】 ランダムや勾配ベース がある。SLaKは前者。 Grow(接続の追加) 層X+1 Prune&Grow 実行是非 層X SLaKでは、100ステップ に1回Prune-and-Grow (右)を実行 【スパース性の恩恵】 通常より1.3倍広い幅のNNを構築し、スパース性を40%と することで、パラメータ数とFLOPsを密なモデルとほぼ 同じに保ちながらモデルの実質的な容量を高める。 図は「http://arxiv.org/abs/2207.03620」より引用改変
[再掲]PeLK設計における5つの工夫 畳み込み領域をグリッドで分割し、重みを共有 畳み込み中央領域の細粒化によりヒトの中心視野を模倣 インセプションスタイルによる、チャネルの冗長性の利用 SLaK同様、動的スパース性を用いたモデルの強化 PeLK カーネル単位の位置埋め込みによる、ぼやけへの対処 呼周 ん辺 で畳 いみ る込 部み 分と
結果
結果 ラージカーネルCNNは下流タスクで高性能が得られやすいが、 上流タスクでも良好であり、有効性が示されている ImageNet分類 ADE20K セマンティックセグメンテーション COCO物体検出
アブレーション研究
アブレーション研究 共有範囲や粒度について 細粒化の面積について そこまで大きなカーネルの必要性 reparameterizationの必要性 図は「http://arxiv.org/abs/2207.03620」より引用
共有範囲や粒度について 中央の5×5領域を重み共有しない(=密な設計にする)ことが性能維持の鍵であり、 且つ指数関数的に増加するグリッドが最も効果的である。 33×33のDenseConv 中央を中心を除いて共有 非指数関数的 中央5×5は共有しない 指数関数的 中央を中心を除いて広範囲で共有 ※カーネル単位の位置埋め込みは使用していない。 動的スパース性もなし
細粒化の面積について モデルの高い性能を維持するためには、中心領域は約1%の割合しか必要ない。 人間の中心視野は約2.72%であり、同程度の割合と主張している。 全カーネルサイズに対する中心領域の割合 ※カーネル単位の位置埋め込みは使用
そこまで大きなカーネルの必要性 下表のようにカーネル構成は入力サイズと密接に関連すべきである HW等の発達により高い解像度で事前訓練することが手頃になれば、さらに重要 ※カーネル単位の位置埋め込みは使用 Input Sizeが224×224の場合 51や101が良好 Input Sizeが384×384の場合 101や151が良好
reparameterizationの必要性 大きなカーネルの最適化を補助する、小さなカーネルを用いた再パラメータ化を外してもPeLKの性能劣化は軽度である 周辺畳み込みが、パラメータ数削減により、ラージカーネルの最適化の難しさを軽減できることを示唆 reparameterization あり なし reparameterization除外による性能変化 PeLKの方が性能劣化が軽度 (補足)大きなカーネルを直接最適化することは困難であり、性能劣化につながることから近年のラージ カーネルCNNではこの問題を軽減するために、小さなカーネル(例えば5×5)を再パラメータ化する reparameterizationが採用されている。
議論
議論 高性能要因は大きな有効受容野によるものであるという見解について • この見解は最近のラージカーネルCNNでありがち。我々の論文(※)ではいくつかのラージカーネルCNNを取り上 げ、異なる見解を示している。PeLKについても調査したい。 ※[CVPR2024] CAM Back Again: Large Kernel CNNs from a Weakly Supervised Object Localization Perspective 「 https://arxiv.org/abs/2403.06676 」 by Shunsuke Yasuki, Masato Taki 位置埋め込みの有効性について • 比較できる範囲では、以下のようなスコアであり、有効性がはっきりしない。 位置埋め込み無し・33×33 81.4 位置埋め込みあり・51×51 81.6 生物学的な設計を採用したことによる利点について • 人間の視覚システムを考慮した設計ではあるものの、モデルのパフォーマンスの点で、人間との類似性などが示 されていない(形状バイアスなど)。