【深層学習による画像認識の基礎】4.3~4.4

>100 Views

May 28, 26

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

2026前期輪読会 #5 深層学習による画像認識の基礎 第4章 Vision Transformer 4.3-4.4 京都大学 総合人間学部 B2 本川玄人 0

2.

アジェンダ ◼ 4.3 ViTの効果的な学習方法 ◼ 4.4 ViTの軽量化 1

3.

アジェンダ ◼ 4.3 ViTの効果的な学習方法 ◼ 4.4 ViTの軽量化 2

4.

4.3 ViTの効果的な学習方法 初期ViTの課題 提案初期のViTは同程度の計算コストのResNetに劣る 大規模なデータセットを用いた場合、ViTの方が優れた性能を示す(JFT-300M) 非公開データセット、計算コスト等の問題をどう解決するか? 3

5.

4.3 ViTの効果的な学習方法 ViTとDeiT DeiT: 学習方法の改善と知識蒸留を行ったViT 学習方法の改善 ➢データ拡張 ・ランダムデータ拡張(Rand Augment) ・Mixup ・Cutmix ・ランダムマスキング(Erasing prob) (帰納バイアスの欠如から多くの訓練データが必要) ➢正則化手法の変更 ・label smoothing, Stoch. Depth, Repeated Augの追加 (Touvron et al., 2021) ・Dropout, Gradient Clipの廃止 この学習戦略でResNet-50の成績を上回る 4

6.

4.3 ViTの効果的な学習方法 各テクニックがViTに及ぼす影響 影響が大きいものは ・optimizer ・Erasing(ランダムマスキング) ・Stoch. Depth ・Repeated Aug. ※顕著に低い所はハイパーパラメータの 選択による可能性あり (Touvron et al., 2021) 5

7.

4.3 ViTの効果的な学習方法 知識蒸留の概要 知識蒸留(KD): 学習済みモデルから別のモデルに知識を転移する ここでは、教師モデルとして学習済みCNNを使用 DeiTでは、知識蒸留用のトークンを新たに追加 蒸留トークンと教師モデルの出力を比較して学習 (Touvron et al., 2021) 6

8.

4.3 ViTの効果的な学習方法 DeiTと各種モデルとの性能比較 学習方法の改善と知識蒸留を行った結果、 EfficientNetよりも優れた成績を達成 ImageNet以外のデータで学習していない! 詳しく知りたい人はhttps://arxiv.org/pdf/2012.12877 (Touvron et al., 2021) 7

9.

アジェンダ ◼ 4.3 ViTの効果的な学習方法 ◼ 4.4 ViTの軽量化 8

10.

4.4 ViTの軽量化 ViTの計算コスト 自己注意機構の計算量は入力系列長の2乗に比例する →高解像度の画像・小さいパッチサイズの使用は困難 画像サイズ𝐻 × 𝑊, パッチサイズ𝑝 × 𝑝で 計算コストを削減する戦略として ・階層構造の採用 ・注意の範囲を限定 ・キーとバリューのサイズを縮小 ・カーネルトリックの利用 等が考えられてきた 入力系列長𝑁 = (𝐻/𝑝) × (𝑊/𝑝) 9

11.

4.4 ViTの軽量化 Swin Transformer 階層構造の導入・注意の範囲を限定したモデルとしてSwin Transformerが考えられた 注意の範囲を限定 : W-MSAとSW-MSA W-MSAでは入力系列長に対して線形 SW-MSAでwindow間の情報を集約 (Liu et at., 2021) W-MSA SW-MSA 10

12.

4.4 ViTの軽量化 パッチマージによる階層構造 階層表現や計算量の削減のためにパッチマージを導入 stageごとにパッチサイズを半分にする 𝐻 𝑊 𝐻×𝑊×𝐶 → × × 2𝐶 2 2 (Liu et al., 2021) 11

13.

4.4 ViTの軽量化 空間縮小注意 空間縮小注意 : キーとバリューの空間解像度を小さくすることで計算量を削減 キー、バリューをストライドRの𝑅 × 𝑅畳み込みで変換 →計算量を2(𝑁/𝑅)^2 × 𝐶まで削減 線形空間縮小注意も提案されている 平均プーリングで𝑃 × 𝑃の固定サイズに縮小 (系列長に対して線形) 空間縮小注意 線形空間縮小注意 他にもshunted注意機構などが提案されている (wang et al., 2022) 12

14.

4.4 ViTの軽量化 カーネルトリックの概要 注意機構の計算𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝐾 ⊺ 𝑄/√𝐶)は内積による類似度計算 類似度計算を行う関数をsim(・)を使って一般化すると 𝐴 𝑄, 𝐾, 𝑉 = 𝑉𝑠𝑖𝑚(𝑄, 𝐾) 非線形変換を行う関数をφ(・)、類似度計算をφによって変換した後 のベクトルの内積で表現可能とすると、 𝐴 𝑄, 𝐾, 𝑉 = 𝑉 𝜙 𝐾 ⊺ 𝜙 𝑄 = (𝑉𝜙 𝐾 ⊺ )𝜙(𝑄) 計算量はO(NC^2)となり、系列長に対して線形! 13

15.

4.4 ViTの軽量化 Hydra trick カーネルトリックを導入、ヘッド数と特徴ベクトルの次元数を同じにしたときでも ImageNet-1Kでそこそこの分類精度を保つ(Hydra trick) H=Cであるから、要素積を用いて計算できる この時の計算量は𝑂 𝑁𝐶 2 𝐻 = 𝑂(𝑁𝐶)でN,Cに対して線形 ※画像分類のみの検証である点に注意 14

16.

4.4 ViTの軽量化 FLOPsの削減は必ずしも推論の高速化にはつながらない ・ここまでの効率化はFLOPSとメモリコストの削減が主目的 ・応用では推論速度も重要な評価項目 FLOPsやパラメータ数が少ない⇏実際の推論が高速 実機での推論速度には ・メモリへのアクセス ・演算の並列度合い ・対象端末での演算の最適化度合い 等が重要 15

17.

4.4 ViTの高速化 推論速度に影響を与える様々な要素 メモリへのアクセスコスト ・スキップ接続 計算量は小さいがアクセスコストは大きい ・頻繁にテンソルを成形・複製する操作 メモリアクセスを必要とするため、推論速度の低下の原因に 並列化度合い モデルの持つ演算子が増えると推論速度が低下 GPUを使用する際は並列処理機能を最大限活かせるか 様々な高速化手法の提案 ・ネットワーク構造の改良 ・枝刈り ・量子化 ・蒸留 端末機器での演算の最適化具合 3×3畳み込みは環境によっては演算が最適化 自作の演算が最適化されている可能性は低い 16

18.

4.4 ViTの軽量化 ネットワーク構造の改良の例 : EfficientFormer-v2 ネットワーク改良として、ViTとCNNのハイブリッドモデルがある ・高速化に関する最適化が進んでいる可能性が高い ・帰納バイアスによって効率的に学習可能 ここではEfficientFormer-v2を紹介 前半にCNN: Local 後半にViT : Global 17

19.

4.4 ViTの軽量化 ダウンサンプリングとQKVベクトルの改善 EfficientFormer-v2のその他の工夫として、 ダウンサンプリング クエリ、キー、バリュー全ての空間解像度を半分にする ・推論速度が3.5msから1.5msまで削減 ・ImageNet-1Kの分類精度が0.2%程度の減少 →分類精度と推論速度のバランスをとる QKVベクトルの改善 talking-head : 分類度計算の後、ヘッド間で情報を伝播 (Li et al., 2023) 畳み込み層の追加 : 集約した局所情報を注意結果に加算 18

20.

4.4 ViTの軽量化 再パラメータ化 スキップ接続による推論速度の低下 →再パラメータ化で緩和 ネットワークの変換方法 特徴マップUに対するBNは 𝐵𝑁(𝑈, 𝜇, 𝜎, 𝛾, 𝛽):,𝑖,:,: = 𝑈:,𝑖,:,: − 𝜇𝑖 学習のときは通常のモデルを最適化し、 推論の時は単一の畳み込み層に変換 𝛾𝑖 + 𝛽𝑖 𝜎𝑖 畳み込みカーネルとバイアスを 𝛾𝑖 𝜇𝑖 𝛾𝑖 ′ ′ 𝑊𝑖,:,:,: = 𝑊𝑖,:,:,: , 𝑏𝑖 = − + 𝛽𝑖 𝜎𝑖 𝜎𝑖 とおくと、連続する畳み込み処理とBNは 𝐵𝑁(𝑈 ∗ 𝑊, 𝜇, 𝜎, 𝛾, 𝛽):,𝑖,:,: = (𝑈 ∗ 𝑊 ′ ):,𝑖,:,: +𝑏𝑖′ その後にゼロパディングでサイズを合わせて すべてのカーネルを加算 19

21.

4.4 ViTの軽量化 再パラメータ化 畳み込み処理とBNを統合 ゼロパディングの後、 各チャネルごとに線形結合 FastViTなどは再パラメータ化の導入で 分類精度と推論速度の良好なトレードオフを達成 (Ding et al., 2021) 20

22.

4.4 ViTの軽量化 対象デバイスに応じた設計 プラットフォームに応じた設計も重要 ・iPhone 12 とPixel 4 iPhone 12はカーネルサイズとストライドによる畳み込み処理がボトルネック Pixel 4でのGELUの演算は非効率だが、iPhone 12上では高速に演算可能 ・EfficientViTではself-attentionでのメモリアクセスがボトルネック →フィードフォワード層を多用したViTモデルの提案 21

23.

4.4 ViTの軽量化 Flash attentionの説明 Flash attention : 注意機構演算時のGPUのメモリアクセスを最適化 A100等のGPUメモリではSRAMとHBMの階層構造になっている 標準的な実装では SRAMで𝑆 = 𝐾 𝑇 𝑄を計算、SをHBMに書き込む ↓ HBMからSをSRAMに読み込み、P=softmax(S)を計算してHBMに書き込む ↓ HBMからPとVをSRAMに読み込んで 𝑄 ′ = 𝑉𝑃を計算してHBMに書き込む HBMへの頻繁なメモリアクセスが実行速度の低下を招く 22

24.

4.4 ViTの軽量化 Flash attentionの効果 Flash attentionでは入力(Q,K,V)を複数のグループに分けて、 それぞれの注意計算をSRAM上で一気に実行 →HBMへのアクセス回数の減少 ※通常よりも計算量を必要とする勾配計算を行うが、 メモリアクセスの影響の方が大きいため結果として高速 ・近似等の効率化を行わず実行時間とメモリ消費量を削減できている! ・ライブラリでサポートされていない場合には自分でコンパイルする必要あり 23

25.

4.4 ViTの軽量化 モデルの効率性評価に関する注意 ViTの効率性評価について、論文等では ・モデルのパラメータ数 ・FLOPs ・推論速度 などを使うことが多いが、ある側面を評価しているにすぎない 例)パッチサイズの変化 パラメータ数の増加→推論速度が低下? EfficientnetとSwin Transformerの 性能のトレードオフの違い 実際は 入力系列長の縮小→推論速度、FLOPsの改善 モデルの性能は様々は評価指標で多角的に評価 24

26.

参考文献 H. Touvron, M. cord, M. Douze, F. Massa, A. Sablayrolles, and H. Jegou. Training dataefficient image transformers & distillation through attention. In ICML, 2021. Z. Liu, Y. Lin, H. Hu, Y. Wei, Z. Zhang, S. Lin, and B. Guo. Swin Transformer: Hierachical vision transformer using shifted windows. In ICCV, 10012-10022, 2021. W. Wang, E. Xie, X. Li, D.-P. Fan, K. Song, D. Liang, T. Lu, P. Luo, and L. Shao. PVT v2:Improved baselines with pyramid vision transformer. Computational Visual Media, 8(3):415-424, 2022. Y. Li, J. Hu, Y. Wen, G. Evangelidis, K. Salani, Y. Wang, S. Tulyakov, and J. Ren. Rethinking vision transformers for mobilenet size and speed. In ICCV, 2023. X. Ding, X. Zhang, N. Ma, J. Han, G. Ding, and J. Sun. RepVGG: Making VGG-style ConvNets great again. In CVPR, 2021. 25