オートエンコーダーでReLUをアクティベーション機能として使用できますか?


11

ニューラルネットワークでオートエンコーダを実装する場合、ほとんどの人はシグモイドをアクティベーション関数として使用します。

代わりにReLUを使用できますか?(ReLUには上限に制限がないため、基本的に、シグモイドが使用されるときの自動エンコーダーの制限された基準とは異なり、入力画像は1より大きいピクセルを持つことができます)。

回答:


5

2013年7月からのディスカッションスレッドは次のとおりです。これには問題がある可能性がありますが、それは可能です。

ÇağlarGülçehre(Yoshua Bengioのラボ)は、Knowledge Mattersで次の手法をうまく使用したと述べています:最適化のための事前情報の重要性

通常どおり最初のDAEをトレーニングしますが、非表示層に整流器を使用 a1(x) = W1 x + b1 h1 = f1(x) = rectifier(a1(x)) g1(h1) = {sigmoid}(V1 h1 + c1) します。g1(f1(corrupt(x)))とxを比較して、クロスエントロピーまたはMSE損失を最小限に抑えます。シグモイドはデータによってはオプションです。

ノイズMSE損失でF1整流器と使用softplus再構成単位の前に添加して第2のDAEを訓練: h2 = f2(h1) = rectifier(W2 h1 + b2) g2(h2) = softplus(V2 h2 + c2) 最小f1(x)g2(f2(rectifier(corrupt(a1(x)))))2+λ1W1+λ2W2

ザビエルGlorotは、またBengioラボから、彼は交換以外は同じでしたと(おそらく「活性値の」ペナルティの両方で?)ドメイン適応のため大規模な感情分類:ディープラーニングアプローチ(ICML 2011)およびディープスパース整流器ニューラルネットワーク(AISTATS 2011)。W1L1g2()1


迅速な対応ありがとうございます!それで、Sigmoidの代わりにReLUが使用されている場合、auteencoderの最適化にいくつかの問題があると言っていますか?
RockTheStar

問題を引き起こす可能性があるようですが、学習プロセスを正しく設定すれば間違いなく実行できます。リンクされた論文を読むと役立つかもしれません。
Dougal、2015

MNISTデータセットで単純なオートエンコーダーを実験しています。私は784-128-64-2-64-128-784アーキテクチャで完全に接続されたネットワークを使用しています。私はどこでもrelusを使用していますが、ボトルネックレイヤー(reluまたは線形)と出力レイヤー(reluまたはsigmoid)を実験しています。出力に整流器を使用すると、パフォーマンスが低下します。シグモイドの方が効果的です。シグモイド出力の場合、線形ボトルネックの方がわずかに改善しているようです。したがって、これらの2つのレイヤーの私のお気に入りの組み合わせは、線形/シグモイドです。(ちなみに、すべてのレイヤーでシグモイドを使用すると、明らかに悪化します。)
アメーバは

@ameoba relu出力が悪いのは当然のことです。出力に特定の境界があることがわかっている場合は、それらの境界に制約するアクティベーション関数を使用することは理にかなっています。私はこの分野の経験はあまりありませんが、非表示のレイヤーにELUやリークの多いReLUを試してみるとよいでしょう。
Dougal

2
ああ、すごい、ELUのことは知りませんでした。先端をありがとう、Dougal。私はそれらを試しました、そして彼らはよりよく働きます。ディープラーニングは驚くべきことです。毎年新しいトリックが登場し、なぜ他のトリックより優れているのか誰もわかりません。(CCから@RockTheStarへ)。ちなみに、Adamオプティマイザのパフォーマンスは非常に優れています。
アメーバは、モニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.