Простой алгоритм онлайн-обучения

RLS: обучение на лету

Простая модель, которая учится на лету, обновляя свои веса по мере поступления новых данных.

Почему именно рекурсивный метод наименьших квадратов?

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

В этой статье я объясню, как адаптировать регрессию наименьших квадратов для рекурсивного вычисления оптимальных весов по мере поступления новых данных и, следовательно, сделать ее пригодной для приложений онлайн-обучения.

Метод наименьших квадратов

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

У этого есть аналитическое решение, которое может быть достигнуто с помощью небольшой части линейной алгебры, известной как псевдообратное:

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

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

Следовательно, этот метод необходимо адаптировать для реализации в интерактивном режиме.

Обновление первого уровня, обновление обратного

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

На каждом временном шаге, когда принимается новая точка данных, Rn может быть выражено, как указано выше.

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

Важно отметить, что обновленные веса равны предыдущей оценке весов за вычетом члена выигрыша, умноженного на ошибку прогнозирования. Этот результат часто наблюдается в области машинного обучения (см. формула обновления для стохастического градиентного спуска, фильтрации Калмана, Q-обучения в обучении с подкреплением и т. д.).

Где RLS лучше SGD

Показанный выше алгоритм реализован на Python и сравнивается с чрезвычайно популярным алгоритмом стохастического градиентного спуска (SGD).

Синтетический набор данных, состоящий из 500 точек данных с некоторой корреляцией, генерируется случайным образом. Со случайно инициализированными весами можно применить SGD для аппроксимации линии наилучшего соответствия. Затем это можно сравнить с алгоритмом RLS.

Как видите, алгоритму RLS требуется всего около 100 точек данных, чтобы достичь идеального решения, тогда как алгоритму SGD требуется около 40 000 итераций для достижения того же решения (даже при том, что он имеет доступ ко всем данным). Мало того, RLS обучается на лету, аппроксимируя псевдообратное решение каждый раз, когда получает новую точку.

По сравнению с другими реализациями

В заключение, эту реализацию можно сравнить с той, что предлагается общедоступными библиотеками Python.

Реализация алгоритма идентична той, что предлагается statsmodels.api, популярной библиотекой Python для RLS. На рисунках выше показана сходимость трех весов по обоим алгоритмам, все веса достигают одинаковых значений.

Заключение

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

Поддержите меня

Надеюсь, это помогло вам, если вам понравилось, вы можете подписаться на меня!

Вы также можете стать средним участником, используя мою реферальную ссылку, получить доступ ко всем моим статьям и многому другому: https://diegounzuetaruedas.medium.com/membership