LoginSignup
3
1

More than 1 year has passed since last update.

【E資格・深層学習】画像処理 重要なネットワーク(AlexNetなど)とその特徴

Posted at

1.初めに

JDLAのE資格受験に向けて、深層学習のうち画像処理に関わる技術を学習した。自分のノートに残しておくだけなのが勿体無いため、web記事にまとめる。
なお、E資格2021#2にはおかげさまで合格できた。

2.有名なネットワーク

古典的な画像処理では、人間が特徴量を作成してきた。例として、HOG特徴量、AKAZE特徴量などがある。これら古典的な特徴量と異なり、深層学習では、データから特徴量自身をアルゴリズムに学習させる。

このような画像処理の分野の中でも、用途・目的により大きく分けて3つにアルゴリズムを分類できる。
1.画像分類
画像分類は、1枚の入力画像に対して、あらかじめ設定したクラスへの分類結果1つを返すタスクになる。
インプットとアウトプットが1対1対応するタスク。

2.物体検知
実際の画像には、一枚の画像に複数の物体が写り、それらを判別するニーズがある。そのため、1枚の入力画像に対して、物体の位置と、特定した物体のクラス分類結果を返すタスクになる。
インプットとアウトプットが1対n対応するタスク。

3.ピクセル分類
1枚の画像ファイルは、一般に数千〜数百万・数千ピクセルのRGB情報を持つ。ピクセル単位でクラス分類を行い、物体検知よりも詳細に画像データを分類する。
インプットとアウトプットが1対n対応するタスク。

2-1.画像分類

2-1-1.AlexNet

特徴量設計を機械学習で実現した、初のモデル。
5層の畳み込みと3層の全結合層からなる。
2010年に提唱されたReLUを採用し、メモリ不足のためGPUも採用された。
データ拡張、ドロップアウトやバッチ正規化など、2021年現在常識となっている手法が採用されている。
特にドロップアウトは、過学習回避のための方策としてよく使われている。
論文(2012)
解説ページ

2-1-2.VGG

カーネルサイズを調整し、パラメータ数を減らしたアーキテクチャ。
シンプルでパワフル。
ネットワーク構造は16〜19層と深い。フィルタ(カーネル)は3x3、プーリングは2x2で固定。
すなわち、フィルタサイズを縮小し、層の多重化を実現することでモデル性能を向上させる。

vgg16.png

要点は以下の3つ。
①フィルタサイズ縮小
「5x5畳み込み」は、「3x3畳み込み」2回と等価。後者を採用し、計算量を削減。
スクリーンショット 2021-09-15 21.01.09.png
Fig. 3x3畳み込みのイメージ

②非線形演算を複数回行う。そのため、表現量を向上。
③学習パラメータ(フィルタ係数の数)を削減し、過学習を回避する。

論文(2014)
関連ページ

2-1-3.GoogLeNet

層を厚くして、かつ勾配消失問題を解消。
Inception moduleやMax pooling、などの工夫を導入。

スクリーンショット 2021-09-15 22.34.49.png

上記の疎な構造では、モデルサイズが無駄に大きくなるため、密な構造になるに工夫。

スクリーンショット 2021-09-15 22.35.04.png

具体的には以下の3つが工夫された項目。

①Inception module
複数種類の畳み込みの並列化。
1x1の畳み込み層、1x1のポイントワイズ層と3x3の畳み込み層、など複数の層をくみあわせ、ミニネットワークを形成することを、Network in Networksという。

スクリーンショット 2021-09-15 21.27.11.png

image.png

②Auxiliary Loss
中間層における誤差の計測

③Global Average Pooling
フィルタ平均による出力。
通常の全結合層は、HxWxCx出力層数だが、Cのみにパラメータ数を絞ることで、計算量を削減。

関連ページ(English)
point wise とdepth wise畳み込みの解説
サーベイ論文
論文(2014)

2-1-4.ResNet

Residual構造を導入。入力xを出力にバイパス(ショートカット接続)することで、F(x)が小さい時に出力が0にならないように対策。

スクリーンショット 2021-09-16 23.41.18.png

解説
論文(2015)

2-1-5.DenseNet

全てのレイヤー(層)が、次の層に繋がっている構造を導入し、特徴の層間の伝達を強化を行う。
Denseブロックを導入。

スクリーンショット 2021-09-17 0.03.49.png

解説
論文(2016~2017)

2-1-6.MobileNet

特徴は3点からなる。
①Depthwise separable Convolutions
Depthwise ConvolutionとPointwise Convolutionの2つを組み合わせた畳み込み。

Depthwiseは、チャンネル数は維持したまま、縦横方向にたたみ込む。ファイルサイズは1x1である。

Pointwiseは、縦横方向を維持したまま、チャンネル数を1にたたみ込む。

②Width Multiplier
モデルサイズの削減を目的に導入する実数の係数ρ。

③Resolution Multiplier
計算コストの削減を目的に導入する実数の係数α。

②と③を導入した後の計算量は以下の式で表される。

スクリーンショット 2021-09-17 0.19.46.png

解説
論文(2017)

2-2.物体検知

2-2-1.R-CNN (Region-CNN)

BBoxと物体分類を同時に実施。
最初に候補領域の特定、というタスクを、Selective Searchという古典的な手法(非深層学習)行っている。
こちらのスライドのNo.30がわかりやすくまとまっている。

スクリーンショット 2021-09-17 0.29.24.png

出典

解説(2019)
論文(2013)

2-2-2.Fast R-CNN

特徴マップの作成を1回に減らす。最初に1回だけ畳み込みを行い、生成された特徴マップに対して領域を選択する。
スクリーンショット 2021-09-21 22.46.04.png

スクリーンショット 2021-09-21 22.46.17.png

R-CNNとFast R-CNNの計算回数を比較すると、以下の通り。
R-CNN: (候補領域の数)xCNN + (候補領域の数)xFCN ([候補領域の数]=Region Proposalの回数)
Fast R-CNN: 1() x CNN + (候補領域の数)xFCN
(
)CNNをインプット画像全体に対して1回実施。

解説(2019)

2-2-3.Faster R-CNN

Fast R-CNNまでは、領域提案をSelective Searchで行っていたが、本手法からはRegion Proposal Networkという深層学習で行う、すなわちEnd to Endモデルの先駆け。

解説

2-2-4.YOLO

画像をGrid分割して、速度向上。
グリッド分割し、分割された一つ一つのセルを、クラス分類する。
セル1つを、複数にクラス分類するのは不可。
スクリーンショット 2021-09-22 23.17.48.png
Fig. セル分割

スクリーンショット 2021-09-22 23.17.03.png
Fig. クラス分類

セル毎にBoundingBoxの設置を判断し、クラス分類の各クラスの確率を計算。計算後、ボックスを集計し、色分けを行う。

解説1
解説2

2-2-5.SSD

Single Shot Multibox Detectorの略
計算量を減少。
YOLOと同じように、入力画像からCNNで物体の位置検出を行う。One-Stage手法ともいう。
VGG16を改良したネットワーク。畳み込み層を追加。
さまざまな大きさの特徴マップ毎に、クラス分類+BoundingBox回帰。

スクリーンショット 2021-09-22 23.29.48.png

解説

2-3.セグメンテーション

2-3-1.FCN

追記予定。
解説

2-3-2.SegNet

追記予定。
解説

2-3-3.U-Net

追記予定。
解説

3.まとめ

おかげさまでE資格2021#2は取得できましたが、まだまだ理解が甘いことを痛感しました。引き続き勉強を続け、本記事のアップデートを続けようと思います。

3
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
3
1