0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Net 並列に色んな認識してから合体!を解説

Last updated at Posted at 2023-05-28

原論文

日本語解説

関連研究

ResNetの解説
https://qiita.com/wakanomi/items/7bc4ebc2b3790fea90b9

結論

より深く広い深層学習モデルは表現力が高くなるけど,計算量が膨大であったり過学習の問題がある.大きいモデルの問題点である,疎なモデルを並列に異なる認識計算してコンキャットと($1 \times 1$)畳み込みでチャンネル方向の圧縮を繰り返して密なモデル(計算コストが最小限で有益なモデル)を実現する.また,その派生モデルは構造が複雑化する.

スクリーンショット 2023-05-28 6.56.03.png

概要

深層学習モデルはそのモデルの大きさに比例するように複雑な表現力を達成する.しかし,大きなモデルには疎なニューロンが無数に存在してしまい,計算コストの無駄が生じてしまう.上図の右に疎なモデルを示し,犬の目にしか発火しないニューロンなど限定的になる.例えば,人間の画像を入力とした際に疎なモデルで示すニューロンは全く発火せずに無駄なニューロンが多数存在することになる.この無駄な計算コストを削減するために,枝刈り手法などで密なモデルに改善していく目的がある.Google Netでは構造自体を密なモデルになるように,並列に異なる認識計算してコンキャットと($1 \times 1$)畳み込みでチャンネル方向の圧縮を繰り返して密なモデル(計算コストが最小限で有益なモデル)を実現する.これにより,画像分類タスクにおいて従来手法を上回る精度を達成した.

モデル構造

Google Netの全体像は下図に示す.複雑そうに見えるが並列に色んな認識してから後で合体しているだけである.
途中に抜け出している部分は大きいモデルで過学習を防ぐために,途中で誤差計算を挟んでいる(のちにGoogle Netの派生モデルでは削除されていく).

スクリーンショット 2023-05-28 11.48.55.png

Inception モジュール

Google Netの密なモデル構造の工夫としてInception モジュールがある.並列にそれぞれ異なるフィルタで特徴抽出を行い,処理後にチャンネル方向に特徴マップをコンキャットする.様々なカーネルサイズのフィルタで処理した情報が共有されるため,カーネルサイズに依存しない.また,それぞれの特徴抽出で疎な認識をしても情報は共有され密な認識となる.(例えば,フィルタそれぞれで犬の目,犬の鼻,犬の口,犬の耳の情報に発火するような学習をしたとしても,その情報はコンキャットされ1つの犬の情報に発火するニューロンが誕生する)
それぞれのフィルタで抽出した特徴マップをチャンネル方向にコンキャットするとチャンネル数が膨大になる問題点がある.そこで,下図の右に示す($1\times1$)の畳み込みがある.

スクリーンショット 2023-05-28 11.51.18.png

1x1畳み込みの役割

($1\times1$)の畳み込みは空間方向の特徴抽出ではなく,チャンネル方向の特徴抽出を行う.Google Netの場合,チャンネル数が多い特徴マップに対して,($1\times1$)の畳み込みをすることによってチャンネル数を圧縮する.チャンネル数を圧縮する目的として,チャンネル方向には元は同じ画素の情報が格納されている(入力画像の右下の情報は特徴マップ上でも右下に格納されている).チャンネル方向には似た特徴が格納されていることになる.この似た特徴は沢山もいらないので($1\times1$)の畳み込みによって圧縮する.また.その後の処理で行う,$5\times5$の畳み込みや,($3\times3$)の畳み込みのチャンネル数を減らし,計算量削減する効果もある.

Inception v2

Inception v2はGoogle Netにバッチ正規化(ミニバッチを平均0,標準偏差1になるように正規化)を導入したモデルである.

Inception v3

Inception v3はGoogle Netの認識性能と計算量効率の向上を行った.また,Google Netにある途中の識別器を削除する.計算量削減のために,Google Netの($5\times5$)畳み込みを($3\times 3$)畳み込み2回に変更する(どちらも受容野は5).($3\times3$)畳み込み2回に変更ことで計算量が削減され,通すフィルタの数が増えて表現力が向上する.また,($n\times n$)畳み込みを($n\times1$)畳み込みと($1\times n$)畳み込みに分担することで計算量を削減する.Inception v3のInceptionモジュールはより複雑化して,Inception v3モデルの後半の処理にInceptionモジュールを追加する.
As in figure5の部分に右に示すfig5のInceptionモジュールが導入される.figure6,7も同様である.

スクリーンショット 2023-05-28 12.25.39.png

空間サイズの削減

CNNモデルには畳み込み層とプーリング層を交互に行うことがスタンダードとされている.なので,認識には畳み込みとプーリングの両方を使用したい.しかし,下図の左のように先にプーリングを行うと特徴マップが小さくなり,表現力の低下.右のように先に畳み込み処理を含むInceptionを行うと計算量が多く必要である.そのため,Inception構造のような畳み込みとプーリングを並列に処理できる構造は特徴マップの空間サイズを小さくすることなく計算量を削減できる(特徴マップのチャンネル方向には($1\times1$)畳み込みで削減する).

スクリーンショット 2023-05-28 12.45.54.png

Inception v4

Inception v4ではより複雑性を持つ.より多くのフィルタを通す設計で表現力が向上する.
緑で示すInceptionモジュールは特徴マップの空間サイズを半分にするダウンサンプリングの役割も持つ.

スクリーンショット 2023-05-28 12.53.40.png

Inception-ResNet

Inception-ResNetではInceptionモジュールにResNetで提案されたスキップ接続を追加する.これにより,大きなモデル設計が可能になり,精度向上したモデルである.(スキップ接続の効果は関連研究のResNetの解説から)

スクリーンショット 2023-05-28 12.56.41.png

考察

CNNのカーネルサイズは人手で決定するので,狭いカーネルサイズと広いカーネルサイズどちらが良いのか論争はInceptionモジュールを使用したら,どちらの情報も共有できて解決するのかなと思いました.

おわりに

今回はGoogle Netについて解説した.並列に色んな認識してから後で合体することで密なモデルにする工夫である.より複雑化するInceptionモジュールでスキップ接続を追加すると大きなモデルに対応できて精度向上する.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?