平均二乗エラーの代わりに絶対平均誤差を最小限に抑えている場合、Tensorflowが単純な線形モデルに適合できないのはなぜですか?
-
16-10-2019 - |
質問
の 序章 私はちょうど変わった
loss = tf.reduce_mean(tf.square(y - y_data))
に
loss = tf.reduce_mean(tf.abs(y - y_data))
そして、モデルは時間とともに損失が大きくなったことを知ることができません。なんで?
解決
私はこれを試してみて、同じ結果を得ました。
の勾配があるからです .abs
勾配がゆっくりとゼロに近づく四角い違いとは異なり、単純な最適化装置が最小値に続くのはより困難です。絶対差の勾配は、最小点の周りに最適化装置を振動させる傾向がある固定大きさを逆転させます。基本的な勾配降下は、勾配の大きさと学習率に非常に敏感です。これは、基本的にステップサイズの勾配の乗数にすぎません。
最も簡単な修正は、学習率を低下させることです。
optimizer = tf.train.GradientDescentOptimizer(0.5)
に
optimizer = tf.train.GradientDescentOptimizer(0.05)
また、さまざまなオプティマイザーと遊びをしてください。いくつかは対処できるでしょう .abs
- より良い損失。
所属していません datascience.stackexchange