Наша видео о переобучении привлекла внимание с тех пор, как была опубликована 5 лет назад, что для стартапа вроде Lokad означает полвека. Годы спустя мы достигли значительного прогресса, но переобучение остаётся сложной проблемой.

Короче говоря, переобучение представляет собой риск того, что ваша модель прогнозирования точно предсказывает только прошлое, а не будущее. Хорошая модель прогнозирования должна уметь предсказывать данные, которых у вас нет.

Распространённое заблуждение заключается в том, что нет другого способа оценить модель, кроме как проверить её производительность на исторических данных. Правда, исторические данные нужно использовать; однако, если есть один вывод, который стоит вынести из теории Vapnik-Chervonenkis, так это то, что не все модели равны по своей природе: некоторые модели несут в себе гораздо больший структурный риск — концепция, являющаяся частью теории — чем другие. Целый класс моделей можно считать либо безопасным, либо небезопасным с чисто теоретической точки зрения, что приводит к реальным улучшениям точности.

Проблемы переобучения невозможно полностью избежать, но их, тем не менее, можно смягчить.

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

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

В-третьих, даже самое обширное ретроспективное тестирование мало что даёт, если ваши временные ряды изначально разрежены, то есть, если временные ряды представляют собой товары с низкими объёмами продаж. Действительно, поскольку большинство точек данных во временных рядах равны нулю, процесс ретроспективного тестирования усваивает очень мало, перебирая нули. К сожалению для торговли, примерно 90% товаров, продаваемых или обслуживаемых, имеют историю спроса, которая с статистической точки зрения считается разреженной. Чтобы решить эту проблему, производительность модели следует оценивать с точки зрения нескольких временных рядов. Важна не эффективность модели на одном временном ряду, а её эффективность на хорошо определённых кластерах временных рядов. Тогда выбор лучшей модели становится балансом между локальной и глобальной эмпирической точностью.

Есть вопросы? Не стесняйтесь оставлять их в комментариях.


Комментарии читателей (2)

Shaun, Ретроспективное тестирование — это фундаментальный инструмент в статистике. Он используется десятилетиями практически во всех областях: финансах, метеорологии, транспорте, энергетике и т.д. Ретроспективное тестирование не требует «доверия», это, пожалуй, единственная надёжная методология, известная нам для оценки точности прогностического процесса, и существует огромная литература по этой теме. Для мягкого введения вам действительно стоит начать с чтения “Elements of statistical learning” Joannes Vermorel (4 years ago)


Joannes, Это чрезвычайно интересно. Однако мне мурашки по коже от мысли, как я объясню это клиентам. Если я правильно понимаю, ретроспективное тестирование можно проводить в Lokad, однако, если ретроспективное тестирование — что, судя по описанию, является формой машинного обучения — не возникает ли серьёзная проблема с объяснением того, что было сделано? Если алгоритм становится сложным, разве не стоит по сути доверять тому, что он работает? Очевидно, это основное направление для Lokad, поэтому все вы там много думали об этом. Однако я считаю, что корпоративная аудитория ограничена в возможности понять конкретные детали работы алгоритма. Так ли, что Lokad опирается на результаты исследований, проведённых ранее в других компаниях, демонстрирующих чистую выгоду от этого ретроспективного тестирования? Так ли, что Lokad опирается на результаты исследований, проведённых компанией Lokad для предыдущих компаний, демонстрирующих чистую выгоду от этого ретроспективного тестирования? Shaun Snapp (4 years ago)