1. CNNバックボーン(backbone)とは [概要]
CNNバックボーン (backbone) とは,CNN(畳み込みニューラルネットワーク)のネットワーク構造のうち,序盤から終盤まで層の範囲全体のことをさす.脊椎生物に見立てた場合にの背骨(backbone)に,CNNの序盤から中盤の部分をたとえる(図1).
※ 終盤の予測器部分の層は頭部(head)とよぶ.またFPNなどは,ヘッドとバックボーンの間に挿入する拡張機構なので首(neck)と呼ぶ.
この記事では,CNNバックボーンの代表的な設計を,登場順に概要・特徴を列挙することで,歴史のまとめを行う.より具体的には,ImageNetを用いた「物体認識向けの代表的CNNバックボーンについて,「(1年ごとの)グループ分類」 と「 時系列順の列挙」の2つを同時にまとめた「グループ化 + 年表化」の節構成とした.
また,年表全体の見晴らしをよくするために,ResNetを大きな転換点とみなすことにし,AlexNet (2012)後の主要CNNバックボーンを,ResNet以前(2節),ResNet以後(3節)の2つの年代に区切り,登場順・グループごとに各節にまとめて年表・グループ化した.
参考にしたサーベイ [Kahn et al., 2019] などのように,よくある「網羅的な全列挙」はしていない.代わりに,歴史的に重要なCNNのみを厳選し,全体の大まかな流れがつかめるコンパクトな年表にしたつもりである.
※ インスタンスセグメンテーションの記事でも,「1年ごとにグループ化する」節の構成になっている.深層学習時代は,その研究人口の多さから,同じフォーカスで従来手法を改善する並行研究(=似たようなアイデア同士の同時期研究) が発生することが多い.したがって,それらの似た手法のグループは,トップ国際会議の循環周期である半年・1年ごとで,形成されやすい.
(2022年2月の)現在では,コンピュータビジョンの研究業界は,CNNの時代では徐々になくなりつつあるものの,この記事は「CNNの実用する際の非常に有用なまとめ」とはなっていると思う.この記事を通して,CNNの基本や古き良きアイデアも整理・復習を繰り返すことで,今後の「研究開発のアイデア出し」に役立てて頂きけると嬉しい.
ただし,この記事では省いた「WideResNet」など,CNN時代では生き残らなかったものの,2020以降ViTの研究が多くなってから,設計の良さが見直されているCNNアーキテクチャもある.よって,この記事で重要視していないからといって,使えないアイデアだと決めつけはしないように気を付けていただきたい.
1.1 記事の構成
これ以降は,次の1.2節でまずCNNバックボーンを「年表リスト」化する.この年表リストを眺めながら,それぞれの子記事を読んでいくだけでも,(本サイトは,階層的にたどれるので)全体の見晴らしが良くなるはずである.
まず,次の1.2節で,リスト化した「年表リスト(2.1節)」を通じて概要を示す.その後,2節と3節では「年表リスト(2.1節)」と同じ階層構造の各節において,各CNNの「構成図」と「主な貢献の紹介」を各節にて行う.
1.2 年表リスト
冒頭にも述べたように,この年表リスト記事では,ResNet (2015年)を,大きな転換点を起こした「中間点としての主役」として,前後2つの年代の区切りとみなしたい.よって,「AlexNetからResNetまで」の前半リストと,「ResNetよりあとのバックボーン(3節)」の前後半リストに分割した.
この1.2節では,その前半・後半リストを述べたのち,各世代の大きな流れを文章で述べることで,世代全体の概要を示す.
1.2.1 前半:AlexNetからResNetまで
前半リストでは,CNNの黎明期であった「AlexNetからResNetまで」を,登場順に列挙し,各バックボーンのその特徴も列挙して一旦まとめておく:
- 2.1節 AlexNet [Krizhevesky et al., 2012]:
- ReLUの初導入
- 227 x 227 x 3 の大きなRGB画像入力を初めて使用.
- 過学習対策(ドロップアウト,局所応答正規化(LRN),AlexNet式のデータ拡張)
- 重なり有り最大値プーリング.
- 2.2節 20層程度まで深くなる + 省パラメータ化の進展.
- 2.2.1 Network in Network [Lin et al., 2013](※CIFAR-100向け小規模FNN)
- 1 x 1 畳み込み,グローバル平均値プーリングの提案.
- 「ブロック化」して層をまとめ,層のように使う発想の登場.
- 2.2.2 InceptionNet v1 (2014). 22層:
- Inceptionモジュールを基本ブロックに使用.
- ブロックは「複数サイズのカーネル経路でワイド化」して構成.
- Inception モジュール内の各経路で 1 x 1 畳み込みで次元削減.
- 終盤に [7 x 7] の グローバル平均値プーリングを使用し,パラメータを節約.
- 補助識別器による中間損失の追加.
- InceptionNet式のデータ拡張
- 2.2.3 VGGNet (2014): VGG-11層/16層/19層:
- 畳み込み層を[3 x 3]のみにし,パラメータ数も抑えながら認識精度が向上.
- 1 x 1 畳み込みで,中間層の表現を制限.
- マルチスケールにデータ拡張(スケール変化への対応)
- VGGNet式のデータ拡張.
- 2.2.1 Network in Network [Lin et al., 2013](※CIFAR-100向け小規模FNN)
- 2.3節 複数経路化し,更に深く.
LeNetは [32 x 32] の数字文字画像をクラス認識する用途限定であった.その後ディープラーニングやCNNの研究にはブレイクスルーは行らず,手作り特徴を用いた非DNN手法が画像認識の主役であった.
そんな中,AlexNet が登場し,画像認識CNNの黎明期に突入した.VGGNetやInceptionNetのように,空間方向への表現度を,層の数を20層程度まで増やしつつ効率的に高めていくのが,まずは当初の主眼であった(最終的に[3 x 3]カーネル主体となった).
NiN (2013) の提案を契機に,(1) 1 x 1 畳み込みによる次元削減(パラメータ節約),(2) 全結合層の代わりの「グローバル平均プーリング」の2つが定番化して活用されはじめたのも,重要な転機である.これら2つの省パラメータ化は,CNNの「性能とモデルサイズの間のトレードオフ」を向上させ始めた.また,パラメータ総数が減るので「過学習」の抑制にも繋がる.同じく,NiNで提案された「ブロック化」のアイデアが,InceptionNetやResNetで花開き,定番戦略となる点も重要である.
ResNetの,シンプルな「残差接続による残差ブロック化」の提案により,50層以上の深いモデルを劣化問題も避けつつ,高精度・高速に学習可能となった.以降,更なる大規模モデル化による表現力巨大化(とそのための省モデル化)が,CNN発展方向の新たな主眼となる.
ResNet型バックボーンの発展(Inception-ResNetやResNext)は,物体検出・セマンティックセグメンテーションや,3D畳み込みを用いたアクション認識など,「モデル規模の大きさが,ものをいうタスク」の精度向上にも貢献していく.また,残差接続とマルチヘッドアテンションブロックを主部品とするTransformerの登場に繋がった意味でも,ResNetの登場は非常に重要なターニングポイントであった.
1.2.2 後半: ResNet以降のCNN
後半リストでは,ResNetよりあとに提案された代表的CNNを列挙する:
※ MobileNetなどの「軽量CNN」の路線は,別途他の記事でまとめたい.
- 3.1 InceptionNet の発展
- 3.1.1 InceptionNet v3 (2016):
- 汎化性能を落とさずパラメータ削減するために,Inceptionブロック内を改善:
- NiNのように,畳み込みを1 x 1 畳込み層 を使って因数分解.
- ブロック内を,空間サイズ削減モジュールで,次元削減効率を改善.
- ラベル平滑化を提案.
- 汎化性能を落とさずパラメータ削減するために,Inceptionブロック内を改善:
- 3.1.2 InceptionNet v4 と Inception-ResNet (2017)
- Inceptionブロック内に残差接続を追加し,層の深さを拡大.
- 3.1.1 InceptionNet v3 (2016):
- 3.2 「分離可能畳み込み層」による計量モデル化:
- 3.2.1 MobileNet (2016)
- 3.2.2 Xception (2017)
- 3.3 DenseNet (2016):
- 直列CNNで,全ての層間をスキップ接続でつなげる.
- 3.4 ResNext (2017):
- 残差ブロックの内部を,大幅にワイド化.
- グループ化畳み込み層により,そのワイド化を効率的に実現.
- Squeeze-Excitation Network(SE-Net) (2018) [ISLVRC 2017勝者]
- チャンネルごとの重みづけ(※ 発想が,このあと登場するCBAMなどの「空間-チャンネル単位アテンション」のさきがけになっている)
ResNetの直後の2015-2016年ごろ,加速度的にCNNは発展する:
- Inceptionネットが更に v3, v4や DenseNet,ResNext など,これまでの工夫を融合させた『合わせ技一本』のCNNの登場が続いていく.
- 一方,2015年以降,物体検出やセマンティックセグメンテーション,人物姿勢推定にインスタンスセグメンテーションや,画像対画像変換などのタスクの研究が盛んになる.これらは,ImageNetの物体認識タスクとは異なり「画素や領域単位での密な予測」が必要なタスクである:
- 出力層の特徴マップに,各画素や各領域において「広範囲の周辺コンテキストを正確に捉えた特徴」を作る必要がある「より受容野を広げることができる畳み込み層・プーリング層やブロック構造」が必要となり,膨張畳み込み層や空間ピラミッドプーリングなどが,各タスクで提案された.
- 画素単位の出力マップ・画像では,対称構造のEncoder-Decoderを組むので,単純にデコーダが追加されたぶんだけ,画像識別CNNの2倍のモデルサイズが必要になる(例: U-Netなど).
- 更には,COCOデータセットやADE20Kデータセットのように,予測対象物体のマルチスケール変化にも対応する必要が出てきた.
このように,各画像応用タスク向けに,広範囲の特徴を畳み込んで行きたいので,CNNバックボーンを計算効率化し,省パラメータに留めておきたいニーズが増えていき,たくさんの研究が行われていった.
(この記事のテーマの)物体認識向けのCNNでは「空間方向 or デプス単位」の分離可能畳み込み層や,チャンネル単位の重みづけ(SE-Net, CBAM)などが提案されていく.逆に,それ以外の上記各タスクむけ工夫は,この記事上には登場しないことに注意(例:FPNや,DeepLab/PSPNetなどの空間ピラミッドプーリングなど).
最終的には,自動運転寄りの物体検出やセグメンテーション向けの,効率的なバックボーン構造としてDeep Layer Aggregation (2018) が登場したが,CNN自体がもう過渡期に入っていく.2020年以降は,次世代の画像向けバックボーンとして,Vision Transformer (ViT)の研究が盛んになっている.
2. AlexNet から ResNet までのCNNバックボーン
2.1 始点である「AlexNet」
AlexNet (2012)は,ImageNetの物体識別向けCNN構造の初提案である(図2).過学習問題を打破し,ImageNetデータセットに対して,巨大な物体識別むけCNNを初めて学習できるようになった.
主な貢献
- [227x 227] x 3 の大きなRGB画像入力を初めて使用.
- ReLUの初導入 (LeNetの中間層活性化関数は,tanh中心であった).
- 過学習対策:
- ドロップアウト
- 局所応答正規化(LRN)
- AlexNet式のデータ拡張.
- 重なり有りの最大値プーリング.
AlexNetはILSVRC2012の勝者で,ImageNetにおける物体認識の誤差率は15%程度で,2位以下の古典的な非ディープ手法に10%程度の大差をつけて優勝した.これにより,明確なパラダイムシフトを起こし,画像認識業界のみならずパターン認識界隈全体のCNN・ディープラーニングへの移行も促した.
2.2 ブロック化の導入により20層程度まで深くなる
2014年のILSVRCでは,InceptionNet v1とVGGNetが,ともにImageNetの認識誤差率 7%付近を達した.両者とも畳み込み層合計が20層程度のモデルを提案した.
2.2.1 Network in Network
Network in Network(NiN) [Lin et al., 2013] は,大規模CNNの提案ではなく,CIFAR-10やMINISTで実験された「中規模サイズの画像認識ネットワーク」の研究である.しかし,InceptionNet v1 とVGGNetの登場につながる意味で重要な提案である.
NiNは,畳み込み層の代わりに,画像の局所内だけの処理を行う小規模MLPの「MLPconvブロック(全結合層で,畳み込み層の代役を担うという意味)」を,3ブロック繰り返す.つまりは「ネットワークの中に畳み込み代わりの小ネットワーク=ブロック」を,何度も用いるという,「ブロック構造化」の初期提案であった.また,最後の全結合層も無くし「グローバル平均プーリング」に代えた構造を提案した.
のちの研究に影響を与える,NiNの重要点は以下の3点である:
- 複数の層を「ブロック化して」小ネットワークブロックとしてまとめ,何度もブロックを使用するというアイデア.
- MLPconvブロックの最後の層に「 1 x 1 畳み込み 」を用いたチャンネル方向次元削減を提案した.
- 終盤ヘッド部の全結合層を,グローバル平均プーリングで差し替えることを提案した.パラメータ無しで済むので,ネットワーク全体のパラメータ削減につながり,正則化の作用も得られる.
2.2.2 Inception v1 (GoogleNet)
Inception v1 は ILSVRC 2014の勝者の1位の研究で,Googleが提案した.その後TensforflowやTPUと共に,自社発CNNモデルとして,Google社にプッシュされていく「InceptionNetシリーズ」の最初の提案である.
主な貢献:
- 畳み込み層の代替として,Inceptionモジュール(図3)を基本単位に用いる構造を提案
- 内部はワイドに並列化し,サイズの異なる畳み込みを並列経路で実行してあとでチャンネル方向に結合.
- 1 x 1 畳み込み層で,各経路の次元を毎回削減し,モジュールを省エネ化.
- 補助識別器を用いた中間損失を2個追加し,深いネットワークでも学習しやすくした.
- 終盤のヘッド部分の全結合層の代わりに, [7 x 7]のグローバル平均プーリングを使用することで,パラメータ数を削減.
2.2.3 VGGNet
VGGNetは, ILSVRC 2014 2位の研究である.単純な直列構造で,構造をここから加工しやすく,ImageNetからマルチスケール学習済みのバックボーンとして,全結合以前の部分が,画像認識以外にも用いられることが多かった.例えば,物体検出のFaster R-CNN や,セマンティックセグメンテーションのFCNなどが,学習済みVGGNetをもとに精密調整(fine-tuning)する「VGG-like構造」を提案しており,それらのタスクではVGGNetがこの時期よく使用された.
また,公開されている学習済みモデルから,終盤ヘッド部の全結合層から,中間特徴ベクトル(4096次元)を取り出して使いやすいことから,当時の画像認識研究でもよく使用された.
主な貢献:
- VGG-11層/16層/19層の3つのモデルを提案.
- 畳み込み層のサイズを[3 x 3]のみにし,パラメータを抑えながらも深くでき,認識精度が向上.
- 1 x 1 畳み込みで,中間層の表現を制限.
- マルチスケールなデータ拡張(スケール変化への対応)を提案.
2.3 さらに深く複数経路へ
2.2節(2014年ごろ)の,VGGNet・InceptionNet(v1)からは,CNNの層数が20程度まで深くなってきており,高い表現力が必要な大規模パラメータモデルが必要な,画像認識の性能は向上してきていた.しかし,深さが増すことに伴い,勾配が遠くの層まで少量しか伝えづらくなり(勾配消失問題),バックプロパゲーションによる学習を難しくしていた.当時,学習の重み初期化は存在してたが,まだバッチ正規化が登場していないので,それ以上の学習の収束性・速度向上はできなかった.
そこで2015年ごろには,スキップ接続をもちいて,画像認識CNNを更に深くする路線に研究のフォーカスがあたった.Highway network (2.2.1節)と,CNNやディープラーニングにおいて特に重要な研究である ResNet (2.2.2節)も並行して登場した.この深くしていく路線は,次の2016年に,DenseNet, ResNeXtの登場へもつながる(3節).
この記事では対象外であるが,FCN (2014)やU-Net (2015)などの意味的分割においても,スキップ接続が広く活用される展開になった.Highway networkの登場をきっかけに,2016年には,スキップ接続を更に,深く複数の経路で行うCNNが提案されていく(ResNetやDenseNetなど).
一方,Inception v1 (2.2.2節)も,Inceptionモジュール内では複数経路化していた.それが,2015年以降は,層間でのスキップ接続をもちいた「複数経路化」が,主要な画像認識CNNの発展路線となりだす.その続きで,2016年(3節)に入ると,「 ワイド化(16経路や32経路)」にフォーカスがあたる (Inception v3 ,ResNeXt,WideResNetなど).
2.2.1 Highway network
Highway network [Srivastava et al., 2015a] は,層間のスキップ接続を画像CNNに使用することを提案したネットワークである.Highway networkは,2つのゲート機構を用いて,スキップ接続間の送信量の調整量(=ゲート係数)も加えて学習する(このあとのResNetでは,スキップ接続後は,特徴マップ同士を単に加算するだけである).
2.2.2 ResNet
Residual Nerual Network(ResNet) (図5)は,「残差ブロック」を直列に超多数接続するだけの構造である.残差接続により,遠くの奥の序盤層まで誤差を逆伝搬しやすくなったことで,とても深くて高性能なCNNを,高性能かつ高速に学習できる(Highway networkと同時期の2015年の同時研究).
ResNetは,学習可能な畳み込み層が,50層, 101層, 152層からそれぞれ構成される3種類のモデルが提案された.
ResNetでは,残差ブロックごとに存在するスキップ接続のことを残差接続とよぶ (※ Highway Networkはスキップ接続内にゲート機構を置くが,残差接続には学習パラメータがない).N個の(2股の)残差ブロックで構成されるResNetでは,ブロック単位で見ると,$2^n$個の経路が存在する.
これにより,学習時には $i$ 番目の残差ブロックである $F_i$に,個別に勾配が逆伝搬されるので,全体の最適化ではなく,各$F_i$の収束を個別に目指す「分散的なアンサンブル学習化」が達成され,収束性能が高まることになった上,多層化で起きる劣化問題も回避することができる.こうして,ResNetは超多層であるモデルに対して,容量の大きさどおりの高い性能を,はじめて発揮できるCNNとなった(前年登場のVGGNetやInceptionNetでは,まだ超えられなかった壁である).ILSVRC 2015において1位を獲得し,ImageNetの物体認識における誤差率を 3%台まで向上させることに成功した.
Highway networkや他のスキップ接続使用CNNでも,スキップ接続の利点を活用しているところまでは同じなのであるが,ResNetは,それを細かいブロック単位に分割し,50~150の超多層化をはじめて実現したところに,違いと新規性があった.
3. ResNet以降のバックボーン
ResNet以降は「残差ブロックでまとめて,それを繰り返す」を,更に発展させていくのが中心的な発展方向となった.実際,Inception-ResNet(3.1.2節), DenseNet(3.3節),ResNeXt(3.4節), SE-Net(3.5節)などは,どれも残差ブロックの改善を提案したものであった.
一方で,更に大規模モデル化してきたCNNを,「軽量モデル化(3.2節)」したいという,認識精度向上とは別軸のCNN(や畳み込み層)の発展がはじまった.大規模CNNを軽量化できれば,中央クラウドサーバー上での電気料負担が減り,計算高速化によってビジネス貢献度も向上する.また,組み込み環境やスマートフォンや,デスクトップPC上などでも動かせると,より応用やビジネスの幅が拡がる.この流れで,MobileNetやXceptionに,ShuffleNetなどが登場した.
3.1 Inception v3 と v4
3.1.1 Inception v3
Inception v3 では,以下の2点でInceptionモジュールの改善が行われた:
- 因数分解された[7 x 7] 畳み込み層.
- 空間サイズ削減ブロックを導入.
- 正則化手法のラベル平滑化の提案
ラベル平滑化(ノイズを足してソフトラベルへ転換する手法)は,あとで応用が拡っていくので,重要な提案である.
3.1.2 Inception v4と Inception-ResNet
InceptionNet v4 の研究の主眼,InceptionNet v3への残差接続の導入である.その結果InceptionNet「更なる深いモデル化」が行われ,以下の3つのモデルが提案された:
- InceptionNet v4: v3 の序盤を「stem(幹)」と名付けた2分岐ブロックへと差し替え.
- Inception-ResNet-v1: 残差接続ありのInceptionモジュールを導入.
- Inception-ResNet-v2: Inception-ResNet v1 を更に深く,幅を広くさせた.
このうち一番層の深い97層構成のInception-ResNet-v2が,その後,大規模モデルを用いる問題でよく使われるようになった.
3.2 軽量モデル化路線の登場
Googleの提案したMobileNetをきっかけに,CNNを省モデル化しつつも計算精度は損なわないようにすることで,モバイルや,組み込みでもCNNを使用できるようにしていこうという潮流が出てきた.
それまでも,畳み込みの [k × k]サイズを,[k × 1] → [1 × k] の2層に分解して代用する(空間方向の)分離可能畳み込み(separable convolution)という仕組みが既に存在していた.これは,元の [k × k]の畳み込みが,2kにまでパラメータを削減できる利点がある.それを,Xception, MobileNet では,代わりに深さ単位分離可能畳み込み層を使用することを提案する.
3.2.1 MobileNet
MobileNetは,当時のLeNet的な直列型CNNの畳み込み層を深さ単位分離可能畳みに差し替えたものを,モバイル向けの軽量CNNとして提案した(ヘッド部分はグローバル平均値プーリング).当時のVGGNetやInception v2などは,まだメモリ容量も大きく,予測にかかる時間も長くスマートフォン上でCNN予測を実行することが厳しかった.それが,MobileNetを契機に,軽量化CNN路線の研究と実用が活発になり,それが可能となってきている.
MobileNetでは,様々なタスクでの実験が行われた.例えばImageNetでの画像認識では,VGGNetやGoogleNetとほぼ同等の認識精度(およそ70%)を達成した.VGG-16層はパラメータ数が約1.4億個であり,InceptionNet v1 はその半分の700万個であるのに対して,MobileNetは400万個で済んでいる.
COCOデータセットで物体検出のバックボーンでも実験が行われ,SSD と Faster R-CNNのバックボーンにVGGやInception(v2)を用いた場合と,ほぼ同等のmeanAPを出した.これも,VGGは14億で,Inception(v2)はその10/1程度の1300万パラメータであるが,MobileNetは更にその半分以下の600万パラメータで同程度の精度を達成している..
こうして組み込み上の小さめのメモリにも載せられるような,CNNの大幅なパラメータ削減が達成された.MobileNetをきっかけにモバイル組み込み用途向けのネットワークの提案も増えていく.
3.2.2 Xecption
Xception は,InceptionのInceptionモジュールに,深さ単位分離可能畳み込みを導入した.これにより,パラメータ削減をしつつ,モジュールのワイド化を行った.Inception(ブロック)を,extreme(極端)にワイドなXceptionモジュールに発展させたということで,CNNの名前を「Xception」と命名した.
InceptionモジュールのXceptionモジュール化によって,Inception v3を,モバイル組み込み向けにパラメータ削減や計算速度の効率化を達成しながらも,認識精度は元のInception v3 と同等の精度を保つことが可能になった.
3.3 DenseNet
DenseNetは,「Denseブロック」を直列につないだ,ResNetの発展版CNNアーキテクチャである.Denseブロック内は,残差ブロックの極端版であり,(例えば)4サブブロックから構成されるDenseブロックでは,4つのサブブロック間が,お互い全てスキップ接続されてある,Denseなブロック構造である.
DenseNetの設計の目的も,ResNet (やHighway Network)と同じで,スキップ接続を利用したショートカット伝搬による,勾配消失問題の対策である.ResNetの残差接続では,スキップ接続後の特徴マップと加算で特徴を合成していたが,これだと後続の特徴になると足し込まれていって,序盤の情報が消えて効果を成さない危惧があった.
この発想から,DenseNetでは,加算でなく2パスの特徴マップを毎回チャンネル方向に結合して,合成しない方針を採用した.これにより,残差側を通る特徴マップもそのまま加工無しに生き残り,後半までそのまま保持できる.ただし,そのぶんだけ奥になるほど,どんどんチャンネル数が増えていってしまいカーネル数が徐々に増えていってしまう.そこで,Denseブロックの出力は毎回 kチャンネルに固定するようにした.また,中間で一度 1 x 1畳み込みを挟むことで,効率化も行った.
以上のような工夫により,ResNetに対して畳み込み層の総数の大幅な増加を実現しながらも,DenseNetは軽量化を実現し,なおかつ高速学習+高速なテストが実現できるようになった.よって「ResNetよりも大規模な軽量モデル」として広く使われる可能性があったが,先に登場して人気になったResNetやResNextが各論文で使われたせいで,それらとの平等な比較をするためにDenseNetの出番はあまり出てこなかった.また,その翌年から空間アテンションが流行して,潮流が代わり,なおさらDenseNetは中途半端な人気に終わってしまった側面がある.
3.4 ResNext
ResNext は,残差ブロック内を大幅にワイド化させた,ResNetの正当進化版であり,人気の定番CNNバックボーンである.単純なワイド化だと計算負荷が高いので,AlexNet論文で提案されていたグループ化畳み込み層を用いることで,ワイド化を行い計算効率は上げつつ,物体認識精度を向上させた.
ResNeXtは,ResNetの著者らグループ自ら提案したResNetの改善版であり,著者らは同時期に,Mask R-CNN の論文でインスタンスセグメンテーションのバックボーンにResNeXtが有効であることも示した.これにより,画像識別以外の様々なタスクでも,ResNeXtは(ResNet同様に)頻繁に応用されることになった.
4. まとめ
以上,この記事では画像認識向けのCNNバックボーンについて,以下のの2つの世代順に,(ILSVRCの上位を取った)代表的な設計について,その変遷・比較を紹介した.
- 「AlexNet~ResNetまで」
- 「ResNet以降 ~ DenseNet / ResNeXtあたりまで」
(空間)アテンション中心のSE-Net以降の時代は,とりあげていない.また,MobileNetなどの軽量モデル路線についても,別記事にまとめる予定である.
各バックボーンの詳細は,個別の記事で確認してもらいたい.
参考書籍
- Pythonで学ぶ画像認識 (機械学習実践シリーズ), 田村 雅人, 中村 克行, インプレス, 2023.
- 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之,講談社,2022.
- ディープラーニングを支える技術——「正解」を導くメカニズム[技術基礎],岡野原大輔,(Tech × Books plus), 技術評論社,2022.
- 5章 画像認識 AlexNet/VGGNet/Inception/ResNet/DenseNet (p224~235)
References
- [Kahn et al., 2019] A. Khan, A. Sohail, U. Zahoora, and A. S. Qureshi, ‘‘A survey of the recent architectures of deep convolutional neural networks,’’ 2019, arXiv:1901.06032. [Online]. Available: https://arxiv.org/abs/1901.06032
- [Lin et al., 2013] Lin, M.; Chen, Q.; Yan, S. Network in network. arXiv 2013, arXiv:1312.4400.
- [Srivastava et al., 2015a] Srivastava RK, Greff K, Schmidhuber J (2015a) Highway networks. https://doi.org/10.1002/esp.3417
- [Srivastava et al., 2015b] Srivastava RK, Greff K, Schmidhuber J (2015b) Training very deep networks. In: Advances in neural information processing systems