ニューラルネットワークのコンボリューションが便宜を超えた数学的理由はありますか?
畳み込みニューラルネットワーク(CNN)では、畳み込みを進める前に、各ステップでの重みの行列の行と列を反転させてカーネル行列を取得します。これは、Hugo Larochelleによる一連のビデオで説明されています。 隠されたマップを計算する[...]カーネル行列を使用して、前の層からチャネルを持つ離散畳み込みを行うことに対応するであろう、そのカーネルは隠された重み行列から計算されるWijWijW_{ij}、我々は、行を反転して、列。 他のタイプのNNのように、畳み込みの縮小ステップを通常の行列乗算と比較する場合、便宜性は明確な説明になります。しかし、これは最も適切な比較ではないかもしれません... デジタルイメージング処理では、画像へのフィルターの畳み込みの適用(これは実用的な直感のための素晴らしいYouTubeビデオです)は次のように関連しているようです: 畳み込みは連想的であるが(相互)相関はそうではないという事実。 時間領域での畳み込みは周波数領域での乗算と同じであるため、画像の周波数領域でフィルターを乗算として適用する可能性(畳み込み定理)。 DSP 相関のこの特定の技術環境では、次のように定義されます。 F∘I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x+i,y+j)F∘I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x+i,y+j)F\circ I(x,y)=\sum_{j=-N}^{N}\sum_{i=-N}^N\, F(i,j)\,I(x+i, y+j) これは本質的に、アダマール製品のすべてのセルの合計です。 F∘I(x,y)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢F[−N,−N]I[x−N,y−N]⋮F[0,−N]I[x,y−N]⋮F[N,−N]I[x+N,y−N]⋯⋱⋯⋱⋯F[−N,0]I[x−N,y−N]⋮F[0,0]I[x,y]⋮F[N,0]I[x+N,y]⋯⋱⋯⋱⋯F[−N,N]I[x−N,y+N]⋮F[0,N]I[x,y+N]⋮F[N,N]I[x+N,y+N]⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥F∘I(x,y)=[F[−N,−N]I[x−N,y−N]⋯F[−N,0]I[x−N,y−N]⋯F[−N,N]I[x−N,y+N]⋮⋱⋮⋱⋮F[0,−N]I[x,y−N]⋯F[0,0]I[x,y]⋯F[0,N]I[x,y+N]⋮⋱⋮⋱⋮F[N,−N]I[x+N,y−N]⋯F[N,0]I[x+N,y]⋯F[N,N]I[x+N,y+N]]\small F\circ I(x,y)=\Tiny\begin{bmatrix}F[-N,-N]\,I[x-N,y-N]&\cdots&F[-N,0]\,I[x-N,y-N]&\cdots& F[-N,N]\,I[x-N,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[0,-N]\,I[x,y-N]&\cdots&F[0,0]\,I[x,y]&\cdots& F[0,N]\,I[x,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[N,-N]\,I[x+N,y-N]&\cdots&F[N,0]\,I[x+N,y]&\cdots& F[N,N]\,I[x+N,y+N]\\ \end{bmatrix} ここで、はフィルター関数(行列として表される)であり、I (x 、y )は位置(x 、y )の画像のピクセル値です。F(i,j)F(i,j)F(i,j)I(x,y)I(x,y)I(x,y)(x,y)(x,y)(x,y) 相互相関の目的は、プローブ画像とテスト画像の類似性を評価することです。相互相関マップの計算は、畳み込み定理に依存しています。 一方、畳み込みは次のように定義されます。 F∗I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x−i,y−j)F∗I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x−i,y−j)F* I(x,y)=\sum_{j=-N}^{N}\sum_{i=-N}^N\, F(i,j)\,I(x-i, y-j) これは、フィルターが対称である限り、フィルターの行と列を反転した相関操作と同じです。 F∗I(x,y)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢F[N,N]I[x−N,y−N]⋮F[0,N]I[x,y−N]⋮F[−N,−N]I[x+N,y−N]⋯⋱⋯⋱⋯F[N,0]I[x−N,y−N]⋮F[0,0]I[x,y]⋮F[−N,0]I[x+N,y]⋯⋱⋯⋱⋯F[N,−N]I[x−N,y+N]⋮F[0,−N]I[x,y+N]⋮F[−N,−N]I[x+N,y+N]⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥F∗I(x,y)=[F[N,N]I[x−N,y−N]⋯F[N,0]I[x−N,y−N]⋯F[N,−N]I[x−N,y+N]⋮⋱⋮⋱⋮F[0,N]I[x,y−N]⋯F[0,0]I[x,y]⋯F[0,−N]I[x,y+N]⋮⋱⋮⋱⋮F[−N,−N]I[x+N,y−N]⋯F[−N,0]I[x+N,y]⋯F[−N,−N]I[x+N,y+N]]\small F* I(x,y)=\Tiny\begin{bmatrix}F[N,N]\,I[x-N,y-N]&\cdots&F[N,0]\,I[x-N,y-N]&\cdots& F[N,-N]\,I[x-N,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[0,N]\,I[x,y-N]&\cdots&F[0,0]\,I[x,y]&\cdots& F[0,-N]\,I[x,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[-N,-N]\,I[x+N,y-N]&\cdots&F[-N,0]\,I[x+N,y]&\cdots& F[-N,-N]\,I[x+N,y+N]\\ \end{bmatrix} ⎡⎣⎢⎢⎢⎢⎢⎢⎢1474141626164726412674162616414741⎤⎦⎥⎥⎥⎥⎥⎥⎥[1474141626164726412674162616414741]\small\begin{bmatrix} …