畳み込み層(シラバス 技術18)

学習目標

画像のように近くの値どうしが関係するデータを、フィルタをずらしながら処理する畳み込み層の仕組みを理解し、全結合層との違い、果たす役割、パラメータ数の考え方、向いているデータの性質を説明できるようにします。

要点

畳み込み操作

畳み込み層では、フィルタと呼ばれる小さな重みの格子を入力の上でずらしながら、重なった部分の値と重みを掛けて足し合わせます。これが畳み込み操作です。フィルタはカーネルとも呼ばれ、3×3などの大きさがよく使われます。計算結果を並べた出力が特徴マップです。フィルタごとに線や角など異なる特徴に反応し、フィルタの枚数だけ特徴マップ(チャンネル)ができます。

全結合層との違い

全結合層は画像を1列に並べ直すため、上下左右の位置関係が失われ、重みも膨大になります。畳み込み層には次の特徴があります。

  • 局所的な結合:出力の1点は、フィルタが重なる狭い範囲だけから計算されます。
  • 重みの共有:同じフィルタを画像全体で使い回すため、どの位置に現れた特徴も同じ重みで検出できます。

パラメータ数

重みの数は「フィルタの縦×横×入力チャンネル数×フィルタの枚数」で、これにフィルタの枚数分のバイアスを足します。3×3のフィルタでRGBの3チャンネルを受け取り、64枚のフィルタを使うなら、3×3×3×64+64=1,792です。入力画像の大きさには左右されません。32×32×3の画像を全結合層で64個のユニットにつなぐと、3,072×64+64=196,672になります。

ストライドとパディング

  • ストライド:フィルタをずらす間隔です。2にすると、出力の縦横はおよそ半分になります。
  • パディング:入力の周囲に0などの値を足し、出力が小さくなりすぎるのを防ぎます。画像の端の情報も扱えます。

出力の一辺は (入力 + 2 × パディング - フィルタ) ÷ ストライド + 1 です。入力32、フィルタ3、パディング1、ストライド1なら、出力も32です。

発展的な畳み込み

  • Dilated Convolution:フィルタの要素の間に間隔を空けて適用し、パラメータを増やさず、解像度も落とさずに受容野(一度に見る範囲)を広げます。Atrous Convolutionは同じ手法の別名で、DeepLabやWaveNetで使われています。
  • Depthwise Separable Convolution:チャンネルごとに空間方向だけを畳み込む処理と、1×1のフィルタでチャンネルを混ぜる処理に分けます。3×3で64チャンネルから128チャンネルを作る場合、重みは73,728個から576+8,192=8,768個に減ります。MobileNetなど軽量なモデルの土台です。

CNNと向いているデータ

畳み込み層を中心にプーリング層などを重ねたネットワークが、畳み込みニューラルネットワーク(CNN)です。浅い層は線や色の変化を、深い層は形や物体の部分をとらえます。向いているのは、近くの値どうしが強く関係し、同じパターンが別の位置にも現れるデータです。画像のほか、音声や時系列には1次元、動画や3次元の医用画像には3次元の畳み込みが使われます。

G検定で問われる深さ

実装や逆伝播の式までは不要です。出力サイズとパラメータ数を簡単な数値で求められること、ストライドとパディングの効果、Dilated ConvolutionとDepthwise Separable Convolutionが何を減らし何を広げる工夫かを説明できれば十分です。

つまずきやすい点

  • 畳み込み層のパラメータ数はフィルタの大きさ、入力チャンネル数、フィルタの枚数で決まり、入力画像の縦横の大きさには左右されない点
  • ストライドを大きくすると特徴マップは小さくなり、パディングを加えると出力の縦横を入力と同じに保ちやすくなる、という効果の向きの違い
  • Atrous ConvolutionとDilated Convolutionは同じ手法の別名で、パラメータを増やさずに一度に見る範囲を広げる工夫である点
  • Depthwise Separable Convolutionは空間方向の畳み込みとチャンネル方向の1×1畳み込みに分けて、計算量とパラメータを減らす点

シラバスのキーワード

Atrous Convolution、Depthwise Separable Convolution、Dilated Convolution、カーネル、ストライド、畳み込み操作、畳み込みニューラルネットワーク(CNN)、特徴マップ、パディング、フィルタ

練習問題

  1. 畳み込みの出力サイズ計算
  2. 畳み込み層の軽量化
  3. 畳み込み層の構成要素の役割
  4. 畳み込み層のパラメータ数
  5. CNNに向くデータの性質
  6. 畳み込みの設定と出力の変化
ほかの5問
  1. 受容野を広げる手法の比較
  2. エッジ検出フィルタの出力計算
  3. CNNとSVMのカーネルの違い
  4. 畳み込みと位置ずれへの性質
  5. 1×1畳み込みの役割

混同しやすい用語

この項目の関連用語

ディープラーニングの要素技術の中項目
  1. 全結合層
  2. 畳み込み層
  3. 正規化層
  4. プーリング層
  5. スキップ結合
  6. 回帰結合層
  7. Attention
  8. オートエンコーダ
  9. データ拡張

表示設定

テーマ
文字の大きさ
問題演習