329 Views
April 26, 24
スライド概要
【論文の学術分野】:Computer Vision and Pattern Recognition
【論文正式名称】:High-Performance Large-Scale Image Recognition
【原論文のリンク】:https://arxiv.org/abs/2102.06171
【論文投稿日付】:2021/02/11
【概要】:2023/11に論文にてスケール則が報告されたCNNであるNFNetについて、その原論文や前身となったNF-ResNets、加えてこれらのNormalizar-Free Netがなぜ必要とされるのか、などの内容をまとめています。
【注意書き】:研究室内で発表に利用したものです。自分用のメモも兼ねていますので、情報が混みあっています。解釈に誤りがある可能性がありますので、ご参考いただく際はご注意ください。資料の転用は禁止しております。
人工知能(ディープラーニング)研究者。現在博士課程に在籍。主な実績:CVPR2024主著論文採択。研究テーマ:コンピュータ・ビジョンの分野で深層学習モデルがどのように機能するかを包括的に研究。
High-Performance Large-Scale Image Recognition Without Normalization NFNetと呼ばれるNormalizer-FreeのResNetsファミリーモデルを提案している論文です NFNetはCNNにおけるスケール則の実証に用いられたモデルでもあります
論文紹介 原論文「https://arxiv.org/abs/2102.06171 」 2024/01/13 立教大学人工知能科学研究科 瀧雅人研究室D1 安木 駿介
目次 • • • • • • はじめに Batch Normalizationの基本や利点 なぜNormalizer-Freeのネットワークが必要なのか 既存のNormalizer-Freeのネットワーク NFNetとは まとめ 2
はじめに
はじめに>テーマ選定理由 なぜNFNetがテーマなのか? Transformerはスケール則があることが知られている 最近(2023/11)CNNでもスケール則があることが確認された 上記の確認に使われたNFNetはNormalizar-FreeのCNNである。 NFNetの開発背景を知ることは、最新のCNN事情の理解に役立つ。 4
Batch Normalizationの基本や利点 NFNetについて理解するためにはBNへの理解が重要
振り返り 瀧研では、これまでにも何度かBatchNormalizationを論題にしてきた。 例)BatchNormのようなAffine変換が、 精度に大きく寄与している。 「https://arxiv.org/abs/2210.08823 」より引用 SSF:特徴量をスケール変換とシフト変換するだけで、効率的なFTが実現で きる。 参考:Scaling & Shifting Your Features: A New Baseline for Efficient Model Tuning ResNetを初期化しBNのみ訓練可能にした実験で、CIFAR10:82%など、パラメータが全 体比で非常に少ないBNの精度への大きな寄与を確認。 「https://arxiv.org/abs/2003.00152 」より引用 参考:Training BatchNorm and Only BatchNorm: On the Expressive Power of Random Features in CNNs 先生のお手元での実験(BNのみを解凍したFT実験)でも手ごたえあり。 BNはパラメータ数が全体比で非常に少な い(0.6%)のにも関わらず、それらを訓 練しないだけで0%~2%下がる。 6
Batch Normalizationの起源 バッチごとにレイヤへのインプットの分布が変わる問題(=内部共変量シフト)に対応するための処理として、 2015年2月に登場。 Paper:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, Feb 2015 まず、共変量シフト 内部共変量シフト 上図みたく学習データとテストデータで特徴量の分布が違うということがある →ざっくりいえば、上記をCovariate Shiftと呼んでおり、これを解決すること をDomain Adaption(ドメイン適応)と呼ぶ。 DNNにおいて、バッチB1、B2、レイヤLなどを考える。 B1によりLのパラメータは変わる。B2がB1と類似していても、L(B2)の出力分 布は、 L(B1)と大きく変わることがある。この、ネットワーク内部の分布変化 問題を内部共変量シフトと呼んでいる。 確かに、直観的に、レイヤへのインプットの分布がころころ変わると、学習が 安定しないような気がする。 7 バッチ正規化とスキップ接続の組み合わせにより、ニューラルネットワークの最大学習可能深度が劇的に増加した。(2015/11,ResNet) 参考:https://data-analytics.fun/2021/09/11/understanding-batch-normalization/
Batch Normalizationの操作 Batch Normalizationはただのスケーラーではなく、パラメータを持っている。 ・ここまでの手順は、単純な正規化(標準化) ・微小値εを分母に加算することで、バッチ統計量の分 散が小さくても計算が安定するようにしている。 ・学習可能パラメータとしてシフト値βとスケール値γを導入。 「https://arxiv.org/abs/1502.03167 」より引用 8
Batch Normalizationの操作 学習する重みの数は、BN層に入力される特徴マップのch数×2となり、各チャンネルへの重み付けのような操作にもなる。 バッチ:[B,C,H,W] = [5,3,4,4] 3 2 チャンネル 1 𝜇1 , 𝜎12 を用いて赤をBN処理 学習する重みは𝛾1 , 𝛽1 の2つ 𝜇2 , 𝜎22 を用いて緑をBN処理 学習する重みは𝛾2 , 𝛽2 の2つ 𝜇3 , 𝜎32 を用いて青をBN処理 学習する重みは𝛾3 , 𝛽3 の2つ 活性化 分布 𝛾1 , 𝛽1 →標準化→ →Scale+Shift→ 学習する重みの合計は 活性 化分 布 𝛾2 , 𝛽2 →標準化→ 活性化分布 →Scale+Shift→ ch数×2=6 𝛾3 , 𝛽3 →標準化→ →Scale+Shift→ 9
Scale&Shiftを行う理由 “レイヤーの各入力を正規化するだけで、そのレイヤーが表現できることが変わってしまう”問題に対処するため スケーリングだけであればここまでの処理で完了している しかし、レイヤーの各入力を正規化するだけで、そのレイヤー が表現できることが変わってしまうことに注意。例えば、シグ モイドの入力を正規化すると、非線形性の線形領域に制約を受 けることになる[原論文2015]。 この問題への対処が、パラメータγ、βの導入の動機になって いる。 「https://arxiv.org/abs/1502.03167 」より引用 10 参考:https://data-analytics.fun/2021/09/11/understanding-batch-normalization/
Batch Normalizationの利点 NFNet論文では、BNの利点は4つ示されている。関連研究を読み解きまとめた各利点の詳細を、以降で示す。 Residual Branchをダウンスケールする 平均シフトを解消する 効率的な大量バッチ学習を可能にする 正則化効果がある BNは当初、内部共変量シフトという直感的な問題点への解決策として提示された。 しかし、数年間の研究で、問題点はより具体的に定義され、BNの利点は上記の4つのように細分化された。 11 Paper:High-Performance Large-Scale Image Recognition Without Normalization
Batch Normalizationの利点① Residual Branchをダウンスケールする 前提 これにより、スキップ接続への信号の偏りが生じ、トレーニングの初期段階でネットワークの勾配が適切に保たれ、効率的な最適化が可能になる。 ℓ=ℓ番目のresブロック=その時点の深さ 𝑥𝑖ℓ がℓ番目のresブロックへの入力のi番目の成分 𝑥1 はモデルへの入力を表し、各独立成分 i に対して とする。 ℓ 𝑓 はℓ番目のresブロックのresブランチで計算される関数を示す。 はReLUの出力を示す。Bはバッチ正規化操作を示す。 簡単のため、正規化Netでは 、No正規化Netでは となるように、各resブランチに一つの線形層があると仮定する。 𝑊 ℓ の各成分は から独立にサンプリングされると仮定する。 BN無しネットワーク BN無しネットワーク BNありネットワーク BNありネットワーク resブランチが正規化されていないと、 resブランチの分散は以下。 式が示す重要なことは2点。 まず、hidden activationsの分散は、深さ(=ℓ)と共に指数関数的に爆発する。 逆に言えば、resブロックの最後に(1/√2)の係数を導入することで対策可能。 次に、 なので、resブランチとスキップ接続は、resブロッ スキップ クの出力に等しく寄与する。 接続 Residual Branch resブランチが正規化されていると、 resブランチの分散は以下。 式が示す重要なことは1点。 resブランチは、ℓ番目のresブロックの出力の分散の1/(ℓ + 1)だけ寄与する ⇒初期化時、Deepな正規化ResNetのほとんどのresブロックの出力は、スキップ 接続によって支配され、resブロックによって計算される関数が恒等式に偏ること が保証される。 典型的なresブロックの深さはresブロックの総数dに比例し、これはバッチ正規 化がresブランチを√dのオーダーでスケールダウンすることを意味する。 Paper:Batch Normalization Biases Residual Blocks Towards the Identity Function in Deep Networks 12
Batch Normalizationの利点② 平均シフトを解消する ReLUやGELU後の活性化値の平均は正になり(平均シフト)、積み重なると深刻な問題を引き起こすが、バッチ正規化がそれらを解消している。 以下の例はどちらもBNを使う例なので、平均シフトを打ち消せるが、BNの順序によっては一時的に平均シフトが発生する。 resブランチ内の 最後の畳み込み 後続のBN Batch Norm Activation Function Conv.Layer Batch Norm Conv.Layer Activation Function Batch Norm Conv.Layer Residual Branch Activation Function あまり一般的でない順序 スキップ 接続 Activation Function Batch Norm Conv.Layer 一般的な順序 こちらの順序であれば、常に平均シフトを回避可能。 resブランチ内の最後の畳み込みは“正の平均”を持つ入力を受け取る。 (なぜなら、BN後ではなくReLUなどの活性化関数による処理後であるため) ⇒結果として、どの単一チャンネル上の分岐の出力もゼロでない平均を持つこ とを引き起こす。これは“平均シフト(mean-shift)”と呼ばれる。 一般的な順序(青)では平均シフトが発 生している。ただしBNによりリセット はされており結果的に問題を回避してい る。 この平均シフトは、後続のBNにより解消されるが、BNを削除しようとすると 深刻な問題を引き起こす。 あまり一般的でない順序(赤)ではそも そも平均シフトが発生していない。 13 Paper:Characterizing signal propagation to close the performance gap in unnormalized ResNets
Batch Normalizationの利点③ 効率的な大量バッチ学習を可能にする あくまで大きなバッチサイズと学習率による安定・高速な学習を提供する。注意として、汎化性能が最も高くなるのは常に、学習率が小さくバッチサイズも小さい時である。 有名論文による見解 How Does Batch Normalization Help Optimization?, 2018/05 ⇒バッチ正規化は損失ランドスケープを平滑化し Understanding Batch Normalization, 2018/11 ⇒これは最大の安定学習率を増加させる 反論・指摘している論文の主張 青:バッチ正規化ネットワーク(BNNet)、橙:バッチ正規化無しのネットワーク(Non-BNNet) 緑:今回は気にしなくていい。バッチ正規化を用いずhidden activationsの分散爆発を抑えた手法 a,b:最適学習率での、バッチサイズ変更によるテスト正解率・訓練lossの変化 c,d:バッチサイズ変更による最適学習率の変化 テスト正解率 訓練loss 最適学習率 右に示す通り、上記の性質はバッチサイズが小さい場合には 実用的な利点はない。(右に行く) ただし大きなバッチサイズで効率的に学習したい場合には、 より大きな学習率で学習できることが不可欠である。 大きなバッチサイズでの訓練では、小さいバッチサイズで達 成可能なテスト正解率を達成できないが、より少ないパラ メータ更新で所定のテスト精度を達成することができ、複数 のデバイスにまたがって並列化された場合、訓練速度が大幅 に改善される。 【 c,d からわかること】 ①BNNet(青)は”バッチサイズ(BS)を増大すれば” 、Non-BNNet (橙)よりも、高い学習率を実現可能 →高速・効率的な学習が可能。ただし、小さいBS時は(青)と(橙)で違いは無い。 【 b からわかること】 【bからわかること】 Non-BNNet (橙)は、BS≧64あたりからlossが大きくなってしまうが、 BNNet(青)では2^13あたりま でBSを大きくしても小さいlossを実現できる。 【 a からわかること】 【aからわかること】 どのネットワークでも、テスト精度が最も高くなるのは常に、学習率が小さくBSも小さい時である。 BSの増大と大きな学習率により汎化性能が上がることはないことに注意。 14 Paper:Batch Normalization Biases Residual Blocks Towards the Identity Function in Deep Networks
Batch Normalizationの利点④ 正則化効果がある 真の統計量とバッチ統計量のズレ(ノイズ)により正則化効果が生まれ、汎化性能が向上する。 一般的な見解 一般的な見解を補強するエビデンス データセット全体 ミニバッチ平均 真の平均 青:バッチ正規化Net 橙:ここでは無視。バッチ正規化を用いずhidden activationsの分散爆発を抑えた手法 緑:ここでは無視。上記手法に、通常のバッチ正規化と同等と見込まれる正則化を加えた手法 左図:最適な学習率において、バッチサイズ変更によるテスト正解率の変化 右図:最適な学習率において、バッチサイズ変更による訓練lossの変化 テスト正解率 訓練loss 真の統計量とバッチ統計量のズレ(ノイズ)により正則化効果が生まれる バッチ正規化には、バッチにおける平均や分散などの統計量を用いる。この統 計量は、上図のように、真の値に対してノイズを含む。(正確には、バッチ正規化 を用いると、SGDなどでランダムなバッチ選択を行うことを通じて、学習する固定分布にもラ ンダム性(ノイズ)が追加される) ⇒従って、元のデータセットの分布と異なる分布に、各中間層の特徴分布を学 習していくことで、正則化(regularization)の効果も生まれる ここでは、バッチサイズ(BS)16以降の青(バッチ正規化Net)にのみ注目する。 右図の通り、訓練lossはBS増大と共に下がり続ける。しかし、左図を見ると、 最大テスト正解率はBS64であり、BS16~256の範囲内で、汎化、すなわち正則 化効果が強く出ている。 ⇒BSがちょうどいいと、真の統計量とバッチ統計量の間に絶妙なノイズが生ま れて、正則化に繋がっていると思われる。 15 Paper:Batch Normalization Biases Residual Blocks Towards the Identity Function in Deep Networks
なぜNormalizar-Freeの ネットワークが必要なのか ⇒BNには次に示すような欠点があるため
Batch Normalizationの欠点 NFNet論文では、BNには3つの実用上の重大な欠点があるとされている。 欠点1:計算コストが高い • メモリのオーバーヘッドが発生し[2018]、いくつかのネットワークでは勾配の評価に必要な時間が大幅に増 加する[2017]。 欠点2:学習時と推論時のモデルの挙動の不一致[2019,2019] • バッチ統計量と真の統計量の違いによるもの。 • このためチューニングが必要な隠れたハイパーパラメータが導入される。 欠点3:(最重要)ミニバッチ内の訓練例間の独立性を壊す • 独立性があるとは、ある事象Aと別の事象B、2つの事象が互いに関係していないことである。つまり、“独 立性を壊す”とは“あるバッチでは、事実と異なる関係性を持つデータ集合が偶然構成されてしまい、訓練に 悪影響を及ぼすこと”と考えられる。またバッチサイズ1などではバッチ統計量がデータセット統計量を十分に代表しなくなることも。 17
Batch Normalizationの欠点 特に3番目の欠点は、様々な負の結果をもたらす。 BNがミニバッチ内の訓練例間の独立性を壊してしまう結果 利点4のグラフ 負の結果:1 異なるハードウェア上で正確に再現することが困難であることが多く、バッチ正規化は、特に分散学習 時に、微妙な実装エラーの原因となることが多い[2019] 負の結果:2 バッチ内の学習例間の相互作用により、ネットワークが特定の損失関数を「ごまかす」ことが可能にな るため、バッチ正規化は一部のタスクには使用できない。Ex)いくつかのContrastive Learning[2020] 負の結果: 3 バッチ統計量が学習中に大きな分散を持つ場合、バッチ正規化ネットワークの性能が低下する可能性が ある[2020] 負の結果: 4 バッチ正規化の性能はバッチサイズに敏感であり、バッチサイズが小さすぎるとバッチ正規化ネット ワークの性能が低下する[2017] 18 Paper:Batch Normalization Biases Residual Blocks Towards the Identity Function in Deep Networks
既存のNormalizar-Freeネットワーク BNの無視できない欠点のため、Normalizer-Freeネットワークが必要。 ただし、これまでに提案されてきたNormalizar-Freeなネットワークは、 課題を残している
Normalizar-Freeなネットワークの前例 NF-ResNetsは、分散の制御により、BN無しでResidual Branchのダウンスケールや平均シフトの解消を実現 ただし、性能は、当時の最先端性能のCNNであるEfficient Netには及ばなかった (重要)NF-ResNetsでは、瀧先生の2017の論文が参照されている。 Paper:Deep Residual Networks and Weight Initialization NF-ResNets(Normalizar-Free ResNets) 特徴1:事前活性化ResNetを用いて 特徴2:初期化時の入出力の分散を制御してBNの分散を近似 分散を制御しやすくしている 図の右(BNの利点①参照) ⇒BNありNetの分散 特徴3:左の𝒇(𝒙)の出力分散を初期化時に1にするための Scaled Weight Standardization 【i番目のresidualブロック。i=20とすると】 ℎ𝑖 ℎ𝑖 𝑉𝑎𝑟 ℎ𝑖 = 20 residualブランチ ℎ𝑖 スキップ接続 𝑓(𝑥) × 𝛼 𝛼 はスカラー。詳細は後述。 1. 𝑓(𝑥)への入力を以下とする ℎ𝑖 𝑓(𝑥) = 𝑓( ) 𝛽𝑖 original Pre-Act 上図はイメージで、NF-ResNets ではBNは不要。 2. ここで𝛽𝑖 はℎ𝑖 の標準偏差 𝛽𝑖 = 𝑉𝑎𝑟(ℎ𝑖 ) 3. 𝑓(𝑥)の入力の分散は1となる 𝑉𝑎𝑟 ℎ𝑖 =1 𝛽𝑖 𝑓(𝑥)の出力の分散を1にでき ればBNと同じ分散になる。 上図は先行研究のWeight Standardization(WS)。活性値ではなく重 みを正規化することで、ミニバッチに依存しない正規化を実現する 方法。Scaled WSでは、スケーリングのためのスカラーであるγを 導入する。 Scaled WSにより、𝑓(𝑥)は入力と出力の分散の変動を なくす。 Paper:Characterizing signal propagation to close the performance gap in unnormalized ResNets 20
NF-ResNetsの詳細① NF-ResNetsにおける、分散制御のモチベーション BNありと無しでは分散推移が大きく異なる。BNをなくしたとしても、BNありの時のような推移にした方がよさそう。 BN無しネットワーク BNありネットワーク BN無しだと(左図)、スキップ接続もresidualブランチも、分散が指数関数的に増加してしまう。 BNがあると(右図) 、スキップ接続の分散は深さに対して線形に増えていき、 residualブランチは常に分散1を維持する。 ⇒BNの利点①の通り、スキップ接続への信号の偏りが生じ、トレーニングの初期段階でネットワークの勾配が適切に保た れ、効率的な最適化が可能になる。 BNをなくしたとしても、こうした分散関係は維持した方がよさそう。 21 Paper:Batch Normalization Biases Residual Blocks Towards the Identity Function in Deep Networks
NF-ResNetsの詳細② Paper:Characterizing signal propagation to close the performance gap in unnormalized ResNets の形のresidualブロックにより、BN採用時の分散を近似 特徴2:入出力の分散を制御してBNの分散を近似 【i番目のresidualブロック。i=50とすると】 ℎ𝑖 ℎ𝑖 𝑉𝑎𝑟 ℎ𝑖 = 50 residualブランチ ℎ𝑖 スキップ接続 i=50くらいを想定して 適当な事例を計算 𝛼はスカラー。分散を増分させるため の値で、0.2などを指定すると分散は 1 + 0.2 2 = 1.44倍になる 𝛼 = 1の時、ブロック出力 の分散はBNあり(赤)とNFResNets(水色)で同等。 𝑓(𝑥) × 𝛼 𝑓(𝑥)は 、入力と出力の分散が変化しないように工夫されている。 工夫=Scaled Weight Standardization 𝑓(𝑥) への入力は、分散が1になるように工夫されている。 下の1~3を参照。 1. 𝑓(𝑥)への入力を以下とする 3. 𝑓(𝑥)の入力の分散は1となる ℎ𝑖 𝑓(𝑥) = 𝑓( ) 𝛽𝑖 2. ここで𝛽𝑖 はℎ𝑖 の標準偏差 𝛽𝑖 = 𝑉𝑎𝑟(ℎ𝑖 ) 𝑉𝑎𝑟 ℎ𝑖 =1 𝛽𝑖 𝑓(𝑥)の出力の分散を1にでき ればBNと同じ分散になる。 𝛼 = 1 の時、residualブランチ出力の分散は1であり、 BNあり(赤)とNF-ResNets(水色)で同等。水色の最 後の分散低下はゼロパディングの影響説が濃厚。 22
NF-ResNetsの詳細③ 事前活性化ResNetを使うことで、Transitionブロックでの分散初期化がしやすい。 特徴1:事前活性化ResNetを用いる Transitionブロックの挿入位置の例 (stage頭部などに置かれ、通常ブロックと異なる設計を持つ) 【i番目のresidualブロック。i=50とすると】 ℎ𝑖 ℎ𝑖 上図はNF-ResNetsではなくNFNetsの例だが、参考になる。 左がTransitionブロック、右が通常のブロック。 Transitionでは、スキップ接続のConvへの入力hi も𝛽、すなわち ブロックへの入力の標準偏差𝛽𝑖 = 𝑉𝑎𝑟(ℎ𝑖 )で割ることでダウン スケールする。結果分散はリセットされるイメージ。 「https://arxiv.org/abs/2102.06171 」より引用 𝑉𝑎𝑟 ℎ𝑖 = 50 residualブランチ ℎ𝑖 「https://www.researchgate.net/figure/ResNe t-Architecture_fig9_342412250 」より引用 「https://arxiv.org/abs/2101.08692 」より引用 スキップ接続 𝑓(𝑥) × 𝛼 𝛼が1.2など、1以外の値に設定される場合、前スライドで議論 した右図の分散は少しずつ大きくなっていく。しかし、 Transitionブロックで分散はリセットされる。 ( 𝛼はスカラーハイパーパラメータであり、ブロック間の分散 成長率を制御する。) 𝛼で分散をわざわざ大きくする理由は、解釈に自信が無いが、 residualブロックによる寄与をほんの少し大きくするため? 23
NF-ResNetsの詳細④ Scaled WSの主な役割は、「f(x)の出力の分散を入力の分散と同じにすること」と「データのスケーリング」。 スケーリングのためのスカラーγにより、初期化時の「入力×WS畳み込み処理×γ」の分散を1に近づけることが可能に。 特徴3:𝒇(𝒙)の出力分散を1にするための Scaled Weight Standardization 【 Scaled Weight Standardizationの良さ】 • 学習時は低コストで推論時は特にコストがかからない • 活性値ではなく重みへの操作であるが、うまくスケールできる • 重みへの操作であるため、バッチ要素間の依存性が無い • 学習とテストの動作に矛盾が無い 【i番目のresidualブロック。i=50とすると】 • 分散学習でも実装に違いが無い スキップ接続 • 平均シフトの出現を防ぐ 𝑉𝑎𝑟 ℎ𝑖 = 50 • 損失ランドスケープを平滑化 residualブランチ ℎ 𝑖 【 Scaledの部分の重要性】 ℎ𝑖 ℎ𝑖 𝑓(𝑥) × 𝛼 Scaled Weight Standardizationでは、スケーリングのためのスカ ラーであるγを導入する。 Convへの入力の分散は、使用する活性化関数によって変わる。 「https://arxiv.org/abs/2101.08692 」より引用 上図は先行研究のWeight Standardization(WS)。活性値ではなく重 みを正規化することで、ミニバッチに依存しない正規化を実現する 方法。Scaled WSでは、スケーリングのためのスカラーであるγを 導入する。 Scaled WSにより、𝑓(𝑥)は入力と出力の分散の変動を なくす。 1 1 2 𝜋 例えばReLUの場合は、𝜎𝑔2 = ( )(1 − )となる。 初期化時の「入力×WS畳み込み処理×γ」の分散を1に近づけたい このときのγを計算すると、𝛾 = 1 𝜎𝑔 = 2 1 1− 𝜋 になる。 他の活性化関数の場合は、γの値が変わることに注意。 24
NF-ResNetsの詳細⑤ 瀧先生の論文、どう引用されていたか。 Paper:Deep Residual Networks and Weight Initialization バッチ正規化をなくしたいが、何に注意すればよいか Takiなどの研究によれば、ResNetsでは、前方パスの信号が良い振る舞いをし ている限り、後方パスは爆発も消滅もしないことが一般的である。 初期化時の学習の安定化に気を付けよう。例えば分散制御など。 25
NF-ResNetsの詳細⑥ NF-ResNetsの課題 バッチサイズが大きいと性能が悪くなる。また当時の最先端のEfficientNetsの性能には及ばない 良い結果 • • バッチサイズ1024のImageNetでバッチ正規化事前活性化ResNetsが達成したテスト精度と一致する。 また、バッチサイズが非常に小さい場合には、バッチ正規化された同等のネットワークを大幅に上回る。 残る課題 • • バッチサイズが大きい場合(4096以上)には、バッチ正規化されたネットワークよりも性能が悪くなる。 さらに重要なこととして、EfficientNetsのような当時の最先端のネットワークの性能には及ばない。 26
NFNetとは
NFNetの概要 NFNetの性能は? • • EfficientNetを大きく上回り(左図) 、大規模データセットで事前学習した場合は89.2%のImageNet1K-top1を達成 さらなる大規模データとモデルスケールの拡大実験では90.4%を達成し、CNNのスケール則も確認された(右図) Paper:ConvNets Match Vision Transformers at Scale、NFNetsを用いてCNNのスケール則を確認した論文 28 Paper:High-Performance Large-Scale Image Recognition Without Normalization、NFNets提案論文
NFNetの概要 NFNetはSE-ResNeXt-Dを一部改変し、AGCを導入したネットワーク。 SE-ResNeXt ResNeXt 一部改変 AGC 【SEブロック】 ・・・ResNeXtにSEブロックを加えたネットワーク。 ・・・グループ化畳み込み層によるResNetの改善版。精度と汎用性向上。 ・・・幅と深さのパターンを変更し、2回目の空間畳み込みを実施。 ・・・適応的勾配クリッピングと呼ばれる独自手法。大規模バッチ 学習を効率化し、強力なデータ増強の適用も可能にする。詳細後述。 畳み込み層の各チャンネルを均等に出力せず、適応的に重みをかける アテンションに近い操作ともいわれている。 【ResNeXt】 グループ化畳み込み層により、ResNetのresidualブロック内を効率的ワイド化した改善版。 「https://cvml-expertguide.net/terms/dl/layers/convolution下図はグループ化畳み込み層の図解。 layer/grouped-convolution/ 」より引用 ボトルネック+sigmoid 「https://arxiv.org/abs/1709.01507 」より引用改変 1.Global Average Poolingで、チャンネルごとの代表値として画素値平均zを取る。 2.zは、更にch//ratio個に減らしてチャンネル間の非線形の関係を取る。ボトルネックにより次元削減 3.再びchに次元を戻す。(チャンネル間の相関を強調するイメージ)。 • sigmoidなのが重要。0≤y≤1の範囲に変換。 4.ここまで計算された値(0≤y≤1)で各チャンネルを重み付ける 29
AGC(Adaptive Gradient Clipping, 適応的勾配クリッピング) AGCは、学習を安定させる、より強力な勾配クリッピング すべての勾配が同一の閾値でクリッピングされることを廃止。その勾配が元の重みをどれだけ変えるかに応じたクリッピングを実現。 既存手法:勾配クリッピング(Gradient Clipping) 勾配ベクトルGのノルムが閾値λを超えるとき、ノルムがλになるように勾配を クリッピングする手法。λはネットワーク全体で固定の値をとる。 ⇒利点:以前よりも高いバッチサイズで学習できるようになった 課題:学習の安定性はクリッピング閾値λの選択に非常に敏感。モデルの深 さ、バッチサイズ、学習率を変化させるときにきめ細かいチューニングが必要 よりロバストな方法が必要 新規手法:適応的勾配クリッピング(AGC) AGCでもλの値は固定であるが、そのまま勾配をクリッピングすることを廃止。 “その勾配が元の重みをどれだけ変えるか”を考慮する機構を導入し、 勾配と元の重みの大きさによってクリッピング度合を適応的に変える。 ただし、計算時に元の重みを分母に使う都合上、元の重みの大きさが極端に小さい orゼロの時は、𝜖 = 10−3 などに置き換え、学習の安定性を確保する。 右側のif条件が肝。 𝑊 ℓ はℓ層の重み、 𝐺 ℓ は𝑊 ℓ に関する勾配、 ⋅ 𝐹 はフロベニウス・ノルム。 (フロベニウス・ノルムは行列の「大きさ」を表す量で、単に全成分の二乗和のルート。) 𝐺ℓ 𝐹 𝑊ℓ 𝐹 は、重み行列𝑊 ℓ の大きさに対する勾配𝐺 ℓ の大きさであり、 “1回の勾配降下ステップが元の重み𝑊 ℓ をどれだけ変えるか”という尺度になる。 ⋆ ⋆ また 𝑊𝑖ℓ 𝐹 は、 𝑊𝑖ℓ 𝐹 = max( 𝑊𝑖 , 𝜖)で定義され、元の重みの大きさが極端に小さ い時の対策になる。デフォルトでは𝜖 = 10−3 。 30 参照:【論文読解めも】
AGC導入の利点 大きなバッチサイズでの学習を安定させ、より強力なデータ増強の適用を可能にする 大きなバッチサイズでの学習の安定化 • AGCを用いることで、より大きなバッチサイズ(最大4096)のNF-ResNetsを安定に訓練することがで きる。 理由は理解しきれていない より強力なデータ増強を適用可能になった • AGCを使用しないNF-ResNetsでは学習できないRandAugmentのような非常に強力なデータ補強を使用 することもできる。モデルの能力を訓練セットにフルに割くことができる。 31
NFNetsの強み:BNネットワークよりもデータに対して適応性がある NFNetsには暗黙的な正則化能力が無いため、モデルの能力を訓練セットにフルに割くことができる 通常のImageNetなどではオーバーフィットの原因になるため他の正則化を必要とするが、大規模データや増強データには相性がよいと思われる。 MixUp + CutMix + RandAugment あまり利益をもたらさない EfficientNetsなど BNを用いるネットワークには、バッチ統計量による暗黙的な正則化がある ↓ 右のNFNetsで示すような適応性を持てないため、データ増強の恩恵が少ない。 データセット全体 ミニバッチ平均 真の平均 かなり利益をもたらす NFNets BNによる暗黙的な正則化が無い ↓ ImageNetのようなデータセットでは、明示的に正則化(DropOutなど)しない限 りオーバーフィットする傾向がある ↓ しかし、非常に大規模なデータセットで事前学習を行う場合、このような正則 化は不要であるだけでなく、モデルの能力を訓練セットにフルに割く能力を低 下させ、性能に悪影響を及ぼす可能性がある ↓ 実際、NFNetsは大規模データによる事前学習により、非常に高い精度を達成。 NFNetsは大規模データに対して適応性があると思われる。 ↓ 同様の理由で、より強力なデータ増強にも適応性があるため、データ増強によ る利益が大きいと思われる。 32 Paper:High-Performance Large-Scale Image Recognition Without Normalization、NFNets提案論文
その他のポイント • • • • • • • 正確には、GELU活性を持つSE-ResNeXt-Dモデルが、Normalizer-Freeネットワークにとって強力なベースラインであることがわかっている。 3×3畳み込み時のグループ化畳み込みにおいて、1グループあたりのチャンネル数は128に設定。それ以下では高速化の恩恵が無い。 アーキテクチャは4つのステージを持ち、各ステージのボトルネックブロックの数は[1,2,6,3]が基本となる。1段階深いモデルでは[2,4,12,6]とスカラー倍増大する。 ステージ経過によるチャンネル数の推移は[256,512,1536,1536]が優れていることがわかっている。 Residualブロックにて、 (非線形性を伴う)最初の畳み込みの後に、さらに3×3のグループ化畳み込みを追加することで最も改善されることがわかった。 EfficientNetと異なりResNetでは幅のスケーリングに効果が無いため、深さと解像度スケーリングに留め、推論時は訓練時よりやや高い解像度で評価する。 Normalizer-FreeNetはバッチ正規化の暗黙的な正則化効果を欠くため、モデルサイズに応じたドロップアウト率のスケーリングが特に重要である。 33 Paper:High-Performance Large-Scale Image Recognition Without Normalization、NFNets提案論文
まとめ
まとめ NFNetは、BNの廃止によりBNの欠点を解消し、様々な工夫によりBNの利点を代替した。 さらにアーキテクチャ改良と、residualブロックの寄与の調整(𝛼)、Normalizer-Free構造に由来するデータ適応性により、高い性能を達成した。 BNの欠点とその解決方法 計算コストが高い BNの利点とNFNetでの実現方法 Residual Branchをダウンスケールする • NFNetでは、事前活性化やresidualブロックデザインによる分散 学習時と推論時のモデルの挙動の不一致 の制御により実現 平均シフトを解消する ミニバッチ内の訓練例間の独立性を壊す • Scaled Weight Standardizationによりシフトの出現を防ぐ 効率的な大量バッチ学習を可能にする これらはBNの廃止により解消 • AGCの導入により実現 暗黙的な正則化効果がある • DropOutなどで調整。ただし、正則化効果が無いことで得られる 恩恵もあった。例えば大規模データや増強データへの適応性。 35
その他・補足 その他参考 • BCN: Batch Channel Normalization for Image Classification • 2023/12/01、arXiv、BNやLNの亜種 Weight Standardizationの処理 • 通常の畳み込みの重みは入力マップ数×kernelH ×kernelW ×出力マップ数なので左下の例では3x3x3x2で54 • 右下は4x7x7x8の場合の例。重みを(出力マップ数である)8グループに分け、グループ内で標準化している。 36