単一のチャネル画像(5x5)があるとします。
A = [ 1 2 3 4 5
6 7 8 9 2
1 4 5 6 3
4 5 6 7 4
3 4 5 6 2 ]
そしてフィルターK(2x2)
K = [ 1 1
1 1 ]
畳み込みを適用する例(最初の2x2をAから取得しましょう)は次のようになります。
1*1 + 2*1 + 6*1 + 7*1 = 16
これは非常に簡単です。ただし、マトリックスAに深度係数を導入しましょう。つまり、ディープネットワーク(深度= 512の可能性があります)の3チャネルまたはconvレイヤーのRGB画像です。同じフィルターでたたみ込み演算をどのように実行しますか? 同様のワークアウトは、RGBの場合に非常に役立ちます。
それらは、1つではなく3つの行列を取得することを除いて、単一チャネル画像で行う方法とまったく同じです。 これ は、CNNの基礎についての講義ノートであり、参考になると思います。
いくつかの行列Aによって与えられる3チャンネル(RGB)画像があるとしましょう
A = [[[198 218 227] [196 216 225] [196 214 224] ... ... [185 201 217] [176 192 208] [162 178 194]]
とぼかしカーネル
K = [[0.1111、0.1111、0.1111]、 [0.1111、0.1111、0.1111]、 [0.1111、0.1111、0.1111]] #実際には0.111〜= 1/9です
画像を見るとわかるように、各チャネルは個別に畳み込まれ、その後結合されてピクセルを形成しています。
RGBのような入力の場合、フィルターは実際には2 * 2 * 3であり、各フィルターは1つのカラーチャネルに対応するため、3つのフィルター応答が得られます。これら3つを合計すると、バイアスとアクティブ化によって1つに流れます。最後に、これは出力マップの1ピクセルです。