ディープラーニングで画像処理をするときに多用される畳込み層について説明します。
畳込み
図のように、フィルタを使って出力画像の各ピクセルを作成していく処理を畳込みと言います。図は3回分しか描いていませんが、49回ずらしながら繰り返して出力画像を作成していきます。図に描かれているフィルタサイズは3×3です。
畳込み層
畳込み用のフィルタがいくつもセットになっている層を畳込み層と呼びます。
ディープラーニングで画像処理をするときに、畳込み層を使います。画像の場合近接したピクセル同士に意味ある情報が存在すると考え、近いピクセルを畳込みで同時に計算するというコンセプトです。結果として、少ないパラメータサイズで高い性能を出すことができます。
畳込み層を使った推論時は、畳込み層のフィルタの数と同じ枚数の出力画像が出てきます。畳込み層から出力される画像のことを特徴画像(フィーチャーマップ)と呼びます。フィーチャーマップの数をチャンネル数と呼びます。
畳込み層(Convolutional layer)を使ったネットワークのことをCNN(Convolutional Neural Network・畳込みニューラルネットワーク)と言います。
畳込み層は、特にネットワークの入力に近い前段に配置されることが多いです。入力から出力まで、全て畳込み層を使うネットワークもあり、FCN(Fully Convolutional Network)と呼ばれます。物体検出やセグメンテーションの問題を解くときに、FCNが使われることが多いです。
計算内容
畳込み層では、全結合の重みに相当する「フィルタ」があり、さらに「バイアス」と「活性化関数」があります。「フィルタ」で畳込み、「バイアス」を足し、「活性化関数」を通すと出力のフィーチャーマップの各ピクセルが算出されます。
学習で調整されるパラメータは、「フィルタ」と「バイアス」です。学習というのは、問題を解くのに適した「フィルタ」と「バイアス」を求めることに他なりません。
まとめ
畳込み層について説明しました。画像処理分野では、全結合層より多用されることもあります。また、CNNという言葉もよく使われます。ディープラーニングの中では基本なので、覚えておきましょう。