Ortalama kare hatası yerine mutlak ortalama hatası en aza indiriyorsam neden TensorFlow basit doğrusal modele sığmıyor?


10

Giriş bölümünde az önce değiştim

loss = tf.reduce_mean(tf.square(y - y_data))

için

loss = tf.reduce_mean(tf.abs(y - y_data)) 

ve model kaybının zamanla büyüdüğünü öğrenemiyor. Neden?

Yanıtlar:


17

Bunu denedim ve aynı sonucu aldım.

Bunun nedeni, degradenin .absyavaş yavaş sıfıra yaklaştığı kare farkın aksine, basit bir optimizatörün minimayı takip etmesinin daha zor olması, mutlak farkın gradyanının, aniden tersine çevrilen sabit bir büyüklüğe sahip olması ve optimizatörün etrafında salınım yapma eğiliminde olmasıdır. asgari nokta. Temel degrade inişi, degradenin büyüklüğüne ve temel olarak adım boyutları için degradenin sadece bir çarpanı olan öğrenme hızına çok duyarlıdır.

En basit düzeltme öğrenme hızını düşürmektir.

optimizer = tf.train.GradientDescentOptimizer(0.5)

için

optimizer = tf.train.GradientDescentOptimizer(0.05)

Ayrıca, farklı optimize ediciler ile bir oyun var. Bazıları .abstemelli kayıplarla daha iyi başa çıkabilecektir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.