これら2つの畳み込み演算は、現在、深層学習で非常に一般的です。
このペーパーで拡張した畳み込み層について読みました:WAVENET:A GENERATIVE MODEL for RAW AUDIO
とデコンボリューションはこの論文にあります:セマンティックセグメンテーションのための完全たたみ込みネットワーク
どちらも画像をアップサンプリングするようですが、違いは何ですか?
これら2つの畳み込み演算は、現在、深層学習で非常に一般的です。
このペーパーで拡張した畳み込み層について読みました:WAVENET:A GENERATIVE MODEL for RAW AUDIO
とデコンボリューションはこの論文にあります:セマンティックセグメンテーションのための完全たたみ込みネットワーク
どちらも画像をアップサンプリングするようですが、違いは何ですか?
回答:
一種の機械論的/絵画的/画像ベースの用語で:
拡張は、通常のコンボリューションとほぼ同じですが(通常、デコンボリューションもそうです)、カーネルにギャップが生じることを除きます。つまり、標準のカーネルは通常、入力の隣接するセクション上をスライドしますが、拡張されたものは、たとえば、画像のより大きなセクションを「囲む」-それでも標準のフォームと同じ数の重み/入力しかない。
(よく注意してください。膨張が出力の顔の寸法/解像度をより迅速に減少させるためにカーネルにゼロを注入するのに対し、転置畳み込みはその出力の解像度を上げるために入力にゼロを注入します。)
これをより具体的にするために、非常に単純な例を見てみましょう
。9x9の画像、xにパディングがないとします。ストライド2の標準3x3カーネルを使用する場合、入力からの最初の懸念サブセットはx [0:2、0:2]であり、これらの境界内の9つのポイントすべてがカーネルによって考慮されます。次に、x [0:2、2:4]などをスイープします。
明らかに、出力はより小さな顔の寸法、具体的には4x4になります。したがって、次の層のニューロンには、これらのカーネルパスの正確なサイズの受容野があります。しかし、よりグローバルな空間知識を持つニューロンが必要または必要な場合(たとえば、重要な機能がこれより大きい領域でのみ定義可能である場合)、この層をもう一度畳み込んで、有効な受容野が存在する3番目の層を作成する必要があります。以前のレイヤーのいくつかの結合rf。
しかし、レイヤーを追加したくない場合や、渡される情報が過度に冗長であると感じた場合(つまり、2番目のレイヤーの3x3受容フィールドには、実際には「2x2」の量の個別の情報しか含まれない)、拡張フィルター。明確にするためにこれについて極端に考えて、9x9 3ダイヤリングフィルターを使用するとします。これで、フィルターは入力全体を「取り囲む」ため、スライドする必要はまったくありません。ただし、通常は、入力xから3x3 = 9データポイントのみを取得します。通常は次のとおりです。
x [0,0] U x [0,4] U x [0,8] U x [4,0] U x [4,4] U x [4,8] U x [8,0] U x [8,4] U x [8,8]
これで、次のレイヤーのニューロン(1つしかありません)には、イメージのはるかに大きな部分を「表す」データが含まれます。また、イメージのデータが隣接するデータに対して非常に冗長である場合は、同じ情報と同等の変換を学習しましたが、レイヤーとパラメーターが少なくなっています。この説明の範囲内で、リサンプリングとして定義可能である一方で、ここでは各カーネルのダウンサンプリングを行っていることは明らかだと思います。
この種のことは、まだ非常に複雑です。違いは、再び、小さい入力ボリュームから大きい出力ボリュームに移動することです。OPはアップサンプリングとは何かについて質問しなかったので、今度は「幅広さ」を少し節約し、関連する例に直接進みます。
以前の9x9のケースで、11x11にアップサンプリングしたいとします。この場合、2つの一般的なオプションがあります。3x3カーネルとストライド1を使用し、2パディングで3x3入力をスイープして、最初のパスが領域[left-pad-2:1、 above-pad-2:1]、[left-pad-1:2、above-pad-2:1]というようになります。
あるいは、入力データの間にパディングを追加で挿入し、パディングをあまり行わずにカーネルをその上にスイープできます。明らかに、単一のカーネルでまったく同じ入力ポイントに何度も気を使うこともあります。これは、「部分的に縞模様」という用語がより合理的に思われる場所です。次のアニメーション(ここから借用し、この作品に基づいている(私は信じています))は、さまざまな次元であるにも関わらず、物事を明確にするのに役立ちます。入力は青、白はゼロとパディング、白は出力緑です。
もちろん、一部の領域を完全に無視することも無視しないこともある膨張とは対照的に、すべての入力データに関心があります。そして、私たちが始めたよりも多くのデータで明らかに巻き上げているので、「アップサンプリング」。
転置たたみ込みのより正確で抽象的な定義と説明のためにリンクした優れたドキュメントを読むことをお勧めします。また、共有された例が例示的なものであるが、実際に表現された変換を実際に計算するのに非常に不適切な形式である理由を理解するためにも。
両方が同じことをしているように見えますが、それはレイヤーをアップサンプリングすることですが、それらの間には明確なマージンがあります。
上記のトピックでこの素晴らしいブログを見つけました。私が理解しているように、これは入力データポイントを広範囲に探索することに似ています。または畳み込み演算の受容野を増やします。
これは、論文の拡張された畳み込み図です。
これはより通常の畳み込みですが、パラメーターのサイズを増やすことなく、入力ピクセルからより多くのグローバルコンテキストをキャプチャするのに役立ちます。これは、出力の空間サイズを増やすのにも役立ちます。しかし、ここでの主なことは、これが受容体のサイズを層の数とともに指数関数的に増加させることです。これは、信号処理の分野では非常に一般的です。
このブログでは、拡張された畳み込みの新機能と、通常の畳み込みとの比較について説明しています。
これは転置畳み込みと呼ばれます。これは、逆伝播の畳み込みに使用した関数と同じです。
バックプロップで単純に、出力特徴マップの1つのニューロンからの勾配を受容野のすべての要素に分布させ、次に同じ受容体要素と一致する場所の勾配を合計します。
ここに写真付きの優れたリソースがあります。
したがって、基本的な考え方は、出力空間で動作するデコンボリューションです。ピクセルを入力しません。それは出力マップでより広い空間的次元を作成しようとします。これは、セマンティックセグメンテーション用の完全畳み込みニューラルネットで使用されます。
したがって、Deconvolutionの多くは、学習可能なアップサンプリングレイヤーです。
最終的な損失と組み合わせながらアップサンプリングする方法を学習しようとします
これは、デコンボリューションに関して私が見つけた最良の説明です。21.21 以降の cs231の講義13 。