オートエンコーダーの再構築で、逆ではなくフォワードアクティベーションと同じアクティベーション機能を使用するのはなぜですか?


9

あなたは、n個のニューロンと入力層を有し、第一の中間層があるとし典型的で、ニューロンを。次に、次のにして、隠れ層の番目のニューロンの作動を計算します。m < n a j jmm<najj

aj=f(i=1..nwi,jxi+bj)、ここではまたはような活性化関数です。tanh シグモイドftanhsigmoid

ネットワークをトレーニングするには、で示される入力の再構成を計算し、と間の誤差を最小化します。ここで、番目の要素は通常、次のように計算されます。z x i zzzxiz

zi=f(j=1..mwj,iaj+bi)

なぜ再構築されたは通常、逆関数を使用する代わりに同じ活性化関数を使用して計算されるのか、なぜ結合された重みとバイアスを使用する代わりに別々のとが役立つのでしょうか?次のように、逆活性化関数を使用して再構築を計算すること(たとえば、)を実行する方がはるかに直感的です。w b f 1アークタンzwbf1arctanh

zi=j=1..mf1(aj)bjwj,iT

ここでは、結合された重み、つまりw '= w ^ Tが使用され、入力層に追加のバイアスセットを導入する代わりに、隠れ層のw=wTバイアスb_jが使用されることに注意してくださいbj

そして、非常に関連する質問:再構成を計算する代わりに、フィーチャを視覚化するために、通常、隠れ層の次元を使用して単位行列を作成します。次に、行列の各列を再活性化関数への入力として使用し、入力ニューロンに出力を誘導します。再活性化関数については、同じ活性化関数(またはzi)または逆関数(それぞれzi)を使用する方が良いでしょうか?

回答:


5

あなたの仮定は成り立たないと思います。または、どちらかというと必要ではなく、そうした場合でも、何らかの方法で自動的に計算を逆にして、非表示レイヤーフィーチャを作成する必要はありません。この方法では、一般に、nからmを小さくするように圧縮を逆転させることはできません。それが目標であれば、単純な転置ではなく、行列の反転の形式が必要になります。w=wT

代わりに、圧縮された上位レベルの機能表現に必要であり、自動エンコーダーが終了した後にを破棄します。 w i jwijwij

を設定して重みを結び付けることができます。これは正則化に役立ち、オートエンコーダの一般化に役立ちます。しかし、それは必要ではありません。w=wT

オートエンコーダーが機能するためには、オートエンコーダーの最後のレイヤーが可能な入力の範囲を表すことができれば、事前トレーニングするレイヤーの後にどのアクティベーション機能を使用するかは実際には問題になりません。ただし、ニューラルネットワークでは通常のように、使用する内容によって結果の品質が異なる場合があります。

これは最も簡単な選択であるため、事前トレーニング済みレイヤーを構築しているのと同じアクティベーション関数を使用することは非常に合理的です。

逆関数の使用も可能ですが、シグモイドやtanhにはお勧めできません。たとえば、arctanhが<-1または> 1で定義されていないため、数値的に安定していない可能性があります。


ありがとう!ただし、は、たとえば、deeplearning.netのオートエンコーダーをノイズ除去するための非常に基本的なチュートリアルで使用されているため、一般的な方法のようです:(deeplearning.net/tutorial/dA.html#daa)再構築に同じアクティベーション機能を使用することがそれほど合理的ではないので、これについて詳しく説明していただけませんか?その真のは、それが最も簡単な選択であることが、使用することがはるかに自然な私には思えるして、実際にこの利回り活性化の数学的逆数ので。z i a r c t a n hw=wTziarctanh
Manfred Eppe、2016年

必要に応じてできます。例:deeplearning.net/tutorial/dA.html " オプションで、リバースマッピングの重み行列は、フォワードマッピングの転置になるように制約される場合があります:これは、結合重みと呼ばれます。 」(エンファシス鉱山)。私の答えの要点は、これを行う場合、エンコードの自動反転を提供するためではなく、トレーニングを正規化する制約にすぎないということです。W " = W TWW=WT
Neil Slater

ニール、ありがとう。問題に関するコメントは、質問を一般化してより正確にするのに役立ちました。そのため、質問を適宜編集しました。実際、転置行列を常に使用するのではなく、別々のを使用することがなぜ有用なのか、実際には理解していません。答えは「より良い結果が得られるから」かもしれませんが、なぜそれがより良い結果をもたらすのか疑問に思っいます。それは私には直感的に見えません。w w Tw=wTwwT
Manfred Eppe、2016年

@ManfredEppe:おそらく代わりに、転置された重み行列と逆関数が役立つと思う理由について慎重に考えるべきでしょうか?それらを使用する特定の理由はありません-それらが有用であると考える背後にあるあなたの直感は正確に何ですか?それが「対称性」のためのものである場合、それらが適用される順序をもう一度見てください。これは、入力から非表示のレイヤーの対称的な反転ではありません(そうである場合、逆活性化関数が最初でなければなりません)
Neil Slater
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.