1 畳み込みの概要
1.1 定義と直感
1.1.1 連続畳み込みの基本形
連続畳み込みは、実数値の関数(信号)\(f(t)\) とカーネル(フィルタ)\(g(t)\) に対し、カーネルを時間方向にずらしながら反映(反転)して積を取り、その積分値として新しい関数を得る操作として定義される。典型的な表記では、次で与えられる。 \[ (f * g)(t)=\int_{-\infty}^{\infty} f(\tau)\, g(t-\tau)\, d\tau \] この式は、\(t\) ごとに異なる重ね合わせ位置での“総合的な相性”を数値化していると解釈できる。カーネルが \(t-\tau\) に対して大きな重みを持つ領域では、対応する入力成分が出力に強く寄与する。
1.1.2 離散畳み込みの基本形
離散畳み込みは、時刻(または位置)を整数で表す系列 \(x[n]\) と、離散カーネル \(h[k]\) の畳み込みとして定義される。一般に \[ (x * h)[n]=\sum_{k=-\infty}^{\infty} x[k]\; h[n-k] \] の形で書かれる。連続版と同様に、出力位置 \(n\) では、入力の各サンプルがカーネルの異なる係数と掛け合わされ、その総和が出力を決める。
1.2 畳み込みに出てくる量の意味
1.2.1 入力(信号・関数)
入力は、処理対象となる“元の情報”であり、時間信号や空間画像など多様な形をとる。数学的には関数または数列として表され、畳み込みでは入力の各成分がカーネルの重みと結合して新しい値へ写像される。線形系の応答計算では、入力は刺激に相当し、出力は系の影響を受けた結果として解釈される。
1.2.2 カーネル(フィルタ・窓関数)
カーネルは、入力のどの範囲の情報をどの程度重視するかを定める“重み付けの規則”である。特定の特徴に敏感になるよう設計される場合が多く、平滑化用、微分(変化)検出用、周波数選択用など目的に応じて形状が変わる。画像処理では小さな局所マスクとして実装され、窓関数としての性格も併せ持つことがある。
1.2.3 出力(変換後の信号)
出力は、入力とカーネルの重ね合わせによって得られる新しい関数(または数列)である。出力の各点は、入力の周辺領域に対するカーネルの重み付け相関に対応するため、カーネルが持つ性質が出力の形として反映される。たとえば低周波を強調するカーネルなら滑らかな結果になり、高周波方向の変化に敏感なカーネルなら境界が強調されやすい。
1.3 畳み込みの幾何学的解釈
1.3.1 「ずらして重ねる」視点
幾何学的には、カーネルの形を反転させてから入力上で平行移動し、両者の積を取って平均(連続なら積分)する操作として理解できる。移動量(出力の添字や引数)を変えるほど、対応する重ね合わせ位置が変わり、その結果として出力の各点が決まる。したがって畳み込みは、ある“模様”が入力内のどこに現れるかを走査するイメージに近い。
1.3.2 積の総和としての特徴抽出
離散の場合、出力点 \(n\) は、入力の各サンプル \(x[k]\) に係数 \(h[n-k]\) を掛け、全てを足し上げることで得られる。係数はカーネルの形を反映しているため、出力は特定のパターン(たとえば濃淡の傾きや局所の整合性)に対する“対応度”として読める。画像ではこの仕組みが、局所構造の抽出として働くことが多い。
2 数学的性質
2.1 線形性と時間不変性
畳み込みは線形演算である。入力が和で表されるなら出力も和に分配され、入力に定数を掛ければ出力にも同じ倍率が掛かる。一方で時間(または位置)不変性としては、入力をある量だけ平行移動した場合に出力も同じだけ移動する性質が成り立つ。これらは信号処理における“扱いやすさ”につながり、線形時不変系の応答記述へ直結する。
2.2 可換性・結合法則
畳み込みには、与える順序を入れ替えても結果が同じになる可換性がある。すなわち、適切な条件の下で \[ f*g = g*f \] が成り立つ。また結合法則として、複数回の畳み込みを順に行う場合に括弧の位置を変えても最終結果が同じになる。 \[ (f*g)*p = f*(g*p) \] これらはカーネル合成や多段処理の設計で有利であり、計算の整理や実装の簡略化に使われる。
2.3 反転・相関との関係
畳み込みと相関は密接に関連する。相関は一般に“似ている度合い”を表す演算で、畳み込みではカーネル側に反転が現れることが多い。そのため、相関を畳み込みとして実装するには、片方の関数を反転させる操作が必要になることがある。実務上は、ライブラリや定義規約により“畳み込み”と呼ばれていても相関に対応する形になっている場合があるため、引数の並びや反転の有無を確認することが重要である。
2.4 畳み込み積分の代表的な変形
2.4.1 変数変換による表現
畳み込み積分は、変数置換により等価な形へ書き換えられる。たとえば積分変数を入れ替えれば、カーネルの引数の見え方が変わるだけで同じ演算を表す場合がある。こうした変形により、解析の便宜に応じてフーリエ変換との整合性を高めたり、対称性を明確にしたりできる。
2.4.2 符号規約と実装差の注意点
連続・離散の両方で、畳み込みの“反転”をどちらに付けるか、あるいは定義式の引数が \(g(t-\tau)\) か \(g(\tau-t)\) かといった符号規約の違いが生じうる。さらに実装では、畳み込み層が相関(反転なし)に近い定義になっていることがある。結果の比較や再現性を保つには、数式の定義と実装の仕様(カーネルの反転有無、添字の向き)を一致させる必要がある。
3 計算方法と効率化
3.1 直接計算(総和・積分)
直接計算は定義に従い、全ての重ね合わせ位置で積を取り総和(離散)または積分(連続)する方法である。離散では、出力の各点ごとにカーネル長ぶんの積和計算が必要になり、入力長とカーネル長の掛け算に比例して計算量が増える。連続の場合は数値積分を用いるため、精度要求に応じて評価点の数が増え、同様に負荷が増大しやすい。
3.2 フーリエ変換による高速化
3.2.1 畳み込み定理の考え方
畳み込み定理は、畳み込みを周波数領域では積として扱えることを示す。すなわち、適切な条件下で畳み込みのフーリエ変換は、各関数のフーリエ変換の積に対応する。これにより、時間(空間)領域での多数の積和計算を、周波数領域での点ごとの積と、変換(前後)の計算へ置き換えられる。
3.2.2 周波数領域での計算手順
典型的手順は次の通りである。まず入力とカーネルを同じ形式でフーリエ変換し、周波数側でそれらを要素ごとに掛ける。最後に逆変換して結果を時間(空間)側へ戻す。実装では高速フーリエ変換(FFT)が利用されることが多く、大きな配列に対して計算効率が改善する。ただし変換の準備として零埋め等が必要になり、境界処理も含めて設計が必要である。
3.3 実用上の境界処理
3.3.1 パディングの種類
入力が有限長の場合、定義上は未定義の領域をどう扱うかが問題になる。代表的には零埋め、端値の延長、周期的延長、反射(ミラー)などがある。各方式は境界近傍で出力の振る舞いを変えるため、用途によって適切な選択が求められる。特に画像では端に偽のエッジが生じるかどうかが品質に影響することがある。
3.3.2 有効領域の扱い
カーネルが入力からはみ出す範囲を含めて計算するかどうかにより、出力の長さや解釈が変わる。実装には、全範囲を計算して出力サイズを維持する方式、はみ出しを除いて“確かな重ね合わせ”だけで出力を作る方式などがある。有効領域をどう定義するかは、後段の処理(学習や推定)と整合するように決める必要がある。
3.4 計算量と誤差
3.4.1 次元増加による計算負荷
画像や多次元データでは、畳み込みは次元数に応じて負荷が増える。一次元ではカーネル長がそのまま係数になるが、二次元ではカーネルの縦横の面積、三次元では体積に比例する形で積和が増える。そのため実務では、カーネルの分離可能性(可能なら一次元へ分解)や、疎な構造を利用した計算削減などが検討される。
3.4.2 有限精度に伴う数値誤差
数値計算では丸め誤差や打ち切りが避けられない。直接計算では積和の順序や桁数により誤差が蓄積する可能性がある。FFTを用いる場合は、丸め誤差に加え、零埋めや離散化によってスペクトルの扱いが変わるため、境界やスケーリングの整合性が重要になる。結果の比較や検証では、許容誤差の設定と再現性の確認が必要である。
4 応用領域
4.1 画像処理・信号処理
4.1.1 平滑化(平滑フィルタ)
平滑化は、局所的なばらつきを抑え、信号や画像を滑らかにする目的で行われる。カーネルが近傍成分を平均化する形になっている場合、急な変化は抑制され、ノイズ由来の揺らぎが軽減されやすい。単純な平均フィルタから、重み付けを工夫したガウス型の近似まで、目的に応じた設計が用意されている。
4.1.2 エッジ検出(微分系のカーネル)
エッジ検出では、強い変化点を強調するようなカーネルが用いられる。一般に微分に相当する演算は勾配を捉えるため、輝度(あるいは信号値)の局所的な変化が大きい場所で応答が大きくなる。典型例として一次微分の方向成分を表すようなカーネルがあり、得られた応答を閾値処理することで輪郭抽出へつながる。
4.2 機械学習における利用
4.2.1 畳み込みニューラルネットワークの基礎
畳み込みニューラルネットワーク(CNN)では、畳み込み演算が特徴抽出の基本単位として用いられる。学習ではカーネルの係数がデータから調整され、層を重ねることで低次のパターンから高次の表現へと段階的に整理される。局所受容野や重み共有の仕組みにより、入力の位置が変わっても意味のある特徴が捉えやすくなる。
4.2.2 カーネル学習と特徴マップ
学習されたカーネルを畳み込んだ結果は、特徴マップとして解釈される。各チャネル(あるいは出力面)は、特定のパターンに対する活性の強さを表すことが多い。こうした活性の分布は、後続の非線形処理やプーリングと組み合わせることで、位置の変動に対する頑健性や表現の階層化に寄与する。
4.3 科学計算での利用
4.3.1 線形システムの応答計算
線形システムでは、外部入力と系の応答(インパルス応答)を畳み込みで結びつけられることが多い。入力がどのように伝わり、どのように遅れや減衰を伴って現れるかは、カーネル(応答)によって決まる。したがって、物理系のモデル化や推定、データ同化などで畳み込みが基礎演算として現れる。
4.3.2 分布・応答関数との関係
理論的には、入力や応答が関数の枠を越えて分布として扱われる場合がある。たとえば理想的な瞬間刺激はデルタ分布として表され、これを畳み込みすると応答関数がそのまま取り出される。こうした枠組みは、偏微分方程式の解やグリーン関数との関係として理解されることが多く、モデルの厳密性と実装可能性の橋渡しとして機能する。