HeadlinesBriefing favicon HeadlinesBriefing.com

MSE лжет: Часть II

Towards Data Science •
×

В предыдущей статье мы увидели, почему обучение с MSE заставляет модель сообщать только условное среднее, и как гауссовская NLL позволяет ей также изучать честную пошаговую неопределенность σ. Это была история одного шага. Этот пост продолжает с того места, где мы остановились. Все, что мы построили в Части I — гауссовская NLL, двухчленная потеря, доказательство того, что модель изучает как условное среднее, так и условную дисперсию — было о прогнозировании на один шаг вперед: при заданном окне контекста из T наблюдаемых значений предсказать распределение следующего значения x_{T+1}.

Во время вывода, в любом реальном приложении, этого редко бывает достаточно. Вы хотите знать, что произойдет в течение следующих 10, 100 или 1000 шагов. Вам нужен прогноз, а не одно предсказание. И если ваша модель вероятностная, вы хотите, чтобы этот прогноз нес честную неопределенность до самого конца горизонта. Этот пост о том, как сделать это правильно.

Можно сразу подумать о наивном подходе, то есть многократном применении модели, подаче ее предсказаний обратно в качестве входных данных — это тайно детерминированная операция, которая отбрасывает неопределенность, на изучение которой модель потратила столько усилий. Исправление этого требует тщательного обдумывания того, что на самом деле представляет собой совместное распределение будущих значений и как аппроксимировать его с помощью выборки Монте-Карло. Исправление едва ли больше кода, чем наивная версия, но оно дает принципиально другой и принципиально лучший прогноз.

Все здесь построено и проверено в сопутствующем блокноте: два подхода к развертыванию, примененные к одной и той же обученной модели, на одном и том же сигнале, с диагностикой покрытия и PIT (все объяснено в этом посте).