Подсказки в машинном обучении

Положим, на своих данных мы тренируем модель M, переводя опции X (вектор) в метки Y (тоже вектор) X -> M -> Y.

Положим ещё, что по своему человеческому разумению данной задачи мы понимаем, что другой набор выводимых опций (меток) из тех же исходных опций X может иметь решающее значение. И модель для них есть, N. Иначе говоря, X -> N -> Z. И хотя сами по себе эти метки не имеют для нас большой ценности, опираясь на свой опыт, мы понимаем, что они могут быть важным фактором в определении Y.

Если модель M достаточно мощная, вполне вероятно, что опции Z уже присутствуют в ней в качестве внутренних абстракций. А может и нет. Как правило, ни узнать этого, ни повлиять мы не можем. У нас нет возможности обнаружить внутри M сущности, которые мы могли бы надежно идентифицировать и соотнести с Z, да еще сообщить модели об их важности.

Единственный продуктивный способ сообщить модели M о необходимости учитывать вторичные опции, это добавить их к основным. То есть, получив X -> N -> Z относительно простым способом, мы добавляем результат к опциям модели M: (X, Z) -> M -> Y. Тренировать ли M и N синхронно или раздельно — вопрос отдельный.

Например, я говорил уже о бесполезности прогнозов (если только вы не торгуете прогнозами). Но! От прогнозов мало толку в качестве конечного результата. Но мы же понимаем, что если основа данных — временной ряд, от хорошего прогноза может быть реальная польза. Надо лишь дать основной модели подсказку. То есть, если сделать даже простенький прогноз чем-то вроде ARIMA и прибавить его к входным опциям основной модели, то есть кормить модель M данными не только о прошлом, но и о предполагаемом будущем, её качество может заметно возрасти. Просто потому, что дополнительная опция дала модели подсказку о том, что нам представляется важным.

Результатом модели M может быть стратегия.

Оригинал: VK.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *