Специалисты из компании DeepMind и Имперского колледжа Лондона создали алгоритм для обучения глубоких нейросетей, позволяющий им последовательно обучаться новым задачам, сохраняя «память» о предыдущих. Такой подход еще на шаг приблизил искусственные нейронные сети к биологическим, в которых последовательное обучение вместо «замены» старых знаний на новые является одной из ключевых особенностей. Новое исследование опубликовано в Proceedings of National Academy of Sciences, коротко о нем можно прочитать в официальном блоге DeepMind.
Глубокие нейросети на сегодняшний день являются одной из наиболее совершенных реализаций методов машинного обучений как в задачах «с учителем» (например, распознавание изображений на основе крупной базы размеченных картинок), так и в задачах обучения с подкреплением (например, игра в го или компьютерные игры). Тем не менее, от биологических аналогов искусственные нейросети все еще сильно отличаются, и одним из таких отличий явлется неспособность запоминать старые навыки при обучении какой-то новой задаче. Эта особенность называется «катастрофической забывчивостью» (catastrophic forgetting), и из-за нее одну и ту же нейросеть, как правило, нельзя последовательно обучить выполнению нескольких задач, так как на каждой новой обучающей выборке все веса нейронов будут переписаны, поэтому с предыдущей задачей такая сеть перестанет справляться.
Авторы новой работы предложили способ борьбы с катастрофической забывчивостью, который заключается в том, что наиболее важные веса в нейронной сети при выполнении некой задачи А искусственно делают более устойчивыми к изменению в процессе обучения на задаче Б. Технически это осуществляется следующим образом: каждому весу в нейронной сети (вес определяет, насколько данный нейрон значим для окончательного ответа нейросети) также присваивается параметр F, который определеяет его значимость только в рамках данной задачи (математически F представляет собой диагональный элемент матрицы информации Фишера). Чем больше F для конкретного нейрона, тем сложнее будет изменить его вес при обучении новой задаче, таким образом нейросеть «запоминает» определенные навыки, если они были важны для выполнения предыдущего задания.
Новый подход получил название elastic weight consolidation (упругое закрепление весов) из-за аналогии с упругой пружинкой, жесткость которой равна F, а «растягивают» ее не в физическом пространстве (по длине), а в пространстве весов нейросети: «тянут» от веса, лучше подходящего для задачи А к весу, лучше подходящему для задачи Б. При этом «энергия» такой пружинки (в машинном обучении она называется «функция потерь») возрастает по квадратичному закону. Те веса, что имели меньшую значимость, легко подстроятся под новую задачу, но веса, имевшие критическую важность для предыдущих задач, вероятно, останутся нетронутыми.
Авторы проверяли работу нового алгоритма на двух задачах: обучении с учителем и обучении с подкреплением. В первом случае нейросеть обучали распознавать рукописные цифры, последовательно внося в выборку определенные искажения, чтобы для каждого нового шага нейросеть была вынуждена обучаться заново. Во втором случае нейросеть училась играть в игры для классической приставки Atari 2600, популярной в 70-80 годы прошлого века. Нейросеть последовательно обучалась на разных играх, для которых требовались разные стратегии.
Оказалось, что при использовании нового алгоритма упругого закрепления весов нейросети удалось «запомнить» веса, необходимые для выполнения всех предыдущих задач. При этом сеть немного проигрывала в каждом отдельном случае, зато показывала хорошие результаты по сумме всех этапов. В том случае, если сеть обучали традиционным методом градиентного спуска, в котором разрешается переписать все веса на каждой новой задаче, нейросеть успешно работала в каждом отдельном случае, но была неспособна показать удовлетворительный результат по предыдущим задачам.
Авторы отмечают, что в прошлом уже были попытки создания глубоких нейросетей, способных обучаться сразу нескольким разным задачам. Они подходили или для совсем простых задач, или требовали очень больших объемов памяти, так как в них фактически вместо последовательного обучения на серии задач сети сразу предлагали обучиться на одной объединенной выборке, что давало приемлемые результаты, но никак не приближало подобные нейросети к навыкам, характерным для человеческого или животного мозга.
Существует и альтернативная архитектура нейросетей, созданная для работы с длинными сериями данных, например, текстом или музыкой. Эти нейросети называются рекуррентными и предполагают наличие долгосрочной и краткосрочной памяти, что позволяет им одновременно ориентироваться и в локальных задачах (например, анализ контекста определенного слова), и в глобальных (например, запомнить правила синтаксиса и стилистики определенного языка). Такие нейросети действительно обладают мощной «памятью», но, как правило, уступают глубоким нейросетями по способности анализировать сложные наборы признаков, встречающиеся, например, при работе с изображениями.
Иллюстрация к статье:
Обсуждение