Инкрементное обучение

Материал из MachineLearning.

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

Текущая версия

Содержание

Инкрементное обучение (англ. incremental learning) — подход к машинному обучению, при котором модель обновляется по мере поступления новых данных без полного переобучения на всей ранее накопленной выборке. Обновление может выполняться после каждого наблюдения или после получения небольшой группы наблюдений.

Инкрементом (англ. increment) называют очередную порцию информации, используемую для обновления модели. Им может быть один объект, мини-пакет наблюдений, новые признаки, классы или отдельная задача. Например, в рекомендательной системе инкрементом служат новые просмотры и покупки, появившиеся после предыдущего обновления.

Инкрементное обучение применяется, когда данные поступают непрерывно, быстро устаревают, имеют большой объём либо не могут долго храниться из-за ограничений памяти или конфиденциальности. Оно используется в рекомендательных системах, обнаружении мошенничества, анализе временных рядов, промышленном мониторинге, робототехнике, компьютерном зрении и обработке естественного языка.[1]

Терминология в этой области не полностью унифицирована. В части работ инкрементное и онлайн-обучение рассматриваются как близкие понятия; в других онлайн-обучением называют обработку объектов непосредственно в потоке, а инкрементным — любое обновление без переобучения с нуля, в том числе по небольшим пакетам. Непрерывное обучение (англ. continual learning) обычно связывают с длительным накоплением знаний при появлении новых данных, классов или задач, особенно в нейронных сетях.[1]

История

Последовательное обновление моделей появилось раньше современной терминологии инкрементного обучения. В 1950-х годах были предложены стохастическая аппроксимация Роббинса — Монро и перцептрон Фрэнка Розенблатта: оба подхода изменяли оценку или параметры после получения новых наблюдений.[1][1]

В 1960-х годах правило наименьшего среднего квадрата (англ. least mean squares, LMS) и рекурсивные методы оценивания получили распространение в адаптивной фильтрации, обработке сигналов и управлении. Позднее последовательные обновления стали использоваться в линейных классификаторах, вероятностных моделях и нейронных сетях.[1]

Развитие стохастического градиентного спуска сделало возможным обучение по отдельным объектам и мини-пакетам, что стало основой крупномасштабного машинного обучения.[1] В 1990-х и 2000-х годах сформировалось направление интеллектуального анализа потоков данных (англ. data stream mining), ориентированное на потенциально неограниченные последовательности наблюдений и ограниченную память.[1]

С распространением глубоких нейронных сетей основное внимание сместилось к сохранению старых знаний при освоении новых классов и задач. Так сформировалось современное направление continual learning, в котором центральной проблемой стало катастрофическое забывание.[1]

Отличие от смежных парадигм

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

  • Пакетное обучение (англ. batch learning) предполагает доступ ко всей фиксированной выборке и возможность выполнять по ней несколько проходов. При появлении новых данных модель обычно повторно обучают на объединённом наборе.
  • Инкрементное обучение обновляет существующую модель по очередным порциям данных. Полная история может храниться, храниться частично или быть недоступной.
  • Онлайн-обучение (англ. online learning) обычно строится как цикл «предсказание — получение ответа — немедленное обновление». Оно, как правило, является инкрементным, но инкрементное обучение не обязательно выполняется после каждого объекта.[1]
  • Непрерывное обучение (англ. continual learning) изучает длительное накопление знаний при последовательном появлении данных, классов или задач и уделяет особое внимание предотвращению забывания.[1][1]
  • Обучение в течение всей жизни (англ. lifelong learning) — более широкая концепция накопления, переноса и повторного использования знаний на протяжении жизненного цикла интеллектуальной системы.
  • Дообучение (англ. fine-tuning) адаптирует предобученную модель к новым данным, но само по себе не требует сохранения качества на исходных задачах.

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

Основы

Формальная постановка задачи

Пусть данные поступают в виде последовательности инкрементов


\mathcal{D}_1,\mathcal{D}_2,\ldots,\mathcal{D}_t,\ldots,

где


\mathcal{D}_t=\{(x_{t,i},y_{t,i})\}_{i=1}^{n_t}

— данные, доступные на этапе t. Один инкремент может содержать один объект или пакет наблюдений. После его обработки параметры модели обновляются:


\theta_t=
\operatorname{Update}
\left(\theta_{t-1},\mathcal{D}_t,\mathcal{M}_{t-1}\right),

где \mathcal{M}_{t-1} — необязательная память о прошлом: сохранённые примеры, агрегированные статистики или параметры предыдущей модели.

Если распределение данных остаётся постоянным, желателен результат, близкий к пакетному обучению на объединении всех наблюдений. Для обучения с учителем эмпирический риск можно записать как


R_t(\theta)=
\frac{1}{N_t}
\sum_{s=1}^{t}
\sum_{i=1}^{n_s}
L\left(f(x_{s,i};\theta),y_{s,i}\right).

Здесь


N_t=\sum_{s=1}^{t}n_s.

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

Типы инкрементов

В зависимости от изменяющейся части задачи выделяют несколько сценариев.

  • Инкремент данных (англ. data-incremental learning) — поступают новые наблюдения из прежнего пространства признаков и классов.
  • Инкремент классов (англ. class-incremental learning) — появляются ранее неизвестные классы, которые требуется различать вместе со старыми.
  • Инкремент задач (англ. task-incremental learning) — модель последовательно осваивает несколько задач.
  • Инкремент признаков (англ. feature-incremental learning) — добавляются новые признаки или способы представления объектов.

В реальных системах эти сценарии могут сочетаться: например, одновременно появляются новые товары, категории и пользовательские сигналы.

Потоковые данные

Поток данных (англ. data stream) — упорядоченная последовательность наблюдений, поступающая во времени и потенциально не имеющая заранее известного конца. Интеллектуальный анализ потоков данных изучает методы извлечения моделей и закономерностей из таких последовательностей.[1][1]

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

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

Для оценки модели часто используют схему «предсказать, затем обучиться» (англ. test-then-train, или prequential evaluation): объект сначала служит для проверки текущей модели и только затем — для её обновления.

Методы инкрементного обучения

Инкрементность является свойством процедуры обновления, а не отдельным типом модели. Последовательно обучаться могут линейные модели, вероятностные классификаторы, деревья решений, ансамбли и нейронные сети.

Классические методы

Стохастический градиентный спуск

Стохастический градиентный спуск (англ. stochastic gradient descent, SGD) вместо градиента по всей выборке использует случайно выбранный объект или мини-пакет. Благодаря этому параметры можно обновлять после поступления каждой новой порции данных:


\theta_t =
\theta_{t-1}
-
\eta_t
\nabla_{\theta}
L\left(f(x_t;\theta_{t-1}),y_t\right).

SGD применяется для инкрементного обучения линейных моделей и нейронных сетей, однако сам по себе не защищает их от забывания при смене задач или распределений.[1]

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

Рекурсивный метод наименьших квадратов (англ. recursive least squares, RLS) обновляет параметры линейной регрессии и необходимые матричные статистики после каждого нового наблюдения. Без забывания такое обновление может быть эквивалентно пакетному решению, а коэффициент забывания позволяет сильнее учитывать свежие данные.[1]

Онлайновый наивный байесовский классификатор

Наивный байесовский классификатор обновляется через накопленные количества, средние, дисперсии или частоты признаков по классам. Поэтому для нового объекта достаточно изменить соответствующие статистики, не возвращаясь ко всей выборке.

Дерево Хёффдинга

Дерево Хёффдинга (англ. Hoeffding Tree) — потоковый вариант дерева решений. Оно накапливает статистики в вершинах и выполняет разбиение, когда наблюдений достаточно, чтобы с заданной вероятностью выбрать лучший признак. Хранить сами обработанные объекты не требуется.[1]

Онлайн-бэггинг и онлайн-бустинг

Онлайн-бэггинг имитирует бутстреп-выборки, случайным образом определяя, сколько раз новый объект будет использован каждым базовым алгоритмом. Онлайн-бустинг последовательно меняет веса объектов и моделей, приближая пакетный бустинг без хранения полной выборки.[1]

Современные методы непрерывного обучения

В непрерывном обучении нейронных сетей требуется не только экономно обновлять модель, но и сохранять качество на прежних данных и задачах. Большинство методов относят к трём группам; многие алгоритмы сочетают их.[1][1]

Методы воспроизведения опыта

Методы воспроизведения (англ. replay-based methods) обучают модель одновременно на новых данных и информации о прошлых этапах. Это может быть небольшой буфер реальных примеров, их скрытые представления или синтетические данные. Например, iCaRL хранит представителей старых классов и использует дистилляцию знаний.[1]

Регуляризационные методы

Регуляризационные методы (англ. regularization-based methods) ограничивают изменение параметров или выходов, важных для прежних задач. К ним относятся Elastic Weight Consolidation, оценивающий важность весов через информацию Фишера, и Learning without Forgetting, сохраняющий прежнее поведение с помощью дистилляции.[1][1]

Методы изоляции параметров

Методы изоляции параметров (англ. parameter isolation methods) выделяют разным задачам отдельные веса, маски или модули. Это уменьшает интерференцию, но может требовать знания границ задач и приводить к росту модели. Прогрессивные нейронные сети, например, добавляют новый блок параметров для каждой задачи и фиксируют ранее обученные блоки.[1]

Проблемы и вызовы

Катастрофическое забывание

Катастрофическое забывание (англ. catastrophic forgetting, первоначально catastrophic interference) — резкое ухудшение качества на ранее изученных данных или задачах после обучения на новой информации. В нейронных сетях одни и те же параметры участвуют в обработке разных примеров, поэтому полезные для нового инкремента обновления могут нарушать ранее сформированные функции.[1]

Проблема выражает дилемму стабильности—пластичности (англ. stability–plasticity dilemma): слишком пластичная модель быстро осваивает новое, но забывает старое; слишком стабильная сохраняет знания, но плохо адаптируется. Поэтому метод должен одновременно поддерживать обучение, сохранение знаний и приемлемые затраты памяти и вычислений.

Изменение распределения данных

Если распределение наблюдений меняется во времени, данные называют нестационарными. Изменение зависимости, определяющей предсказываемую величину, называется дрейфом концепции (англ. concept drift).[1]

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

Ограничения ресурсов и данных

Инкрементные методы оценивают не только по качеству, но и по объёму памяти, времени одного обновления, пропускной способности и росту размера модели. Хранение старых примеров уменьшает забывание, но увеличивает затраты и может быть недопустимо из-за конфиденциальности; агрегированные статистики компактнее, но не всегда достаточны.

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

Практические аспекты

Метрики оценки

Инкрементную модель оценивают во времени: учитывают текущее качество, сохранение старых знаний, перенос между задачами и стоимость обновления.[1]

В потоковой схеме «предсказать, затем обучиться» средняя последовательная потеря равна


Q_T=
\frac{1}{T}
\sum_{t=1}^{T}
L\left(f(x_t;\theta_{t-1}),y_t\right).

Для последовательности задач используют матрицу A=(a_{i,j}), где a_{i,j} — качество на задаче j после обучения до этапа i. Средняя итоговая точность определяется как


\operatorname{ACC}_T=
\frac{1}{T}
\sum_{j=1}^{T}a_{T,j}.

Забывание для задачи j можно измерять разностью между её лучшим предыдущим и итоговым результатом:


F_{T,j}=
\max_{i\in\{j,\ldots,T-1\}}a_{i,j}
-
a_{T,j}.

Дополнительно оценивают прямой и обратный перенос знаний, объём памяти, время обновления, скорость потока, рост модели, задержку обнаружения дрейфа и скорость восстановления после изменения.[1]

Программные библиотеки

  • River — библиотека Python для потоковой классификации, регрессии, кластеризации, обнаружения аномалий и дрейфа.[1][1]
  • scikit-learn предоставляет метод partial_fit() для части линейных, байесовских и мини-пакетных алгоритмов.[1]
  • MOA — среда Java для разработки и сравнения алгоритмов обучения на изменяющихся потоках.[1]
  • Vowpal Wabbit поддерживает быстрое онлайн-обучение, активное обучение и контекстные бандиты.[1]
  • SAMOA предназначена для распределённого анализа потоков данных.[1]

Наличие интерфейса частичного обновления не гарантирует устойчивости к дрейфу или забыванию: эти свойства зависят от конкретного алгоритма и протокола обучения.

Применения

  • В рекомендательных системах модель обновляется по новым просмотрам, оценкам и покупкам.
  • В обнаружении мошенничества, спама и сетевых атак последовательное обучение позволяет учитывать новые схемы поведения.
  • В промышленном мониторинге и Интернете вещей оно используется для обнаружения аномалий и прогнозирования отказов.
  • В робототехнике и автономных системах модель осваивает новые объекты, условия и навыки во время эксплуатации.[1]
  • В медицинских системах модели обновляются при накоплении наблюдений и изменении протоколов измерения; здесь особенно важны проверка качества и конфиденциальность.
  • В обработке естественного языка модели адаптируются к новым темам, терминам и пользовательским данным. Для больших языковых моделей исследуются непрерывное предобучение и последовательное дообучение.[1]

В производственных системах инкрементное обновление сопровождают мониторингом метрик, версионированием, проверкой на отложенных данных и возможностью отката модели.

Связь с другими дисциплинами

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

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

См. также

Примечания

Литература

  • Haykin S. Adaptive Filter Theory. — 4-е изд.. — Upper Saddle River: Prentice Hall, 2002. — 936 с. — ISBN 978-0-13-090126-2
  • Gama J. Knowledge Discovery from Data Streams. — Boca Raton: Chapman & Hall/CRC, 2010. — 255 с. — ISBN 978-1-4398-2611-9
  • Hoi S. C. H., Sahoo D., Lu J., Zhao P. Online Learning: A Comprehensive Survey // Neurocomputing. — 2021. — Т. 459. — С. 249—289.
  • Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. A Survey on Concept Drift Adaptation // ACM Computing Surveys. — 2014. — Т. 46. — № 4. — С. 44:1—44:37. — ISSN 0360-0300.
  • Bottou L., Curtis F. E., Nocedal J. Optimization Methods for Large-Scale Machine Learning // SIAM Review. — 2018. — Т. 60. — № 2. — С. 223—311. — ISSN 0036-1445.
  • Domingos P., Hulten G. Mining High-Speed Data Streams // Proceedings of the Sixth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. — 2000. — С. 71—80.
  • Oza N. C., Russell S. J. Online Bagging and Boosting // Proceedings of the Eighth International Workshop on Artificial Intelligence and Statistics. — 2001. — Т. R3. — С. 229—236.
  • De Lange M., Aljundi R., Masana M., Parisot S., Jia X., Leonardis A., Slabaugh G., Tuytelaars T. A Continual Learning Survey: Defying Forgetting in Classification Tasks // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 2022. — Т. 44. — № 7. — С. 3366—3385. — ISSN 0162-8828.
  • Wang L., Zhang X., Su H., Zhu J. A Comprehensive Survey of Continual Learning: Theory, Method and Application // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 2024. — Т. 46. — № 8. — С. 5362—5383. — ISSN 0162-8828.
  • Lopez-Paz D., Ranzato M. Gradient Episodic Memory for Continual Learning // Advances in Neural Information Processing Systems. — 2017. — Т. 30. — С. 6467—6476.
  • Díaz-Rodríguez N., Lomonaco V., Filliat D., Maltoni D. Don't Forget, There Is More than Forgetting: New Metrics for Continual Learning // arXiv. — 2018.
  • Lesort T., Lomonaco V., Stoian A., Maltoni D., Filliat D., Díaz-Rodríguez N. Continual Learning for Robotics: Definition, Framework, Learning Strategies, Opportunities and Challenges // Information Fusion. — 2020. — Т. 58. — С. 52—68. — ISSN 1566-2535.
  • Montiel J., Halford M., Mastelini S. M., Bolmier G., Sourty R., Vaysse R., Zouitine A., Gomes H. M., Read J., Abdessalem T., Bifet A. River: Machine Learning for Streaming Data in Python // Journal of Machine Learning Research. — 2021. — Т. 22. — № 110. — С. 1—8. — ISSN 1532-4435.
  • Bifet A., Holmes G., Kirkby R., Pfahringer B. MOA: Massive Online Analysis // Journal of Machine Learning Research. — 2010. — Т. 11. — С. 1601—1604. — ISSN 1532-4435.
  • Shi H., Xu Z., Wang H., Qin W., Wang W., Wang Y., Wang Z., Ebrahimi S., Wang H. Continual Learning of Large Language Models: A Comprehensive Survey // ACM Computing Surveys. — 2025. — Т. 58. — № 5. — ISSN 0360-0300.
Личные инструменты