ディープニューラルネットワークは正規化なしで乗算関数を近似できますか?


27

f = x * y標準的なディープニューラルネットワークを使用して単純な回帰を実行するとします。

1つの非表示層を持つNNがすべての関数を近似できることを示す再調査があることを覚えていますが、正規化なしではNNはこの単純な乗算でさえ近似できませんでした。データのログ正規化のみが役立ちましたがm = x*y => ln(m) = ln(x) + ln(y). 、それはチートのように見えます。NNはログ正規化なしでこれを行うことができますか?揺れは明らかに(私にとって)-はい、それで質問はそのようなNNのタイプ/構成/レイアウトはどうあるべきかということですか?

回答:


13

大きな乗算関数の勾配により、ネットは恐らくほぼ即座に恐ろしい状態になり、すべての隠されたノードの勾配はゼロになります(ニューラルネットワークの実装の詳細と制限のため)。次の2つのアプローチを使用できます。

  1. 定数で除算します。学習前にすべてを分割し、学習後に乗算します。
  2. ログ正規化を使用します。乗算を加算します:

    m=バツylnm=lnバツ+lny


5

同様の質問が本日より早く私に当たったので、すぐに答えが見つからなかったことに驚きました。私の質問は、NNには総和関数しかない場合、乗算関数をどのようにモデル化できるかということでした。

長い説明でしたが、この種の答えがありました。私の要約は、NNが関数自体ではなく関数表面をモデル化するということです。振り返ってみると、これは明らかです...


5

reluアクティベーション機能を備えたNNは、入力範囲が制限されている場合に乗算を近似できます。それを思い出してくださいrelu(x) = max(x, 0)

NNが二乗関数g(z) = z^2に近似すれば十分ですx*y = ((x-y)^2 - x^2 - y^2)/(-2)。右側には、線形の組み合わせと正方形があります。

NNはz^2区分線形関数で近似できます。例えば、レンジの上[0, 2]の組み合わせxrelu(2(x-1))その悪いことではありません。以下の図はこれを視覚化しています。これが理論を超えて役立つかどうかはわかりません:-) ここに画像の説明を入力してください


0

「1つの隠れ層」は、使用するニューロンと活性化関数の種類を制限しませんが、依然として大きな表現スペースがあります。この問題の存在を検証する1つの簡単な方法:この回帰問題を実際のニューロンネットワークでトレーニングし、各重みとバイアスを記録し、これらのパラメーターを使用して予測曲線をプロットし、ターゲット関数曲線と対比します。 このエッセイが役立つかもしれません。


0

StackExchangeで新しくアクティブになったため、コメントできません。しかし、これは重要な質問だと思います。なぜなら、理解するのは非常に簡単でありながら、説明するのが難しいからです。敬意を表して、受け入れられた答えだけでは十分ではないと思います。s(W*x+b)いくつかの非線形アクティベーション関数のフォームのアクティベーションを使用した標準フィードフォワードNNのコア操作について考えると、s実際には、合成(多層)ネットワークでもこれから乗算を「取得」する方法は明らかではありません。スケーリング(受け入れられた答えの最初の箇条書き)は、質問にまったく対処していないようです...何でスケーリングしますか?入力xyは、おそらくサンプルごとに異なります。そして、あなたが知っている限り、ログを取ることは問題ありませそれはあなたがする必要があることであり、前処理で符号の問題を処理します(明らかに負の入力に対してログが定義されていないため)。しかし、これは基本的に、ニューラルネットワークが「学習」できるという概念とは違います(OPが言ったように、チートのように感じます)。私より賢い人が本当に答えるまで、質問は答えられたと考えるべきではないと思います!

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