ニューラル ネットワークが値が非常に近いターゲット値を回帰できるかどうか疑問に思っています。例えば:
input [100 150 200 300]
output [0.99903 0.99890 0.99905 0.99895]
それとも、出力データまたはターゲット データを処理する必要がありますか?
ありがとう。
ニューラル ネットワークが値が非常に近いターゲット値を回帰できるかどうか疑問に思っています。例えば:
input [100 150 200 300]
output [0.99903 0.99890 0.99905 0.99895]
それとも、出力データまたはターゲット データを処理する必要がありますか?
ありがとう。
kwatford の言う通り、データを正規化してください!
理論的には、ニューラル ネットワークはそのようなターゲットを学習できます。しかし、私たちは不正確な実数表現を持つ実際のコンピューターで作業しています。ここで考えてみてください。ニューラル ネットワークをトレーニングすると、トレーニング中の現在の予測は次のようになります。
入力 [100 150 200 300]
出力 [0.99905 0.99890 0.99903 0.99895]
100 と 200 の結果を反転させただけです。したがって、二乗誤差の合計は 4e-10 になります。ニューラル ネットワークの重みに追加する値はさらに小さくなります。単精度浮動小数点数を使用する場合、この数値にはすでに問題があります。GNU Octave の例は、これを示しています。
single(0.99905)+single(1e-10)
ans = 0.99905
つまり、ほとんどの ANN 実装では、データを正規化することは不可能です。:)