拡張型畳み込みとデコンボリューションの違いは何ですか?


11

これら2つの畳み込み演算は、現在、深層学習で非常に一般的です。

このペーパーで拡張した畳み込み層について読みました:WAVENET:A GENERATIVE MODEL for RAW AUDIO

とデコンボリューションはこの論文にあります:セマンティックセグメンテーションのための完全たたみ込みネットワーク

どちらも画像をアップサンプリングするようですが、違いは何ですか?

回答:


9

一種の機械論的/絵画的/画像ベースの用語で:

膨張: ### コメントを参照してください、このセクションの修正に取り組んでいます

拡張は、通常のコンボリューションとほぼ同じですが(通常、デコンボリューションもそうです)、カーネルにギャップが生じることを除きます。つまり、標準のカーネルは通常、入力の隣接するセクション上をスライドしますが、拡張されたものは、たとえば、画像のより大きなセクションを「囲む」-それでも標準のフォームと同じ数の重み/入力しかない。

(よく注意してください。膨張が出力の顔の寸法/解像度をより迅速に減少させるためにカーネルにゼロを注入するのに対し、転置畳み込みはその出力の解像度を上げるために入力にゼロを注入します。)

これをより具体的にするために、非常に単純な例を見てみましょう
。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
覚えておいてください、私は専門家ではありません-私自身これらの概念を最近区別しなければならなかった人だけです。回答全体の正確性を損なう可能性のある明らかな誤りや過度の簡略化があるかどうかをお知らせください。ありがとう!
Doug Brummell 2017年

Doug Brummelワウがうまく説明しています。私は同じ考えを持っていました。拡張された畳み込みを適用することについてのあなたの意見を知りたいのですが、CNNでこれをどのように適用し始めるべきですか?最初に通常の畳み込みを行ってから、拡張された混同を適用する必要がありますか?もう1つの拡張された畳み込みでは、ゼロパッドを行わないと情報が失われることがあります。ですから、いくつかの通常のconvnetsレイヤーの後に拡張畳み込みを適用する必要があると思いますか?
Shamane Siriwardhana 2017年

標準的なアイデアは、l = 1の拡張されていない通常のフィルターから始めて、ネットワークの深さを進むにつれて、2、3の拡張フィルターに向かって移動するなど、拡張の量を増やすことだと思います。これにより、1つのレイヤーのすべてのデータが次のレイヤー(重要なことに、ネットワーク自体を含む)に確実に渡されるようにしながら、各レイヤーで指数関数的に高速のダウンサンプリングを可能にしますが、パラメーターを増やす必要はありません。データの取り込みを犠牲にすることなく、広い受容野を目指すことが目標です。そしてはい、パディングへの注意は早い段階で重要です。
Doug Brummell 2017年

[このペーパー](arxiv.org/pdf/1511.07122.pdf)を参照してください。これは上記で参照されており、このトピックで読んだ内容についての良い情報を提供します。
Doug Brummell 2017年

もう1つ、その論文では、このような増加する拡張スキームで解像度の損失はないことを述べています...私は、「解像度」で覆い隠す可能性がある他の損失に注意しているだけだと思います。もちろん、多数のconvレイヤーを少ない数の膨張したレイヤーに置き換えて精度を維持できるのであれば、すばらしいことです。しかし、私にとっては(そして、この本に戻る必要があります)、最初から拡張を伴う設計を行った場合の潜在的な損失について考えます...
Doug Brummell

5

両方が同じことをしているように見えますが、それはレイヤーをアップサンプリングすることですが、それらの間には明確なマージンがあります。

まず、拡張畳み込みについて話します

上記のトピックでこの素晴らしいブログを見つけました。私が理解しているように、これは入力データポイントを広範囲に探索することに似ています。または畳み込み演算の受容野を増やします。

これは、論文の拡張された畳み込み図です。

画像3

これはより通常の畳み込みですが、パラメーターのサイズを増やすことなく、入力ピクセルからより多くのグローバルコンテキストをキャプチャするのに役立ちます。これは、出力の空間サイズを増やすのにも役立ちます。しかし、ここでの主なことは、これが受容体のサイズを層の数とともに指数関数的に増加させることです。これは、信号処理の分野では非常に一般的です。

このブログでは、拡張された畳み込みの新機能と、通常の畳み込みとの比較について説明しています。

ブログ:膨張畳み込みとクロネッカー因数分解畳み込み

デコンボリューションとは何かを説明します

これは転置畳み込みと呼ばれます。これは、逆伝播の畳み込みに使用した関数と同じです。

バックプロップで単純に、出力特徴マップの1つのニューロンからの勾配を受容野のすべての要素に分布させ、次に同じ受容体要素と一致する場所の勾配を合計します。

ここに写真付きの優れたリソースがあります。

したがって、基本的な考え方は、出力空間で動作するデコンボリューションです。ピクセルを入力しません。それは出力マップでより広い空間的次元を作成しようとします。これは、セマンティックセグメンテーション用の完全畳み込みニューラルネットで使用されます。

したがって、Deconvolutionの多くは、学習可能なアップサンプリングレイヤーです。

最終的な損失と組み合わせながらアップサンプリングする方法を学習しようとします

これは、デコンボリューションに関して私が見つけた最良の説明です。21.21 以降の cs231の講義13 。


拡張された畳み込みが出力の空間サイズを増やすのにどのように役立つかについて詳しく説明してもらえますか?従来の畳み込みよりもさらに多くのパディングが必要となるため、出力サイズの点でさらに悪いようです。
wlnirvana 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.