【たたみこみ】

畳み込み とは?

最終更新:
💡 小さな窓をずらして、数値の組み合わせを見る

画像処理やCNNでは、小さなフィルタを入力に重ね、位置をずらしながら重なった値の積を足す演算。フィルタや学習条件に応じて、局所的なパターンに反応する特徴を作れる。

📌 このページのポイント
窓を一つずらして、掛けて足す最初の位置次の位置123123×1 ×1×1 ×1ずらす1×1+2×1結果は 32×1+3×1結果は 5同じ重みを、次の場所にも使う
入力1・2・3に、重み1・1を使う一次元の例。ストライド1、外側への補いなし。黄色の二つの値を掛けて足し、3・5を得ます。
ひよこ ひよこ
フィルタで、画像のどこを見るの?
ペンギン先生 ペンギン先生
小さな窓を重ねた部分を見るよ。図は一つの数値の並びに、二つの重みを重ねる例。入力が1・2・3、重みが1・1なら、最初は1×1+2×1で3。次は一つずらして2×1+3×1で5になるんだ。
ひよこ ひよこ
CNNでは、画像でも同じ考え方?
ペンギン先生 ペンギン先生
画像なら縦横の窓を使い、重なる値と重みを掛けて足すよ。複数の色のチャンネルなどを含む計算もある。図は足し合わせ方を理解するための一次元の例で、実際のカラー画像の層を全部描いたものではないよ。
ひよこ ひよこ
輪郭や顔を、必ず見つけるの?
ペンギン先生 ペンギン先生
フィルタの値によって、反応するパターンが変わるよ。CNNは学習で重みを調整し、特徴を組み合わせる。ただし、最適なフィルタや顔全体の検出を必ず得る保証はない。何を学べたかは、データと目的に合わせて評価するんだ。
ひよこ ひよこ
出力は、必ず小さくなる?
ペンギン先生 ペンギン先生
窓の大きさや、動かす幅のストライド、周囲を補うパディングで変わるよ。図では外側を補わず、一つずつずらすので、三つの入力から二つの出力になる。畳み込みそのものと、別の演算のプーリングは区別しよう。
ひよこ ひよこ
フィルタは、人が決めるの?
ペンギン先生 ペンギン先生
画像処理では人が決めたフィルタも使えるし、CNNの畳み込み層では重みを学習できるよ。D2Lの教材は、輪郭を検出する例とフィルタを学ぶ例を説明している。固定の計算式に、学習した重みを使うという二つを分けて考えよう。
もっと詳しく知りたい人へ

数学の畳み込みと、CNNの計算は同じ?

厳密な畳み込みではフィルタを反転します。一方、CNNで畳み込みと呼ばれる演算は、反転しない相互相関であることが一般的です。D2Lはこの違いを説明し、学習するフィルタでは反転した重みとの対応が取れるため、慣習的に畳み込みと呼ぶとしています。図は1・1という対称なフィルタで、どちらでも同じ数値になる例です。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「畳み込み」って出てきたら「小さなフィルタをずらして、局所的な特徴を取り出す演算」と思えばだいたいOK!
📖 おまけ:英語の意味
「Convolution」 = 畳み込み
💬 数学・信号処理でも使う演算の名前。CNNでの呼び方と数学上の定義の違いは、下の補足で説明しているよ。

参考資料

← 用語集にもどる