私のニューラルネットワークはユークリッド距離も学習できません


9

だから私は自分自身にニューラルネットワークを教えようとしています(猫の写真を分類するのではなく、回帰アプリケーションのために)。

私の最初の実験は、FIRフィルターと離散フーリエ変換を実装するためのネットワークのトレーニング(「前」と「後」の信号でトレーニング)でした。これらはどちらも活性化機能のない単一のレイヤーで実装できる線形演算だからです。 どちらもうまくいきました。

それで、私はを追加してabs()、振幅スペクトルを学習させることができるかどうかを見たかったのです。最初に、非表示層に必要なノードの数を考え、3のReLUがの大まかな近似に十分であることを認識したabs(x+jy) = sqrt(x² + y²)ので、その操作を単独の複素数(2入力→3 ReLUノードの非表示層→1)で単独でテストしました出力)。時々それは動作します:

ユークリッド距離を逆六角形ピラミッドとして実装する3つのReLU

しかし、私がそれを試すほとんどの場合、それは極小値で行き詰まり、正しい形を見つけることができません:

谷型ネットワークを形成する3つのReLU

損失vsエポック

KerasですべてのオプティマイザーとReLUバリアントを試してみましたが、それほど違いはありません。このような単純なネットワークを確実に収束させるために他に何かできることはありますか?それとも私は間違った態度でこれに近づいていますか、そしてあなたは問題で必要以上に多くのノードを投げるはずであり、それらの半分が死んだとしても大したこととは考えられませんか?


1
プロットは、いくつかの異なる実験のように見えるものを示します。その一部は機能し、一部は機能しません。違いの原因は何ですか?
Sycoraxはモニカを復活させます

@Sycoraxそれらは同じことのただ繰り返された試みです。六角形のピラミッドソリューションが見つかることもありますが、通常は見つかりません。
内部石

アクティベーション機能として、2つの非表示レイヤーと1つのtanhを試しましたか?
ケタン2018

@KetanNo、なぜ?:私はここにシンプルなバリエーション掲載stats.stackexchange.com/q/379884/11633
endolith

あなたはこれを見てみたいかもしれません。stats.stackexchange.com/q/375655/27556。しかし、なぜ3つだけの結果が必要だと思いますか?「自然な」分解は、relusで二乗近似を行う1つの非表示レイヤーと平方根を行う別のレイヤーになります。基本的にrelusは区分的線形近似を行っています。
seanv507

回答:


6

出力は、1つ以上のニューロンが死んでいる(またはおそらく2つのニューロンの重みの超平面が結合している)ことを強く示唆しているようです。3つのReluを使用すると、より合理的なソリューションに収束すると、中央に3つの影のある分割が表示されます。各ニューロンの出力値をチェックして、サンプルの大部分で死んでいるかどうかを確認することで、これが正しいかどうかを簡単に確認できます。または、2x3 = 6のニューロンの重みをそれぞれのニューロンでグループ化してプロットし、2つのニューロンが同じペアの重みに縮小するかどうかを確認することもできます。

x+iyxyabs(x+iy)x。これを改善するためにここでできることは本当にあまりありません。1つのオプションは、試行したニューロンを追加することです。2番目のオプションは、シグモイドのような継続的なアクティブ化、またはおそらく指数関数のような制限のないものを試すことです。ドロップアウトを試すこともできます(たとえば、10%の確率で)。ケラスで通常のドロップアウト実装を使用することもできます。これは、3つのニューロンすべてがドロップアウトする状況を無視するのに十分賢いことを期待しています。


1
+1、ほぼ間違いなくこれ。このような少数のウェイトでReLUを使用すると、ほとんどの場合、死んだニューロンが作用します。
kbrose 2018

1
これは、ReLUの場合のもっともらしい推測です。しかしOPは、いくつかの異なるReLUバリアントを試したと書いています-死んだニューロンはELUやLeaky ReluやPReLUなどのバリアントでも発生しますか?
Sycoraxは「モニカを復活させる」

3 shadowy splits in the center when you converge to the more reasonable solution.はい、それは私が言った粗雑な近似です。逆六角形のピラミッド。 or perhaps something unbounded like an exponential 私はeluとseluを試しましたが、あまりうまくいきませんでした。 two neurons collapse to the same pair of weightsああ、私はそのことを考えていませんでした。私は彼らが死んでいると思いました。
内部石

ReLUを使用しているときに隠れ層の出力にアクセスし、通常、ニューロンの1つが死んでいることを確認しました。それほど頻繁ではありませんが、2つが重複して同じことを行っています。ニューロンが冗長な役割に落ち着かないように、ニューロンを互いに「反発」させる方法があるのでしょうか。
内部石

1
@endolithドロップアウトは、独立したニューロンの構築を中心に明示的に設計されています。ELUは決して「死ぬ」ことはありませんが、左側には消失勾配があります。
Sycoraxによると、モニカの復活は
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.