4.6K Views
October 10, 24
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2024年度後期輪読会#2 (2024/10/10) ResNet・EfficientNet (V2) 京都大学理学部 3回生 宮本真弥 0
アジェンダ ◼ ResNetとは? ◼ 残差学習・スキップ接続 ◼ ResNet ◼ EfficientNetが登場するまで ◼ EfficientNet・EfficientNetV2 1
アジェンダ ◼ ResNetとは? ◼ 残差学習・スキップ接続 ◼ ResNet ◼ EfficientNetが登場するまで ◼ EfficientNet・EfficientNetV2 2
ResNetとは? 残差学習・スキップ接続を組み込んで深い層の学習を可能にした画像分類モデル ディープラーニングの学習では、層を深くしすぎると学習がうまくいかず、最終的な性 能が劣ることがしばしばあった。勾配消失などが原因。 →残差学習によって劇的な改善 画像分類コンペ(ILSVRC)では前年度の結果と比較して層の数を100以上増加させること に成功、なおかつ分類精度が大幅に向上した 画像引用:https://arxiv.org/pdf/1512.03385 3
アジェンダ ◼ ResNetとは? ◼ 残差学習・スキップ接続 ◼ ResNet ◼ EfficientNetが登場するまで ◼ EfficientNet・EfficientNetV2 4
残差学習・スキップ接続 スキップ接続(skip connection)によって勾配消失を防ぐ(情報が失われないようにする) 従来のネットワーク 重み層と活性化関数を単 純に積み重ねたモデル これだと重みが不適切に 偏ったときに情報損失が 起こり、層を増やすほど 情報をうまく伝播できな い。(つまり勾配消失が 起こる) 残差学習 𝑥𝑙 Weight layer 𝐹𝑙 ReLU Batch Normalizationな どである程度改善できる が限界があった 𝑥𝑙+1 = 𝐹𝑙 𝑥𝑙 スキップ接続により 入力の情報がそのま ま次の層に伝わる これによって、各層 ごとの重みの偏りに よる情報損失ないし 勾配消失を防いでい る。 式を変形すると 𝑥𝑙+1 − 𝑥𝑙 = 𝐹𝑙 𝑥𝑙 となり、残差を学習 しているとみなせる ことから残差学習と 呼ばれる。 𝑥𝑙 スキップ接続 Weight layer 𝐹𝑙 ReLU 𝑥𝑙 Weight layer + 𝑥𝑙+1 = 𝐹𝑙 𝑥𝑙 + 𝑥𝑙 5
残差学習・スキップ接続 残差学習による誤差勾配の伝播の仕方 𝜕ℒ 𝜕ℒ 𝜕𝐹𝑙+1 (𝑥𝑙+1 ) 𝜕ℒ 𝜕𝐹𝑙+1 𝑥𝑙+1 𝜕ℒ 𝜕𝐹𝑙 (𝑥𝑙 ) + + + 𝜕𝑥𝑙+2 𝜕𝑥𝑙+2 𝜕𝑥𝑙+1 𝜕𝑥𝑙+2 𝜕𝑥𝑙+1 𝜕𝑥𝑙+2 𝜕𝑥𝑙 スキップ接続を式に表すと 𝑥𝑙+1 = 𝐹𝑙 𝑥𝑙 + 𝑥𝑙 となる。よって勾配 𝜕𝑥𝑙+1 は 𝜕𝑥𝑙 𝐹𝑙 (𝑥𝑙 ) 𝜕𝑥𝑙+1 𝜕𝐹𝑙 𝑥𝑙 = +𝑰 𝜕𝑥𝑙 𝜕𝑥𝑙 𝜕ℒ となる。よって伝播させる誤差勾配 は 𝜕𝑥𝑙 𝜕ℒ 𝜕ℒ 𝜕𝑥𝑙+1 𝜕ℒ 𝜕𝐹𝑙 𝑥𝑙 𝜕ℒ = = + 𝜕𝑥𝑙 𝜕𝑥𝑙+1 𝜕𝑥𝑙 𝜕𝑥𝑙+1 𝜕𝑥𝑙 𝜕𝑥𝑙+1 上層からの勾配 𝜕ℒ の情報を全く落とさ 𝜕𝑥𝑙+1 ず伝播できていることが分かる →目的関数の誤差情報を全く落とさず学 習できる! 𝜕ℒ 𝜕𝐹𝑙+1 (𝑥𝑙+1 ) 𝜕ℒ + 𝜕𝑥𝑙+2 𝜕𝑥𝑙+1 𝜕𝑥𝑙+2 𝜕ℒ 𝜕𝐹𝑙+1 (𝑥𝑙+1 ) 𝜕ℒ + 𝜕𝑥𝑙+2 𝜕𝑥𝑙+1 𝜕𝑥𝑙+2 + 𝜕ℒ 𝜕𝐹𝑙+1 (𝑥𝑙+1 ) 𝜕𝑥𝑙+2 𝜕𝑥𝑙+1 𝐹𝑙+1 (𝑥𝑙+1 ) 𝜕ℒ 𝜕𝑥𝑙+2 𝜕ℒ 𝜕𝑥𝑙+2 + 𝜕ℒ 𝜕𝑥𝑙+2 順伝播 逆伝播 6
アジェンダ ◼ ResNetとは? ◼ 残差学習・スキップ接続 ◼ ResNet ◼ EfficientNetが登場するまで ◼ EfficientNet・EfficientNetV2 7
ResNet ResNetのアーキテクチャ 残 ・画像分類モデル ・BNはBatch Normalization ・残差ブロックをいくつも積み重ねてい る構造 ・プーリング層は最初と最後の2つのみ ・残差ブロックの中身はいくつかの種類 が提案されている Conv 3×3 input Conv 3×3 BN ReLU MaxPool 差 ブ BN ロ ReLU ッ Conv 3×3 ク BN + ReLU ・これをベースに改良されたモデルが 様々提案されている AvgPool FC・softmax 8
ResNet 層が多いResNetの残差ブロックはボトルネック構造というものが採用されている ボトルネック構造 ・1×1畳み込み層によってチャネル数を1/4に 減らし、最後にもう一度1×1畳み込み層で チャネル数を元に戻すという構造 ・1×1畳み込み層は計算量が少なく、また チャネル数を減らしてから3×3畳み込み層 に通すようにすることで計算量を抑えている 通常の残差ブロック ボトルネック構造を採用 した残差ブロック ・通常、チャネル数を増減させると情報損失が 起こりやすく、結果として学習がうまくいか ないことが多いが、スキップ構造、残差学習 により解決。実際、152層にしても過学習せ ず、精度よく学習できた 画像引用:https://arxiv.org/pdf/1512.03385 9
ResNet 提案当初の残差ブロックでは情報損失が発生してしまう スキップ接続を式で表すと 𝑿𝑙+1 = 𝑿𝑙 + 𝐹𝑙 𝑿𝑙 となるのであった。よって 𝑿𝐿 = 𝑿𝐿−1 + 𝐹𝐿−1 𝑿𝐿−1 = ⋯ 𝑿𝑙 𝐿−1 = 𝑿𝑙 + 𝐹𝑖 (𝑿𝑖 ) 𝐹𝑙 𝑖=𝑙 となり情報が失われることなく伝播される。 しかし、ResNetは右図のように 𝑿𝑙+1 = ReLU 𝑿𝑙 + 𝐹𝑙 𝑿𝑙 とReLU関数を挟んでいるので、上の式が厳密には成り立 たない。 𝑿𝑙 + 𝐹𝑙 𝑿𝑙 に負の値があるとき、ReLU関数に よって値が0になり、情報が失われてしまう。 画像引用:https://arxiv.org/pdf/1512.03385 𝑿𝑙+1 = ReLU 𝑿𝑙 + 𝐹𝑙 𝑿𝑙 10
ResNet スキップ接続に操作を加えて性能を検証 画像引用:https://arxiv.org/pdf/1603.05027 11
ResNet スキップ接続に操作を加えて性能を検証 画像引用:https://arxiv.org/pdf/1603.05027 12
ResNet 残差ブロック内の層の順番を変えることで性能を検証・改善 (BN→ReLU→畳み込み)×2 →additionの順番が一番いい精 度を出した。 これは、この順番にすることで 𝑿𝑙+1 = 𝑿𝑙 + 𝐹𝑙 𝑿𝑙 が成り立つことが一つの理由と 考えられる。 このような改良によって、層を 1000層に増やしても過学習し ないことが実験的に示された 画像引用:https://arxiv.org/pdf/1603.05027 13
ResNet 他の順番ではだめなのか? (c),(d)も先ほどの式が成り立つが、性能はオリジナル より劣る (c)の順番では、ReLU関数を適用してから要素和を計 算するところが問題で、関数𝐹の出力がすべて非負値に なってしまうため、単調増加の計算しかできなくなり 性能劣化につながる。 𝐹 (d)の順番だと最後のバッチ正規化が問題で、バッチ正 規化した後に要素和を計算してしまうと、正規化され た特徴マップが正規化されていない特徴マップにたさ れてしまうため、バッチ処理をうまく活かせない。 画像引用:https://arxiv.org/pdf/1603.05027 14
ResNet プーリング層は本当に必要なのか? プーリング層の主な役割 ・微小な位置変化に対する不変性の獲得 ・情報をなるべく失わず圧縮(特徴量の抽象化) とりわけ位置変化に対する不変性は重要視されていた。 しかし、実はプーリング層による位置変化に対する不変性の獲得の効果は限定的である このことについて、様々な指摘がされている ・1画素だけ入力画像を並進させるだけでクラス分類用のCNNの出力が変わってしまう (Azulay and Weiss. 2019) ・CNNが画像内の位置情報を符号化して推論に利用しているケースを発見 (Islam, Jia and Bruce. 2020) ・畳み込み層でもプーリング層と同じくらい位置変化に対する頑健性を獲得できる (Ruderman, Rabinowitz, Morcos and Zoran. 2018) etc. つまり、単純なプーリング層では不変性を獲得できず、さらに不変性の観点では畳み込み層で代用でき てしまう。 15
ResNet 畳み込み層でもプーリング層と同じくらい位置変化に対する頑健性を獲得できる Rudermanらがプーリング層と畳み込み層を比較検証している。モデルはVGG,評価指標は画像に 微小変化を加えた前と後それぞれでのモデルが出力する表現のコサイン類似度 結果 ・学習前はプーリングしたほうが位置変化に強い ・学習が進むにつれて畳み込み層でもプーリング層と同等の位置変化に対する頑健性がみられた 画像引用:https://arxiv.org/pdf/1804.04438 16
ResNet ResNetの派生モデル DenseNet ResNeXt NF-ResNets 各ブロック間でスキップ 接続 残差ブロックを複数経路 化した バッチ正規化なしで性能 が高いモデルを実現 画像引用:https://arxiv.org/pdf/1608.06993, https://arxiv.org/pdf/1611.05431, https://ai-scholar.tech/articles/image-recognition/batch_norm 17
アジェンダ ◼ ResNetとは? ◼ 残差学習・スキップ接続 ◼ ResNet ◼ EfficientNetが登場するまで ◼ EfficientNet・EfficientNetV2 18
EfficientNetが登場するまで 注意機構のCNN版、Squeeze-and-Excitation Network(SE)が2019年に登場 入力特徴マップの重要なチャネルを強調させる役割 入力特徴マップ𝑼に大域平均プーリング(GAP)を適用してベクトル𝒛 ∈ ℝ1×1×𝐶 を計算、その後2層 のMLP(Affine→ReLU→Affine→Sigmoid)を適用する。 𝒔 = 𝑆𝑖𝑔𝑚𝑜𝑖𝑑 𝑾2 ⋅ ReLU 𝑾1 𝒛 ここで計算された𝒔は各チャネルの重要度を表している。最終的には各チャネル𝑼𝑐 を、対応する重 要度𝒔𝑐 でスケーリング ෪𝑐 = 𝒔𝑐 ⋅ 𝑼𝑐 𝑿 これにより重要度の高いチャネルが強調されて次層に伝播される→学習の効率化・精度向上 画像引用:https://arxiv.org/pdf/1709.01507 19
EfficientNetが登場するまで SEを用いたネットワーク(総称してSENet)が数々提案、功績を遺す ・SE-BlockをResNeXtに組み込んだモデルが ILSVRC2017で最高精度を達成 実装例 ・構造やコードが非常に簡潔で、既存のモデ ルに組み込みやすい 画像引用:https://towardsdatascience.com/review-senet-squeeze-and-excitation-network-winner-of-ilsvrc-2017-image-classification-a887b98b2883, https://tzmi.hatenablog.com/entry/2020/02/06/183314 20
EfficientNetが登場するまで 反転残差ブロックが登場 ・残差ブロックは内部の層のチャネル数が inputより少なくなっているが、反転残差ブ ロックは逆に多くなっている。 ・これにより各層のinput、outputのチャネル 数が減るのでメモリ削減につながる。 ・反転残差ブロックを用いたモデルは非常に効 率がよく、例えば物体検知モデルである MobileNetV2-SSDLiteはYOLOV2を上回る 性能ながら、YOLOV2の約20倍の効率性と 約10倍の小型化を実現している。 input input 1×1conv 1×1conv BN BN ReLU ReLU 3×3conv 3×3 dwconv BN BN ReRU ReRU 1×1conv 1×1conv BN BN ReLU 21
EfficientNetが登場するまで 反転残差ブロックの構造は多様体仮説とReLU関数の性質に基づく 多様体…各地点で実際より低次元の地図が作れるような 集合のこと 例:地球は3次元だが2次元の地図を各地点で作れる 多様体仮説 …現実世界で観測される高次元データは低次元多様体に 埋め込まれているとする仮説。つまり、データの中の 重要な情報は低次元に収まるということ →ある程度チャネル数を削減しても問題ない この仮説は重要で、現実で物事を考えるには、実際に計 算可能なレベルまで計算量を削減する必要があるため Ex)3次元の地図なんて見づらくて使い物にならない 画像引用:https://www.robots.ox.ac.uk/~az/lectures/ml/lle.pdf 22
EfficientNetが登場するまで 高次元の中ではReLU関数を適用しても致命的な情報欠損は起こりにくい ReLU関数には次の二つの特性があるといえる ・出力の非負値領域では線形変換をしている ・次元数が小さい場合ReLUによって情報がある程度失われてしまうが、次元数が大き い場合は情報の損失を抑えられる 一つ目はReLU関数の定義から、二つ目は下図からわかる 二次元データにランダム行列をかけて高次元データに拡張した後ReLUを適用し、その後 逆行列で2次元データに戻した時のデータの様子。次元が小さいほど情報が失われている ことが分かる。 画像引用:https://arxiv.org/pdf/1801.04381 23
EfficientNetが登場するまで 反転残差ブロックの構成 input まとめると 1×1conv ・多様体仮説により、チャネル数を小さくしても十分な 表現力を有する ・次元数が小さいとReLUによって情報損失が起こる これをふまえて、以下のような構想が立つ ・各層の入力・出力のチャネル数を小さくする ・ReLUによる情報損失を防ぐためにブロック内部はチャ ネル数を多くするようにデータを拡張 こうしてできあがったのが反転残差ブロックである。 BN ReLU 3×3 dwconv BN ReLU 1×1conv BN 24
EfficientNetが登場するまで 自動で精度と効率性を両立したモデルを設計するMnasNetが登場 反転残差ブロックが初めて提案されたのは MobileNetV2というモデルで、これはアーキテク チャなどすべて手作業で設計した。 しかし深い層のモデルの学習が可能になり、設計の 考えられる可能性は膨大。よって最適な設計を手作 業で行うのは非常に困難 →自動的に最適なネットワークを構成してくれるも のがあれば便利 MnasNetは強化学習により精度と推論速度のトレー ドオフを最適化するように学習、最適なモデルを設 計する。これによりImageNetにおいて、MnasNet が設計したネットワークがMobileNetV2より1.5倍 速く計算ができ、なおかつ精度も上回った。 画像引用:https://arxiv.org/pdf/1807.11626 物体検知とは少し離れた内容になっているので詳細は省 きます。詳しく知りたい方は下のURLからご覧ください 25
EfficientNetが登場するまで このように設計の研究が盛んになる。モデルスケーリングもその一つ モデルスケーリング…モデルの深さ(depth)や幅(width)、インプット画像の解像度 (resolution)などのスケールを変化させて性能向上を図る手法 例 ・Wide ResNet…ブロック内の畳み込み層を増やし、かつ特徴マップのチャネル数を増や す(幅を広げる)ことで効果を検証。結果、チャネル数を増やすことが精度向上に寄与 することが実験的に立証された。さらに層を深くすると計算量が膨大になることに対し て、幅を広げることは効率的に精度を上げられることが分かった。 ・MobileNet…反転残差ブロック内でチャネル数を広げている また、画像の解像度を上げることで予測精度が改善されたことが報告されている。 →深さ・幅・解像度全部まとめて改良してしまえばいいのでは? こうしてEfficientNetが生まれる 画像引用:https://arxiv.org/pdf/1801.04381 26
アジェンダ ◼ ResNetとは? ◼ 残差学習・スキップ接続 ◼ ResNet ◼ EfficientNetが登場するまで ◼ EfficientNet・EfficientNetV2 27
EfficientNet・EfficientNetV2 EfficientNetのアーキテクチャ ・モデルの深さ・幅・解像度を同時にスケー リングする複合スケーリングを使用 ・MNASフレームワークのニューラルアーキ テクチャ探索によって設計 ・MBConv blockを使用。反転残差ブロック の改良版 ・ミニバッチごとに確率的にブロック内部の 層をまるごとスキップ(Drop Connect) ・あまりの性能と使い勝手の良さにKaggle でも多用された(らしい) 画像引用:https://arxiv.org/pdf/1905.11946 28
EfficientNet・EfficientNetV2 複合スケーリングの最適化問題を定式化 畳み込みネットワークの 𝑖 層を関数𝑌𝑖 = 𝐹𝑖 (𝑋𝑖 )と定義。 𝑌𝑖 : output tensor, 𝑋𝑖 ∶ input tensor ∈ 𝐻𝑖 , 𝑊𝑖 , 𝐶𝑖 (𝐻𝑖 , 𝑊𝐼 : 画像の次元,𝐶𝑖 : チャネル数) ネットワーク全体を𝑁 = ʘ𝑗=1…𝑘 𝐹𝑗 (𝑋1 )と表す スケーリングの最適化問題は以下のように定めることができる max 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 𝑁 𝑑, 𝑤, 𝑟 𝑑,𝑤,𝑟 𝑑 ⋅𝐿 𝑠. 𝑡. 𝑁 𝑑, 𝑤, 𝑟 =⊙𝑗=1…𝑠 𝐹𝑖 𝑖 𝑋 𝑟⋅𝐻 𝑖 ,𝑟⋅𝑊 𝑖 ,𝑤⋅𝐶መ 𝑖 Memory 𝑁 ≤ target_memory FLOPS 𝑁 ≤ target_flops 𝑤, 𝑑, 𝑟 :スケーリングの幅、深さ、解像度の係数 Memory:メモリ使用量 FLOPS:1秒間に浮動小数演算を何回できるかという性能指標 画像引用:https://arxiv.org/pdf/1905.11946 29
EfficientNet・EfficientNetV2 三つのスケールはそれぞれ精度向上に寄与するが、一つだけでは頭打ちに 𝑤, 𝑑, 𝑟をそれぞれ独立に大きくしたときの精度とFLOPSのトレードオフ ある程度までは効率よく精度を上げることができているが、80%程度から精度が急激に 上がりずらくなっている。 しかし、そもそもこの三つのスケールは独立していないのではないか 例えば直観的には、解像度を大きくすれば、より細かい特徴を捉えるために深さや幅を 大きくしたほうがよさそうである 画像引用:https://arxiv.org/pdf/1905.11946 30
EfficientNet・EfficientNetV2 三つのスケールはそれぞれ精度向上に寄与するが、一つだけでは頭打ちに 右図は幅(w)を変化させたときの精度とFLOPS のトレードオフ。ここで、dとrを調整した4種 類のモデルで比較している 図を見ると、3つすべてのスケールを大きくし たほうが精度がよくなっている このことから3つのスケールを同時に大きくし たほうが精度を大きく改善できると考えられる 画像引用:https://arxiv.org/pdf/1905.11946 31
EfficientNet・EfficientNetV2 複合スケーリングのメソッド 𝜙を複合係数とし次のようにしてスケーリングする depth: 𝑑 = 𝛼 𝜙 width: 𝑤 = 𝛽𝜙 resolution: 𝑟 = 𝛾 𝜙 s. t. 𝛼 ⋅ 𝛽2 ⋅ 𝛾 2 ≈ 2, 𝛼 ≥ 1, 𝛽 ≥ 1, 𝛾 ≥ 1 𝛼, 𝛽, 𝛾はグリッドサーチにより決定する定数 𝜙をハイパーパラメータとし、これを調節することで複合スケーリングを行う ここで、 𝛼 ⋅ 𝛽2 ⋅ 𝛾 2 ≈ 2という制約があるが、これは𝜙をどのような値にしてもトータル のFLOPSを2𝜙 程度にするためである。 32
EfficientNet・EfficientNetV2 複合スケーリングによって既存のモデルの精度を上げることに成功 MobileNetとResNetで複合スケーリングを した結果が右図。どれも精度が大きく改善 していることが分かる さらにFLOPSは大きく変化せず、効率性を 維持したままで精度を上げることができて いる。 このように複合スケーリングは様々なモデ ルで効果がある。 画像引用:https://arxiv.org/pdf/1905.11946 33
EfficientNet・EfficientNetV2 反転残差ブロックの内部を改良したMBConvを使用 ・1×1畳み込み層(pointwise convolution)で チャネル数を大きくする ・depthwise convolutionを使用することで計算 量を抑える ・SEを用いることで重要な情報を強調する ・もう一度1×1畳み込み層によってチャネル数を 元に戻す ・各層の後にBN、Swishを適用している。ただし 加算する直前ではSwishは適用しない(ReLU関 数と同様の理由) −1 ※Swish 𝑥 = 𝑥 ⋅ 1 + exp −𝛽𝑥 𝛽はハイパーパラメータ。形がReLUに似ている 画像引用:https://arxiv.org/pdf/2104.00298 34
EfficientNet・EfficientNetV2 pointwise convolutionとdepthwise convolution ・pointwise convolutionはカーネルサイズが1×1の畳み込み処理である。これによって少ない計算 量でチャネル数を増減させることができる ・depthwise convolutionはカーネル1枚で1チャネル分の特徴マップを計算する。つまりチャネル 方向の情報集約は行われていない。 この二つをセットで用いることで通常の畳み込みより計算量を大幅に削減できる 画像引用:https://cvml-expertguide.net/terms/dl/layers/convolution-layer/depthwise-separable-convolution/ 35
EfficientNet・EfficientNetV2 Drop Connect:ミニバッチごとにランダムの層をまるごとスキップ 確率𝑝𝐿 をハイパーパラメータとし、ミニバッチごとに各ステップ𝑙の層全体を確率1 − 𝑝𝑙 でス 𝑙 キップする。𝑝𝑙 は𝑝𝑙 = 1 − (1 − 𝑝𝐿 )により定める。これによって汎化性能の向上、計算量の削 𝐿 減を実現している 画像引用:https://arxiv.org/pdf/1603.09382 36
EfficientNet・EfficientNetV2 EfficientNetにおけるDrop connectの実装 詳しくは下のURLからご覧ください https://github.com/lukemelas/EfficientNet-PyTorch/blob/master/efficientnet_pytorch/model.py 画像引用:https://arxiv.org/pdf/2104.00298 37
EfficientNet・EfficientNetV2 既存のモデルを上回る精度を達成・劇的な効率化に成功 画像引用:https://arxiv.org/pdf/1905.11946 38
EfficientNet・EfficientNetV2 既存の最高精度モデルと同等以上の精度でありながら8倍以上効率化している 画像引用:https://arxiv.org/pdf/1905.11946 39
EfficientNet・EfficientNetV2 効率性に関して、EfficientNetには主に3つの問題点がある 1. 入力画像のサイズが大きいと学習が遅くなる 2. MBConvをモデルの前半(低層)に配置すると学習が遅くなる 3. モデルを均等にスケーリングするのは最適ではない これらを改善したのがEfficientNetV2である 主な改善点 ・学習時の入力画像を小さくし、徐々に大きくして学習する(Progressive Learning) ・モデルの前半ではFused-MBConvを使用し、後半はMBConvを使用する ・スケーリングの仕方を改良・複雑化 これにより精度も効率性も劇的に改善された 40
EfficientNet・EfficientNetV2 画像サイズを徐々に大きくしながら正則化も強めていくことで精度を維持 𝑆0 を入力画像サイズ、𝑆𝑒 を最終的な画像サイズと すると各ステップ𝑖での画像サイズ𝑆𝑖 は 𝑖 𝑆𝑖 = 𝑆0 + 𝑆𝑒 − 𝑆0 ⋅ 0≤𝑖 ≤𝑀−1 𝑀−1 で定める。 また正則化の強さΦ = 𝜙𝑖𝑘 𝑘 ∈ 1,2,3 も同様に 𝑖 𝑘 𝑘 𝑘 𝑘 𝜙𝑖 = 𝜙0 + 𝜙𝑒 − 𝜙0 ⋅ 𝑀−1 𝑘 𝑘 で定める。𝜙0 , 𝜙𝑒 は手作業で調節 正則化は以下の3種類 ・RandAugment…14種類のデータ拡張操作から ランダムにN個選んで適用する ・Dropout ・Mixup…ランダムに画像を二つ選んでミックス する 画像引用:https://arxiv.org/pdf/2104.00298 41
EfficientNet・EfficientNetV2 Fused-MBConvを使用することで予測精度を改善 MBConvのdepthwise conv層をなくし、最初の 層を3×3畳み込み層に変更。 EfficientNetB4でFused-MBConvを使用したとき の予測精度・効率指標の比較 モデルの前半(1-3 stage)をFused-MBConvにし たときは精度が改善したが、すべてでFusedMBConvを使用するとパラメータ数・FLOPSが大 きく上昇、学習速度が遅くなり精度も落ちた 画像引用:https://arxiv.org/pdf/2104.00298 42
EfficientNet・EfficientNetV2 EfficientNetV2のアーキテクチャ ・stageは全部で8つ。Stage1-3で Fused-MBConv、4-6でMBConvを使用 ・EfficientNetV2-S,M,Lの3つがあり、そ れぞれ画像サイズ、正則化の強さが異なる ・EfficientNetと同様にNASフレームワー クのニューラルアーキテクチャ探索によっ て設計 画像引用:https://arxiv.org/pdf/2104.00298 43
EfficientNet・EfficientNetV2 EfficientNetV2と既存モデルの性能比較 画像引用:https://arxiv.org/pdf/2104.00298 44
EfficientNet・EfficientNetV2 転移学習でも高い精度を示した。 画像引用:https://arxiv.org/pdf/2104.00298 45
2. 便利なテンプレ集 まとめ ResNet スキップ接続を使うことにより深い層の学習が可能に BN→ReLU→畳み込み層の順番が最適 Efficient Net SEブロックと反転残差ブロックを用いて精度向上と効率化に成功 Efficient NetV2 複合スケーリングの改善とProgressive Learningによって精度が大きく向上 複合スケーリングによって精度が改善された 学習の高速化のためにFused-MBConvを使用 46
47