【たたみこみ】
畳み込み とは?
最終更新:
💡 小さな窓をずらして、数値の組み合わせを見る
画像処理やCNNでは、小さなフィルタを入力に重ね、位置をずらしながら重なった値の積を足す演算。フィルタや学習条件に応じて、局所的なパターンに反応する特徴を作れる。
📌 このページのポイント
- 入力にフィルタを重ね、積を足して値を作る
- 同じフィルタを、違う位置にも使う
- CNNではフィルタの値を学習できる
- ストライドやパディングで、出力の形も変わる
フィルタで、画像のどこを見るの?
CNNでは、画像でも同じ考え方?
画像なら縦横の窓を使い、重なる値と重みを掛けて足すよ。複数の色のチャンネルなどを含む計算もある。図は足し合わせ方を理解するための一次元の例で、実際のカラー画像の層を全部描いたものではないよ。
輪郭や顔を、必ず見つけるの?
出力は、必ず小さくなる?
窓の大きさや、動かす幅のストライド、周囲を補うパディングで変わるよ。図では外側を補わず、一つずつずらすので、三つの入力から二つの出力になる。畳み込みそのものと、別の演算のプーリングは区別しよう。
フィルタは、人が決めるの?
もっと詳しく知りたい人へ
数学の畳み込みと、CNNの計算は同じ?
厳密な畳み込みではフィルタを反転します。一方、CNNで畳み込みと呼ばれる演算は、反転しない相互相関であることが一般的です。D2Lはこの違いを説明し、学習するフィルタでは反転した重みとの対応が取れるため、慣習的に畳み込みと呼ぶとしています。図は1・1という対称なフィルタで、どちらでも同じ数値になる例です。
まとめ:ざっくりこれだけ覚えればOK!
「畳み込み」って出てきたら「小さなフィルタをずらして、局所的な特徴を取り出す演算」と思えばだいたいOK!
📖 おまけ:英語の意味
「Convolution」 = 畳み込み
💬 数学・信号処理でも使う演算の名前。CNNでの呼び方と数学上の定義の違いは、下の補足で説明しているよ。