数学の畳み込みとCNNの関係


10

畳み込みの説明を読んである程度理解しました。誰かがこの操作がたたみ込みニューラルネットのたたみ込みにどのように関連しているかを理解するのを手伝ってくれませんか?gウェイトをかけるフィルターのような機能ですか?



それはまさに私が読んでいることであり、CNNのたたみ込みは行列演算であることがそこからわかります。そして、「機能的」畳み込みはそこで決して使われませんか?これは同じ名前の2つの異なる操作だけですか?
VladimirLenin

2
おそらく、表示されている違いは、畳み込みの離散ビューと連続ビューの違いです。これは基本的に同じ操作ですが、これら2つの異なる空間で異なる方法で実行する必要があります。CNNは離散たたみ込みを使用します。そして、それは接続の数学を表現する便利な方法であるため、それを行うだけです(これは両方向に当てはまります-これは、設計が与えられた数学的便宜であり、この設計がウェルにきちんとマップされるため、人気がある理由の1つであると考えられます
Neil Slater

回答:


2

ウィキペディアのページの表記を使用すると、CNNでの畳み込みは、必要な情報を抽出し、おそらくアクティベーション関数を適用するためにいくつかの重みを学習するカーネルになります。g

離散畳み込み

ウィキペディアのページから、畳み込みは次のように説明されています

fg[]=Σメートル=INFINFf[メートル]g[メートル]

たとえば、aが関数fであり、bがたたみ込み関数gであると仮定と、afbg

ここに画像の説明を入力してください

これを解決するために、我々は機能フリップ最初の方程式を使用することができ起因して、垂直- メートル式に表示されます。次に、nの各値の合計を計算します。nを変更している間、元の関数は移動しませんが、畳み込み関数はそれに応じてシフトします。n = 0から始まり、bメートル=0

c[0]=ma[m]b[m]=00.25+00.5+11+0.50+10+10=1

c[1]=ma[m]b[m]=00.25+10.5+0.51+10+10=1

c[2]=ma[m]b[m]=10.25+0.50.5+11+10+10=1.5

c[3]=ma[m]b[m]=10+0.50.25+10.5+11=1.625

c[4]=Σメートルa[メートル]b[メートル]=10+0.50+10.25+10.5+01=0.75

c[5]=Σメートルa[メートル]b[メートル]=10+0.50+10+10.25+00.501=0.25

ご覧のとおり、それはまさにプロット得られるものです。私たちは、関数の周りにシフトしてBを[ N ]機能を超える[ N ]c[]b[]a[]

2D離散畳み込み

たとえば、マトリックスが緑色の場合

ここに画像の説明を入力してください

畳み込みフィルター

ここに画像の説明を入力してください

次に、結果として生じる演算は、以下に示すように、要素ごとの乗算と項の加算です。ウィキペディアのページが示すように、このカーネル(オレンジの行列)は、関数(緑の行列)f全体にわたってシフトされます。gf

ここに画像の説明を入力してください

g


1

はい、それらは関連しています。例として、ガウス値のカーネルとのたたみ込みであるガウス平滑化(en.wikipedia.org/wiki/Gaussian_blur)を考えます。CNNはフィルター(つまりカーネル)の重みを学習するため、必要に応じて平滑化の実行を学習できます。


1

CNN畳み込みニューラルネットワークの略で、彼らがやっていることは、畳み込み数学の相互相関の名前とされていません。見てください、ここを

さて、次に進む前に、畳み込みニューラルネットワークを実装するために何をしなければならないかという事実について、相互相関と畳み込みについて技術的なコメントをしたいと思います。異なる数学の教科書や信号処理の教科書を読んでいる場合、表記法に矛盾が生じる可能性があります。それは、典型的な数学の教科書を見ると、要素Yの積を計算して合計する前に畳み込みを定義する方法です。実際にはもう1つのステップ...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.