CNNバックボーン(backbone)の代表的アーキテクチャの歴史 [まとめ年表]

1. CNNバックボーン(CNN backbone)とは [概要]

CNNバックボーン (backbone) とは,CNN(畳み込みニューラルネットワーク)のネットワーク構造のうち,序盤から終盤まで層の範囲全体のことをさす.脊椎生物に見立てた場合に,序盤から終盤までの背骨(backbone)にたとえる(※ 終盤の予測器部分を頭部(head)とよぶ.またFPNなどは,ヘッドとバックボーンの間に挿入される拡張機構なので首(neck)と呼ぶ).

この記事では,CNNバックボーンの代表的な設計を,登場順に概要・特徴を列挙することで「CNNバックボーンの歴史のまとめ」を行う.より具体的には,ImageNetを用いた「物体画像クラスを識別するタスク」向けの代表的CNNバックボーンについて,「(1年ごとの)グループ分類」 と「 時系列順の列挙」の2つを同時にまとめた「グループ化 + 年表化」の節構成とした.

また,年表全体の見晴らしをよくするために「ResNet」を大きな転換点とみなし,AlexNet (2012)後の主要CNNバックボーンを,ResNet以前(2節)ResNet以後(3節)の2つの年代に区切り,登場順・グループごとに各節にまとめて年表・グループ化した.

インスタンスセグメンテーションの記事でも,同じ「1年ごとにグループ化する」節構成になっている.深層学習時代は,その研究人口の多さから,同じフォーカスで従来手法を改善する並行研究(=似たようなアイデア同士の同時期研究) が発生することが多い.したがって,それらの似た手法のグループは,トップ国際会議の循環周期である半年・1年ごとで,形成されやすい.

また,参考にしたサーベイ [Kahn et al., 2019] などのように,よくある「網羅的な全列挙」はしていない.代わりに,歴史的に重要なCNNのみを厳選し,全体の大まかな流れがつかめるコンパクトな年表にしたつもりである.

(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にあたる)概要構成図の提示」と,「主な貢献リストと歴史的重要点の紹介」を,各節にて行う.

各CNNの詳細は,対応する子記事をご覧頂きたい.

1.2 年表リスト

冒頭にも述べたように,この年表リスト記事では,ResNet (2015年)を,大きな転換点を起こした「中間点としての主役」として,前後2つの年代の区切りとみなしたい.よって,「AlexNetからResNetまで」の前半リストと,「ResNetよりあとのバックボーン(3節)」の前後半リストに分割した.

この1.2節では,その前半・後半リストを述べたのち,各世代の大きな流れを文章で述べることで,世代全体の概要を示す.

1.2.1 前半リスト(2節):AlexNetからResNetまで

前半リストでは,CNNの黎明期であった「AlexNetからResNetまで」を,登場順に列挙する:

  • 2.1節 AlexNet [Krizhevesky et al., 2012]:
    • 227 x 227 x 3 の大きなRGB画像入力を初めて使用.
    • ReLUの初導入.(LeNetの活性化はTanh中心+sigmoid).
    • 過学習対策(ドロップアウト,局所応答正規化(LRN),データ拡張)
    • 重なり有り最大値プーリング.
  • 2.2 節 20層程度まで深くなる + 省パラメータ化の進展.
    • 2.2.1 節 Network in Network [Lin et al., 2013](※ CIFAR-100向けの小規模モデルである点に注意):
      • 1 x 1 畳み込み,グローバル平均値プーリングの提案.
      • 「ブロック化」して層をまとめ,層のように使う発想の登場.
    • 2.2.2 節 InceptionNet v1 = GoogleNet (2014). 22層:
      • Inceptionモジュールを基本ブロックに使用.内部はワイドで,複数サイズのカーネル経路から構成.
      • Inception モジュール内の各経路で 1 x 1 畳み込みで次元削減.
      • 終盤に7 x 7 グローバル平均値プーリングを使用し,パラメータを節約.
      • 補助識別器による中間損失の追加.
    • 2.2.3 節 VGGNet (2014): VGG-11層/16層/19層:
      • 畳み層を「3 x 3」のみにし,パラメータを抑えながらも深くでき,認識精度が向上した.
      • 1 x 1 畳み込みで,中間層の表現を制限.
      • マルチスケールにデータ拡張(スケール変化への対応).
  • 2.3節 複数経路化し,更に深く. 
    • 2.3.1 Highway Network (2015)
      • ゲート機構による流量の調整ありで,スキップ接続で相関をつなぐ.
    • 2.3.2 ResNet (2015) ResNet-51層/101/152層:
      • 残差接続で複数層を囲いモジュール化する「残差ブロック」の提案.

LeNetは 32 x 32 サイズの数字文字画像のクラス認識限定であった.ブレイクスルーがなかなか起きないままディープラーニングやCNNの研究行われていたが,決定的な手法は出てこず,手作り特徴を用いた非DNN手法が,画像認識の主役であった.

そんな中,AlexNet が登場し,画像認識CNNの黎明期に突入した.VGGNetInceptionNetのように,まずは空間方向への表現度を,層の数を20層程度まで増やしつつ効率的に高めていくのが当初の主眼であった(最終的に3 x 3カーネル主体に).

NiN (2013) の提案を契機に,(1) 1 x 1 畳み込みによる次元削減(パラメータ節約),(2) 全結合層の代わりの「グローバル平均値プーリング」の2つが定番化して活用されはじめたのが重要点である.これら2つの省パラメータ化は,CNNの「性能とモデルサイズの間のトレードオフ」を向上させ始めた.また,パラメータ総数が減るので「過学習」の抑制にも繋がる.

同じく,NiNで提案された「複数層をブロックにまとめて繰り返す」というアイデアが,InceptionやResNetで花開き,その後も,ブロック化が定番戦略になる点もCNNの歴史では重要である.(逆に,AlexNetやVGGNetは,ひたすら直列につなぐLenetスタイルのCNNの発展であったと言える)

ResNetの,シンプルな「残差接続による残差ブロック化」の提案により,50層以上の深いモデルを劣化問題も避けつつ,高精度・高速に学習可能となった.ResNet以降,更なる大規模モデル化による表現力巨大化(とそのための省モデル化)が,CNN発展方向の新たな主眼となる.

ResNet形バックボーンの発展(Inception-ResNetやResNext)は,物体検出や3D畳み込み動画認識などの「モデル規模の大きさがものをいうタスク」の精度向上にも貢献していく.また,残差接続を利用したTransformerの登場に繋がった意味でも,ResNetは重要である.

1.2.2 後半リスト(3節): ResNetよりあとのCNN

後半リストでは,ResNetよりあとに提案された,代表的なCNNを列挙する:
(※ MobileNetなどの「計量CNN」の路線は,別途他の記事でまとめたい.そして,この記事の4節としてリンクを追加したい):

  • 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.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に進化し,ResNextや Inception-ResNet, DenseNetなど,これまでの工夫を全て使って融合させた『合わせ技一本』系のネットワークが,物体画像識別向けのCNNは最終形態に向かっていく.
  • 一方,2015年以降,物体検出セマンティックセグメンテーション人物姿勢推定インスタンスセグメンテーションや,画像対画像変換などのタスクの研究が盛んになる.これらは,ImageNetの物体画像のクラス識別タスクとは異なり,「画素や領域単位での密な予測」が必要タスクである:
    • 出力層の特徴マップでは,各画素や各領域において「広範囲の周辺コンテキストを正確に捉えた特徴」があらたに必要となる.物体画像クラス識別CNNよりも,受容野を広げるための計算負荷が高くなったCNN構造や必要となった(膨張畳み込み層などが登場する).
    • 画素単位の出力マップ・画像では,対称構造のEncoder-Decoderを組むので,単純にデコーダが追加されたぶんだけ,画像識別CNNの2倍のモデルサイズが必要になる(例えばU-Netなど).更には,COCOデータセットやADE20Kデータセットのように,予測対象物体のマルチスケール変化にも対応する必要があり,スケール変化はあまり気にしなくてよかったImageNet向けのCNNとは,解く問題が異なっていった.

このように,各画像応用タスク向けに,広範囲の特徴を畳み込んで行きたいので,CNNバックボーンを計算効率化し,省パラメータに留めておきたいニーズが増えていき,たくさんの研究が行われていった.

この記事のテーマの,物体画像認識向けのCNNでは(空間方向 or デプス単位)分離可能畳み込み層や,チャンネル単位の重みづけ(SE-Net, CBAM)などが提案されていく.逆に,それ以外の上記各タスクむけに提案された工夫は,この記事上には登場しないことに注意(例:マルチスケール変化対応目的の,特徴集約(FPN)空間ピラミッドプーリングなど).

最終的には,自動運転寄りの物体検出やセグメンテーション向けの,効率的なバックボーン構造としてDeep Layer Aggregation (2018) が登場したが,CNN自体がもう過渡期に入っていく.2020年以降は,次世代の画像向けモデルとして,Vision Transformer (ViT)の研究が盛んになっている.

2. AlexNet から ResNet までのCNNバックボーン

2.1 始点である「AlexNet」

AlexNetの構造
図2 AlexNetの構造

AlexNet (2012)は,ImageNetの画像認識向けCNN構造の初提案である(図2).過学習問題を打破し,ImageNetデータセットに対して,まともな画像識別CNNを初めて学習できるようになった.

主な貢献:

  • 227x 227 x 3 の大きなRGB画像入力を初めて使用.
  • ReLUの初導入.(LeNetの活性化はTanh中心+sigmoid).
  • 過学習対策:ドロップアウト,局所応答正規化(LRN),データ拡張.
  • 重なり有りの最大値プーリング.

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-100やMINISTで実験された「中規模サイズの画像認識ネットワーク」の研究である.しかし,InceptionNet v1 とVGGNetの登場につながる意味で重要な提案である. 

NiNは,畳み込みの代わりに,画像の局所内だけの処理を行う小規模MLPの「MLPconvブロック(全結合層で畳み込み層の代役をするという意味)」を,3ブロック繰り返す.つまりは「ネットワークの中に畳み込み代わりの小ネットワーク=ブロック」を,何度も用いるというブロック構造化の初期提案であった.また,最後の全結合層も無くし,「グローバル平均プーリング」に代えた構造を提案した.

のちの研究に影響を与える,NiNの重要点は以下の3点である:

  • 複数の層を「ブロック化して」小ネットワークブロックとしてまとめ,何度もブロックを使用するというアイデア.
  • MLPconvブロックの最後の層に「 1 x 1 畳み込み 」を用いたチャンネル方向次元削減を提案した.
  • 「グローバル平均プーリング」で全結合層に差し替えることを提案した.パラメータ無しで住むのでネットワーク全体のパラメータ削減につながり,そのおかげで正則化の作用も得られる.

2.2.2 Inception v1 (GoogleNet)

InceptionNet v1 の Inceptionモジュール
図3 Inception モジュール 
(a)ナイーヴな基本構造 (b)実用使用版(次元削減を追加)

Inception v1 は ILSVRC 2014の勝者の1位の研究で,Googleが提案した.その後TensforflowやTPUと共に,自社発CNNモデルとして,Google社にプッシュされていく「InceptionNetシリーズ」の最初の提案である.

主な貢献:

  • 畳み込み層の代替として,Inceptionモジュール(図3 )を基本単位に用いるInecptioNetを提案
    • 内部はワイドに並列化し,サイズの異なる畳み込みを並列経路で実行してあとでチャンネル方向に結合.
    • 1 x 1 畳み込み層で,各経路の次元を毎回削減し,モジュールを省エネ化.
  • 補助識別器を用いた中間損失を2個追加し,深いネットワークでも学習しやすくした.
  • 終盤に 7 x 7 グローバル平均値プーリングを,全結合層の代わりに使用し,パラメータ削減.

2.2.3 VGGNet

VGGNet-16層 の構造
図4 VGGNet-16層 の構造

VGGNetは, ILSVRC 2014 2位の研究である.単純な直列構造で,構造をここから加工しやすく,ImageNetからマルチスケール学習済みのバックボーンとして,全結合以前の部分が,画像認識以外にも用いられることが多かった.例えば,物体検出のFaster R-CNN や,セマンティックセグメンテーションのFCNなどが,VGGnetからファインチューニングして学習する「VGG-likeの構造」を提案しており,それらのタスクではよくVGGが活用された.

また,公開されている学習済みモデルから,終盤全結合層から,中間特徴ベクトル(4096次元)を取り出して使いやすいことから,当時の画像認識研究でもよく使用された.

主な貢献:

  • VGG-11層/16層/19層の3つのモデルを提案.
  • 畳み層を「3 x 3」のみにし,パラメータを抑えながらも深くでき,認識精度が向上.
  • 1 x 1 畳み込みで,中間層の表現を制限.
  • マルチスケールなデータ拡張(スケール変化への対応)を提案.

2.3 さらに深く,さらに複数経路へ,

2.2節(2014年ごろ)の,VGGNet・InceptionNetからは,CNNの層数が20程度まで深くなってきており,高い表現力が必要な大規模パラメータモデルが必要な,画像認識の性能はあがってきていた.しかし,深さが増すことに伴い,勾配が遠くの層まで少量しか伝えづらくなり(勾配消失問題),バックプロパゲーションによる学習を難しくしていた.当時は,学習の重み初期化は存在してたが,バッチ正規化が登場していないので,それ以上の学習の収束性・速度向上はできなかった.

そこで,2015年ごろは,スキップ接続をもちいて,画像認識CNNを更に深くする路線に,研究のフォーカスがあたり,Highway network(2.2.1節)と,CNNやディープラーニングにおいて特に重要な研究である ResNet(2.2.2節)も並行して登場した.深くしていく路線は,次の2016年に,DenseNetへの登場へとつながる(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

ResNetのネットワーク構造
図5 ResNet のネットワーク構造

ResNet (図5)は,「残差ブロック」を構成単位としてそれを直列に超多数接続するだけの構造だが,それだけでとても深くて構成なCNNを,高性能かつ高速に学習できるCNNである(Highway networkと同時期の2015年の並行研究)

ResNetは,学習可能な畳み込み層が,50層, 101層, 152層からそれぞれ構成される3種類のモデルが提案された.

ReNetでは,残差ブロックごとに存在するスキップ接続のことを残差接続とよぶ(Highway Networkはスキップ接続内にゲート機構を置くが,残差接続はパラメータがない).N個の(2股の)残差ブロックで構成されるResNetでは,ブロック単位デ見ると,$2^n$個の経路が存在する.

これにより学習時には,$i$番目の残差ブロックの$F_i$に,個別に勾配が逆伝搬されるので,全体の最適化ではなく,各$F_i$の収束を個別に目指す「分散的なアンサンブル学習化」が達成されており,収束性が非常に高まった.これにより,多層化で起きる劣化問題も回避することができ,ResNetは超多層であるモデルの容量の大きさどおりの性能を,はじめてCNNで発揮できるようになった.これにより,ILSVRC 2015において1位を獲得し,ImageNetの誤差率を 3%台まで向上させることに成功した.

Highway networkや他のスキップ接続使用CNNでも,スキップ接続の利点を活用しているところまでは同じなのであるが,ResNetは,それを細かいブロック単位にわけて,50~150の超多層化をはじめて実現したところに違いと新規性があった.

3. ResNet よりあとのCNNバックボーン

ResNetよりあとは,「残差ブロックでまとめて,それを繰り返す」という発想を,更に発展させていくことが中心となる.実際,Inception-ResNet(3.1.2節), DenseNet(3.3節),ResNeXt(3.4節), SE-Net(3.5節)は,どれも残差ブロックの改善の提案である.

一方で,更に大規模モデル化してきた,それらのCNNを「軽量モデル化(3.2節)」したいという,認識精度向上とは別軸のCNN(や畳み込み層)の発展がはじまったResNet, InceptionNet, DenseNetなどの超大規模CNNモデルを軽量モデル化できれば,中央クラウドサーバー上での電気料負担が減り,計算高速化によってビジネス貢献度も向上する.また,組み込み環境やスマートフォンや,デスクトップPC上などでも動かせると,より応用の幅が拡がる.この流れで,MobileNetやXceptionに,ShuffleNetなどが登場した.(この3.2節の軽量モデル化路線については,のちのち記事がたまってきたら,別の記事でまとめたい).

3.1 Inception v3 と v4

3.1.1 Inception v3

Inception v3 では,以下の2点でInceptionモジュールの改善が行われた:

ラベル平滑化(ノイズを足してソフトラベルへ転換する手法)は,あとで応用が拡っていくので,重要な提案である.

3.1.2 InceptionNet v4と Inception-ResNet

InceptionNet v4 の研究の主眼,InceptionNet v3への残差接続の導入である.その結果InceptionNet「更なる深いモデル化」が行われ,以下の3つのモデルが提案された:

  • InceptionNet v4: Inception 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にまでパラメータを削減できる利点がある.

それを,MobileNetとXceptionでは,デプス単位分離可能畳み込み(depthwise separable convolution)が畳み込み層の代わりに用いることを提案する.これは,以下の仮定に基づいている:

  • 空間方向の相関チャンネル方向の相関は,2つの層にそれぞれ分割して学習したほうが,計算が効率的になるうえに,画像認識精度も向上するような畳みカーネル群を学習可能となる.

この仮定の元で,畳み込み層の処理を,以下の2つの順に処理を分割して,代替させた:

  1. 分離可能畳み込み(各チャンネル内で2D畳み込み):チャンネルごとに専用の(depthwise)フィルタを1枚ずつ用意し,空間方向に畳み込む.
  2. 1 x 1 畳み込み:(チャンネル間で1D畳み込み):特徴マップ上の各点(x,y)で,チャンネル方向に畳み込む.

こうしてチャンネル内の(2D)畳み込みチャンネル間の(1D)畳み込みの2つの計算(およびカーネル)に,処理を独立に分離させることで,計算効率が向上した上に,CNNの表現力も向上した.

※ ちなみに個人的には,この軽量化CNN界隈でも,depth-wiseではなく「channel-wise(チャンネル単位)畳み込み」と命名して欲しかった.チャンネル方向の「depth」だと,Network depth ともdepth同士で重複している「多義性」が産まれてしまうので,「なんの深さだっけ?」「テンソルのどの方向だっけ?」と,一瞬意味を考えてしまう人も出てくるからである.それが「channel-wise (separable) convolution」であれば,意味そのままであるだけでわかりやすいだけでなく,のちのSE-Net や,アテンションの channel-wise attention とも「channel-wise」で呼びかたが統一されるので,とても良かったはずである(※ 深層学習 改定第二版 (5.8.2節)でも,岡谷先生は,チャンネル単位畳み込み層の呼びかたとして,channel-wise を主たる呼び方として採用しており,depth-wiseは脚注側で触れている).同様に,軽量CNN構築目的の「 1 x 1 畳み込み層」も,point-wise convolution という呼びかたでも良いのだも,cross-channel (point-wise) convolution とでも呼んでいれば,ここで使用する目的通りの呼び名でわかりやすかったと思う

3.2.1 MobileNet

MobileNetは,当時のLeNet的な直列型CNNの畳み込み層をデプス単位分離可能畳みに差し替えたものを,モバイル向けの軽量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-RCNNのバックボーンに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 の構造
図 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の,グループ化畳み込みによる効率的ワイド化
図 ResNeXtの,グループ畳み込みによる効率的ワイド化 :
(a)効率化前のワイドなもの(32経路) (b) グループ畳み込み層で代替させ,1経路化

ResNext は,残差ブロック内を大幅にワイド化させた,ResNetの正当進化版であり,人気の定番CNNバックボーンである.単純なワイド化だと計算負荷が高いので,AlexNet論文で提案されていたグループ化畳み込み層を用いて,計算効率のよいワイド化を行いつつ,画像認識精度を向上させた.

ResNeXtは,ResNetの著者らグループ自ら提案したResNetの改善版であり,著者らは同時期に,Mask R-CNN の論文でインスタンスセグメンテーションのバックボーンにResNeXtが有効であることも示した.これにより,画像識別以外の様々なタスクでも,ResNeXtは(ResNet同様に)頻繁に応用されることになった.

4. まとめ

以上,この記事では画像認識向けのCNNバックボーンについて,「AlexNet~ResNetまで」と「ResNet以降~ DenseNet/ResNextあたりまで」の2つに分けて,(ILSVRCの上位を取った)代表的なアーキテクチャを列挙し,その変遷や比較を一挙にまとめて紹介した.

(空間)アテンション中心のSE-Net以降の時代は,とりあげていない.また,MobileNetなどの軽量モデル路線についても,別記事にまとめる予定である.

各バックボーンの詳細は,個別の記事で確認してもらえるとよい.

参考書籍

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

参照外部リンク

SNSでシェアやブックマークを行う