Изменения

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

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

2491 байт добавлено, 21:21, 20 апреля 2020
Нет описания правки
'''Обучение в реальном времени, онлайн-обучение''' (англ. ''online machine learning'') {{---}} вид машинного обучения, при котором данные поступают в последовательном порядке и используются для обновления лучшего предсказания на каждом шаге. [[Файл:BatchVsOnline.PNG|420px|thumb|right|Разница между пакетным и онлайн-обучением]]
== Общая информация ==
[[Файл:ПримерOnlineLearningTaxonomy.jpgPNG|420px|thumb|right|Классификация методов онлайн-обучения]]
Алгоритмы пакетного обучения обладают рядом критических недостатков из-за необходимости обучать модель с нуля при получении новых данных: низкая эффективность по времени и памяти, плохая масштабируемость для крупных систем. Онлайн-обучение преодолевает эти проблемы, поскольку модель обновляется на основе поступающих в каждый момент времени данных. Благодаря этому, алгоритмы онлайн-обучения гораздо более эффективны в приложениях, где данные не только имеют большой размер, но и поступают с высокой скоростью.
При онлайн-обучении для построения модели необходим один проход по данным, что позволяет не сохранять их для последующего доступа в процессе обучения и использовать меньший объем памяти. Обработка одного объекта за раз также значительно упрощает реализацию алгоритма онлайн-обучения. Однако изменение вида входных данных, выход сервера из строя и многие другие причины могут привести к прекращению корректной работы системы. Оценить качество работы системы при онлайн-обучении сложнее, чем при пакетном: не возможности получить репрезентативный тестовый набор данных.
 
В зависимости от типа обратной связи существующие методы онлайн-обучения можно разделить на три группы:
 
* Онлайн-обучение с учителем (англ. ''supervised online learning'')
* Онлайн-обучение с частичным привлечением учителя (англ. ''online learning with limited feedback'')
* Онлайн-обучение без учителя (англ. ''unsupervised online learning'')
 
== Математическая основа ==
 
=== Функция ожидаемого риска (Expected Risk Function) ===
 
 
 
<tex>J (w) \stackrel{\triangle}{=} E_z\ Q(z,w) \stackrel{\triangle}{=} \int Q(z,w)\,\mathrm{d}P(z) </tex>
 
 
=== Пакетный градиентный спуск (Batch Gradient Descent) ===
 
 
<tex> J (w) \thickapprox \hat{J_L}(w) \stackrel{\triangle}{=} \frac{1}{L} \sum_{n=1}^L Q(z_n,w) </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>
 
 
[[Файл:BatchGradientDescent.PNG|420px|thumb|right|Пакетный градиентный спуск]]
 
=== Градиентный спуск в реальном времени (Online Gradient Descent) ===
 
[[Файл:OnlineGradientDescent.PNG|420px|thumb|right|Градиентный спуск в реальном времени]]
 
== Примеры ==
 
=== Adaline ===
 
[[Файл:Adaline.PNG|420px|thumb|right|Widrow’s Adaline]]
 
=== Многослойные сети ===
 
=== Перцептрон ===
 
[[Файл:RosenblattPerceptron.PNG|420px|thumb|right|Перцептрон Розенблатта состоит из фиксированной предварительной обработки и обучаемого порогового элемента]]
 
=== Метод k-средних ===
 
[[Файл:KMeansOnline.PNG|420px|thumb|right|Метод k-средних отправляет заранее определенное количество центроидов кластера, чтобы минимизировать ошибку]]
 
== Источники информации ==
34
правки

Навигация