Какая функция потерь лучше, чем MSE при прогнозировании температуры?

У меня есть вектор признаков размером 1x4098. Каждый вектор признаков соответствует числу с плавающей запятой (температуре). В процессе обучения у меня есть 10 000 образцов. Следовательно, у меня есть размер тренировочного набора 10000x4098 и метка 10000x1. Я хочу использовать модель линейной регрессии для прогнозирования температуры на основе данных обучения. я использую 3 скрытых слоя (512, 128, 32) с потерей MSE. Однако я получил точность только 80%, используя tensorflow. Не могли бы вы предложить мне другие функции потерь, чтобы повысить производительность?


person KimHee    schedule 19.04.2018    source источник
comment
Потеря Хубера, возможно, стоит попробовать, поскольку она менее чувствительна к выбросам. Однако, если эта точность 80% находится на тренировочном наборе, то потеря может не быть проблемой. Возможно, ваша скорость обучения слишком высока/низка, модель недостаточно сложна и т. д.   -  person Burton2000    schedule 19.04.2018
comment
Благодарю. 80% для проверки. Поддерживает ли huber loss в тензорном потоке?   -  person KimHee    schedule 19.04.2018
comment
Да tf.losses.huber_loss tensorflow.org/api_docs/python/tf/losses/ huber_loss   -  person Burton2000    schedule 19.04.2018
comment
спасибо за ваше решение. Я использую его и дам вам знать производительность. Будет ли это работать для линейной регрессии?   -  person KimHee    schedule 19.04.2018
comment
Что лучше для предсказания температуры? Не говорите нам вообще ничего, мы не знаем вашего набора данных. Каково его распространение? (нарисуй и выложи тут сюжет)   -  person smci    schedule 20.04.2018


Ответы (1)


Позвольте мне дать довольно теоретическое объяснение выбора функции потерь. Как несложно догадаться, все зависит от данных.

MSE имеет хорошую вероятностную интерпретацию: она соответствует MLE (оценка максимального правдоподобия) в предположении, что распределение p(y|x) является гауссовым: p(y|x) ~ N(mu, sigma). Поскольку MLE сходится к истинному значению параметра, это означает, что при таком допущении найденный минимум, скорее всего, будет наилучшим соответствием, которое вы можете получить. Конечно, вы можете найти локальный минимум вместо глобального, также есть неявное предположение, что ваши обучающие данные хорошо представляют распределение x. Но такого рода неопределенность неизбежна, поэтому на самом деле мы просто принимаем ее.

Двигаясь дальше, минимизация потерь L1 (абсолютная разница) эквивалентна максимизации MLE при условии, что p(y|x) имеет распределение Лапласа. И вот тот же вывод: если данные соответствуют этому распределению, никакие другие потери не будут работать лучше, чем потери L1.

проигрыш Хьюбера не имеет строгой вероятностной интерпретации (по крайней мере, я не знаю об этом), это что-то среднее между L1 и L2, ближе к тому или иному в зависимости от выбора delta.

Как это поможет вам найти правильную функцию потерь? Прежде всего, это означает, что по умолчанию ни один убыток не превосходит другие. Во-вторых, чем лучше вы понимаете данные, тем больше вы можете быть уверены в правильности выбора функции потерь. Конечно, вы можете просто перепроверить все эти варианты и выбрать лучший. Но есть веская причина для такого анализа: когда вы уверены в распределении данных, вы увидите постоянное улучшение с добавлением новых обучающих данных и увеличением сложности модели. В противном случае просто возможно, что модель никогда не обобщится.

person Maxim    schedule 19.04.2018