オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Fully Convolutional Network : FCN

この記事の読者

深層学習・ディープラーニングの手法の1つである「Fully Convolutional Network : FCN」について知りたい.



キーワード・知ってると理解がしやすい

Index

Fully Convolutional Network : FCN とは

2014 年に 発表された CNN を Semantic Segmentation に利用した手法.

全結合層を持たず、ネットワークが畳み込み層のみで構成されているネットワーク.

受容野 / Receptive Fields

入力される画像データは、 h\ \times\ w\ \times\ d の 3 次元.

画像から特徴マップにおける、対応している領域を受容野 / Receptive Fields と呼んでいる.

畳み込み演算 / Convolution

畳み込み演算 を数式化すると、

 y_{i, j}=f( \{x_{i, j} \}_{i\ \in\ I, j\ \in\ J})



となる.

CNN との違い

従来のCNN との違いに注目することで、FCN のポイントを考える.

全結合の廃止

通常の CNN で Object Recognition (Classification) を行う場合は、Convolution の最後に全結合層をおき、 分類をできる形にすることが多い. (VGGのようなアーキテクチャ)

しかし、全結合層部分は 1x1 のような Convolution Layer に置き換え、全結合層を排除する.

ネットワークアーキテクチャ

CNN が 5 層の アーキテクチャはこのような感じ.



  • CNN : Convolution  \times n + Max Pooling
  • CNN (Deconv) : Deconvolution + Activation Function + BN

Up Sampling

通常の CNN では、処理を進めるにつれて、サイズが小さくなっていくことが多い.

(チャネル数は大きくなることが多い)

この操作を Down Sampling (Encode)といい、 それに対して、サイズを大きくして画像としての規格に戻していく処理を Up Sampling (Decode) という.

Deconvolution を使用することで Up Sampling する.

Deconvolution

畳み込み演算の逆の操作を行うことで、出力を大きくする.

Skip Connection

Down Sampling 中の途中の情報を Up Sampling で利用する.

Down Sampling の出力と加算して次のレイヤに進む.

参考

  • Fully Convolutional Networks for Semantic Segmentation
    • [2014]
    • Abstract
    • 3 Fully convolutional networks
      • 3.1 Adapting classifiers for dense prediction
      • 3.2 Shift-and-stitch is filter rarefaction
      • 3.3 Upsampling is backwards strided convolution
      • 3.4 Patchwise training is loss sampling
    • 4 Segmentation Architecture
      • 4.1 From classifier to dense FCN
      • 4.2 Combining what and where
      • 4.3 Experimental framework
    • arxiv.org

論文メモ

3.1 : 特徴マップを分類結果を表現する出力形式に変換する方法
3.2 : OverFeat が導入した工夫
3.3 : アップサンプリング / Decovolution について
3.4 : 学習について
4.3 : 学習速度について

Web サイト