Инкрементное обучение
Материал из MachineLearning.
(→Формальная постановка задачи) |
|||
| (1 промежуточная версия не показана) | |||
| Строка 1: | Строка 1: | ||
{{TOCright}} | {{TOCright}} | ||
| - | '''Инкрементное обучение''' (англ. ''incremental learning'') — подход к [[машинное обучение|машинному обучению]], при котором | + | '''Инкрементное обучение''' (англ. ''incremental learning'') — подход к [[машинное обучение|машинному обучению]], при котором модель обновляется по мере поступления новых данных без полного переобучения на всей ранее накопленной выборке. Обновление может выполняться после каждого наблюдения или после получения небольшой группы наблюдений. |
| - | '''Инкрементом''' (англ. ''increment'') называют очередную порцию | + | '''Инкрементом''' (англ. ''increment'') называют очередную порцию информации, используемую для обновления модели. Им может быть один объект, [[мини-пакет]] наблюдений, новые признаки, классы или отдельная задача. Например, в рекомендательной системе инкрементом служат новые просмотры и покупки, появившиеся после предыдущего обновления. |
| - | Инкрементное обучение применяется, когда данные поступают | + | Инкрементное обучение применяется, когда данные поступают непрерывно, быстро устаревают, имеют большой объём либо не могут долго храниться из-за ограничений памяти или конфиденциальности. Оно используется в [[рекомендательная система|рекомендательных системах]], обнаружении мошенничества, анализе [[временной ряд|временных рядов]], промышленном мониторинге, [[робототехника|робототехнике]], [[компьютерное зрение|компьютерном зрении]] и [[обработка естественного языка|обработке естественного языка]].<ref name="hoi2021">{{статья |
|автор = Hoi S. C. H., Sahoo D., Lu J., Zhao P. | |автор = Hoi S. C. H., Sahoo D., Lu J., Zhao P. | ||
|заглавие = Online Learning: A Comprehensive Survey | |заглавие = Online Learning: A Comprehensive Survey | ||
| Строка 16: | Строка 16: | ||
}}</ref> | }}</ref> | ||
| - | Терминология в этой области не полностью унифицирована. В части | + | Терминология в этой области не полностью унифицирована. В части работ инкрементное и [[онлайн-обучение]] рассматриваются как близкие понятия; в других онлайн-обучением называют обработку объектов непосредственно в потоке, а инкрементным — любое обновление без переобучения с нуля, в том числе по небольшим пакетам. [[Непрерывное обучение]] (англ. ''continual learning'') обычно связывают с длительным накоплением знаний при появлении новых данных, классов или задач, особенно в нейронных сетях.<ref name="delange2022">{{статья |
|автор = De Lange M., Aljundi R., Masana M., Parisot S., Jia X., Leonardis A., Slabaugh G., Tuytelaars T. | |автор = De Lange M., Aljundi R., Masana M., Parisot S., Jia X., Leonardis A., Slabaugh G., Tuytelaars T. | ||
|заглавие = A Continual Learning Survey: Defying Forgetting in Classification Tasks | |заглавие = A Continual Learning Survey: Defying Forgetting in Classification Tasks | ||
| Строка 31: | Строка 31: | ||
== История == | == История == | ||
| - | + | Последовательное обновление моделей появилось раньше современной терминологии инкрементного обучения. В 1950-х годах были предложены стохастическая аппроксимация Роббинса — Монро и [[перцептрон]] Фрэнка Розенблатта: оба подхода изменяли оценку или параметры после получения новых наблюдений.<ref>{{статья | |
| + | |автор = Robbins H., Monro S. | ||
| + | |заглавие = A Stochastic Approximation Method | ||
| + | |язык = en | ||
| + | |издание = The Annals of Mathematical Statistics | ||
| + | |год = 1951 | ||
| + | |том = 22 | ||
| + | |номер = 3 | ||
| + | |страницы = 400—407 | ||
| + | |doi = 10.1214/aoms/1177729586 | ||
| + | |issn = 0003-4851 | ||
| + | }}</ref><ref>{{статья | ||
|автор = Rosenblatt F. | |автор = Rosenblatt F. | ||
|заглавие = The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain | |заглавие = The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain | ||
| Строка 44: | Строка 55: | ||
}}</ref> | }}</ref> | ||
| - | В | + | В 1960-х годах правило наименьшего среднего квадрата (англ. ''least mean squares'', LMS) и рекурсивные методы оценивания получили распространение в адаптивной фильтрации, обработке сигналов и управлении. Позднее последовательные обновления стали использоваться в линейных классификаторах, вероятностных моделях и нейронных сетях.<ref name="haykin">{{книга |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
|автор = Haykin S. | |автор = Haykin S. | ||
|заглавие = Adaptive Filter Theory | |заглавие = Adaptive Filter Theory | ||
| Строка 77: | Строка 67: | ||
}}</ref> | }}</ref> | ||
| - | + | Развитие [[стохастический градиентный спуск|стохастического градиентного спуска]] сделало возможным обучение по отдельным объектам и мини-пакетам, что стало основой крупномасштабного машинного обучения.<ref name="bottou2018">{{статья | |
|автор = Bottou L., Curtis F. E., Nocedal J. | |автор = Bottou L., Curtis F. E., Nocedal J. | ||
|заглавие = Optimization Methods for Large-Scale Machine Learning | |заглавие = Optimization Methods for Large-Scale Machine Learning | ||
| Строка 88: | Строка 78: | ||
|doi = 10.1137/16M1080173 | |doi = 10.1137/16M1080173 | ||
|issn = 0036-1445 | |issn = 0036-1445 | ||
| - | }}</ref> | + | }}</ref> В 1990-х и 2000-х годах сформировалось направление интеллектуального анализа потоков данных (англ. ''data stream mining''), ориентированное на потенциально неограниченные последовательности наблюдений и ограниченную память.<ref name="gaber2005">{{статья |
| - | + | ||
| - | В 1990-х и 2000-х годах сформировалось направление интеллектуального анализа потоков данных (англ. ''data stream mining'') | + | |
|автор = Gaber M. M., Zaslavsky A., Krishnaswamy S. | |автор = Gaber M. M., Zaslavsky A., Krishnaswamy S. | ||
|заглавие = Mining Data Streams: A Review | |заглавие = Mining Data Streams: A Review | ||
| Строка 101: | Строка 89: | ||
|doi = 10.1145/1083784.1083789 | |doi = 10.1145/1083784.1083789 | ||
|issn = 0163-5808 | |issn = 0163-5808 | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
}}</ref> | }}</ref> | ||
| - | С распространением глубоких нейронных сетей | + | С распространением глубоких нейронных сетей основное внимание сместилось к сохранению старых знаний при освоении новых классов и задач. Так сформировалось современное направление continual learning, в котором центральной проблемой стало [[катастрофическое забывание]].<ref name="wang2024">{{статья |
|автор = Wang L., Zhang X., Su H., Zhu J. | |автор = Wang L., Zhang X., Su H., Zhu J. | ||
|заглавие = A Comprehensive Survey of Continual Learning: Theory, Method and Application | |заглавие = A Comprehensive Survey of Continual Learning: Theory, Method and Application | ||
| Строка 134: | Строка 106: | ||
== Отличие от смежных парадигм == | == Отличие от смежных парадигм == | ||
| - | Границы между | + | Границы между близкими понятиями зависят от принятой терминологии, однако обычно их различают следующим образом. |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | * '''[[ | + | * '''Пакетное обучение''' (англ. ''batch learning'') предполагает доступ ко всей фиксированной выборке и возможность выполнять по ней несколько проходов. При появлении новых данных модель обычно повторно обучают на объединённом наборе. |
| + | * '''Инкрементное обучение''' обновляет существующую модель по очередным порциям данных. Полная история может храниться, храниться частично или быть недоступной. | ||
| + | * '''[[Онлайн-обучение]]''' (англ. ''online learning'') обычно строится как цикл «предсказание — получение ответа — немедленное обновление». Оно, как правило, является инкрементным, но инкрементное обучение не обязательно выполняется после каждого объекта.<ref name="hoi2021"/> | ||
| + | * '''[[Непрерывное обучение]]''' (англ. ''continual learning'') изучает длительное накопление знаний при последовательном появлении данных, классов или задач и уделяет особое внимание предотвращению забывания.<ref name="delange2022"/><ref name="wang2024"/> | ||
| + | * '''Обучение в течение всей жизни''' (англ. ''lifelong learning'') — более широкая концепция накопления, переноса и повторного использования знаний на протяжении жизненного цикла интеллектуальной системы. | ||
| + | * '''[[Дообучение]]''' (англ. ''fine-tuning'') адаптирует предобученную модель к новым данным, но само по себе не требует сохранения качества на исходных задачах. | ||
| - | + | Таким образом, инкрементное обучение включает не только современные методы защиты нейронных сетей от забывания, но и классические рекурсивные и потоковые алгоритмы. | |
== Основы == | == Основы == | ||
| Строка 154: | Строка 121: | ||
=== Формальная постановка задачи === | === Формальная постановка задачи === | ||
| - | Пусть данные поступают | + | Пусть данные поступают в виде последовательности инкрементов |
<tex> | <tex> | ||
| Строка 166: | Строка 133: | ||
</tex> | </tex> | ||
| - | — данные, доступные на этапе <tex>t</tex>. Один инкремент может содержать | + | — данные, доступные на этапе <tex>t</tex>. Один инкремент может содержать один объект или пакет наблюдений. После его обработки параметры модели обновляются: |
<tex> | <tex> | ||
| Строка 174: | Строка 141: | ||
</tex> | </tex> | ||
| - | где <tex>\mathcal{M}_{t-1}</tex> — необязательная память | + | где <tex>\mathcal{M}_{t-1}</tex> — необязательная память о прошлом: сохранённые примеры, агрегированные статистики или параметры предыдущей модели. |
| - | + | Если распределение данных остаётся постоянным, желателен результат, близкий к пакетному обучению на объединении всех наблюдений. Для обучения с учителем эмпирический риск можно записать как | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Для обучения с учителем | + | |
<tex> | <tex> | ||
| Строка 189: | Строка 150: | ||
\sum_{s=1}^{t} | \sum_{s=1}^{t} | ||
\sum_{i=1}^{n_s} | \sum_{i=1}^{n_s} | ||
| - | L\ | + | L\left(f(x_{s,i};\theta),y_{s,i}\right). |
</tex> | </tex> | ||
| - | + | Здесь | |
<tex> | <tex> | ||
N_t=\sum_{s=1}^{t}n_s. | N_t=\sum_{s=1}^{t}n_s. | ||
</tex> | </tex> | ||
| - | |||
| - | + | Пакетный алгоритм минимизирует этот риск, обращаясь ко всей выборке, а инкрементный использует новый инкремент и ограниченное состояние предыдущего этапа. В изменяющейся среде старые данные могут иметь меньший вес; тогда применяются скользящие окна, коэффициенты забывания или иные механизмы адаптации. | |
| - | + | ||
| - | В | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
=== Типы инкрементов === | === Типы инкрементов === | ||
| - | + | В зависимости от изменяющейся части задачи выделяют несколько сценариев. | |
| - | * '''Инкремент данных''' (англ. ''data-incremental learning'') — поступают новые наблюдения из прежнего | + | * '''Инкремент данных''' (англ. ''data-incremental learning'') — поступают новые наблюдения из прежнего пространства признаков и классов. |
| + | * '''Инкремент классов''' (англ. ''class-incremental learning'') — появляются ранее неизвестные классы, которые требуется различать вместе со старыми. | ||
| + | * '''Инкремент задач''' (англ. ''task-incremental learning'') — модель последовательно осваивает несколько задач. | ||
| + | * '''Инкремент признаков''' (англ. ''feature-incremental learning'') — добавляются новые признаки или способы представления объектов. | ||
| - | + | В реальных системах эти сценарии могут сочетаться: например, одновременно появляются новые товары, категории и пользовательские сигналы. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | В реальных системах эти сценарии могут сочетаться | + | |
=== Потоковые данные === | === Потоковые данные === | ||
| - | '''Поток данных''' (англ. ''data stream'') — упорядоченная последовательность наблюдений, | + | '''Поток данных''' (англ. ''data stream'') — упорядоченная последовательность наблюдений, поступающая во времени и потенциально не имеющая заранее известного конца. Интеллектуальный анализ потоков данных изучает методы извлечения моделей и закономерностей из таких последовательностей.<ref name="gaber2005"/><ref>{{книга |
|автор = Gama J. | |автор = Gama J. | ||
|заглавие = Knowledge Discovery from Data Streams | |заглавие = Knowledge Discovery from Data Streams | ||
| Строка 242: | Строка 185: | ||
}}</ref> | }}</ref> | ||
| - | + | Потоковые алгоритмы обычно работают при ограниченной памяти, выполняют один или небольшое число проходов, быстро обрабатывают каждый объект и учитывают возможное изменение распределения. Истинные ответы при этом могут поступать с задержкой. | |
| - | + | Инкрементное обучение и потоковый анализ связаны, но не тождественны. Инкрементный алгоритм может обрабатывать конечную последовательность пакетов, а потоковая аналитика включает также кластеризацию, оценивание статистик, поиск аномалий и обнаружение изменений. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Для оценки модели часто используют схему «предсказать, затем обучиться» (англ. ''test-then-train'', или ''prequential evaluation''): объект сначала служит для проверки текущей модели и только затем — для её обновления. | |
| - | + | ||
| - | Для оценки | + | |
| - | + | ||
| - | + | ||
== Методы инкрементного обучения == | == Методы инкрементного обучения == | ||
| - | Инкрементность является свойством процедуры обновления, а не отдельным типом модели. Последовательно обучаться могут линейные модели, вероятностные классификаторы, деревья решений, ансамбли и нейронные сети | + | Инкрементность является свойством процедуры обновления, а не отдельным типом модели. Последовательно обучаться могут линейные модели, вероятностные классификаторы, деревья решений, ансамбли и нейронные сети. |
=== Классические методы === | === Классические методы === | ||
| Строка 265: | Строка 199: | ||
==== Стохастический градиентный спуск ==== | ==== Стохастический градиентный спуск ==== | ||
| - | [[Стохастический градиентный спуск]] (англ. ''stochastic gradient descent'', SGD) | + | [[Стохастический градиентный спуск]] (англ. ''stochastic gradient descent'', SGD) вместо градиента по всей выборке использует случайно выбранный объект или мини-пакет. Благодаря этому параметры можно обновлять после поступления каждой новой порции данных: |
<tex> | <tex> | ||
| - | \theta_t= | + | \theta_t = |
\theta_{t-1} | \theta_{t-1} | ||
- | - | ||
\eta_t | \eta_t | ||
| - | \nabla_\theta | + | \nabla_{\theta} |
| - | L\ | + | L\left(f(x_t;\theta_{t-1}),y_t\right). |
</tex> | </tex> | ||
| - | + | SGD применяется для инкрементного обучения линейных моделей и нейронных сетей, однако сам по себе не защищает их от забывания при смене задач или распределений.<ref name="bottou2018"/> | |
| - | + | ||
| - | + | ||
==== Рекурсивный метод наименьших квадратов ==== | ==== Рекурсивный метод наименьших квадратов ==== | ||
| - | Рекурсивный метод наименьших квадратов (англ. ''recursive least squares'', RLS) | + | Рекурсивный метод наименьших квадратов (англ. ''recursive least squares'', RLS) обновляет параметры линейной регрессии и необходимые матричные статистики после каждого нового наблюдения. Без забывания такое обновление может быть эквивалентно пакетному решению, а коэффициент забывания позволяет сильнее учитывать свежие данные.<ref name="haykin"/> |
| - | + | ==== Онлайновый наивный байесовский классификатор ==== | |
| - | + | ||
| - | + | ||
| - | + | [[Наивный байесовский классификатор]] обновляется через накопленные количества, средние, дисперсии или частоты признаков по классам. Поэтому для нового объекта достаточно изменить соответствующие статистики, не возвращаясь ко всей выборке. | |
| - | + | ==== Дерево Хёффдинга ==== | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Дерево Хёффдинга (англ. ''Hoeffding Tree'') — потоковый вариант [[дерево решений|дерева решений]]. Оно накапливает статистики в вершинах и выполняет разбиение, когда наблюдений достаточно, чтобы с заданной вероятностью выбрать лучший признак. Хранить сами обработанные объекты не требуется.<ref name="domingos2000">{{статья | |
| - | + | |автор = Domingos P., Hulten G. | |
| - | + | |заглавие = Mining High-Speed Data Streams | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | |автор = | + | |
| - | |заглавие = | + | |
|язык = en | |язык = en | ||
| - | |издание = | + | |издание = Proceedings of the Sixth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining |
| - | + | |год = 2000 | |
| - | + | |страницы = 71—80 | |
| - | |год = | + | |doi = 10.1145/347090.347107 |
| - | | | + | |
| - | | | + | |
}}</ref> | }}</ref> | ||
| - | ==== | + | ==== Онлайн-бэггинг и онлайн-бустинг ==== |
| - | + | Онлайн-бэггинг имитирует бутстреп-выборки, случайным образом определяя, сколько раз новый объект будет использован каждым базовым алгоритмом. Онлайн-бустинг последовательно меняет веса объектов и моделей, приближая пакетный [[бустинг]] без хранения полной выборки.<ref name="oza2001">{{статья | |
| - | + | |автор = Oza N. C., Russell S. J. | |
| - | + | |заглавие = Online Bagging and Boosting | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | |автор = | + | |
| - | |заглавие = | + | |
|язык = en | |язык = en | ||
| - | | | + | |издание = Proceedings of the Eighth International Workshop on Artificial Intelligence and Statistics |
| - | + | |год = 2001 | |
| - | |год = | + | |том = R3 |
| - | | | + | |страницы = 229—236 |
| - | | | + | |
}}</ref> | }}</ref> | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
=== Современные методы непрерывного обучения === | === Современные методы непрерывного обучения === | ||
| - | + | В непрерывном обучении нейронных сетей требуется не только экономно обновлять модель, но и сохранять качество на прежних данных и задачах. Большинство методов относят к трём группам; многие алгоритмы сочетают их.<ref name="delange2022"/><ref name="wang2024"/> | |
==== Методы воспроизведения опыта ==== | ==== Методы воспроизведения опыта ==== | ||
| - | Методы воспроизведения (англ. ''replay-based methods'') | + | Методы воспроизведения (англ. ''replay-based methods'') обучают модель одновременно на новых данных и информации о прошлых этапах. Это может быть небольшой буфер реальных примеров, их скрытые представления или синтетические данные. Например, iCaRL хранит представителей старых классов и использует [[дистилляция знаний|дистилляцию знаний]].<ref>{{статья |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
|автор = Rebuffi S.-A., Kolesnikov A., Sperl G., Lampert C. H. | |автор = Rebuffi S.-A., Kolesnikov A., Sperl G., Lampert C. H. | ||
|заглавие = iCaRL: Incremental Classifier and Representation Learning | |заглавие = iCaRL: Incremental Classifier and Representation Learning | ||
| Строка 404: | Строка 258: | ||
|страницы = 5533—5542 | |страницы = 5533—5542 | ||
|doi = 10.1109/CVPR.2017.587 | |doi = 10.1109/CVPR.2017.587 | ||
| - | }}</ref> | + | }}</ref> |
==== Регуляризационные методы ==== | ==== Регуляризационные методы ==== | ||
| - | Регуляризационные методы (англ. ''regularization-based methods'') ограничивают | + | Регуляризационные методы (англ. ''regularization-based methods'') ограничивают изменение параметров или выходов, важных для прежних задач. К ним относятся Elastic Weight Consolidation, оценивающий важность весов через информацию Фишера, и Learning without Forgetting, сохраняющий прежнее поведение с помощью дистилляции.<ref>{{статья |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
|автор = Kirkpatrick J., Pascanu R., Rabinowitz N., Veness J., Desjardins G., Rusu A. A., Milan K., Quan J., Ramalho T., Grabska-Barwinska A., Hassabis D., Clopath C., Kumaran D., Hadsell R. | |автор = Kirkpatrick J., Pascanu R., Rabinowitz N., Veness J., Desjardins G., Rusu A. A., Milan K., Quan J., Ramalho T., Grabska-Barwinska A., Hassabis D., Clopath C., Kumaran D., Hadsell R. | ||
|заглавие = Overcoming Catastrophic Forgetting in Neural Networks | |заглавие = Overcoming Catastrophic Forgetting in Neural Networks | ||
| Строка 433: | Строка 273: | ||
|doi = 10.1073/pnas.1611835114 | |doi = 10.1073/pnas.1611835114 | ||
|issn = 0027-8424 | |issn = 0027-8424 | ||
| - | }}</ref> | + | }}</ref><ref>{{статья |
|автор = Li Z., Hoiem D. | |автор = Li Z., Hoiem D. | ||
|заглавие = Learning without Forgetting | |заглавие = Learning without Forgetting | ||
| Строка 443: | Строка 283: | ||
|doi = 10.1007/978-3-319-46493-0_37 | |doi = 10.1007/978-3-319-46493-0_37 | ||
}}</ref> | }}</ref> | ||
| - | |||
| - | |||
==== Методы изоляции параметров ==== | ==== Методы изоляции параметров ==== | ||
| - | Методы изоляции параметров (англ. ''parameter isolation methods'') | + | Методы изоляции параметров (англ. ''parameter isolation methods'') выделяют разным задачам отдельные веса, маски или модули. Это уменьшает интерференцию, но может требовать знания границ задач и приводить к росту модели. Прогрессивные нейронные сети, например, добавляют новый блок параметров для каждой задачи и фиксируют ранее обученные блоки.<ref>{{статья |
| - | + | ||
| - | + | ||
|автор = Rusu A. A., Rabinowitz N. C., Desjardins G., Soyer H., Kirkpatrick J., Kavukcuoglu K., Pascanu R., Hadsell R. | |автор = Rusu A. A., Rabinowitz N. C., Desjardins G., Soyer H., Kirkpatrick J., Kavukcuoglu K., Pascanu R., Hadsell R. | ||
|заглавие = Progressive Neural Networks | |заглавие = Progressive Neural Networks | ||
| Строка 459: | Строка 295: | ||
|doi = 10.48550/arXiv.1606.04671 | |doi = 10.48550/arXiv.1606.04671 | ||
}}</ref> | }}</ref> | ||
| - | |||
| - | |||
== Проблемы и вызовы == | == Проблемы и вызовы == | ||
| Строка 466: | Строка 300: | ||
=== Катастрофическое забывание === | === Катастрофическое забывание === | ||
| - | '''Катастрофическое забывание''' (англ. ''catastrophic forgetting'', первоначально | + | '''Катастрофическое забывание''' (англ. ''catastrophic forgetting'', первоначально ''catastrophic interference'') — резкое ухудшение качества на ранее изученных данных или задачах после обучения на новой информации. В нейронных сетях одни и те же параметры участвуют в обработке разных примеров, поэтому полезные для нового инкремента обновления могут нарушать ранее сформированные функции.<ref name="mccloskey1989">{{книга |
|автор = McCloskey M., Cohen N. J. | |автор = McCloskey M., Cohen N. J. | ||
|часть = Catastrophic Interference in Connectionist Networks: The Sequential Learning Problem | |часть = Catastrophic Interference in Connectionist Networks: The Sequential Learning Problem | ||
| Строка 479: | Строка 313: | ||
}}</ref> | }}</ref> | ||
| - | + | Проблема выражает дилемму стабильности—пластичности (англ. ''stability–plasticity dilemma''): слишком пластичная модель быстро осваивает новое, но забывает старое; слишком стабильная сохраняет знания, но плохо адаптируется. Поэтому метод должен одновременно поддерживать обучение, сохранение знаний и приемлемые затраты памяти и вычислений. | |
| - | + | ||
| - | Проблема | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
=== Изменение распределения данных === | === Изменение распределения данных === | ||
| - | + | Если распределение наблюдений меняется во времени, данные называют нестационарными. Изменение зависимости, определяющей предсказываемую величину, называется дрейфом концепции (англ. ''concept drift'').<ref name="gama2014">{{статья | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
|автор = Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. | |автор = Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. | ||
|заглавие = A Survey on Concept Drift Adaptation | |заглавие = A Survey on Concept Drift Adaptation | ||
| Строка 526: | Строка 330: | ||
}}</ref> | }}</ref> | ||
| - | + | Дрейф бывает резким, постепенным, медленным инкрементным или повторяющимся. Для адаптации используют скользящие окна, уменьшение веса старых наблюдений, детекторы изменений, перестройку дерева и обновление ансамбля. Если правильные ответы поступают с задержкой, обнаружить изменение по росту ошибки можно только после получения обратной связи. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Дрейф | + | |
| - | + | ||
| - | Для | + | |
| - | + | ||
| - | + | ||
=== Ограничения ресурсов и данных === | === Ограничения ресурсов и данных === | ||
| - | + | Инкрементные методы оценивают не только по качеству, но и по объёму памяти, времени одного обновления, пропускной способности и росту размера модели. Хранение старых примеров уменьшает забывание, но увеличивает затраты и может быть недопустимо из-за конфиденциальности; агрегированные статистики компактнее, но не всегда достаточны. | |
| - | + | Дополнительные трудности создают дисбаланс классов, шумные метки, новые признаки, неполные наблюдения и задержка обратной связи. При потоковой проверке важно исключать утечку данных: объект сначала оценивает модель и только затем используется для обучения. | |
| - | + | ||
| - | + | ||
== Практические аспекты == | == Практические аспекты == | ||
| Строка 550: | Строка 342: | ||
=== Метрики оценки === | === Метрики оценки === | ||
| - | + | Инкрементную модель оценивают во времени: учитывают текущее качество, сохранение старых знаний, перенос между задачами и стоимость обновления.<ref name="metrics2018">{{статья | |
|автор = Díaz-Rodríguez N., Lomonaco V., Filliat D., Maltoni D. | |автор = Díaz-Rodríguez N., Lomonaco V., Filliat D., Maltoni D. | ||
|заглавие = Don't Forget, There Is More than Forgetting: New Metrics for Continual Learning | |заглавие = Don't Forget, There Is More than Forgetting: New Metrics for Continual Learning | ||
| Строка 560: | Строка 352: | ||
}}</ref> | }}</ref> | ||
| - | В | + | В потоковой схеме «предсказать, затем обучиться» средняя последовательная потеря равна |
<tex> | <tex> | ||
| - | Q_T | + | Q_T= |
| - | = | + | |
\frac{1}{T} | \frac{1}{T} | ||
\sum_{t=1}^{T} | \sum_{t=1}^{T} | ||
| - | L\ | + | L\left(f(x_t;\theta_{t-1}),y_t\right). |
</tex> | </tex> | ||
| - | + | Для последовательности задач используют матрицу <tex>A=(a_{i,j})</tex>, где <tex>a_{i,j}</tex> — качество на задаче <tex>j</tex> после обучения до этапа <tex>i</tex>. Средняя итоговая точность определяется как | |
| - | + | ||
| - | Для последовательности | + | |
| - | + | ||
| - | + | ||
<tex> | <tex> | ||
| - | \operatorname{ACC}_T | + | \operatorname{ACC}_T= |
| - | = | + | |
\frac{1}{T} | \frac{1}{T} | ||
| - | \sum_{j=1}^{T} a_{T,j}. | + | \sum_{j=1}^{T}a_{T,j}. |
</tex> | </tex> | ||
| - | + | Забывание для задачи <tex>j</tex> можно измерять разностью между её лучшим предыдущим и итоговым результатом: | |
| - | + | ||
| - | + | ||
<tex> | <tex> | ||
| - | + | F_{T,j}= | |
| - | + | \max_{i\in\{j,\ldots,T-1\}}a_{i,j} | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | \max_{i\in\{j,\ldots,T-1\}} a_{i,j} | + | |
- | - | ||
| - | a_{T,j} | + | a_{T,j}. |
| - | + | ||
</tex> | </tex> | ||
| - | + | Дополнительно оценивают прямой и обратный перенос знаний, объём памяти, время обновления, скорость потока, рост модели, задержку обнаружения дрейфа и скорость восстановления после изменения.<ref name="gem2017">{{статья | |
| - | + | |автор = Lopez-Paz D., Ranzato M. | |
| - | + | |заглавие = Gradient Episodic Memory for Continual Learning | |
| - | + | |язык = en | |
| - | < | + | |издание = Advances in Neural Information Processing Systems |
| - | + | |год = 2017 | |
| - | + | |том = 30 | |
| - | + | |страницы = 6467—6476 | |
| - | + | }}</ref> | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | = | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
=== Программные библиотеки === | === Программные библиотеки === | ||
| - | + | * '''River''' — библиотека Python для потоковой классификации, регрессии, кластеризации, обнаружения аномалий и дрейфа.<ref name="riverpaper">{{статья | |
| - | + | ||
| - | * '''River''' — библиотека | + | |
|автор = Montiel J., Halford M., Mastelini S. M., Bolmier G., Sourty R., Vaysse R., Zouitine A., Gomes H. M., Read J., Abdessalem T., Bifet A. | |автор = Montiel J., Halford M., Mastelini S. M., Bolmier G., Sourty R., Vaysse R., Zouitine A., Gomes H. M., Read J., Abdessalem T., Bifet A. | ||
|заглавие = River: Machine Learning for Streaming Data in Python | |заглавие = River: Machine Learning for Streaming Data in Python | ||
| Строка 648: | Строка 407: | ||
|access-date = 2026-07-26 | |access-date = 2026-07-26 | ||
}}</ref> | }}</ref> | ||
| - | + | * '''scikit-learn''' предоставляет метод <code>partial_fit()</code> для части линейных, байесовских и мини-пакетных алгоритмов.<ref>{{cite web | |
| - | * '''scikit-learn''' | + | |
|url = https://scikit-learn.org/stable/computing/scaling_strategies.html | |url = https://scikit-learn.org/stable/computing/scaling_strategies.html | ||
|title = Strategies to Scale Computationally: Bigger Data | |title = Strategies to Scale Computationally: Bigger Data | ||
| Строка 656: | Строка 414: | ||
|access-date = 2026-07-26 | |access-date = 2026-07-26 | ||
}}</ref> | }}</ref> | ||
| - | + | * '''MOA''' — среда Java для разработки и сравнения алгоритмов обучения на изменяющихся потоках.<ref name="moa2010">{{статья | |
| - | * '''MOA''' | + | |
|автор = Bifet A., Holmes G., Kirkby R., Pfahringer B. | |автор = Bifet A., Holmes G., Kirkby R., Pfahringer B. | ||
|заглавие = MOA: Massive Online Analysis | |заглавие = MOA: Massive Online Analysis | ||
| Строка 666: | Строка 423: | ||
|страницы = 1601—1604 | |страницы = 1601—1604 | ||
|issn = 1532-4435 | |issn = 1532-4435 | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
}}</ref> | }}</ref> | ||
| - | + | * '''Vowpal Wabbit''' поддерживает быстрое онлайн-обучение, активное обучение и контекстные бандиты.<ref>{{cite web | |
| - | * '''Vowpal Wabbit''' | + | |
|url = https://vowpalwabbit.org/ | |url = https://vowpalwabbit.org/ | ||
|title = Vowpal Wabbit | |title = Vowpal Wabbit | ||
| Строка 681: | Строка 431: | ||
|access-date = 2026-07-26 | |access-date = 2026-07-26 | ||
}}</ref> | }}</ref> | ||
| - | + | * '''SAMOA''' предназначена для распределённого анализа потоков данных.<ref>{{статья | |
| - | * '''SAMOA''' | + | |
|автор = De Francisci Morales G., Bifet A. | |автор = De Francisci Morales G., Bifet A. | ||
|заглавие = SAMOA: Scalable Advanced Massive Online Analysis | |заглавие = SAMOA: Scalable Advanced Massive Online Analysis | ||
| Строка 693: | Строка 442: | ||
}}</ref> | }}</ref> | ||
| - | + | Наличие интерфейса частичного обновления не гарантирует устойчивости к дрейфу или забыванию: эти свойства зависят от конкретного алгоритма и протокола обучения. | |
=== Применения === | === Применения === | ||
| - | + | * В [[рекомендательная система|рекомендательных системах]] модель обновляется по новым просмотрам, оценкам и покупкам. | |
| - | + | * В обнаружении мошенничества, спама и сетевых атак последовательное обучение позволяет учитывать новые схемы поведения. | |
| - | * В [[рекомендательная система|рекомендательных системах]] модель обновляется по новым просмотрам, оценкам и покупкам | + | * В промышленном мониторинге и [[Интернет вещей|Интернете вещей]] оно используется для обнаружения аномалий и прогнозирования отказов. |
| - | + | * В [[робототехника|робототехнике]] и автономных системах модель осваивает новые объекты, условия и навыки во время эксплуатации.<ref>{{статья | |
| - | * В обнаружении мошенничества, | + | |
| - | + | ||
| - | * В промышленном мониторинге и [[Интернет вещей|Интернете вещей]] | + | |
| - | + | ||
| - | * В [[робототехника|робототехнике]] и автономных системах | + | |
|автор = Lesort T., Lomonaco V., Stoian A., Maltoni D., Filliat D., Díaz-Rodríguez N. | |автор = Lesort T., Lomonaco V., Stoian A., Maltoni D., Filliat D., Díaz-Rodríguez N. | ||
|заглавие = Continual Learning for Robotics: Definition, Framework, Learning Strategies, Opportunities and Challenges | |заглавие = Continual Learning for Robotics: Definition, Framework, Learning Strategies, Opportunities and Challenges | ||
| Строка 716: | Строка 460: | ||
|issn = 1566-2535 | |issn = 1566-2535 | ||
}}</ref> | }}</ref> | ||
| - | + | * В медицинских системах модели обновляются при накоплении наблюдений и изменении протоколов измерения; здесь особенно важны проверка качества и конфиденциальность. | |
| - | * В медицинских | + | * В [[обработка естественного языка|обработке естественного языка]] модели адаптируются к новым темам, терминам и пользовательским данным. Для [[большая языковая модель|больших языковых моделей]] исследуются непрерывное предобучение и последовательное дообучение.<ref>{{статья |
| - | + | ||
| - | * В [[обработка естественного языка|обработке естественного языка]] модели адаптируются к новым темам, терминам | + | |
|автор = Shi H., Xu Z., Wang H., Qin W., Wang W., Wang Y., Wang Z., Ebrahimi S., Wang H. | |автор = Shi H., Xu Z., Wang H., Qin W., Wang W., Wang Y., Wang Z., Ebrahimi S., Wang H. | ||
|заглавие = Continual Learning of Large Language Models: A Comprehensive Survey | |заглавие = Continual Learning of Large Language Models: A Comprehensive Survey | ||
| Строка 731: | Строка 473: | ||
}}</ref> | }}</ref> | ||
| - | В | + | В производственных системах инкрементное обновление сопровождают мониторингом метрик, версионированием, проверкой на отложенных данных и возможностью отката модели. |
== Связь с другими дисциплинами == | == Связь с другими дисциплинами == | ||
| - | Инкрементное обучение | + | Инкрементное обучение связано с последовательным оцениванием в [[математическая статистика|математической статистике]], стохастическими методами и регретом в [[математическая оптимизация|оптимизации]], адаптивной фильтрацией в обработке сигналов и адаптивным управлением. В базах данных и распределённых вычислениях близкие задачи возникают при обработке потоковых запросов и приближённых статистик. |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | В [[когнитивная наука|когнитивной науке]] и нейробиологии техническую проблему сохранения знаний сопоставляют с интерференцией и консолидацией памяти. Это сопоставление служит источником идей, но искусственные модели не следует считать прямыми моделями человеческой памяти. | |
== См. также == | == См. также == | ||
Текущая версия
|
Инкрементное обучение (англ. incremental learning) — подход к машинному обучению, при котором модель обновляется по мере поступления новых данных без полного переобучения на всей ранее накопленной выборке. Обновление может выполняться после каждого наблюдения или после получения небольшой группы наблюдений.
Инкрементом (англ. increment) называют очередную порцию информации, используемую для обновления модели. Им может быть один объект, мини-пакет наблюдений, новые признаки, классы или отдельная задача. Например, в рекомендательной системе инкрементом служат новые просмотры и покупки, появившиеся после предыдущего обновления.
Инкрементное обучение применяется, когда данные поступают непрерывно, быстро устаревают, имеют большой объём либо не могут долго храниться из-за ограничений памяти или конфиденциальности. Оно используется в рекомендательных системах, обнаружении мошенничества, анализе временных рядов, промышленном мониторинге, робототехнике, компьютерном зрении и обработке естественного языка.[1]
Терминология в этой области не полностью унифицирована. В части работ инкрементное и онлайн-обучение рассматриваются как близкие понятия; в других онлайн-обучением называют обработку объектов непосредственно в потоке, а инкрементным — любое обновление без переобучения с нуля, в том числе по небольшим пакетам. Непрерывное обучение (англ. continual learning) обычно связывают с длительным накоплением знаний при появлении новых данных, классов или задач, особенно в нейронных сетях.[1]
История
Последовательное обновление моделей появилось раньше современной терминологии инкрементного обучения. В 1950-х годах были предложены стохастическая аппроксимация Роббинса — Монро и перцептрон Фрэнка Розенблатта: оба подхода изменяли оценку или параметры после получения новых наблюдений.[1][1]
В 1960-х годах правило наименьшего среднего квадрата (англ. least mean squares, LMS) и рекурсивные методы оценивания получили распространение в адаптивной фильтрации, обработке сигналов и управлении. Позднее последовательные обновления стали использоваться в линейных классификаторах, вероятностных моделях и нейронных сетях.[1]
Развитие стохастического градиентного спуска сделало возможным обучение по отдельным объектам и мини-пакетам, что стало основой крупномасштабного машинного обучения.[1] В 1990-х и 2000-х годах сформировалось направление интеллектуального анализа потоков данных (англ. data stream mining), ориентированное на потенциально неограниченные последовательности наблюдений и ограниченную память.[1]
С распространением глубоких нейронных сетей основное внимание сместилось к сохранению старых знаний при освоении новых классов и задач. Так сформировалось современное направление continual learning, в котором центральной проблемой стало катастрофическое забывание.[1]
Отличие от смежных парадигм
Границы между близкими понятиями зависят от принятой терминологии, однако обычно их различают следующим образом.
- Пакетное обучение (англ. batch learning) предполагает доступ ко всей фиксированной выборке и возможность выполнять по ней несколько проходов. При появлении новых данных модель обычно повторно обучают на объединённом наборе.
- Инкрементное обучение обновляет существующую модель по очередным порциям данных. Полная история может храниться, храниться частично или быть недоступной.
- Онлайн-обучение (англ. online learning) обычно строится как цикл «предсказание — получение ответа — немедленное обновление». Оно, как правило, является инкрементным, но инкрементное обучение не обязательно выполняется после каждого объекта.[1]
- Непрерывное обучение (англ. continual learning) изучает длительное накопление знаний при последовательном появлении данных, классов или задач и уделяет особое внимание предотвращению забывания.[1][1]
- Обучение в течение всей жизни (англ. lifelong learning) — более широкая концепция накопления, переноса и повторного использования знаний на протяжении жизненного цикла интеллектуальной системы.
- Дообучение (англ. fine-tuning) адаптирует предобученную модель к новым данным, но само по себе не требует сохранения качества на исходных задачах.
Таким образом, инкрементное обучение включает не только современные методы защиты нейронных сетей от забывания, но и классические рекурсивные и потоковые алгоритмы.
Основы
Формальная постановка задачи
Пусть данные поступают в виде последовательности инкрементов
где
— данные, доступные на этапе . Один инкремент может содержать один объект или пакет наблюдений. После его обработки параметры модели обновляются:
где — необязательная память о прошлом: сохранённые примеры, агрегированные статистики или параметры предыдущей модели.
Если распределение данных остаётся постоянным, желателен результат, близкий к пакетному обучению на объединении всех наблюдений. Для обучения с учителем эмпирический риск можно записать как
Здесь
Пакетный алгоритм минимизирует этот риск, обращаясь ко всей выборке, а инкрементный использует новый инкремент и ограниченное состояние предыдущего этапа. В изменяющейся среде старые данные могут иметь меньший вес; тогда применяются скользящие окна, коэффициенты забывания или иные механизмы адаптации.
Типы инкрементов
В зависимости от изменяющейся части задачи выделяют несколько сценариев.
- Инкремент данных (англ. data-incremental learning) — поступают новые наблюдения из прежнего пространства признаков и классов.
- Инкремент классов (англ. class-incremental learning) — появляются ранее неизвестные классы, которые требуется различать вместе со старыми.
- Инкремент задач (англ. task-incremental learning) — модель последовательно осваивает несколько задач.
- Инкремент признаков (англ. feature-incremental learning) — добавляются новые признаки или способы представления объектов.
В реальных системах эти сценарии могут сочетаться: например, одновременно появляются новые товары, категории и пользовательские сигналы.
Потоковые данные
Поток данных (англ. data stream) — упорядоченная последовательность наблюдений, поступающая во времени и потенциально не имеющая заранее известного конца. Интеллектуальный анализ потоков данных изучает методы извлечения моделей и закономерностей из таких последовательностей.[1][1]
Потоковые алгоритмы обычно работают при ограниченной памяти, выполняют один или небольшое число проходов, быстро обрабатывают каждый объект и учитывают возможное изменение распределения. Истинные ответы при этом могут поступать с задержкой.
Инкрементное обучение и потоковый анализ связаны, но не тождественны. Инкрементный алгоритм может обрабатывать конечную последовательность пакетов, а потоковая аналитика включает также кластеризацию, оценивание статистик, поиск аномалий и обнаружение изменений.
Для оценки модели часто используют схему «предсказать, затем обучиться» (англ. test-then-train, или prequential evaluation): объект сначала служит для проверки текущей модели и только затем — для её обновления.
Методы инкрементного обучения
Инкрементность является свойством процедуры обновления, а не отдельным типом модели. Последовательно обучаться могут линейные модели, вероятностные классификаторы, деревья решений, ансамбли и нейронные сети.
Классические методы
Стохастический градиентный спуск
Стохастический градиентный спуск (англ. stochastic gradient descent, SGD) вместо градиента по всей выборке использует случайно выбранный объект или мини-пакет. Благодаря этому параметры можно обновлять после поступления каждой новой порции данных:
SGD применяется для инкрементного обучения линейных моделей и нейронных сетей, однако сам по себе не защищает их от забывания при смене задач или распределений.[1]
Рекурсивный метод наименьших квадратов
Рекурсивный метод наименьших квадратов (англ. recursive least squares, RLS) обновляет параметры линейной регрессии и необходимые матричные статистики после каждого нового наблюдения. Без забывания такое обновление может быть эквивалентно пакетному решению, а коэффициент забывания позволяет сильнее учитывать свежие данные.[1]
Онлайновый наивный байесовский классификатор
Наивный байесовский классификатор обновляется через накопленные количества, средние, дисперсии или частоты признаков по классам. Поэтому для нового объекта достаточно изменить соответствующие статистики, не возвращаясь ко всей выборке.
Дерево Хёффдинга
Дерево Хёффдинга (англ. Hoeffding Tree) — потоковый вариант дерева решений. Оно накапливает статистики в вершинах и выполняет разбиение, когда наблюдений достаточно, чтобы с заданной вероятностью выбрать лучший признак. Хранить сами обработанные объекты не требуется.[1]
Онлайн-бэггинг и онлайн-бустинг
Онлайн-бэггинг имитирует бутстреп-выборки, случайным образом определяя, сколько раз новый объект будет использован каждым базовым алгоритмом. Онлайн-бустинг последовательно меняет веса объектов и моделей, приближая пакетный бустинг без хранения полной выборки.[1]
Современные методы непрерывного обучения
В непрерывном обучении нейронных сетей требуется не только экономно обновлять модель, но и сохранять качество на прежних данных и задачах. Большинство методов относят к трём группам; многие алгоритмы сочетают их.[1][1]
Методы воспроизведения опыта
Методы воспроизведения (англ. replay-based methods) обучают модель одновременно на новых данных и информации о прошлых этапах. Это может быть небольшой буфер реальных примеров, их скрытые представления или синтетические данные. Например, iCaRL хранит представителей старых классов и использует дистилляцию знаний.[1]
Регуляризационные методы
Регуляризационные методы (англ. regularization-based methods) ограничивают изменение параметров или выходов, важных для прежних задач. К ним относятся Elastic Weight Consolidation, оценивающий важность весов через информацию Фишера, и Learning without Forgetting, сохраняющий прежнее поведение с помощью дистилляции.[1][1]
Методы изоляции параметров
Методы изоляции параметров (англ. parameter isolation methods) выделяют разным задачам отдельные веса, маски или модули. Это уменьшает интерференцию, но может требовать знания границ задач и приводить к росту модели. Прогрессивные нейронные сети, например, добавляют новый блок параметров для каждой задачи и фиксируют ранее обученные блоки.[1]
Проблемы и вызовы
Катастрофическое забывание
Катастрофическое забывание (англ. catastrophic forgetting, первоначально catastrophic interference) — резкое ухудшение качества на ранее изученных данных или задачах после обучения на новой информации. В нейронных сетях одни и те же параметры участвуют в обработке разных примеров, поэтому полезные для нового инкремента обновления могут нарушать ранее сформированные функции.[1]
Проблема выражает дилемму стабильности—пластичности (англ. stability–plasticity dilemma): слишком пластичная модель быстро осваивает новое, но забывает старое; слишком стабильная сохраняет знания, но плохо адаптируется. Поэтому метод должен одновременно поддерживать обучение, сохранение знаний и приемлемые затраты памяти и вычислений.
Изменение распределения данных
Если распределение наблюдений меняется во времени, данные называют нестационарными. Изменение зависимости, определяющей предсказываемую величину, называется дрейфом концепции (англ. concept drift).[1]
Дрейф бывает резким, постепенным, медленным инкрементным или повторяющимся. Для адаптации используют скользящие окна, уменьшение веса старых наблюдений, детекторы изменений, перестройку дерева и обновление ансамбля. Если правильные ответы поступают с задержкой, обнаружить изменение по росту ошибки можно только после получения обратной связи.
Ограничения ресурсов и данных
Инкрементные методы оценивают не только по качеству, но и по объёму памяти, времени одного обновления, пропускной способности и росту размера модели. Хранение старых примеров уменьшает забывание, но увеличивает затраты и может быть недопустимо из-за конфиденциальности; агрегированные статистики компактнее, но не всегда достаточны.
Дополнительные трудности создают дисбаланс классов, шумные метки, новые признаки, неполные наблюдения и задержка обратной связи. При потоковой проверке важно исключать утечку данных: объект сначала оценивает модель и только затем используется для обучения.
Практические аспекты
Метрики оценки
Инкрементную модель оценивают во времени: учитывают текущее качество, сохранение старых знаний, перенос между задачами и стоимость обновления.[1]
В потоковой схеме «предсказать, затем обучиться» средняя последовательная потеря равна
Для последовательности задач используют матрицу , где
— качество на задаче
после обучения до этапа
. Средняя итоговая точность определяется как
Забывание для задачи можно измерять разностью между её лучшим предыдущим и итоговым результатом:
Дополнительно оценивают прямой и обратный перенос знаний, объём памяти, время обновления, скорость потока, рост модели, задержку обнаружения дрейфа и скорость восстановления после изменения.[1]
Программные библиотеки
- River — библиотека Python для потоковой классификации, регрессии, кластеризации, обнаружения аномалий и дрейфа.[1][1]
- scikit-learn предоставляет метод
partial_fit()для части линейных, байесовских и мини-пакетных алгоритмов.[1] - MOA — среда Java для разработки и сравнения алгоритмов обучения на изменяющихся потоках.[1]
- Vowpal Wabbit поддерживает быстрое онлайн-обучение, активное обучение и контекстные бандиты.[1]
- SAMOA предназначена для распределённого анализа потоков данных.[1]
Наличие интерфейса частичного обновления не гарантирует устойчивости к дрейфу или забыванию: эти свойства зависят от конкретного алгоритма и протокола обучения.
Применения
- В рекомендательных системах модель обновляется по новым просмотрам, оценкам и покупкам.
- В обнаружении мошенничества, спама и сетевых атак последовательное обучение позволяет учитывать новые схемы поведения.
- В промышленном мониторинге и Интернете вещей оно используется для обнаружения аномалий и прогнозирования отказов.
- В робототехнике и автономных системах модель осваивает новые объекты, условия и навыки во время эксплуатации.[1]
- В медицинских системах модели обновляются при накоплении наблюдений и изменении протоколов измерения; здесь особенно важны проверка качества и конфиденциальность.
- В обработке естественного языка модели адаптируются к новым темам, терминам и пользовательским данным. Для больших языковых моделей исследуются непрерывное предобучение и последовательное дообучение.[1]
В производственных системах инкрементное обновление сопровождают мониторингом метрик, версионированием, проверкой на отложенных данных и возможностью отката модели.
Связь с другими дисциплинами
Инкрементное обучение связано с последовательным оцениванием в математической статистике, стохастическими методами и регретом в оптимизации, адаптивной фильтрацией в обработке сигналов и адаптивным управлением. В базах данных и распределённых вычислениях близкие задачи возникают при обработке потоковых запросов и приближённых статистик.
В когнитивной науке и нейробиологии техническую проблему сохранения знаний сопоставляют с интерференцией и консолидацией памяти. Это сопоставление служит источником идей, но искусственные модели не следует считать прямыми моделями человеческой памяти.
См. также
- Машинное обучение
- Онлайн-обучение
- Непрерывное обучение
- Обучение с переносом знаний
- Стохастический градиентный спуск
- Наивный байесовский классификатор
- Дерево решений
- Ансамблевое обучение
- Катастрофическое забывание
- Дистилляция знаний
- Потоковая обработка данных
- Обнаружение аномалий
- Адаптивный фильтр
- Временной ряд
Примечания
Литература
- Haykin S. Adaptive Filter Theory. — 4-е изд.. — Upper Saddle River: Prentice Hall, 2002. — 936 с. — ISBN 978-0-13-090126-2
- Gama J. Knowledge Discovery from Data Streams. — Boca Raton: Chapman & Hall/CRC, 2010. — 255 с. — ISBN 978-1-4398-2611-9
- Hoi S. C. H., Sahoo D., Lu J., Zhao P. Online Learning: A Comprehensive Survey // Neurocomputing. — 2021. — Т. 459. — С. 249—289.
- Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. A Survey on Concept Drift Adaptation // ACM Computing Surveys. — 2014. — Т. 46. — № 4. — С. 44:1—44:37. — ISSN 0360-0300.
- Bottou L., Curtis F. E., Nocedal J. Optimization Methods for Large-Scale Machine Learning // SIAM Review. — 2018. — Т. 60. — № 2. — С. 223—311. — ISSN 0036-1445.
- Domingos P., Hulten G. Mining High-Speed Data Streams // Proceedings of the Sixth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. — 2000. — С. 71—80.
- Oza N. C., Russell S. J. Online Bagging and Boosting // Proceedings of the Eighth International Workshop on Artificial Intelligence and Statistics. — 2001. — Т. R3. — С. 229—236.
- De Lange M., Aljundi R., Masana M., Parisot S., Jia X., Leonardis A., Slabaugh G., Tuytelaars T. A Continual Learning Survey: Defying Forgetting in Classification Tasks // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 2022. — Т. 44. — № 7. — С. 3366—3385. — ISSN 0162-8828.
- Wang L., Zhang X., Su H., Zhu J. A Comprehensive Survey of Continual Learning: Theory, Method and Application // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 2024. — Т. 46. — № 8. — С. 5362—5383. — ISSN 0162-8828.
- Lopez-Paz D., Ranzato M. Gradient Episodic Memory for Continual Learning // Advances in Neural Information Processing Systems. — 2017. — Т. 30. — С. 6467—6476.
- Díaz-Rodríguez N., Lomonaco V., Filliat D., Maltoni D. Don't Forget, There Is More than Forgetting: New Metrics for Continual Learning // arXiv. — 2018.
- Lesort T., Lomonaco V., Stoian A., Maltoni D., Filliat D., Díaz-Rodríguez N. Continual Learning for Robotics: Definition, Framework, Learning Strategies, Opportunities and Challenges // Information Fusion. — 2020. — Т. 58. — С. 52—68. — ISSN 1566-2535.
- Montiel J., Halford M., Mastelini S. M., Bolmier G., Sourty R., Vaysse R., Zouitine A., Gomes H. M., Read J., Abdessalem T., Bifet A. River: Machine Learning for Streaming Data in Python // Journal of Machine Learning Research. — 2021. — Т. 22. — № 110. — С. 1—8. — ISSN 1532-4435.
- Bifet A., Holmes G., Kirkby R., Pfahringer B. MOA: Massive Online Analysis // Journal of Machine Learning Research. — 2010. — Т. 11. — С. 1601—1604. — ISSN 1532-4435.
- Shi H., Xu Z., Wang H., Qin W., Wang W., Wang Y., Wang Z., Ebrahimi S., Wang H. Continual Learning of Large Language Models: A Comprehensive Survey // ACM Computing Surveys. — 2025. — Т. 58. — № 5. — ISSN 0360-0300.

