畳み込みと特徴マップのプレイグラウンド
各カーネルの選択でどの視覚パターンが残るかを見てみよう
Linear Algebra of Convolutional Kernels 🖖
Convolutional feature maps are generated through localized matrix dot products traversing a multidimensional input tensor. The operation extracts spatial hierarchies by applying discrete translation-invariant filters. Adjusting stride and padding modifies the resulting tensor dimensions deterministically, following strict algebraic formulas. This mathematically efficient extraction of structural data minimizes parameter space, establishing the computational foundation for sophisticated pattern recognition within deep neural architectures.
スライドする小さな窓 🖖
畳み込みは、カーネルと呼ばれる小さな数値の格子を画像上でずらしていきます。各位置で重なった値を掛け合わせて足し、1つの出力ピクセルにまとめます。その結果が特徴マップで、カーネルのパターンが現れた場所ほど明るくなります。ここでエッジ検出カーネルを試してみましょう。平坦な領域は暗くなり境界が光ります。カーネルは明るさそのものではなく、変化に反応するからです。
実は畳み込みではない 🖖
ほぼすべてのCNNが「畳み込み」と呼ぶ演算は、実際には相互相関です。本来の数学的な畳み込みは、カーネルを上下・左右に反転させてからずらしますが、ディープラーニングのライブラリはこの反転を省きます。どのみちネットワークが重みを学習するので、反転したカーネルは単に逆向きに学習され同じ結果になります。だからこの誤称が定着しました。ぼかしのような対称なカーネルでは、両者は区別がつきません。
例題
- 数字にsobel-x - Sobel-xは、手書き風の数字における縦方向のストロークを強調する。
- 図形のエッジ - エッジカーネルは平坦な領域を抑え、物体の境界を強調する。
- ぼかし + ストライド2 - ストライドを大きくすると特徴マップがダウンサンプリングされ、細かいディテールが失われることがある。
- シャープ化 valid - validパディングでは出力サイズが縮小し、シャープ化フィルタは局所的なコントラストを高める。