Инкрементное обучение
Материал из MachineLearning.
(Новая: {{well|Статья написана с использованием LLM '''DeepSeek-V4''' и проверена участником Участник:Dan-Кhaiaa Lakpazhap 18:29, 30...) |
|||
| Строка 1: | Строка 1: | ||
| - | |||
| - | |||
| - | |||
{{TOCright}} | {{TOCright}} | ||
| - | '''Инкрементное обучение''' (англ. ''incremental learning'') — | + | |
| + | '''Инкрементное обучение''' (англ. ''incremental learning'') — подход к [[машинное обучение|машинному обучению]], при котором уже обученная модель последовательно обновляется по мере поступления новых данных без полного переобучения на всей ранее накопленной выборке. Такое обновление может выполняться после каждого наблюдения или после получения небольшой группы наблюдений. | ||
| + | |||
| + | '''Инкрементом''' (англ. ''increment'') называют очередную порцию новой информации, используемую для обновления модели. Инкрементом может быть один размеченный объект, [[мини-пакет]] наблюдений, набор новых классов, новые признаки или отдельная задача. Например, для рекомендательной системы инкрементом могут служить новые просмотры и покупки, зарегистрированные после предыдущего обновления модели. | ||
| + | |||
| + | Инкрементное обучение применяется, когда данные поступают постепенно, быстро устаревают, имеют слишком большой объём для многократной обработки или не могут длительно храниться из-за ограничений памяти и конфиденциальности. Оно используется в [[рекомендательная система|рекомендательных системах]], фильтрации нежелательных сообщений, обнаружении мошенничества, анализе [[временной ряд|временных рядов]], промышленном мониторинге, [[робототехника|робототехнике]], [[компьютерное зрение|компьютерном зрении]] и [[обработка естественного языка|обработке естественного языка]].<ref name="hoi2021">{{статья | ||
| + | |автор = Hoi S. C. H., Sahoo D., Lu J., Zhao P. | ||
| + | |заглавие = Online Learning: A Comprehensive Survey | ||
| + | |язык = en | ||
| + | |издание = Neurocomputing | ||
| + | |год = 2021 | ||
| + | |том = 459 | ||
| + | |страницы = 249—289 | ||
| + | |doi = 10.1016/j.neucom.2021.04.112 | ||
| + | }}</ref> | ||
| + | |||
| + | Терминология в этой области не полностью унифицирована. В части научной литературы инкрементное и [[онлайн-обучение]] рассматриваются почти как синонимы; в других работах онлайн-обучением называют обработку объектов непосредственно в потоке, а инкрементным — любое обновление модели без переобучения с нуля, в том числе по небольшим пакетам данных. [[Непрерывное обучение]] (англ. ''continual learning'') обычно выделяют как направление, изучающее накопление знаний при последовательном появлении новых данных, классов или задач, особенно в нейронных сетях.<ref name="delange2022">{{статья | ||
| + | |автор = 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 | ||
| + | |язык = en | ||
| + | |издание = IEEE Transactions on Pattern Analysis and Machine Intelligence | ||
| + | |год = 2022 | ||
| + | |том = 44 | ||
| + | |номер = 7 | ||
| + | |страницы = 3366—3385 | ||
| + | |doi = 10.1109/TPAMI.2021.3057446 | ||
| + | |issn = 0162-8828 | ||
| + | }}</ref> | ||
| + | |||
| + | == История == | ||
| + | |||
| + | Идея изменять модель после поступления каждого нового наблюдения появилась раньше современной терминологии инкрементного обучения. Одним из ранних примеров был [[перцептрон]] Фрэнка Розенблатта, предложенный в 1950-х годах. Его веса корректировались последовательно после предъявления обучающих примеров, если модель допускала ошибку классификации.<ref>{{статья | ||
| + | |автор = Rosenblatt F. | ||
| + | |заглавие = The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain | ||
| + | |язык = en | ||
| + | |издание = Psychological Review | ||
| + | |год = 1958 | ||
| + | |том = 65 | ||
| + | |номер = 6 | ||
| + | |страницы = 386—408 | ||
| + | |doi = 10.1037/h0042519 | ||
| + | |issn = 0033-295X | ||
| + | }}</ref> | ||
| + | |||
| + | В статистике и численной оптимизации важную роль сыграл метод [[стохастическая аппроксимация|стохастической аппроксимации]] Роббинса — Монро, опубликованный в 1951 году. Он описывал последовательное оценивание неизвестного параметра по шумным наблюдениям и стал одной из теоретических основ стохастических методов оптимизации.<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> | ||
| + | |||
| + | В 1960 году Бернард Уидроу и Марсиан Хофф представили адаптивную линейную систему ADALINE и правило наименьшего среднего квадрата (англ. ''least mean squares'', LMS). В отличие от пакетного решения задачи наименьших квадратов, правило LMS последовательно изменяло веса по текущей ошибке. Сходные рекуррентные идеи развивались в адаптивной фильтрации, оценивании параметров и управлении, включая рекурсивный метод наименьших квадратов.<ref>{{статья | ||
| + | |автор = Widrow B., Hoff M. E. | ||
| + | |заглавие = Adaptive Switching Circuits | ||
| + | |язык = en | ||
| + | |издание = IRE WESCON Convention Record | ||
| + | |год = 1960 | ||
| + | |том = 4 | ||
| + | |страницы = 96—104 | ||
| + | }}</ref><ref>{{книга | ||
| + | |автор = Haykin S. | ||
| + | |заглавие = Adaptive Filter Theory | ||
| + | |язык = en | ||
| + | |издание = 4-е изд. | ||
| + | |место = Upper Saddle River | ||
| + | |издательство = Prentice Hall | ||
| + | |год = 2002 | ||
| + | |страниц = 936 | ||
| + | |isbn = 978-0-13-090126-2 | ||
| + | }}</ref> | ||
| + | |||
| + | Во второй половине XX века последовательные обновления стали использоваться в линейных классификаторах, вероятностных моделях, адаптивных фильтрах и нейронных сетях. Развитие [[стохастический градиентный спуск|стохастического градиентного спуска]] позволило обучать модели по отдельным объектам и мини-пакетам, что впоследствии стало особенно важным для крупномасштабного машинного обучения.<ref name="bottou2018">{{статья | ||
| + | |автор = Bottou L., Curtis F. E., Nocedal J. | ||
| + | |заглавие = Optimization Methods for Large-Scale Machine Learning | ||
| + | |язык = en | ||
| + | |издание = SIAM Review | ||
| + | |год = 2018 | ||
| + | |том = 60 | ||
| + | |номер = 2 | ||
| + | |страницы = 223—311 | ||
| + | |doi = 10.1137/16M1080173 | ||
| + | |issn = 0036-1445 | ||
| + | }}</ref> | ||
| + | |||
| + | В 1990-х и 2000-х годах сформировалось направление интеллектуального анализа потоков данных (англ. ''data stream mining''). Его задачей стала обработка потенциально неограниченных последовательностей наблюдений при ограниченной памяти и небольшом числе проходов по данным.<ref name="gaber2005">{{статья | ||
| + | |автор = Gaber M. M., Zaslavsky A., Krishnaswamy S. | ||
| + | |заглавие = Mining Data Streams: A Review | ||
| + | |язык = en | ||
| + | |издание = ACM SIGMOD Record | ||
| + | |год = 2005 | ||
| + | |том = 34 | ||
| + | |номер = 2 | ||
| + | |страницы = 18—26 | ||
| + | |doi = 10.1145/1083784.1083789 | ||
| + | |issn = 0163-5808 | ||
| + | }}</ref> К этому периоду относятся дерево Хёффдинга для высокоскоростных потоков данных и онлайн-варианты ансамблевых методов.<ref name="domingos2000">{{статья | ||
| + | |автор = Domingos P., Hulten G. | ||
| + | |заглавие = Mining High-Speed Data Streams | ||
| + | |язык = 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 name="oza2001">{{статья | ||
| + | |автор = Oza N. C., Russell S. J. | ||
| + | |заглавие = Online Bagging and Boosting | ||
| + | |язык = en | ||
| + | |издание = Proceedings of the Eighth International Workshop on Artificial Intelligence and Statistics | ||
| + | |год = 2001 | ||
| + | |том = R3 | ||
| + | |страницы = 229—236 | ||
| + | }}</ref> | ||
| + | |||
| + | С распространением глубоких нейронных сетей в 2010-х годах усилился интерес к ситуации, в которой модель последовательно осваивает новые классы и задачи, но теряет качество на ранее изученных данных. Исследования этого явления, называемого [[катастрофическое забывание|катастрофическим забыванием]], стали центральной частью непрерывного обучения. Современные обзоры рассматривают непрерывное обучение как сочетание трёх требований: усвоения новой информации, сохранения старых знаний и рационального использования памяти и вычислительных ресурсов.<ref name="wang2024">{{статья | ||
| + | |автор = Wang L., Zhang X., Su H., Zhu J. | ||
| + | |заглавие = A Comprehensive Survey of Continual Learning: Theory, Method and Application | ||
| + | |язык = en | ||
| + | |издание = IEEE Transactions on Pattern Analysis and Machine Intelligence | ||
| + | |год = 2024 | ||
| + | |том = 46 | ||
| + | |номер = 8 | ||
| + | |страницы = 5362—5383 | ||
| + | |doi = 10.1109/TPAMI.2024.3367329 | ||
| + | |issn = 0162-8828 | ||
| + | }}</ref> | ||
== Отличие от смежных парадигм == | == Отличие от смежных парадигм == | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | + | Границы между инкрементным, онлайновым и непрерывным обучением зависят от принятой терминологии. На практике различия обычно описывают следующим образом. | |
| - | + | ||
| - | + | * '''Пакетное обучение''' (англ. ''batch learning'') предполагает, что обучающий набор доступен целиком. При добавлении значительного объёма новых данных модель обычно обучают повторно на объединённой выборке. Пакетный режим не исключает использование мини-пакетов внутри оптимизатора: существенным является то, что набор данных в целом фиксирован и доступен для многократных проходов. | |
| - | + | * '''Инкрементное обучение''' обновляет существующую модель по очередным порциям данных. Инкременты могут состоять из отдельных объектов или пакетов; в некоторых задачах в них появляются новые признаки, классы либо подзадачи. Полная история может храниться, храниться частично или быть недоступной. | |
| - | + | * '''[[Онлайн-обучение]]''' (англ. ''online learning'') обычно предполагает последовательный цикл: модель получает объект, делает предсказание, узнаёт правильный ответ или величину потери и немедленно обновляется. Для онлайн-алгоритмов часто исследуют не только итоговую точность, но и накопленную потерю или [[регрет]] (англ. ''regret''). Онлайн-обучение, как правило, является инкрементным, однако инкрементное обновление не обязательно выполняется после каждого отдельного объекта.<ref name="hoi2021"/> | |
| - | + | ||
| - | + | * '''[[Непрерывное обучение]]''' (англ. ''continual learning'') сосредоточено на длительном накоплении знаний в изменяющейся среде. В этой постановке могут последовательно появляться новые данные, классы, предметные области или задачи. Особое внимание уделяется компромиссу между пластичностью модели и сохранением уже освоенных знаний.<ref name="delange2022"/><ref name="wang2024"/> | |
| - | + | ||
| - | + | * '''Обучение в течение всей жизни''' (англ. ''lifelong learning'') — более широкая концепция интеллектуальной системы, способной накапливать, переносить и повторно использовать знания на протяжении длительного времени. В литературе этот термин нередко используется как близкий к continual learning, но может дополнительно подразумевать перенос между задачами, самостоятельный выбор целей и долговременное управление знаниями. | |
| - | + | ||
| - | * ''' | + | * '''[[Дообучение]]''' (англ. ''fine-tuning'') изменяет параметры предобученной модели на новых данных. Оно является инкрементным только в широком смысле: стандартное дообучение не требует сохранения качества на исходных задачах и не содержит специальных механизмов защиты ранее усвоенной информации. |
| - | + | ||
| - | + | ||
| - | + | Инкрементное обучение поэтому нельзя сводить только к непрерывному обучению нейронных сетей. К нему относятся как классические рекуррентные статистические процедуры, так и алгоритмы для потоковых данных и современные методы предотвращения забывания. | |
| - | + | ||
| - | + | == Основы == | |
| - | + | === Формальная постановка задачи === | |
| - | + | Пусть данные поступают последовательно в виде инкрементов | |
| - | + | <tex> | |
| - | + | \mathcal{D}_1,\mathcal{D}_2,\ldots,\mathcal{D}_t,\ldots, | |
| - | + | </tex> | |
| - | + | где | |
| - | + | ||
| - | + | <tex> | |
| - | + | \mathcal{D}_t=\{(x_{t,i},y_{t,i})\}_{i=1}^{n_t} | |
| - | + | </tex> | |
| - | + | — данные, доступные на этапе <tex>t</tex>. Один инкремент может содержать единственный объект (<tex>n_t=1</tex>) или небольшой пакет наблюдений. Модель <tex>f(x;\theta_t)</tex> после каждого этапа получает новые параметры | |
| - | + | ||
| - | + | <tex> | |
| - | + | \theta_t= | |
| - | + | \operatorname{Update} | |
| - | + | \left(\theta_{t-1},\mathcal{D}_t,\mathcal{M}_{t-1}\right), | |
| + | </tex> | ||
| - | == | + | где <tex>\mathcal{M}_{t-1}</tex> — необязательная память модели: сохранённые примеры, агрегированные статистики, параметры предыдущей модели или иное краткое представление прошлого опыта. |
| - | * '''[[ | + | |
| - | + | В идеальном случае параметры после последовательных обновлений должны обеспечивать качество, близкое к результату пакетного обучения на объединении всех данных | |
| - | + | ||
| - | * ''' | + | <tex> |
| - | * ''' | + | \mathcal{D}_{1:t}=\bigcup_{s=1}^{t}\mathcal{D}_s. |
| + | </tex> | ||
| + | |||
| + | Для обучения с учителем соответствующая эмпирическая функция риска имеет вид | ||
| + | |||
| + | <tex> | ||
| + | R_t(\theta)= | ||
| + | \frac{1}{N_t} | ||
| + | \sum_{s=1}^{t} | ||
| + | \sum_{i=1}^{n_s} | ||
| + | L\bigl(f(x_{s,i};\theta),y_{s,i}\bigr), | ||
| + | \qquad | ||
| + | N_t=\sum_{s=1}^{t}n_s, | ||
| + | </tex> | ||
| + | |||
| + | где <tex>L</tex> — [[функция потерь]]. Пакетный алгоритм может непосредственно минимизировать <tex>R_t</tex>, многократно обращаясь ко всем данным. Инкрементный алгоритм должен приближать такое решение, используя новый инкремент и ограниченное состояние, накопленное к предыдущему этапу. | ||
| + | |||
| + | Не все инкрементные методы стремятся в точности воспроизвести пакетное решение. При изменении среды старые наблюдения могут иметь меньшую ценность, поэтому алгоритм может использовать скользящее окно, коэффициент забывания или повышенный вес новых данных. В этом случае целью становится не восстановление модели по всей истории, а адаптация к текущему распределению данных. | ||
| + | |||
| + | В классической постановке онлайн-обучения на шаге <tex>t</tex> выбираются параметры <tex>\theta_t</tex>, после чего наблюдается функция потерь <tex>\ell_t(\theta)</tex>. Качество алгоритма может оцениваться через регрет | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{Regret}_T= | ||
| + | \sum_{t=1}^{T}\ell_t(\theta_t) | ||
| + | - | ||
| + | \min_{\theta\in\Theta} | ||
| + | \sum_{t=1}^{T}\ell_t(\theta). | ||
| + | </tex> | ||
| + | |||
| + | Первое слагаемое — накопленная потеря онлайн-алгоритма, второе — потеря лучшей фиксированной модели, выбранной задним числом по всей последовательности. Малый регрет означает, что последовательные решения алгоритма по качеству приближаются к такому эталону.<ref name="hoi2021"/> | ||
| + | |||
| + | === Типы инкрементов === | ||
| + | |||
| + | Инкрементное обновление может относиться не только к добавлению новых объектов. В зависимости от того, какая часть задачи изменяется, выделяют несколько сценариев. | ||
| + | |||
| + | * '''Инкремент данных''' (англ. ''data-incremental learning'') — поступают новые наблюдения из прежнего множества признаков и классов. Примером служит обновление модели кредитного риска по новым заявкам. | ||
| + | |||
| + | * '''Инкремент классов''' (англ. ''class-incremental learning'') — появляются ранее неизвестные классы, а модель после обновления должна различать как новые, так и старые классы. Этот сценарий особенно распространён в исследованиях непрерывного обучения изображений. | ||
| + | |||
| + | * '''Инкремент задач''' (англ. ''task-incremental learning'') — модель последовательно осваивает несколько задач. Во время применения может быть известен идентификатор задачи; если он неизвестен, постановка становится сложнее, поскольку модель должна также определить, какие знания использовать. | ||
| + | |||
| + | * '''Инкремент признаков''' (англ. ''feature-incremental learning'') — изменяется пространство признаков: добавляются новые датчики, поля записи или способы представления объекта. | ||
| + | |||
| + | * '''Инкремент структуры модели''' — по мере накопления данных изменяется сама модель, например добавляются вершины дерева решений, компоненты смеси, базовые алгоритмы ансамбля или новые модули нейронной сети. | ||
| + | |||
| + | В реальных системах эти сценарии могут сочетаться. Например, в каталоге интернет-магазина одновременно появляются новые товары, новые категории и новые типы пользовательских сигналов. | ||
| + | |||
| + | === Потоковые данные === | ||
| + | |||
| + | '''Поток данных''' (англ. ''data stream'') — упорядоченная последовательность наблюдений, которая поступает во времени и потенциально не имеет заранее известного конца. Интеллектуальный анализ потоков данных (англ. ''data stream mining'') изучает методы извлечения моделей и закономерностей из таких последовательностей.<ref name="gaber2005"/><ref>{{книга | ||
| + | |автор = Gama J. | ||
| + | |заглавие = Knowledge Discovery from Data Streams | ||
| + | |язык = en | ||
| + | |место = Boca Raton | ||
| + | |издательство = Chapman & Hall/CRC | ||
| + | |год = 2010 | ||
| + | |страниц = 255 | ||
| + | |isbn = 978-1-4398-2611-9 | ||
| + | }}</ref> | ||
| + | |||
| + | Для потоковой постановки характерны следующие ограничения: | ||
| + | |||
| + | * данные могут поступать быстрее, чем система способна сохранять и повторно обрабатывать их целиком; | ||
| + | * порядок наблюдений имеет значение и обычно не может быть произвольно перемешан; | ||
| + | * алгоритм должен выполнять один или небольшое число проходов по данным; | ||
| + | * время обработки одного объекта и объём рабочей памяти должны оставаться ограниченными; | ||
| + | * распределение данных может изменяться во времени; | ||
| + | * истинные ответы могут поступать с задержкой или отсутствовать. | ||
| + | |||
| + | Инкрементное обучение и анализ потоков данных тесно связаны, но не тождественны. Инкрементный алгоритм может обучаться на конечной последовательности пакетов, не являющейся потоком в строгом смысле. В свою очередь, потоковый анализ включает не только обучение предсказательных моделей, но и кластеризацию, поиск частых элементов, оценивание статистик, обнаружение аномалий и выявление изменений. | ||
| + | |||
| + | Для оценки потоковых моделей часто используют последовательную проверку «предсказать, затем обучиться» (англ. ''test-then-train'' или ''prequential evaluation''). На каждом объекте сначала измеряют качество текущей модели и только после этого используют объект для обновления. Такая схема воспроизводит реальную работу системы, которая не должна обучаться на ответе до выполнения предсказания. | ||
| + | |||
| + | Если статистическая связь между входами и целевой переменной меняется во времени, говорят об изменении концепции (англ. ''concept drift''). В потоковых алгоритмах для адаптации могут применяться скользящие окна, взвешивание наблюдений по давности, детекторы изменений и замена отдельных компонентов модели. Подробно эта проблема рассматривается в разделе о вызовах инкрементного обучения. | ||
| + | |||
| + | == Методы инкрементного обучения == | ||
| + | |||
| + | Инкрементность является свойством процедуры обновления, а не отдельным типом модели. Последовательно обучаться могут линейные модели, вероятностные классификаторы, деревья решений, ансамбли и нейронные сети. Одни методы дают точное рекуррентное обновление, эквивалентное пакетному вычислению, другие выполняют приближённый шаг оптимизации или специально адаптируются к изменениям данных. | ||
| + | |||
| + | === Классические методы === | ||
| + | |||
| + | ==== Стохастический градиентный спуск ==== | ||
| + | |||
| + | [[Стохастический градиентный спуск]] (англ. ''stochastic gradient descent'', SGD) обновляет параметры по градиенту потери на одном объекте или мини-пакете: | ||
| + | |||
| + | <tex> | ||
| + | \theta_t= | ||
| + | \theta_{t-1} | ||
| + | - | ||
| + | \eta_t | ||
| + | \nabla_\theta | ||
| + | L\bigl(f(x_t;\theta_{t-1}),y_t\bigr), | ||
| + | </tex> | ||
| + | |||
| + | где <tex>\eta_t</tex> — размер шага. Метод не требует вычислять градиент по всей выборке и поэтому естественно применяется к поступающим данным. Качество и устойчивость обновлений зависят от выбора шага, масштабирования признаков, порядка объектов и свойств функции потерь.<ref name="bottou2018"/> | ||
| + | |||
| + | SGD лежит в основе инкрементного обучения [[логистическая регрессия|логистической регрессии]], линейных [[метод опорных векторов|методов опорных векторов]], перцептрона и нейронных сетей. Однако обычный SGD сам по себе не гарантирует сохранения качества при смене задач или распределений: новые градиенты могут вытеснять ранее усвоенную информацию. | ||
| + | |||
| + | ==== Рекурсивный метод наименьших квадратов ==== | ||
| + | |||
| + | Рекурсивный метод наименьших квадратов (англ. ''recursive least squares'', RLS) предназначен для последовательного оценивания параметров линейной модели | ||
| + | |||
| + | <tex> | ||
| + | y_t=x_t^{\mathsf T}\theta+\varepsilon_t. | ||
| + | </tex> | ||
| + | |||
| + | Вместо повторного решения задачи на всей выборке метод обновляет оценку параметров и матрицу, связанную с обратной матрицей вторых моментов признаков. В простейшем варианте без коэффициента забывания обновление можно записать как | ||
| + | |||
| + | <tex> | ||
| + | k_t= | ||
| + | \frac{P_{t-1}x_t} | ||
| + | {1+x_t^{\mathsf T}P_{t-1}x_t}, | ||
| + | </tex> | ||
| + | |||
| + | <tex> | ||
| + | \theta_t= | ||
| + | \theta_{t-1} | ||
| + | + | ||
| + | k_t\bigl(y_t-x_t^{\mathsf T}\theta_{t-1}\bigr), | ||
| + | </tex> | ||
| + | |||
| + | <tex> | ||
| + | P_t= | ||
| + | P_{t-1} | ||
| + | - | ||
| + | k_tx_t^{\mathsf T}P_{t-1}. | ||
| + | </tex> | ||
| + | |||
| + | При согласованной инициализации такое рекуррентное вычисление соответствует решению обычного метода наименьших квадратов по всем накопленным наблюдениям. В адаптивных системах часто вводят коэффициент забывания, уменьшающий влияние старых данных и позволяющий отслеживать меняющиеся параметры.<ref name="haykin">{{книга | ||
| + | |автор = Haykin S. | ||
| + | |заглавие = Adaptive Filter Theory | ||
| + | |язык = en | ||
| + | |издание = 4-е изд. | ||
| + | |место = Upper Saddle River | ||
| + | |издательство = Prentice Hall | ||
| + | |год = 2002 | ||
| + | |страниц = 936 | ||
| + | |isbn = 978-0-13-090126-2 | ||
| + | }}</ref> | ||
| + | |||
| + | ==== Онлайновый наивный байесовский классификатор ==== | ||
| + | |||
| + | [[Наивный байесовский классификатор]] удобен для инкрементного обучения, поскольку его параметры обычно выражаются через небольшое число достаточных статистик: количества объектов по классам, суммы значений признаков и суммы их квадратов. После получения нового объекта пересчитываются только статистики соответствующего класса. | ||
| + | |||
| + | Например, число объектов класса <tex>y</tex> и среднее значение признака <tex>j</tex> можно обновлять по формулам | ||
| + | |||
| + | <tex> | ||
| + | n_{y,t}=n_{y,t-1}+\mathbb{I}(y_t=y), | ||
| + | </tex> | ||
| + | |||
| + | <tex> | ||
| + | \mu_{j,y,t}= | ||
| + | \mu_{j,y,t-1} | ||
| + | + | ||
| + | \frac{\mathbb{I}(y_t=y)}{n_{y,t}} | ||
| + | \left(x_{t,j}-\mu_{j,y,t-1}\right), | ||
| + | </tex> | ||
| + | |||
| + | где <tex>\mathbb{I}</tex> — индикатор события. Для дискретных признаков аналогично обновляются частоты значений, а для гауссовской модели — средние и дисперсии. Если данные не забываются и используются одинаковые априорные предположения, результат такого обновления совпадает с вычислением тех же статистик по всей накопленной выборке.<ref>{{книга | ||
| + | |автор = Murphy K. P. | ||
| + | |заглавие = Machine Learning: A Probabilistic Perspective | ||
| + | |язык = en | ||
| + | |место = Cambridge | ||
| + | |издательство = The MIT Press | ||
| + | |год = 2012 | ||
| + | |страниц = 1104 | ||
| + | |isbn = 978-0-262-01802-9 | ||
| + | }}</ref> | ||
| + | |||
| + | ==== Дерево Хёффдинга ==== | ||
| + | |||
| + | Обычное [[дерево решений]] выбирает разбиения, анализируя обучающую выборку. Для потока данных хранение всех объектов невозможно, поэтому дерево Хёффдинга (англ. ''Hoeffding Tree'', также ''Very Fast Decision Tree'') накапливает в вершинах статистики, достаточные для сравнения кандидатов на разбиение.<ref name="domingos2000"/> | ||
| + | |||
| + | Решение о разбиении принимается с использованием границы Хёффдинга | ||
| + | |||
| + | <tex> | ||
| + | \varepsilon= | ||
| + | \sqrt{ | ||
| + | \frac{R^2\ln(1/\delta)} | ||
| + | {2n} | ||
| + | }, | ||
| + | </tex> | ||
| + | |||
| + | где <tex>n</tex> — число объектов, прошедших через вершину, <tex>R</tex> — диапазон значений критерия качества, а <tex>\delta</tex> — допустимая вероятность ошибочного выбора. Если преимущество лучшего разбиения над вторым превышает <tex>\varepsilon</tex>, накопленной информации считается достаточно для изменения структуры дерева. Алгоритм не хранит сами объекты и способен постепенно расширять дерево по мере поступления потока. | ||
| + | |||
| + | ==== Онлайн-бэггинг и онлайн-бустинг ==== | ||
| + | |||
| + | [[Бэггинг]] в пакетном режиме обучает базовые модели на бутстреп-выборках. В онлайн-бэггинге число повторений текущего объекта для каждого базового алгоритма выбирается из распределения Пуассона с параметром 1: | ||
| + | |||
| + | <tex> | ||
| + | K_{t,m}\sim\operatorname{Poisson}(1), | ||
| + | </tex> | ||
| + | |||
| + | после чего <tex>m</tex>-я модель обновляется на объекте <tex>K_{t,m}</tex> раз. Такое правило приближает распределение числа появлений объекта в обычной бутстреп-выборке при большом размере набора данных.<ref name="oza2001"/> | ||
| + | |||
| + | Онлайн-бустинг последовательно изменяет веса объектов и базовых моделей, приближая идею пакетного [[бустинг]]а без хранения всей выборки. На практике онлайн-варианты бустинга чувствительнее к шуму и смене распределения, поэтому в потоковых системах часто применяются модифицированные ансамбли с ограниченным размером, окнами данных и детекторами изменений. | ||
| + | |||
| + | === Современные методы непрерывного обучения === | ||
| + | |||
| + | Классические инкрементные методы прежде всего обеспечивают экономное обновление модели. В непрерывном обучении нейронных сетей дополнительно требуется сохранять качество на старых данных, классах и задачах. Современные классификации обычно выделяют методы воспроизведения опыта, регуляризационные методы и изоляцию параметров; многие алгоритмы сочетают несколько групп.<ref name="delange2022"/><ref name="wang2024"/> | ||
| + | |||
| + | ==== Методы воспроизведения опыта ==== | ||
| + | |||
| + | Методы воспроизведения (англ. ''replay-based methods'') повторно предъявляют модели информацию о предыдущих этапах одновременно с новыми данными. В простейшем случае сохраняется ограниченный буфер реальных примеров, и функция потерь имеет вид | ||
| + | |||
| + | <tex> | ||
| + | \mathcal{L}= | ||
| + | \mathcal{L}_{\mathrm{new}} | ||
| + | + | ||
| + | \alpha\mathcal{L}_{\mathrm{replay}}, | ||
| + | </tex> | ||
| + | |||
| + | где второе слагаемое вычисляется на объектах из памяти. | ||
| + | |||
| + | К этой группе относится iCaRL, совмещающий хранение небольшого набора представителей старых классов, [[дистилляция знаний|дистилляцию знаний]] и классификацию по прототипам.<ref>{{статья | ||
| + | |автор = Rebuffi S.-A., Kolesnikov A., Sperl G., Lampert C. H. | ||
| + | |заглавие = iCaRL: Incremental Classifier and Representation Learning | ||
| + | |язык = en | ||
| + | |издание = 2017 IEEE Conference on Computer Vision and Pattern Recognition | ||
| + | |год = 2017 | ||
| + | |страницы = 5533—5542 | ||
| + | |doi = 10.1109/CVPR.2017.587 | ||
| + | }}</ref> При генеративном воспроизведении (англ. ''generative replay'') реальные старые объекты заменяются синтетическими примерами или скрытыми представлениями, создаваемыми генеративной моделью. Воспроизведение обычно эффективно снижает забывание, но требует памяти, дополнительного обучения или возможности хранить данные, что не всегда допустимо. | ||
| + | |||
| + | ==== Регуляризационные методы ==== | ||
| + | |||
| + | Регуляризационные методы (англ. ''regularization-based methods'') ограничивают изменения параметров или выходов модели, важных для прежних задач. Общая форма параметрического штрафа имеет вид | ||
| + | |||
| + | <tex> | ||
| + | \mathcal{L}(\theta)= | ||
| + | \mathcal{L}_{\mathrm{new}}(\theta) | ||
| + | + | ||
| + | \lambda | ||
| + | \sum_i | ||
| + | \Omega_i | ||
| + | \left(\theta_i-\theta_i^{\mathrm{old}}\right)^2, | ||
| + | </tex> | ||
| + | |||
| + | где <tex>\Omega_i</tex> оценивает важность параметра <tex>\theta_i</tex> для ранее освоенных данных. | ||
| + | |||
| + | Метод Elastic Weight Consolidation оценивает важность параметров с помощью диагонального приближения [[информация Фишера|информации Фишера]] и сильнее ограничивает изменение наиболее значимых весов.<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. | ||
| + | |заглавие = Overcoming Catastrophic Forgetting in Neural Networks | ||
| + | |язык = en | ||
| + | |издание = Proceedings of the National Academy of Sciences | ||
| + | |год = 2017 | ||
| + | |том = 114 | ||
| + | |номер = 13 | ||
| + | |страницы = 3521—3526 | ||
| + | |doi = 10.1073/pnas.1611835114 | ||
| + | |issn = 0027-8424 | ||
| + | }}</ref> Другие методы оценивают важность параметров по траектории оптимизации или сохраняют старое поведение модели через дистилляцию выходов. Например, Learning without Forgetting использует ответы предыдущей версии сети на новых данных как дополнительные мягкие цели.<ref>{{статья | ||
| + | |автор = Li Z., Hoiem D. | ||
| + | |заглавие = Learning without Forgetting | ||
| + | |язык = en | ||
| + | |издание = Computer Vision — ECCV 2016 | ||
| + | |год = 2016 | ||
| + | |том = 9908 | ||
| + | |страницы = 614—629 | ||
| + | |doi = 10.1007/978-3-319-46493-0_37 | ||
| + | }}</ref> | ||
| + | |||
| + | Регуляризация не требует хранения большого набора старых объектов, однако её эффективность снижается, если новые и старые задачи сильно различаются или ёмкости одной и той же модели недостаточно для всех задач. | ||
| + | |||
| + | ==== Методы изоляции параметров ==== | ||
| + | |||
| + | Методы изоляции параметров (англ. ''parameter isolation methods'') уменьшают интерференцию, выделяя разным задачам отдельные части модели. Параметры прежних задач могут фиксироваться, маскироваться или исключаться из дальнейших обновлений, а для новых задач создаются свободные параметры или дополнительные модули. | ||
| + | |||
| + | В прогрессивных нейронных сетях (англ. ''progressive neural networks'') для новой задачи добавляется новый столбец слоёв, связанный с зафиксированными предыдущими столбцами. Это предотвращает перезапись старых параметров и позволяет использовать ранее изученные признаки, но приводит к росту размера модели.<ref>{{статья | ||
| + | |автор = Rusu A. A., Rabinowitz N. C., Desjardins G., Soyer H., Kirkpatrick J., Kavukcuoglu K., Pascanu R., Hadsell R. | ||
| + | |заглавие = Progressive Neural Networks | ||
| + | |язык = en | ||
| + | |издание = arXiv | ||
| + | |год = 2016 | ||
| + | |номер = 1606.04671 | ||
| + | |doi = 10.48550/arXiv.1606.04671 | ||
| + | }}</ref> | ||
| + | |||
| + | Другие подходы используют разреживание весов, обучаемые маски, маршрутизацию между модулями или адаптеры. Они хорошо сохраняют старые навыки, но требуют определить границы задач или механизм выбора нужного поднабора параметров, а доступная ёмкость модели со временем может исчерпываться. | ||
| + | |||
| + | == Проблемы и вызовы == | ||
| + | |||
| + | === Катастрофическое забывание === | ||
| + | |||
| + | '''Катастрофическое забывание''' (англ. ''catastrophic forgetting'', первоначально также ''catastrophic interference'') — резкое ухудшение качества модели на ранее изученных данных или задачах после обучения на новой информации. Явление особенно характерно для [[нейронная сеть|нейронных сетей]] с распределённым представлением знаний: одни и те же параметры участвуют в обработке разных примеров, поэтому обновления, полезные для нового инкремента, могут нарушать функции, сформированные на предыдущих этапах.<ref name="mccloskey1989">{{книга | ||
| + | |автор = McCloskey M., Cohen N. J. | ||
| + | |часть = Catastrophic Interference in Connectionist Networks: The Sequential Learning Problem | ||
| + | |заглавие = Psychology of Learning and Motivation | ||
| + | |язык = en | ||
| + | |том = 24 | ||
| + | |место = San Diego | ||
| + | |издательство = Academic Press | ||
| + | |год = 1989 | ||
| + | |страницы = 109—165 | ||
| + | |doi = 10.1016/S0079-7421(08)60536-8 | ||
| + | }}</ref> | ||
| + | |||
| + | Забывание не следует отождествлять с обычным переобучением или случайными колебаниями качества. Оно возникает именно вследствие последовательного обновления: модель хорошо решает старую задачу до обучения на новом инкременте, но после него теряет часть прежней компетенции. Степень забывания зависит от сходства задач, порядка их предъявления, ёмкости модели, алгоритма оптимизации и доступности старых данных.<ref name="delange2022"/><ref name="wang2024"/> | ||
| + | |||
| + | Проблема связана с дилеммой стабильности—пластичности (англ. ''stability–plasticity dilemma''). Слишком пластичная модель быстро приспосабливается к новым данным, но легко забывает старые; чрезмерно стабильная сохраняет прежние знания, однако плохо осваивает новую информацию. Поэтому цель инкрементного обучения состоит не в полном запрещении изменения параметров, а в достижении приемлемого баланса между сохранением и обновлением знаний. | ||
| + | |||
| + | Катастрофическое забывание оценивают по изменению качества на предыдущих задачах после обучения на последующих. Если <tex>a_{i,j}</tex> обозначает качество на задаче <tex>j</tex> после обучения до этапа <tex>i</tex>, то забывание для задачи <tex>j</tex> к моменту <tex>T</tex> можно определить как | ||
| + | |||
| + | <tex> | ||
| + | F_{T,j} | ||
| + | = | ||
| + | \max_{i\in\{j,\ldots,T-1\}} a_{i,j} | ||
| + | - | ||
| + | a_{T,j}. | ||
| + | </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> | ||
| + | |||
| + | Предотвращение забывания не является единственной целью. Модель также должна усваивать новые данные, переносить знания между задачами, сохранять вычислительную эффективность и работать при ограниченной памяти. Метод, полностью фиксирующий старую модель, может почти не забывать прежние задачи, но при этом оказаться неспособным обучаться новым. | ||
| + | |||
| + | === Изменение распределения данных === | ||
| + | |||
| + | Во многих приложениях предполагаемое в классическом машинном обучении постоянство распределения данных не выполняется. Пусть на этапе <tex>t</tex> наблюдения порождаются распределением <tex>P_t(X,Y)</tex>. Если для двух моментов времени | ||
| + | |||
| + | <tex> | ||
| + | P_t(X,Y)\ne P_{t+\Delta}(X,Y), | ||
| + | </tex> | ||
| + | |||
| + | то данные являются нестационарными. Изменение статистической связи, определяющей предсказываемую величину, называют изменением концепции, или дрейфом концепции (англ. ''concept drift'').<ref name="gama2014">{{статья | ||
| + | |автор = Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. | ||
| + | |заглавие = A Survey on Concept Drift Adaptation | ||
| + | |язык = en | ||
| + | |издание = ACM Computing Surveys | ||
| + | |год = 2014 | ||
| + | |том = 46 | ||
| + | |номер = 4 | ||
| + | |страницы = 44:1—44:37 | ||
| + | |doi = 10.1145/2523813 | ||
| + | |issn = 0360-0300 | ||
| + | }}</ref> | ||
| + | |||
| + | В литературе различают несколько связанных случаев: | ||
| + | |||
| + | * изменение распределения входных признаков <tex>P(X)</tex> при неизменной зависимости <tex>P(Y\mid X)</tex>; | ||
| + | * изменение частот классов <tex>P(Y)</tex>; | ||
| + | * изменение условной зависимости <tex>P(Y\mid X)</tex>, при котором прежнее правило предсказания перестаёт соответствовать данным. | ||
| + | |||
| + | Дрейф может быть '''резким''', когда режим меняется за короткое время; '''постепенным''', когда старый и новый режимы некоторое время сосуществуют; '''инкрементным''', когда распределение медленно смещается; или '''повторяющимся''', когда ранее встречавшиеся состояния возвращаются. Например, в рекомендательной системе предпочтения пользователей могут меняться постепенно, а сезонные модели спроса — повторяться. | ||
| + | |||
| + | Для обнаружения изменений применяются несколько групп методов. Методы, основанные на ошибке, отслеживают ухудшение качества модели при поступлении размеченных данных. Методы, основанные на распределении, сравнивают статистики признаков или предсказаний в разных временных окнах. Ансамблевые методы поддерживают несколько моделей и заменяют либо перенастраивают те из них, которые перестают соответствовать текущему потоку. | ||
| + | |||
| + | Адаптация к дрейфу может выполняться с помощью скользящего окна, уменьшения веса старых наблюдений, сброса части модели, изменения структуры дерева или обновления состава ансамбля. Выбор механизма зависит от того, насколько быстро меняются данные и доступны ли истинные ответы. При задержке меток обнаружение изменений по ошибке становится невозможным до получения обратной связи. | ||
| + | |||
| + | === Ограничения ресурсов и данных === | ||
| + | |||
| + | Инкрементное обучение обычно применяется именно при ограниченных ресурсах, поэтому качество модели нельзя рассматривать отдельно от стоимости обновления. Важны объём оперативной и долговременной памяти, время обработки одного инкремента, пропускная способность, размер модели и возможность выполнять предсказание во время обучения. | ||
| + | |||
| + | Хранение старых примеров может уменьшить забывание, но создаёт дополнительные требования к памяти и конфиденциальности. Агрегированные статистики занимают меньше места, однако могут оказаться недостаточными для сложной модели. Расширяемые архитектуры сохраняют старые параметры, но постепенно увеличивают размер сети. Таким образом, разные методы переносят затраты между памятью, вычислениями и качеством. | ||
| + | |||
| + | Практическими трудностями также являются дисбаланс классов, шумные или ошибочные метки, появление новых признаков, неполные наблюдения и задержка обратной связи. При потоковой оценке особенно важно исключать утечку данных: объект должен использоваться для проверки модели до того, как он будет включён в очередное обновление. | ||
| + | |||
| + | == Практические аспекты == | ||
| + | |||
| + | === Метрики оценки === | ||
| + | |||
| + | Обычная точность на одной фиксированной тестовой выборке не полностью характеризует инкрементное обучение. Оценивание должно учитывать качество во времени, сохранение старых знаний, перенос между задачами и стоимость обновления.<ref name="metrics2018">{{статья | ||
| + | |автор = Díaz-Rodríguez N., Lomonaco V., Filliat D., Maltoni D. | ||
| + | |заглавие = Don't Forget, There Is More than Forgetting: New Metrics for Continual Learning | ||
| + | |язык = en | ||
| + | |издание = arXiv | ||
| + | |год = 2018 | ||
| + | |arxiv = 1810.13166 | ||
| + | |doi = 10.48550/arXiv.1810.13166 | ||
| + | }}</ref> | ||
| + | |||
| + | В потоковом обучении часто используется последовательная оценка «предсказать, затем обучиться» (англ. ''test-then-train'', или ''prequential evaluation''). Для каждого объекта сначала вычисляется предсказание текущей модели, затем измеряется потеря и только после этого выполняется обновление. Средняя последовательная потеря к моменту <tex>T</tex> равна | ||
| + | |||
| + | <tex> | ||
| + | Q_T | ||
| + | = | ||
| + | \frac{1}{T} | ||
| + | \sum_{t=1}^{T} | ||
| + | L\bigl(f(x_t;\theta_{t-1}),y_t\bigr). | ||
| + | </tex> | ||
| + | |||
| + | Поскольку среднее по всей истории может скрывать недавнее ухудшение, дополнительно используют скользящие средние, затухающие веса и графики метрик во времени. | ||
| + | |||
| + | Для последовательности из <tex>T</tex> задач удобно использовать матрицу результатов <tex>A=(a_{i,j})</tex>, где <tex>a_{i,j}</tex> — качество на тестовой выборке задачи <tex>j</tex> после завершения обучения на задаче <tex>i</tex>. На её основе определяются следующие показатели. | ||
| + | |||
| + | * '''Средняя итоговая точность''' (англ. ''average accuracy''): | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{ACC}_T | ||
| + | = | ||
| + | \frac{1}{T} | ||
| + | \sum_{j=1}^{T} a_{T,j}. | ||
| + | </tex> | ||
| + | |||
| + | Она показывает среднее качество на всех изученных задачах после завершения последовательности. | ||
| + | |||
| + | * '''Среднее забывание''' (англ. ''average forgetting''): | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{F}_T | ||
| + | = | ||
| + | \frac{1}{T-1} | ||
| + | \sum_{j=1}^{T-1} | ||
| + | \left( | ||
| + | \max_{i\in\{j,\ldots,T-1\}} a_{i,j} | ||
| + | - | ||
| + | a_{T,j} | ||
| + | \right). | ||
| + | </tex> | ||
| + | |||
| + | Показатель сравнивает итоговый результат с лучшим результатом, достигнутым на каждой старой задаче. | ||
| + | |||
| + | * '''Обратный перенос''' (англ. ''backward transfer'', BWT): | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{BWT}_T | ||
| + | = | ||
| + | \frac{1}{T-1} | ||
| + | \sum_{j=1}^{T-1} | ||
| + | \left(a_{T,j}-a_{j,j}\right). | ||
| + | </tex> | ||
| + | |||
| + | Отрицательный BWT указывает на ухудшение старых задач, а положительный — на то, что последующее обучение улучшило прежние результаты. | ||
| + | |||
| + | * '''Прямой перенос''' (англ. ''forward transfer'', FWT) оценивает, помогает ли опыт предыдущих задач решать новую задачу ещё до её непосредственного обучения. Если <tex>b_j</tex> — качество независимой начальной модели на задаче <tex>j</tex>, то один из вариантов определения имеет вид | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{FWT}_T | ||
| + | = | ||
| + | \frac{1}{T-1} | ||
| + | \sum_{j=2}^{T} | ||
| + | \left(a_{j-1,j}-b_j\right). | ||
| + | </tex> | ||
| + | |||
| + | Определения метрик могут различаться между работами, поэтому при сравнении методов необходимо указывать сценарий обучения, порядок задач, доступность идентификатора задачи, размер памяти и точную формулу показателя.<ref name="gem2017"/><ref name="metrics2018"/> | ||
| + | |||
| + | Помимо предсказательного качества измеряют объём памяти для сохранённых примеров и параметров, время обучения, задержку обновления, скорость обработки потока и рост размера модели. Для нестационарных данных также оценивают задержку обнаружения дрейфа, число ложных срабатываний и скорость восстановления качества после изменения. | ||
| + | |||
| + | === Программные библиотеки === | ||
| + | |||
| + | Для экспериментов и разработки инкрементных моделей используются как универсальные библиотеки машинного обучения, так и специализированные системы потоковой аналитики. | ||
| + | |||
| + | * '''River''' — библиотека на языке Python для онлайн-машинного обучения. Она включает инкрементные алгоритмы классификации, регрессии, кластеризации, обнаружения аномалий, обработки признаков, оценки потоковых моделей и обнаружения дрейфа.<ref name="riverpaper">{{статья | ||
| + | |автор = 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 | ||
| + | |язык = en | ||
| + | |издание = Journal of Machine Learning Research | ||
| + | |год = 2021 | ||
| + | |том = 22 | ||
| + | |номер = 110 | ||
| + | |страницы = 1—8 | ||
| + | |issn = 1532-4435 | ||
| + | }}</ref><ref>{{cite web | ||
| + | |url = https://riverml.xyz/ | ||
| + | |title = River — Online Machine Learning in Python | ||
| + | |lang = en | ||
| + | |website = River | ||
| + | |access-date = 2026-07-26 | ||
| + | }}</ref> | ||
| + | |||
| + | * '''scikit-learn''' поддерживает частичное обучение методом <code>partial_fit()</code> для ряда моделей, включая стохастические линейные алгоритмы, наивный байесовский классификатор, MiniBatch K-Means и некоторые методы снижения размерности. Этот интерфейс применяется для онлайн-обучения и обучения вне оперативной памяти (англ. ''out-of-core learning'').<ref>{{cite web | ||
| + | |url = https://scikit-learn.org/stable/computing/scaling_strategies.html | ||
| + | |title = Strategies to Scale Computationally: Bigger Data | ||
| + | |lang = en | ||
| + | |website = scikit-learn | ||
| + | |access-date = 2026-07-26 | ||
| + | }}</ref> | ||
| + | |||
| + | * '''MOA''' (Massive Online Analysis) — среда на языке Java для разработки, сравнения и оценки алгоритмов на изменяющихся потоках данных. В ней реализованы генераторы потоков, деревья Хёффдинга, ансамбли, методы кластеризации и протоколы потоковой оценки.<ref name="moa2010">{{статья | ||
| + | |автор = Bifet A., Holmes G., Kirkby R., Pfahringer B. | ||
| + | |заглавие = MOA: Massive Online Analysis | ||
| + | |язык = en | ||
| + | |издание = Journal of Machine Learning Research | ||
| + | |год = 2010 | ||
| + | |том = 11 | ||
| + | |страницы = 1601—1604 | ||
| + | |issn = 1532-4435 | ||
| + | }}</ref><ref>{{cite web | ||
| + | |url = https://moa.cms.waikato.ac.nz/ | ||
| + | |title = MOA — Machine Learning for Data Streams | ||
| + | |lang = en | ||
| + | |website = University of Waikato | ||
| + | |access-date = 2026-07-26 | ||
| + | }}</ref> | ||
| + | |||
| + | * '''Vowpal Wabbit''' — система для быстрого онлайн- и интерактивного обучения, поддерживающая линейные модели, активное обучение, контекстные бандиты и обучение на данных, не помещающихся в память.<ref>{{cite web | ||
| + | |url = https://vowpalwabbit.org/ | ||
| + | |title = Vowpal Wabbit | ||
| + | |lang = en | ||
| + | |website = Vowpal Wabbit | ||
| + | |access-date = 2026-07-26 | ||
| + | }}</ref> | ||
| + | |||
| + | * '''SAMOA''' (Scalable Advanced Massive Online Analysis) была разработана как распределённая платформа для классификации, регрессии и кластеризации потоков на системах потоковой обработки.<ref name="samoa2015">{{статья | ||
| + | |автор = De Francisci Morales G., Bifet A. | ||
| + | |заглавие = SAMOA: Scalable Advanced Massive Online Analysis | ||
| + | |язык = en | ||
| + | |издание = Journal of Machine Learning Research | ||
| + | |год = 2015 | ||
| + | |том = 16 | ||
| + | |страницы = 149—153 | ||
| + | |issn = 1532-4435 | ||
| + | }}</ref> | ||
| + | |||
| + | Поддержка метода частичного обновления сама по себе не гарантирует устойчивости к дрейфу или катастрофическому забыванию. Эти свойства зависят от конкретного алгоритма, протокола обучения и способа управления памятью. | ||
| + | |||
| + | === Применения === | ||
| + | |||
| + | Инкрементное обучение используется в системах, где данные и требования изменяются быстрее, чем возможно регулярно переобучать модель с нуля. | ||
| + | |||
| + | * В [[рекомендательная система|рекомендательных системах]] модель обновляется по новым просмотрам, оценкам и покупкам, учитывая изменение интересов пользователей и появление новых объектов. | ||
| + | |||
| + | * В обнаружении мошенничества, фильтрации спама и сетевой безопасности последовательное обучение позволяет учитывать новые схемы поведения. При этом важны устойчивость к дисбалансу классов и способность реагировать на дрейф. | ||
| + | |||
| + | * В промышленном мониторинге и [[Интернет вещей|Интернете вещей]] модели обрабатывают телеметрию оборудования и датчиков. Инкрементное обновление используется для обнаружения аномалий, прогнозирования отказов и адаптации к изменению рабочих режимов. | ||
| + | |||
| + | * В [[робототехника|робототехнике]] и автономных системах среда, сенсоры и набор доступных действий могут изменяться во время эксплуатации. Непрерывное обучение рассматривается как способ осваивать новые объекты и навыки без полного отказа от ранее приобретённых возможностей.<ref name="lesort2020">{{статья | ||
| + | |автор = 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 | ||
| + | |язык = en | ||
| + | |издание = Information Fusion | ||
| + | |год = 2020 | ||
| + | |том = 58 | ||
| + | |страницы = 52—68 | ||
| + | |doi = 10.1016/j.inffus.2019.12.004 | ||
| + | |issn = 1566-2535 | ||
| + | }}</ref> | ||
| + | |||
| + | * В медицинских и биоинформатических системах инкрементное обучение может использоваться при накоплении новых наблюдений, появлении новых протоколов измерения и различиях между учреждениями. Для таких применений особенно важны контроль качества, воспроизводимость, конфиденциальность и независимая проверка после обновлений. | ||
| + | |||
| + | * В [[обработка естественного языка|обработке естественного языка]] модели адаптируются к новым темам, терминам, языковым вариантам и пользовательским данным. Для [[большая языковая модель|больших языковых моделей]] исследуются непрерывное предобучение, последовательное дообучение и обновление навыков при сохранении ранее приобретённых знаний.<ref name="shi2025">{{статья | ||
| + | |автор = 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 | ||
| + | |язык = en | ||
| + | |издание = ACM Computing Surveys | ||
| + | |год = 2025 | ||
| + | |том = 58 | ||
| + | |номер = 5 | ||
| + | |doi = 10.1145/3735633 | ||
| + | |issn = 0360-0300 | ||
| + | }}</ref> | ||
| + | |||
| + | В производственной системе обновление модели обычно сопровождается мониторингом метрик, журналированием версий, возможностью отката и проверкой на отложенных данных. Инкрементное обучение не отменяет контроль качества: частые небольшие изменения могут накапливать ошибки так же, как редкое полное переобучение. | ||
== Связь с другими дисциплинами == | == Связь с другими дисциплинами == | ||
| - | Инкрементное обучение | + | |
| + | Инкрементное обучение сформировалось на пересечении нескольких научных направлений. | ||
| + | |||
| + | * В [[математическая статистика|математической статистике]] ему соответствуют последовательное оценивание, рекурсивное обновление достаточных статистик и адаптация моделей к новым наблюдениям. | ||
| + | |||
| + | * В [[математическая оптимизация|математической оптимизации]] и теории онлайн-обучения исследуются последовательные градиентные методы, регрет и гарантии качества без предположения, что вся выборка известна заранее. | ||
| + | |||
| + | * В [[цифровая обработка сигналов|обработке сигналов]], адаптивной фильтрации и идентификации систем используются рекурсивный метод наименьших квадратов, правило LMS и коэффициенты забывания. | ||
| + | |||
| + | * В [[теория управления|теории управления]] модель должна приспосабливаться к изменяющемуся объекту и одновременно сохранять устойчивость системы. | ||
| + | |||
| + | * В [[база данных|базах данных]] и распределённых вычислениях изучаются потоковые запросы, приближённые статистики и обработка потенциально неограниченных последовательностей при ограниченной памяти. | ||
| + | |||
| + | * В [[когнитивная наука|когнитивной науке]] и нейробиологии техническая проблема сохранения старых знаний сопоставляется с консолидацией памяти, интерференцией и дилеммой стабильности—пластичности. Такое сопоставление служит источником идей, но искусственные модели не следует считать прямыми моделями человеческой памяти. | ||
== См. также == | == См. также == | ||
| - | + | ||
| - | * [[ | + | * [[Машинное обучение]] |
* [[Онлайн-обучение]] | * [[Онлайн-обучение]] | ||
| + | * [[Непрерывное обучение]] | ||
| + | * [[Обучение с переносом знаний]] | ||
| + | * [[Стохастический градиентный спуск]] | ||
| + | * [[Наивный байесовский классификатор]] | ||
| + | * [[Дерево решений]] | ||
| + | * [[Ансамблевое обучение]] | ||
| + | * [[Катастрофическое забывание]] | ||
* [[Дистилляция знаний]] | * [[Дистилляция знаний]] | ||
| - | * [[ | + | * [[Потоковая обработка данных]] |
| - | * [[ | + | * [[Обнаружение аномалий]] |
| - | * [[ | + | * [[Адаптивный фильтр]] |
| + | * [[Временной ряд]] | ||
== Примечания == | == Примечания == | ||
| Строка 82: | Строка 767: | ||
== Литература == | == Литература == | ||
| + | |||
| + | * {{книга | ||
| + | |автор = Haykin S. | ||
| + | |заглавие = Adaptive Filter Theory | ||
| + | |язык = en | ||
| + | |издание = 4-е изд. | ||
| + | |место = Upper Saddle River | ||
| + | |издательство = Prentice Hall | ||
| + | |год = 2002 | ||
| + | |страниц = 936 | ||
| + | |isbn = 978-0-13-090126-2 | ||
| + | }} | ||
| + | |||
| + | * {{книга | ||
| + | |автор = Gama J. | ||
| + | |заглавие = Knowledge Discovery from Data Streams | ||
| + | |язык = en | ||
| + | |место = 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 |
| - | |издание = | + | |язык = en |
| - | |год = | + | |издание = Neurocomputing |
| - | |том = | + | |год = 2021 |
| - | |страницы = | + | |том = 459 |
| + | |страницы = 249—289 | ||
| + | |doi = 10.1016/j.neucom.2021.04.112 | ||
}} | }} | ||
| + | |||
* {{статья | * {{статья | ||
| - | |автор = | + | |автор = Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. |
| - | |заглавие = | + | |заглавие = A Survey on Concept Drift Adaptation |
| - | |издание = | + | |язык = en |
| - | |год = | + | |издание = ACM Computing Surveys |
| - | |том = | + | |год = 2014 |
| - | |номер = | + | |том = 46 |
| - | |страницы = | + | |номер = 4 |
| + | |страницы = 44:1—44:37 | ||
| + | |doi = 10.1145/2523813 | ||
| + | |issn = 0360-0300 | ||
}} | }} | ||
| + | |||
* {{статья | * {{статья | ||
| - | |автор = | + | |автор = Bottou L., Curtis F. E., Nocedal J. |
| - | |заглавие = | + | |заглавие = Optimization Methods for Large-Scale Machine Learning |
| - | |издание = | + | |язык = en |
| - | |год = | + | |издание = SIAM Review |
| - | |страницы = | + | |год = 2018 |
| + | |том = 60 | ||
| + | |номер = 2 | ||
| + | |страницы = 223—311 | ||
| + | |doi = 10.1137/16M1080173 | ||
| + | |issn = 0036-1445 | ||
}} | }} | ||
| + | |||
* {{статья | * {{статья | ||
| - | |автор = | + | |автор = Domingos P., Hulten G. |
| - | |заглавие = | + | |заглавие = Mining High-Speed Data Streams |
| - | |издание = Proceedings of the | + | |язык = en |
| - | |год = | + | |издание = Proceedings of the Sixth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining |
| - | |страницы = | + | |год = 2000 |
| + | |страницы = 71—80 | ||
| + | |doi = 10.1145/347090.347107 | ||
}} | }} | ||
| + | |||
* {{статья | * {{статья | ||
| - | |автор = | + | |автор = Oza N. C., Russell S. J. |
| - | |заглавие = | + | |заглавие = Online Bagging and Boosting |
| - | |издание = Proceedings of the | + | |язык = en |
| - | |год = | + | |издание = Proceedings of the Eighth International Workshop on Artificial Intelligence and Statistics |
| - | |страницы = | + | |год = 2001 |
| + | |том = R3 | ||
| + | |страницы = 229—236 | ||
}} | }} | ||
| + | |||
* {{статья | * {{статья | ||
| - | |автор = Aljundi R., | + | |автор = 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 |
| - | |издание = | + | |язык = en |
| - | |год = | + | |издание = IEEE Transactions on Pattern Analysis and Machine Intelligence |
| - | |страницы = | + | |год = 2022 |
| + | |том = 44 | ||
| + | |номер = 7 | ||
| + | |страницы = 3366—3385 | ||
| + | |doi = 10.1109/TPAMI.2021.3057446 | ||
| + | |issn = 0162-8828 | ||
}} | }} | ||
| + | |||
* {{статья | * {{статья | ||
| - | |автор = | + | |автор = Wang L., Zhang X., Su H., Zhu J. |
| - | |заглавие = A | + | |заглавие = A Comprehensive Survey of Continual Learning: Theory, Method and Application |
| - | |издание = IEEE Transactions on Pattern Analysis and Machine Intelligence | + | |язык = en |
| - | |год = | + | |издание = IEEE Transactions on Pattern Analysis and Machine Intelligence |
| - | |том = | + | |год = 2024 |
| - | |номер = | + | |том = 46 |
| - | |страницы = | + | |номер = 8 |
| + | |страницы = 5362—5383 | ||
| + | |doi = 10.1109/TPAMI.2024.3367329 | ||
| + | |issn = 0162-8828 | ||
}} | }} | ||
| + | |||
* {{статья | * {{статья | ||
| - | |автор = | + | |автор = Lopez-Paz D., Ranzato M. |
| - | |заглавие = | + | |заглавие = Gradient Episodic Memory for Continual Learning |
| - | |издание = | + | |язык = en |
| - | |год = | + | |издание = 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 |
| - | |издание = | + | |язык = en |
| - | |год = 2018 | + | |издание = arXiv |
| + | |год = 2018 | ||
| + | |arxiv = 1810.13166 | ||
| + | |doi = 10.48550/arXiv.1810.13166 | ||
}} | }} | ||
| + | |||
| + | * {{статья | ||
| + | |автор = 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 | ||
| + | |язык = en | ||
| + | |издание = Information Fusion | ||
| + | |год = 2020 | ||
| + | |том = 58 | ||
| + | |страницы = 52—68 | ||
| + | |doi = 10.1016/j.inffus.2019.12.004 | ||
| + | |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 | ||
| + | |язык = en | ||
| + | |издание = 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 | ||
| + | |язык = en | ||
| + | |издание = 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 | + | |заглавие = Continual Learning of Large Language Models: A Comprehensive Survey |
| - | |издание = | + | |язык = en |
| - | |год = | + | |издание = ACM Computing Surveys |
| - | |том = 58 | + | |год = 2025 |
| - | | | + | |том = 58 |
| + | |номер = 5 | ||
| + | |doi = 10.1145/3735633 | ||
| + | |issn = 0360-0300 | ||
}} | }} | ||
Версия 23:20, 25 июля 2026
|
Инкрементное обучение (англ. incremental learning) — подход к машинному обучению, при котором уже обученная модель последовательно обновляется по мере поступления новых данных без полного переобучения на всей ранее накопленной выборке. Такое обновление может выполняться после каждого наблюдения или после получения небольшой группы наблюдений.
Инкрементом (англ. increment) называют очередную порцию новой информации, используемую для обновления модели. Инкрементом может быть один размеченный объект, мини-пакет наблюдений, набор новых классов, новые признаки или отдельная задача. Например, для рекомендательной системы инкрементом могут служить новые просмотры и покупки, зарегистрированные после предыдущего обновления модели.
Инкрементное обучение применяется, когда данные поступают постепенно, быстро устаревают, имеют слишком большой объём для многократной обработки или не могут длительно храниться из-за ограничений памяти и конфиденциальности. Оно используется в рекомендательных системах, фильтрации нежелательных сообщений, обнаружении мошенничества, анализе временных рядов, промышленном мониторинге, робототехнике, компьютерном зрении и обработке естественного языка.[1]
Терминология в этой области не полностью унифицирована. В части научной литературы инкрементное и онлайн-обучение рассматриваются почти как синонимы; в других работах онлайн-обучением называют обработку объектов непосредственно в потоке, а инкрементным — любое обновление модели без переобучения с нуля, в том числе по небольшим пакетам данных. Непрерывное обучение (англ. continual learning) обычно выделяют как направление, изучающее накопление знаний при последовательном появлении новых данных, классов или задач, особенно в нейронных сетях.[1]
История
Идея изменять модель после поступления каждого нового наблюдения появилась раньше современной терминологии инкрементного обучения. Одним из ранних примеров был перцептрон Фрэнка Розенблатта, предложенный в 1950-х годах. Его веса корректировались последовательно после предъявления обучающих примеров, если модель допускала ошибку классификации.[1]
В статистике и численной оптимизации важную роль сыграл метод стохастической аппроксимации Роббинса — Монро, опубликованный в 1951 году. Он описывал последовательное оценивание неизвестного параметра по шумным наблюдениям и стал одной из теоретических основ стохастических методов оптимизации.[1]
В 1960 году Бернард Уидроу и Марсиан Хофф представили адаптивную линейную систему ADALINE и правило наименьшего среднего квадрата (англ. least mean squares, LMS). В отличие от пакетного решения задачи наименьших квадратов, правило LMS последовательно изменяло веса по текущей ошибке. Сходные рекуррентные идеи развивались в адаптивной фильтрации, оценивании параметров и управлении, включая рекурсивный метод наименьших квадратов.[1][1]
Во второй половине XX века последовательные обновления стали использоваться в линейных классификаторах, вероятностных моделях, адаптивных фильтрах и нейронных сетях. Развитие стохастического градиентного спуска позволило обучать модели по отдельным объектам и мини-пакетам, что впоследствии стало особенно важным для крупномасштабного машинного обучения.[1]
В 1990-х и 2000-х годах сформировалось направление интеллектуального анализа потоков данных (англ. data stream mining). Его задачей стала обработка потенциально неограниченных последовательностей наблюдений при ограниченной памяти и небольшом числе проходов по данным.[1] К этому периоду относятся дерево Хёффдинга для высокоскоростных потоков данных и онлайн-варианты ансамблевых методов.[1][1]
С распространением глубоких нейронных сетей в 2010-х годах усилился интерес к ситуации, в которой модель последовательно осваивает новые классы и задачи, но теряет качество на ранее изученных данных. Исследования этого явления, называемого катастрофическим забыванием, стали центральной частью непрерывного обучения. Современные обзоры рассматривают непрерывное обучение как сочетание трёх требований: усвоения новой информации, сохранения старых знаний и рационального использования памяти и вычислительных ресурсов.[1]
Отличие от смежных парадигм
Границы между инкрементным, онлайновым и непрерывным обучением зависят от принятой терминологии. На практике различия обычно описывают следующим образом.
- Пакетное обучение (англ. batch learning) предполагает, что обучающий набор доступен целиком. При добавлении значительного объёма новых данных модель обычно обучают повторно на объединённой выборке. Пакетный режим не исключает использование мини-пакетов внутри оптимизатора: существенным является то, что набор данных в целом фиксирован и доступен для многократных проходов.
- Инкрементное обучение обновляет существующую модель по очередным порциям данных. Инкременты могут состоять из отдельных объектов или пакетов; в некоторых задачах в них появляются новые признаки, классы либо подзадачи. Полная история может храниться, храниться частично или быть недоступной.
- Онлайн-обучение (англ. online learning) обычно предполагает последовательный цикл: модель получает объект, делает предсказание, узнаёт правильный ответ или величину потери и немедленно обновляется. Для онлайн-алгоритмов часто исследуют не только итоговую точность, но и накопленную потерю или регрет (англ. regret). Онлайн-обучение, как правило, является инкрементным, однако инкрементное обновление не обязательно выполняется после каждого отдельного объекта.[1]
- Непрерывное обучение (англ. continual learning) сосредоточено на длительном накоплении знаний в изменяющейся среде. В этой постановке могут последовательно появляться новые данные, классы, предметные области или задачи. Особое внимание уделяется компромиссу между пластичностью модели и сохранением уже освоенных знаний.[1][1]
- Обучение в течение всей жизни (англ. lifelong learning) — более широкая концепция интеллектуальной системы, способной накапливать, переносить и повторно использовать знания на протяжении длительного времени. В литературе этот термин нередко используется как близкий к continual learning, но может дополнительно подразумевать перенос между задачами, самостоятельный выбор целей и долговременное управление знаниями.
- Дообучение (англ. fine-tuning) изменяет параметры предобученной модели на новых данных. Оно является инкрементным только в широком смысле: стандартное дообучение не требует сохранения качества на исходных задачах и не содержит специальных механизмов защиты ранее усвоенной информации.
Инкрементное обучение поэтому нельзя сводить только к непрерывному обучению нейронных сетей. К нему относятся как классические рекуррентные статистические процедуры, так и алгоритмы для потоковых данных и современные методы предотвращения забывания.
Основы
Формальная постановка задачи
Пусть данные поступают последовательно в виде инкрементов
где
— данные, доступные на этапе . Один инкремент может содержать единственный объект (
) или небольшой пакет наблюдений. Модель
после каждого этапа получает новые параметры
где — необязательная память модели: сохранённые примеры, агрегированные статистики, параметры предыдущей модели или иное краткое представление прошлого опыта.
В идеальном случае параметры после последовательных обновлений должны обеспечивать качество, близкое к результату пакетного обучения на объединении всех данных
Для обучения с учителем соответствующая эмпирическая функция риска имеет вид
где — функция потерь. Пакетный алгоритм может непосредственно минимизировать
, многократно обращаясь ко всем данным. Инкрементный алгоритм должен приближать такое решение, используя новый инкремент и ограниченное состояние, накопленное к предыдущему этапу.
Не все инкрементные методы стремятся в точности воспроизвести пакетное решение. При изменении среды старые наблюдения могут иметь меньшую ценность, поэтому алгоритм может использовать скользящее окно, коэффициент забывания или повышенный вес новых данных. В этом случае целью становится не восстановление модели по всей истории, а адаптация к текущему распределению данных.
В классической постановке онлайн-обучения на шаге выбираются параметры
, после чего наблюдается функция потерь
. Качество алгоритма может оцениваться через регрет
Первое слагаемое — накопленная потеря онлайн-алгоритма, второе — потеря лучшей фиксированной модели, выбранной задним числом по всей последовательности. Малый регрет означает, что последовательные решения алгоритма по качеству приближаются к такому эталону.[1]
Типы инкрементов
Инкрементное обновление может относиться не только к добавлению новых объектов. В зависимости от того, какая часть задачи изменяется, выделяют несколько сценариев.
- Инкремент данных (англ. data-incremental learning) — поступают новые наблюдения из прежнего множества признаков и классов. Примером служит обновление модели кредитного риска по новым заявкам.
- Инкремент классов (англ. class-incremental learning) — появляются ранее неизвестные классы, а модель после обновления должна различать как новые, так и старые классы. Этот сценарий особенно распространён в исследованиях непрерывного обучения изображений.
- Инкремент задач (англ. task-incremental learning) — модель последовательно осваивает несколько задач. Во время применения может быть известен идентификатор задачи; если он неизвестен, постановка становится сложнее, поскольку модель должна также определить, какие знания использовать.
- Инкремент признаков (англ. feature-incremental learning) — изменяется пространство признаков: добавляются новые датчики, поля записи или способы представления объекта.
- Инкремент структуры модели — по мере накопления данных изменяется сама модель, например добавляются вершины дерева решений, компоненты смеси, базовые алгоритмы ансамбля или новые модули нейронной сети.
В реальных системах эти сценарии могут сочетаться. Например, в каталоге интернет-магазина одновременно появляются новые товары, новые категории и новые типы пользовательских сигналов.
Потоковые данные
Поток данных (англ. data stream) — упорядоченная последовательность наблюдений, которая поступает во времени и потенциально не имеет заранее известного конца. Интеллектуальный анализ потоков данных (англ. data stream mining) изучает методы извлечения моделей и закономерностей из таких последовательностей.[1][1]
Для потоковой постановки характерны следующие ограничения:
- данные могут поступать быстрее, чем система способна сохранять и повторно обрабатывать их целиком;
- порядок наблюдений имеет значение и обычно не может быть произвольно перемешан;
- алгоритм должен выполнять один или небольшое число проходов по данным;
- время обработки одного объекта и объём рабочей памяти должны оставаться ограниченными;
- распределение данных может изменяться во времени;
- истинные ответы могут поступать с задержкой или отсутствовать.
Инкрементное обучение и анализ потоков данных тесно связаны, но не тождественны. Инкрементный алгоритм может обучаться на конечной последовательности пакетов, не являющейся потоком в строгом смысле. В свою очередь, потоковый анализ включает не только обучение предсказательных моделей, но и кластеризацию, поиск частых элементов, оценивание статистик, обнаружение аномалий и выявление изменений.
Для оценки потоковых моделей часто используют последовательную проверку «предсказать, затем обучиться» (англ. test-then-train или prequential evaluation). На каждом объекте сначала измеряют качество текущей модели и только после этого используют объект для обновления. Такая схема воспроизводит реальную работу системы, которая не должна обучаться на ответе до выполнения предсказания.
Если статистическая связь между входами и целевой переменной меняется во времени, говорят об изменении концепции (англ. concept drift). В потоковых алгоритмах для адаптации могут применяться скользящие окна, взвешивание наблюдений по давности, детекторы изменений и замена отдельных компонентов модели. Подробно эта проблема рассматривается в разделе о вызовах инкрементного обучения.
Методы инкрементного обучения
Инкрементность является свойством процедуры обновления, а не отдельным типом модели. Последовательно обучаться могут линейные модели, вероятностные классификаторы, деревья решений, ансамбли и нейронные сети. Одни методы дают точное рекуррентное обновление, эквивалентное пакетному вычислению, другие выполняют приближённый шаг оптимизации или специально адаптируются к изменениям данных.
Классические методы
Стохастический градиентный спуск
Стохастический градиентный спуск (англ. stochastic gradient descent, SGD) обновляет параметры по градиенту потери на одном объекте или мини-пакете:
где — размер шага. Метод не требует вычислять градиент по всей выборке и поэтому естественно применяется к поступающим данным. Качество и устойчивость обновлений зависят от выбора шага, масштабирования признаков, порядка объектов и свойств функции потерь.[1]
SGD лежит в основе инкрементного обучения логистической регрессии, линейных методов опорных векторов, перцептрона и нейронных сетей. Однако обычный SGD сам по себе не гарантирует сохранения качества при смене задач или распределений: новые градиенты могут вытеснять ранее усвоенную информацию.
Рекурсивный метод наименьших квадратов
Рекурсивный метод наименьших квадратов (англ. recursive least squares, RLS) предназначен для последовательного оценивания параметров линейной модели
Вместо повторного решения задачи на всей выборке метод обновляет оценку параметров и матрицу, связанную с обратной матрицей вторых моментов признаков. В простейшем варианте без коэффициента забывания обновление можно записать как
При согласованной инициализации такое рекуррентное вычисление соответствует решению обычного метода наименьших квадратов по всем накопленным наблюдениям. В адаптивных системах часто вводят коэффициент забывания, уменьшающий влияние старых данных и позволяющий отслеживать меняющиеся параметры.[1]
Онлайновый наивный байесовский классификатор
Наивный байесовский классификатор удобен для инкрементного обучения, поскольку его параметры обычно выражаются через небольшое число достаточных статистик: количества объектов по классам, суммы значений признаков и суммы их квадратов. После получения нового объекта пересчитываются только статистики соответствующего класса.
Например, число объектов класса и среднее значение признака
можно обновлять по формулам
где — индикатор события. Для дискретных признаков аналогично обновляются частоты значений, а для гауссовской модели — средние и дисперсии. Если данные не забываются и используются одинаковые априорные предположения, результат такого обновления совпадает с вычислением тех же статистик по всей накопленной выборке.[1]
Дерево Хёффдинга
Обычное дерево решений выбирает разбиения, анализируя обучающую выборку. Для потока данных хранение всех объектов невозможно, поэтому дерево Хёффдинга (англ. Hoeffding Tree, также Very Fast Decision Tree) накапливает в вершинах статистики, достаточные для сравнения кандидатов на разбиение.[1]
Решение о разбиении принимается с использованием границы Хёффдинга
где — число объектов, прошедших через вершину,
— диапазон значений критерия качества, а
— допустимая вероятность ошибочного выбора. Если преимущество лучшего разбиения над вторым превышает
, накопленной информации считается достаточно для изменения структуры дерева. Алгоритм не хранит сами объекты и способен постепенно расширять дерево по мере поступления потока.
Онлайн-бэггинг и онлайн-бустинг
Бэггинг в пакетном режиме обучает базовые модели на бутстреп-выборках. В онлайн-бэггинге число повторений текущего объекта для каждого базового алгоритма выбирается из распределения Пуассона с параметром 1:
после чего -я модель обновляется на объекте
раз. Такое правило приближает распределение числа появлений объекта в обычной бутстреп-выборке при большом размере набора данных.[1]
Онлайн-бустинг последовательно изменяет веса объектов и базовых моделей, приближая идею пакетного бустинга без хранения всей выборки. На практике онлайн-варианты бустинга чувствительнее к шуму и смене распределения, поэтому в потоковых системах часто применяются модифицированные ансамбли с ограниченным размером, окнами данных и детекторами изменений.
Современные методы непрерывного обучения
Классические инкрементные методы прежде всего обеспечивают экономное обновление модели. В непрерывном обучении нейронных сетей дополнительно требуется сохранять качество на старых данных, классах и задачах. Современные классификации обычно выделяют методы воспроизведения опыта, регуляризационные методы и изоляцию параметров; многие алгоритмы сочетают несколько групп.[1][1]
Методы воспроизведения опыта
Методы воспроизведения (англ. replay-based methods) повторно предъявляют модели информацию о предыдущих этапах одновременно с новыми данными. В простейшем случае сохраняется ограниченный буфер реальных примеров, и функция потерь имеет вид
где второе слагаемое вычисляется на объектах из памяти.
К этой группе относится iCaRL, совмещающий хранение небольшого набора представителей старых классов, дистилляцию знаний и классификацию по прототипам.[1] При генеративном воспроизведении (англ. generative replay) реальные старые объекты заменяются синтетическими примерами или скрытыми представлениями, создаваемыми генеративной моделью. Воспроизведение обычно эффективно снижает забывание, но требует памяти, дополнительного обучения или возможности хранить данные, что не всегда допустимо.
Регуляризационные методы
Регуляризационные методы (англ. regularization-based methods) ограничивают изменения параметров или выходов модели, важных для прежних задач. Общая форма параметрического штрафа имеет вид
где оценивает важность параметра
для ранее освоенных данных.
Метод Elastic Weight Consolidation оценивает важность параметров с помощью диагонального приближения информации Фишера и сильнее ограничивает изменение наиболее значимых весов.[1] Другие методы оценивают важность параметров по траектории оптимизации или сохраняют старое поведение модели через дистилляцию выходов. Например, Learning without Forgetting использует ответы предыдущей версии сети на новых данных как дополнительные мягкие цели.[1]
Регуляризация не требует хранения большого набора старых объектов, однако её эффективность снижается, если новые и старые задачи сильно различаются или ёмкости одной и той же модели недостаточно для всех задач.
Методы изоляции параметров
Методы изоляции параметров (англ. parameter isolation methods) уменьшают интерференцию, выделяя разным задачам отдельные части модели. Параметры прежних задач могут фиксироваться, маскироваться или исключаться из дальнейших обновлений, а для новых задач создаются свободные параметры или дополнительные модули.
В прогрессивных нейронных сетях (англ. progressive neural networks) для новой задачи добавляется новый столбец слоёв, связанный с зафиксированными предыдущими столбцами. Это предотвращает перезапись старых параметров и позволяет использовать ранее изученные признаки, но приводит к росту размера модели.[1]
Другие подходы используют разреживание весов, обучаемые маски, маршрутизацию между модулями или адаптеры. Они хорошо сохраняют старые навыки, но требуют определить границы задач или механизм выбора нужного поднабора параметров, а доступная ёмкость модели со временем может исчерпываться.
Проблемы и вызовы
Катастрофическое забывание
Катастрофическое забывание (англ. catastrophic forgetting, первоначально также catastrophic interference) — резкое ухудшение качества модели на ранее изученных данных или задачах после обучения на новой информации. Явление особенно характерно для нейронных сетей с распределённым представлением знаний: одни и те же параметры участвуют в обработке разных примеров, поэтому обновления, полезные для нового инкремента, могут нарушать функции, сформированные на предыдущих этапах.[1]
Забывание не следует отождествлять с обычным переобучением или случайными колебаниями качества. Оно возникает именно вследствие последовательного обновления: модель хорошо решает старую задачу до обучения на новом инкременте, но после него теряет часть прежней компетенции. Степень забывания зависит от сходства задач, порядка их предъявления, ёмкости модели, алгоритма оптимизации и доступности старых данных.[1][1]
Проблема связана с дилеммой стабильности—пластичности (англ. stability–plasticity dilemma). Слишком пластичная модель быстро приспосабливается к новым данным, но легко забывает старые; чрезмерно стабильная сохраняет прежние знания, однако плохо осваивает новую информацию. Поэтому цель инкрементного обучения состоит не в полном запрещении изменения параметров, а в достижении приемлемого баланса между сохранением и обновлением знаний.
Катастрофическое забывание оценивают по изменению качества на предыдущих задачах после обучения на последующих. Если обозначает качество на задаче
после обучения до этапа
, то забывание для задачи
к моменту
можно определить как
Большое положительное значение означает, что ранее достигнутый результат существенно ухудшился. Нулевое или отрицательное значение соответствует отсутствию забывания либо улучшению старой задачи благодаря последующему обучению.[1]
Предотвращение забывания не является единственной целью. Модель также должна усваивать новые данные, переносить знания между задачами, сохранять вычислительную эффективность и работать при ограниченной памяти. Метод, полностью фиксирующий старую модель, может почти не забывать прежние задачи, но при этом оказаться неспособным обучаться новым.
Изменение распределения данных
Во многих приложениях предполагаемое в классическом машинном обучении постоянство распределения данных не выполняется. Пусть на этапе наблюдения порождаются распределением
. Если для двух моментов времени
то данные являются нестационарными. Изменение статистической связи, определяющей предсказываемую величину, называют изменением концепции, или дрейфом концепции (англ. concept drift).[1]
В литературе различают несколько связанных случаев:
- изменение распределения входных признаков
при неизменной зависимости
;
- изменение частот классов
;
- изменение условной зависимости
, при котором прежнее правило предсказания перестаёт соответствовать данным.
Дрейф может быть резким, когда режим меняется за короткое время; постепенным, когда старый и новый режимы некоторое время сосуществуют; инкрементным, когда распределение медленно смещается; или повторяющимся, когда ранее встречавшиеся состояния возвращаются. Например, в рекомендательной системе предпочтения пользователей могут меняться постепенно, а сезонные модели спроса — повторяться.
Для обнаружения изменений применяются несколько групп методов. Методы, основанные на ошибке, отслеживают ухудшение качества модели при поступлении размеченных данных. Методы, основанные на распределении, сравнивают статистики признаков или предсказаний в разных временных окнах. Ансамблевые методы поддерживают несколько моделей и заменяют либо перенастраивают те из них, которые перестают соответствовать текущему потоку.
Адаптация к дрейфу может выполняться с помощью скользящего окна, уменьшения веса старых наблюдений, сброса части модели, изменения структуры дерева или обновления состава ансамбля. Выбор механизма зависит от того, насколько быстро меняются данные и доступны ли истинные ответы. При задержке меток обнаружение изменений по ошибке становится невозможным до получения обратной связи.
Ограничения ресурсов и данных
Инкрементное обучение обычно применяется именно при ограниченных ресурсах, поэтому качество модели нельзя рассматривать отдельно от стоимости обновления. Важны объём оперативной и долговременной памяти, время обработки одного инкремента, пропускная способность, размер модели и возможность выполнять предсказание во время обучения.
Хранение старых примеров может уменьшить забывание, но создаёт дополнительные требования к памяти и конфиденциальности. Агрегированные статистики занимают меньше места, однако могут оказаться недостаточными для сложной модели. Расширяемые архитектуры сохраняют старые параметры, но постепенно увеличивают размер сети. Таким образом, разные методы переносят затраты между памятью, вычислениями и качеством.
Практическими трудностями также являются дисбаланс классов, шумные или ошибочные метки, появление новых признаков, неполные наблюдения и задержка обратной связи. При потоковой оценке особенно важно исключать утечку данных: объект должен использоваться для проверки модели до того, как он будет включён в очередное обновление.
Практические аспекты
Метрики оценки
Обычная точность на одной фиксированной тестовой выборке не полностью характеризует инкрементное обучение. Оценивание должно учитывать качество во времени, сохранение старых знаний, перенос между задачами и стоимость обновления.[1]
В потоковом обучении часто используется последовательная оценка «предсказать, затем обучиться» (англ. test-then-train, или prequential evaluation). Для каждого объекта сначала вычисляется предсказание текущей модели, затем измеряется потеря и только после этого выполняется обновление. Средняя последовательная потеря к моменту равна
Поскольку среднее по всей истории может скрывать недавнее ухудшение, дополнительно используют скользящие средние, затухающие веса и графики метрик во времени.
Для последовательности из задач удобно использовать матрицу результатов
, где
— качество на тестовой выборке задачи
после завершения обучения на задаче
. На её основе определяются следующие показатели.
- Средняя итоговая точность (англ. average accuracy):
Она показывает среднее качество на всех изученных задачах после завершения последовательности.
- Среднее забывание (англ. average forgetting):
Показатель сравнивает итоговый результат с лучшим результатом, достигнутым на каждой старой задаче.
- Обратный перенос (англ. backward transfer, BWT):
Отрицательный BWT указывает на ухудшение старых задач, а положительный — на то, что последующее обучение улучшило прежние результаты.
- Прямой перенос (англ. forward transfer, FWT) оценивает, помогает ли опыт предыдущих задач решать новую задачу ещё до её непосредственного обучения. Если
— качество независимой начальной модели на задаче
, то один из вариантов определения имеет вид
Определения метрик могут различаться между работами, поэтому при сравнении методов необходимо указывать сценарий обучения, порядок задач, доступность идентификатора задачи, размер памяти и точную формулу показателя.[1][1]
Помимо предсказательного качества измеряют объём памяти для сохранённых примеров и параметров, время обучения, задержку обновления, скорость обработки потока и рост размера модели. Для нестационарных данных также оценивают задержку обнаружения дрейфа, число ложных срабатываний и скорость восстановления качества после изменения.
Программные библиотеки
Для экспериментов и разработки инкрементных моделей используются как универсальные библиотеки машинного обучения, так и специализированные системы потоковой аналитики.
- River — библиотека на языке Python для онлайн-машинного обучения. Она включает инкрементные алгоритмы классификации, регрессии, кластеризации, обнаружения аномалий, обработки признаков, оценки потоковых моделей и обнаружения дрейфа.[1][1]
- scikit-learn поддерживает частичное обучение методом
partial_fit()для ряда моделей, включая стохастические линейные алгоритмы, наивный байесовский классификатор, MiniBatch K-Means и некоторые методы снижения размерности. Этот интерфейс применяется для онлайн-обучения и обучения вне оперативной памяти (англ. out-of-core learning).[1]
- MOA (Massive Online Analysis) — среда на языке Java для разработки, сравнения и оценки алгоритмов на изменяющихся потоках данных. В ней реализованы генераторы потоков, деревья Хёффдинга, ансамбли, методы кластеризации и протоколы потоковой оценки.[1][1]
- Vowpal Wabbit — система для быстрого онлайн- и интерактивного обучения, поддерживающая линейные модели, активное обучение, контекстные бандиты и обучение на данных, не помещающихся в память.[1]
- SAMOA (Scalable Advanced Massive Online Analysis) была разработана как распределённая платформа для классификации, регрессии и кластеризации потоков на системах потоковой обработки.[1]
Поддержка метода частичного обновления сама по себе не гарантирует устойчивости к дрейфу или катастрофическому забыванию. Эти свойства зависят от конкретного алгоритма, протокола обучения и способа управления памятью.
Применения
Инкрементное обучение используется в системах, где данные и требования изменяются быстрее, чем возможно регулярно переобучать модель с нуля.
- В рекомендательных системах модель обновляется по новым просмотрам, оценкам и покупкам, учитывая изменение интересов пользователей и появление новых объектов.
- В обнаружении мошенничества, фильтрации спама и сетевой безопасности последовательное обучение позволяет учитывать новые схемы поведения. При этом важны устойчивость к дисбалансу классов и способность реагировать на дрейф.
- В промышленном мониторинге и Интернете вещей модели обрабатывают телеметрию оборудования и датчиков. Инкрементное обновление используется для обнаружения аномалий, прогнозирования отказов и адаптации к изменению рабочих режимов.
- В робототехнике и автономных системах среда, сенсоры и набор доступных действий могут изменяться во время эксплуатации. Непрерывное обучение рассматривается как способ осваивать новые объекты и навыки без полного отказа от ранее приобретённых возможностей.[1]
- В медицинских и биоинформатических системах инкрементное обучение может использоваться при накоплении новых наблюдений, появлении новых протоколов измерения и различиях между учреждениями. Для таких применений особенно важны контроль качества, воспроизводимость, конфиденциальность и независимая проверка после обновлений.
- В обработке естественного языка модели адаптируются к новым темам, терминам, языковым вариантам и пользовательским данным. Для больших языковых моделей исследуются непрерывное предобучение, последовательное дообучение и обновление навыков при сохранении ранее приобретённых знаний.[1]
В производственной системе обновление модели обычно сопровождается мониторингом метрик, журналированием версий, возможностью отката и проверкой на отложенных данных. Инкрементное обучение не отменяет контроль качества: частые небольшие изменения могут накапливать ошибки так же, как редкое полное переобучение.
Связь с другими дисциплинами
Инкрементное обучение сформировалось на пересечении нескольких научных направлений.
- В математической статистике ему соответствуют последовательное оценивание, рекурсивное обновление достаточных статистик и адаптация моделей к новым наблюдениям.
- В математической оптимизации и теории онлайн-обучения исследуются последовательные градиентные методы, регрет и гарантии качества без предположения, что вся выборка известна заранее.
- В обработке сигналов, адаптивной фильтрации и идентификации систем используются рекурсивный метод наименьших квадратов, правило LMS и коэффициенты забывания.
- В теории управления модель должна приспосабливаться к изменяющемуся объекту и одновременно сохранять устойчивость системы.
- В базах данных и распределённых вычислениях изучаются потоковые запросы, приближённые статистики и обработка потенциально неограниченных последовательностей при ограниченной памяти.
- В когнитивной науке и нейробиологии техническая проблема сохранения старых знаний сопоставляется с консолидацией памяти, интерференцией и дилеммой стабильности—пластичности. Такое сопоставление служит источником идей, но искусственные модели не следует считать прямыми моделями человеческой памяти.
См. также
- Машинное обучение
- Онлайн-обучение
- Непрерывное обучение
- Обучение с переносом знаний
- Стохастический градиентный спуск
- Наивный байесовский классификатор
- Дерево решений
- Ансамблевое обучение
- Катастрофическое забывание
- Дистилляция знаний
- Потоковая обработка данных
- Обнаружение аномалий
- Адаптивный фильтр
- Временной ряд
Примечания
Литература
- 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.

