А пока лишь некоторые теоретические размышления.

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

Давайте рассуждать об этом из основных определений.

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

Самый простой возможный «пример» — это один бит данных. Таким образом, простейший возможный ввод для нашей обучающей машины — это поток логических или битовых значений. Поскольку машина (согласно приведенному выше определению) обучается постепенно, то есть с течением времени, мы можем думать об этих логических значениях/битах как о положительных и отрицательных событиях.

Но что именно он может узнать из таких входных данных и как мы можем измерить его прогресс? Он может попытаться предсказать следующий ввод. Если результат такого предсказания со временем становится лучше, мы можем честно сказать, что наша машина чему-то научилась.

Последняя вещь. Вы не можете учиться без памяти. Машина должна использовать как можно меньше памяти. В реальной жизни на реальных компьютерах это будет 1 байт.

Итак, вот объединенные критерии. Простейшая обучающая машина™ – это устройство, которое принимает на вход поток бинарных событий, сохраняет 1 байт "динамической" информации и постоянно совершенствуется в предсказании следующего события.

Такое вообще возможно? Я думаю, что можно хотя бы приблизиться. Видите ли, алгоритм не обязательно должен быть хорошим в предсказаниях. Просто со временем должно стать лучше. Даже в реальном машинном обучении есть много случаев, когда слабые классификаторы дают полезные результаты (например, ансамблевые методы), поэтому TSLM не является полностью теоретической конструкцией и может быть несколько полезной.

Я могу придумать несколько алгоритмов, которые соответствовали бы критериям или, по крайней мере, приблизились бы к ним. Одну реализацию я опишу в следующей статье.