Изменения

Перейти к: навигация, поиск

Обучение в реальном времени

754 байта добавлено, 11:16, 8 января 2021
Нет описания правки
Алгоритмы пакетного обучения обладают рядом критических недостатков из-за необходимости обучать модель с нуля при получении новых данных: низкая эффективность по времени и памяти, плохая масштабируемость для крупных систем. Онлайн-обучение решает эти проблемы, поскольку модель обновляется на основе поступающих в каждый момент времени данных. Благодаря этому алгоритмы онлайн-обучения гораздо более эффективны в приложениях, где данные не только имеют большой размер, но и поступают с высокой скоростью.
При онлайн-обучении для построения модели необходим один проход по данным, что позволяет не сохранять их для последующего доступа в процессе обучения и использовать меньший объем памяти. Обработка одного объекта за раз также значительно упрощает реализацию алгоритма онлайн-обучения. Однако изменение вида входных данных, выход сервера из строя и многие другие причины могут привести к прекращению корректной работы некорректной работе системы. Оценить качество работы системы при онлайн-обучении сложнее, чем при пакетном: не нет возможности получить репрезентативный тестовый набор данных.
В зависимости от типа обратной связи существующие методы онлайн-обучения можно разделить на три группы:
== Математическая основа ==
=== Функция ожидаемого риска (англ. Expected Risk Function) ===
Цель системы обучения состоит в поиске минимум минимума функции <tex>J(w)</tex>, называемой функцией ожидаемого риска.Эта функция раскладывается следующим образом:
<tex>J(w) \stackrel{\triangle}{=} E_z\ Q(z,w) \stackrel{\triangle}{=} \int Q(z,w)\,\mathrm{d}P(z) </tex>
Переменная минимизации <tex>w </tex> предназначена для представления части системы обучения, которая должна быть адаптирована в качестве реакции на наблюдение событий <tex>z</tex>, происходящих в реальном мире. Функция потерь <tex>Q(z, w)</tex> измеряет производительность системы обучения с параметром <tex>w</tex> при обстоятельствах, описанных событием <tex>z</tex>.
События <tex>z</tex> моделируются как случайные независимые наблюдения, взятые из неизвестного распределения вероятности <tex>\mathrm{d}P(z)</tex>. Функция риска <tex>J(w)</tex> - это ожидание функции потерь <tex>Q(z, w)</tex> для фиксированного значения параметра <tex>w</tex>.
<tex> J (w) \thickapprox \hat{J_L}(w) \stackrel{\triangle}{=} \frac{1}{L} \sum_{n=1}^L Q(z_n,w) </tex>
=== Пакетный градиентный спуск (англ. Batch Gradient Descent) ===
[[Файл:BatchGradientDescent.PNG|420px|thumb|right|Пакетный градиентный спуск]]
Минимизировать эмпирический риск <tex>\hat{J_L}(w)</tex> можно с помощью алгоритма пакетного градиентного спуска. Последовательные оценки <tex>w_t</tex> оптимального параметра вычисляются по следующей формуле, где <tex>\gamma_t</tex> - положительное число.:
<tex> w_{t+1} = w_t - \gamma_t \bigtriangledown_w \hat{J_L}(w_t) = w_t - \gamma_t\ \frac{1}{L} \sum_{i=1}^L \bigtriangledown_w\ Q(z_i,w_t)\ </tex>
Когда скорость обучения <tex>\gamma_t</tex> достаточно мала, алгоритм сходится к локальному минимуму эмпирического риска <tex>\hat{J_L}(w)</tex>. Значительное ускорение сходимости может быть достигнуто путем замены скорости обучения <tex>\gamma_t</tex> подходящей положительно определенной положительной матрицей.
Однако каждая Каждая итерация алгоритма пакетного градиентного спуска включает в себя вычисление среднего значения градиентов функции потерь <tex>\bigtriangledown_w Q(z_n,w)</tex> по всей обучающей выборке. Для хранения достаточно большой обучающей выборки и вычисления этого среднего должны быть выделены значительные вычислительные ресурсы и память.
=== Градиентный спуск в реальном времени (англ. Online Gradient Descent) ===
[[Файл:OnlineGradientDescent.PNG|420px|thumb|right|Градиентный спуск в реальном времени]]
Градиентный спуск в реальном времени также может быть описан без использования обучающей выборки, используя события из реального мира напрямую. Такая формулировка подходит для описания адаптивных алгоритмов, обрабатывающих поступающее наблюдение и одновременно обучающихся работать лучше. Такие адаптивные алгоритмы наиболее полезны для отслеживания явлений, развивающихся во времени.
Общий алгоритм градиентного спуска в реальном времени используется для минимизации следующей функции стоимости <tex>C(w)</tex>.:
<tex> C(w) \stackrel{\triangle}{=} E_z Q(z,w) \stackrel{\triangle}{=} \int Q(z, w)\,\mathrm{d}P(z)\ </tex>
Каждая итерация этого алгоритма состоит из извлечения события <tex>z_t</tex> из распределения <tex>\mathrm{d}P(z)</tex> и применения следующей формулы обновления, где <tex>\gamma_t</tex> - либо положительное число, либо положительно определенная положительная матрица:
<tex> w_{t+1} = w_t - \gamma_t H(z_t, w_t) \ </tex>
<tex>Q_{adaline}(z, w) \stackrel{\triangle}{=} (y - w'x)^2\ </tex>
=== Многослойные сети (англ. Multi-Layer Networks)===
Многослойные сети были разработаны для преодоления вычислительных ограничений пороговых элементов. Произвольные двоичные отображения могут быть реализованы путем объединения нескольких слоев пороговых элементов, при этом каждый слой использует выходные данные элементов предыдущих слоев в качестве входных данных.
<tex>Q_{mse}(z, w) = \frac{1}{2}(y - f(x, w))^2 \ </tex>
=== Перцептрон K-Means === [[Файл:KMeansOnline.PNG|420px|thumb|right|K-Means]] Алгоритм K-Means можно получить, выполнив градиентный спуск в реальном времени со следующей функцией потерь:
[[Файл:RosenblattPerceptron.PNG|420px|thumb|right|Перцептрон Розенблатта состоит из фиксированной предварительной обработки и обучаемого порогового элемента]]<tex>Q_{kmeans}(x, w) \stackrel{\triangle}{=} \stackrel{K}{\min_{k = 1}}(x - w(k))^2\ </tex>
=== KЭта функция потерь измеряет ошибку в положении точки <tex>x</tex>, когда мы заменяем ее ближайшим центроидом, и удовлетворяет следующему условию: <tex> \forall z, \forall \upsilon \in \vartheta (w), \mid Q(z, \upsilon) -Means ===Q(z, w)\mid \le \mid w - \upsilon \mid \Phi(z, w) \ </tex> Поэтому можно игнорировать недифференцируемые точки и применять алгоритм градиентного спуска в реальном времени.
<tex> w_{t+1}^- = w_t^- + \gamma_t(x_t - w_t) \ </tex>==См. также==*[[Обучение с частичным привлечением учителя]]*[[Активное обучение]]*[[Обучение с подкреплением]]*[[Файл:KMeansOnline.PNG|420px|thumb|right|Метод k-средних отправляет заранее определенное количество центроидов кластера, чтобы минимизировать ошибкуГлубокое обучение]]
== Источники информации ==
* [https://leon.bottou.org/publications/pdf/online-1998.pdf Leon Bottou. Online Learning and Stochastic Approximations. 1998]
* [https://www.analyticsvidhya.com/blog/2015/01/introduction-online-machine-learning-simplified-2/ Introduction to Online Machine Learning: Simplified]
 
[[Категория: Машинное обучение]]
[[Категория: Виды обучения]]
118
правок

Навигация