出典(authority):フリー百科事典『ウィキペディア(Wikipedia)』「2016/02/09 08:52:18」(JST)
プログラミングにおける畳み込みについては「重畳関数」をご覧ください。 |
畳み込み(たたみこみ、英: convolution)とは関数 g を平行移動しながら関数 f に重ね足し合わせる二項演算である。畳み込み積分、合成積、重畳積分、あるいは英語に倣いコンボリューションとも呼ばれる。
関数 f, g の畳み込みは f * g と書き、以下のように定義される:
積分範囲は関数の定義域に依存する。通常は区間 (−∞, +∞) で定義される関数を扱うことが多いので、積分範囲は −∞ から +∞ で計算されることが多い。一方 f, g が有限区間でしか定義されない場合には、g(t − τ) が定義域内に入るように f, g を周期関数と見なして計算される。この周期関数と見なして畳み込みをすることを循環畳み込み(じゅんかんたたみこみ、英: cyclic convolution)と呼ぶ。
離散値で定義された関数に対する畳み込みは、積分のかわりに総和を使って同様に定義される:
総和の範囲も関数の定義域に依存し、関数が有限区間でしか定義されていない場合は周期関数とみなして畳み込み演算が行われる。また、離散系の場合、定義域外の値を 0 と定義し直した関数での畳み込みをよく行われる。これを線形畳み込み(せんけいたたみこみ、英: linear convolution)と呼ぶ。線形畳み込みは直線畳み込み(ちょくせんたたみこみ)とも呼ばれる。なお離散系の場合は積分を使わずに総和を使うので、畳み込み積分・重畳積分とは呼ばず、畳み込み和・重畳和と呼ぶ。
積分演算に由来する性質として以下の性質がある。
ただし は関数 f のフーリエ変換である。この定理はラプラス変換・Z変換やメリン変換 (Mellin transform) といった変換に対しても適用できる。
フーリエ変換を使って畳み込み演算を単純な掛け算に変換することが出来る。離散系での関数の場合、定義通りの畳み込み計算をしないで、関数 f, g の高速フーリエ変換 (FFT) を掛け算した結果を逆高速フーリエ変換 (IFFT) をすることで、高速に畳み込みの計算処理をするのが一般的である。
集合関数の一種である確率測度の畳み込みは次のように表現される。確率測度 μ1, μ2 において任意のボレル集合 B に対し、
と表現される。これは μ1, μ2 を集合関数として捉えて、変数変換することで求まる。これにより、μ1, μ2 を分布に持つ確率変数 X, Y においてその和 X + Y の分布が畳み込みにあたることが分かる。
多項式の掛け算の結果の係数列は、元の多項式の係数列の線形畳み込みになる。実際
であり、掛け算の結果の係数が a*b となる。
電気回路といった古典的な時不変(シフト不変)線形システムは、任意の入力 x(t) に対する出力 y(t) が x(t) とインパルス応答 h(t) の畳み込みで記述できる:
ここで特に、入力 x(t) がデルタ関数 δ(t) のとき出力は h(t) そのものになる。
ここで上式の両辺をフーリエ変換もしくはラプラス変換(離散系の場合はZ変換)すると、#畳み込み定理より下式のようになる。
ここで、
を伝達関数といい、この式は古典制御論の基礎となっている。
エコーは元の音波と、音を反射するさまざまな物体に因る特性(インパルス応答)との畳み込みで記述される。カラオケやシンセサイザーに搭載されているエコー機能は、この畳み込みの効果を電気回路もしくはコンピュータでシミュレートすることで実現している。
撮像時のブレなどの多くのぶれ (blur) は畳み込みで記述できる。例えば、ピントがぼけた写真は、ピントがあった仮想的な画像と、絞りの特性を示す円との畳み込みである。また被写体等の動きによるブレも、静止した仮想的な画像と動きの特性との畳み込みであり、グラフィックソフトウェアのモーションブラーはこの畳み込み演算を計算によりシミュレートすることで実現している。
画像認識においても、異なるスケールの画像を認識するにあたり、畳み込みでぶれをつくってから、画像処理することがある。
X, Y がそれぞれ独立な連続型確率変数とすると、和の の確率密度関数は畳み込みによって与えられる。X, Y の確率密度関数をそれぞれ と表記すると、S の密度関数は以下の式で与えられる.
リンク元 | 「回転」「convolution」「重畳」 |
.