- CNNでは層を深くすることが重要
- 層を重ねることで高度で複雑な特徴を抽出できる
- 2012年に画像認識の首位となったAlexNetは14層
- 2014年に画像認識の首位となったVGGNetは19層
- 同じく2014年に首位となったGoogleNetは22層
- 2015年に画像認識の首位となったResNetは152層
- このとき、層を深くすると思い通りに学習が進まない課題があった
- 勾配消失
- 勾配発散
引用:Deep Residual Learning MSRA @ ILSVRC & COCO 2015 competitions
ResNetのアイデア
元論文: [1512.03385] Deep Residual Learning for Image Recognition
- 入力値と出力値の差分(残差)を学習する
- Deepになると入力xと出力x*Wは極めて近い値
- ならばxをそのまま残して差分を計算した方が効率的
- 残差ブロックの提案
- 畳み込み層+Skip Connection(恒等写像)を組み合わせた
- Skip Connectionによって誤差逆伝搬をしやすい
- 変換不要ならば畳み込み層のWeightを0にすればよい
- 既にいい感じになっているxに余計なことをしなくてすむ
- Skip Connectionなしでは非線形写像によってxが理想値から離れることがある
- 残差ブロックのアーキテクチャ
- Plainアーキテクチャ
- 3×3のconv層が2つ
- Bottleneckアーキテクチャ
- 1×1のconv層でdimを小さくして、、、
- 3×3のconv層にかけて、、、
- 1×1のconv層で元々のdimに戻す
- Plainアーキテクチャ
『DenseNet』CVPR2017 BEST PAPER
元論文: [1608.06993] Densely Connected Convolutional Networks
アイデア:層の間で情報伝達を最大化する
- 上の図は1つのDenseBlockを表す
- ℓ番目の層への入力は、0~ℓ-1番目の層の全出力となる
- このようなDenseBlockを4つ含むネットワーク構造を提案
- ダウンサンプリングなどのためにDenseBlock間にPooling層も挿入
ちょっと、やりすぎだろ・・・・
Skip Connectionとよく似たContracting Path構造(U-Net)
[q505.04597] U-Net: Convolutional Networks for Biomedical Image Segmentation
- Image-ClassificationではなくImage-Segmentationのタスクで生まれた手法
- Semantic Segmentationにおいて位置は保存したい重要情報
- CNNではPoolingや畳み込みをするほど位置情報が曖昧になることが課題
- 局所的特徴と全体的位置情報の両方を把握したい
- 形がU字なのでU-Net
- 左側がEncoder
- 右側がDecoder
- Up-Sampling後にEncoder部の同次元数の特徴を連結する
- あまり畳み込みされていないEncoder部では位置情報が保たれているという仮定
- concatenation with the correspondingly cropped feature map
- 従来どおり特徴を抽出しつつ、位置情報を保存する
Skip Connectionの有効性を解明
[1712.09913] Visualizing the Loss Landscape of Neural Nets
LOSS関数を可視化することで近年のNeural Networkのアーキテクチャの有効性を検証した論文。Skip Connectionを利用した場合(右図)は、non-convexからconvexに近づく。
Skip Connectionを含む新しいネットワーク構造 ~Deep Layer Aggregation (CVPR2018)~
[1707.06484] Deep Layer Aggregation
疲れたのでまた今度・・・