Какую выходную активацию и потерю я должен использовать, если хочу прогнозировать непрерывный результат с интервалом 0-1? - PullRequest
1 голос
/ 19 октября 2019

Я хочу предсказать непрерывную переменную (автоэнкодер). Поскольку я масштабировал свои входы с минимального до интервала 0-1, имеет ли смысл использовать сигмовидную активацию в выходном слое? Сигмоид не соответствует потере MSE тогда. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 20 октября 2019

РЕЗЮМЕ: , если не уверены, используйте binary_crossentropy + sigmoid. Если большинство ваших меток имеют 0 или 1 или очень близко, попробуйте mae + hard_sigmoid.


ОБЪЯСНЕНИЕ :

Функции потери определяютприоритеты модели;для регрессии цель состоит в том, чтобы минимизировать отклонение предсказаний от наземной истины (метки). С активацией, ограниченной между 0 и 1, MSE будет работать.

Однако ;это может быть не самым лучшим - в частности, для нормализованных данных. Ниже приведен график зависимости MSE от MAE для интервала [0, 1]. Ключевые различия:

  • MSE штрафует небольшие различия намного меньше , чем MAE
  • MSE штрафует большие различия, относительно свои собственные штрафы малых значений, намного больше, чем MAE

Как следствие выше:

  • MSE -> модель лучше не «очень неправильная», но хуже «очень правильная»
  • MAE -> модель лучше прогнозирует все значения в среднем, но непомните о «очень неправильных» предсказаниях

Что касается активаций - hard sigmoid может работать лучше, особенно если многие из ваших значений равны или очень близки к 0 или 1,поскольку он может равняться 0 или 1 (или приближаться к ним) намного быстрее, чем сигмовидная банка, что должно служить формой регуляризации , поскольку является формой линеаризации (-> снижение веса).


Двоичная кроссентропия : обычно должна работать лучше всего (с / 1061 * сигмовидной *)1062 *)

В некотором смысле, это лучшее из обоих миров: оно более «равномерно распределено» (по неасимптотическому интервалу) и строго наказывает за «очень неправильные» предсказания. На самом деле, BCE гораздо жестче в отношении таких прогнозов, чем MSE, поэтому вы должны редко, если вообще когда-либо видеть предсказание «0» на метке «1» (кроме проверки). Просто убедитесь, что , а не , используйте жесткие сигмоиды по очевидным причинам.


Автоэнкодеры : попытайтесь восстановить их входные данные. В зависимости от приложения вы можете:

  1. Необходимо убедиться, что ни один прогноз не имеет слишком большого значения . Пример : данные сигнала. Один крайне неправильный временной шаг может перевесить отличную в целом реконструкцию

  2. Имеют шумовые данные и предпочитают модель, более устойчивую к шуму

В обоих случаях, особенно (1), BCE может быть нежелательным. Рассматривая все метки более «одинаково», MAE может работать лучше для (2).


MSE против MAE :

image

сигмовидная и жесткая сигмовидная

image


бинарная кроссентропия против MSE против MAE (y == 0регистр показан для BCE)

image

2 голосов
/ 19 октября 2019

Используйте sigmoid активацию и потерю регрессии, например mean_squared_error или mean_absolute_error

...