スタック型畳み込みオートエンコーダのアーキテクチャは何ですか?


23

だから私は畳み込みネットを使って人間の画像の事前訓練をしようとしています。論文(Paper1Paper2)とこのstackoverflowリンクを読みましたが、ネットの構造を理解しているかどうかはわかりません(論文で明確に定義されていません)。

質問:

  • 入力に続いてノイズレイヤー、コンバーレイヤー、プーリングレイヤーの順に入力することができます-その後-出力を与える前にプールを解除します(これは入力イメージと同じです)?

    複数(135,240)の画像があるとします。32(12,21)カーネルを使用し、続いて(2,2)プーリングを使用すると、32(62、110)の機能マップになります。ここで、プールを解除して32(124、220)の機能マップを取得し、それらをフラット化しますか?(135,240)出力レイヤーを与える前に?

  • 複数のこのようなコンボプールレイヤーがある場合、スタックされたノイズ除去オートエンコーダーのように、それらを1つずつトレーニングする必要がありますか?または-input-conv-pool-conv-pool-conv-pool-output(出力は入力と同じです)のようなものを持つことができますか?その場合、プーリング、デプールはどのように管理されるべきですか?出力前に最後のプール層でのみプール解除する必要がありますか?そして再び-そのプール解除のサイズ変更要因は何でしょうか?機能マップを入力の形状に戻すつもりですか?

  • conv-pool-depoolレイヤーごとにノイズレイヤーを導入する必要がありますか?

  • そして、微調整するとき-デプール層を削除し、残りは同じままにする必要がありますか?または、ノイズ層とプール解除層の両方を削除する必要があります

  • 画像の事前トレーニングを行うために、このようなスタック型畳み込み自動エンコーダーのアーキテクチャを詳しく説明したURL /ペーパーを教えてください。

回答:


12

現在、スタック型畳み込みオートエンコーダーを調査しています。

私の知る限り、あなたの質問のいくつかに答えようとします。気をつけて、私は間違っているかもしれないので、塩の粒でそれを取る。

  1. はい、プールを「反転」してから、一連のフィルターとコンボリューションして出力イメージを復元する必要があります。標準的なニューラルネットワーク(MNISTデータを入力、つまり28x28の入力ディメンションと見なす)は次のようになります。

        28x28(input) -- convolve with 5 filters, each filter 5x5 -->  5 @ 28 x 28 maps -- maxPooling --> 5 @ 14 x 14 (Hidden layer) -- reverse-maxPool --> 5 @ 28 x 28 -- convolve with 5 filters, each filter 5x5 --> 28x28 (output)
    
  2. 私の理解では、これが従来のやり方、つまり各レイヤーを個別にトレーニングすることです。その後、レイヤーをスタックし、事前に訓練された重みを使用してネットワーク全体をもう一度訓練します。ただし、Yohsua Bengioには、完全にスタックされたネットワークを構築し、ゼロからトレーニングできることを示すいくつかの研究があります(参考文献は私の記憶から逃れています)。

  3. 私の理解では、入力にロバストネス/変動性を導入するために「ノイズ層」があり、トレーニングがオーバーフィットしないようにしています。

  4. 事前トレーニングまたは微調整をまだ「トレーニング」している限り、再構成部分(つまり、reversePooling、デコンボリューションなど)が必要だと思います。それ以外の場合、重みを調整するためにエラーバック伝播をどのように実行する必要がありますか?

  5. 私は多数の論文を閲覧してみましたが、アーキテクチャが完全に説明されることはありません。あなたが何かを見つけたら私に知らせてください。


事前トレーニングが完了したら、デコーダー部分は不要になり、微調整によりエンコーダーが調整されますが、今回は分類を改善します。
jwalker

2
「reverse-maxPool」はどのように可能ですか?最大値のみを指定すると、一連の数値を再構築することはできません...?
15年

1
@Fequish、そのおおよその逆maxpool例:pool = 2x2の場合、maxの位置を保持し、2x2の特定の位置にmaxを挿入します。残りは0
user2979010

1
@jwalker、私の最終目標は分類ではなかったため、展開されたネットワークで微調整
-user2979010

@Fequish、逆のデコードの目的では、アップスケールの最近傍です。
jwalker

2

Stacked Convolutional Autoencodersの完全に説明されたモデルも探しています。

私は3つの異なるアーキテクチャに出会いました。私はまだそれらを研究しています、そして、これらはCAEを探検し始めている他の人を助けるかもしれないと思いました。論文または実装へのさらなる参照は大いに役立ちます。

  1. プーリングを使用してあなたが言及したもの-プーリング解除。
  2. (convolve)__ x_times->(deconvolve)__ x_timesのレイヤー、

    入力と同じサイズを取得します。

  3. (畳み込み->プール)__ x_times->(ストライデッドデコンボリューション)__ y_times
    • 最終画像サイズが元の画像と同じになるように、パディングとストライドが選択されます。
    • 参照

2
サイトへようこそ。これは、OPの質問への回答、OPまたは回答者の1人に説明を求めるコメント、または独自の新しい質問として意図されていましたか?元の質問に対する回答を提供する場合にのみ、「あなたの回答」フィールドを使用してください。評価が50を超えると、どこでもコメントできます。新しい質問がある場合ASK QUESTION は、ページ上部の灰色をクリックして質問してください。その後、適切にお手伝いします。ここは初めてなので、新しいユーザー向けの情報が記載されたツアーを利用することをお勧めします。
GUNG -復活モニカ

1
それは完全な答えになる資格がないかもしれませんが、OPの質問への答えとして意図されました。私は最後の部分に答えていました'私は多くの論文を閲覧しようとしましたが、アーキテクチャが完全に説明されていることはありません。何か見つかったら教えてください。」
アンキット

はい、ありがとう。それが抜ける方法はあいまいです。例えば、「私も検索しています...」と「論文や実装へのさらなる参照は大いに役立つでしょう」。CVはディスカッションフォーラムではなく、純粋なQ&Aサイトであることに注意してください。なぜ私たちかかりませツアー&サイトについての詳細を学びますか?
GUNG -復活モニカ

-1

レイヤーごとのトレーニング方法が正しいとは思わない。たとえば、畳み込み自動エンコーダのアーキテクチャは次のとおりです。

input-> conv-> max_poo-> de_max_pool-> de_conv-> output。

これは自動エンコーダであり、アーキテクチャ全体でトレーニングする必要があります。さらに、1つの畳み込みオートエンコーダがpoolとun_poolを必要とするかどうかについての厳密な基準はありません。通常、1つのプールですが、un_poolはありません。以下は、poolとun_poolがない場合の実験的な比較です。

https://arxiv.org/pdf/1701.04949.pdf

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