평균 제곱 오차 대신 절대 평균 오차를 최소화하는 경우 왜 TensorFlow가 간단한 선형 모델에 적합하지 않습니까?


10

에서 소개 난 그냥 변경

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

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

모델은 손실이 시간이 지남에 따라 커짐을 알 수 없습니다. 왜?

답변:


17

나는 이것을 시도하고 같은 결과를 얻었다.

기울기 .abs가 느리게 0에 접근하는 제곱 차와 달리 간단한 최적화 기가 최소값을 따라 가기가 더 어렵 기 때문에 절대 차의 기울기는 갑자기 반전되는 고정 된 크기를 가지므로 옵티마이 저가 진동하는 경향이 있습니다. 최소 점. 기본 그라디언트 디센트는 그라디언트의 크기와 학습 속도에 매우 민감합니다.이 단계는 기본적으로 단계 크기에 대한 그라디언트의 승수입니다.

가장 간단한 해결책은 학습 속도를 낮추는 것입니다.

optimizer = tf.train.GradientDescentOptimizer(0.5)

optimizer = tf.train.GradientDescentOptimizer(0.05)

또한 다른 옵티 마이저와 함께 플레이하십시오. 일부는 .abs손실을보다 잘 처리 할 수 ​​있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.