Недавняя публикация DeepMind предлагает новый интересный взгляд на эффективное сэмплирование онлайн-обучения.
Два самых больших недостатка современных систем глубокого обучения - это то, насколько они требовательны к данным и сколько времени им нужно на обучение (Я смотрю на вас, GPT-3). Эти системы имеют доступ ко всем своим данным во время обучения и пересматривают каждый фрагмент данных несколько раз в течение многих эпох обучения. Поэтому, когда вы применяете эти методы к онлайн-обучению - процессу обучения на основе каждой части данных только один раз и последовательно, - неудивительно, что они на самом деле не работают.
Когда модели, которые обучены в «офлайн-режиме» (то есть на основе статических данных за несколько эпох), развертываются в реальном мире, они не могут использовать недавно обнаруженные данные, поскольку их параметры заморожены, что означает, что они больше не обучаются. Это нормально, если базовое распределение данных не меняется, но в реальном мире это часто бывает не так. Примите во внимание рекомендации для розничной торговли: популярность товара со временем будет расти и падать, а это означает, что статическая система будет давать непоследовательные и устаревшие рекомендации. Одно из решений состоит в том, чтобы периодически переобучать системы со всеми новыми собранными данными, но все еще существует отставание между реальным миром и тем, что модель узнала.
С другой стороны, система онлайн-обучения последовательно учится на каждом фрагменте данных, поэтому может гораздо быстрее адаптироваться к изменениям (и без необходимости повторного развертывания). Это представляет собой совершенно иной сценарий обучения по сравнению с автономным обучением. Недавняя методика DeepMind, закрытые линейные сети, представляет новый подход к онлайн-обучению, который не уступает аналогичным методам офлайн-обучения.
Чем отличаются стробированные линейные сети?
Замечательная особенность закрытой линейной сети заключается в том, что каждый нейрон в сети индивидуально предсказывает цель.
В классификаторе нейронной сети нейроны расположены по слоям, причем более мелкие слои обеспечивают вход для более глубоких слоев. Чтобы узнать, результаты прогноза (то есть потеря окончательного сетевого вывода) передаются обратно через сеть через обратное распространение, и каждый нейрон немного корректируется, чтобы уменьшить эту потерю. Прямой проход сети дает прогноз, а обратный проход обновляет сеть, чтобы (надеюсь) улучшить производительность. Как говорится в статье DeepMind Закрытая линейная сеть:
Обратное распространение долгое время было де-факто техникой присвоения кредитов, лежащей в основе успешного обучения популярных архитектур нейронных сетей, таких как сверточные нейронные сети и многослойные перцептроны (MLP).
Одна из интересных особенностей закрытых линейных сетей (GLN) заключается в том, что они не используют обратное распространение. В то время как обратное распространение данных эффективно, позволяя сетям изучать «высокоабстрактные особенности, специфичные для конкретных задач», процесс обучения этих систем требует множества эпох и большого количества данных. Удаление обратного распространения ошибки из процесса обучения решает эти проблемы, а это означает, что номер GLN можно обучить за один проход набора данных, что делает его подходящим для онлайн-обучения.
Однако без использования обратного распространения ошибки, как ошибка прогнозирования сети (то есть последнего слоя) возвращается на более мелкие уровни сети? В GLN замечательно то, что каждый нейрон в сети индивидуально предсказывает цель. Это означает, что вы можете взять любой нейрон в сети и интерпретировать его выходные данные как окончательный прогноз. Например, если вы тренируетесь на кошках (0) против собак (1), и нейрон GLN предсказывает 0,9, вполне вероятно, что этот конкретный вход - собака - и вы можете сделать это для любого нейрона в сети. ! Напротив, вывод нейрона в обычной нейронной сети не имеет смысла без контекста сети; только выходы нейронов в последнем слое действительно имеют какое-либо отношение к предсказанию цели.
Поскольку каждый нейрон в GLN предсказывает цель, они могут обучаться локально, не передавая никакой информации обратно через сеть. Получив некоторую входную информацию, нейрон делает прогноз, сравнивает его с выходной меткой и обновляет свои веса независимо от окончательного сетевого выхода. Однако нейроны по-прежнему расположены слоями; Выходы более мелких нейронов формируют входы для более глубоких слоев нейронов. Прямой проход сети остается почти таким же, как и в обычной нейронной сети, меняется только обратный проход.
Внутри закрытого нейрона линейной сети
Нейрон в GLN производит вероятностное предсказание двоичного события. Внутренний механизм для этого использует стробированное геометрическое смешение: метод объединения набора различных вероятностных прогнозов в один прогноз. Чтобы понять, что на самом деле происходит под капотом, мы должны сначала понять закрытое геометрическое смешение.
Допустим, вы просыпаетесь и хотите знать, пойдет ли дождь позже днем, но вы действительно не доверяете какому-либо единственному источнику информации (с каких это пор синоптики могут предсказывать погоду?). Вы можете проверить различные источники прогнозов погоды: метеорологическое бюро, вашего соседа по комнате, ваш любимый кусок древних преданий о погоде - все они дадут разные прогнозы, и вы будете доверять каждому источнику в разной степени. Геометрическое смешение - это математическая модель, которая позволяет вам комбинировать различные вероятностные прогнозы в один прогноз, и, таким образом, вы можете решить, брать ли зонтик для работы с вами или нет (если вы не застряли в работе из дома). Каждый источник информации может быть оценен по-разному в зависимости от его надежности; геометрическое смешение допускает даже отрицательные веса, если входной источник достоверно неверен.
При определенных условиях одни источники погоды могут быть более надежными, чем обычно, а другие - менее надежными. Ваш сосед по дому может обладать сверхъестественной способностью правильно предсказывать погоду днем, если сейчас солнечно утром. Это стробируемая часть стробированного геометрического смешивания: изменение весов входных данных с учетом некоторой другой части данных (известной как дополнительная информация). Входные данные такие же, но вы меняете вес, присвоенный каждому источнику информации, и таким образом получаете другой результат.
Итак, внутри нейрон в GLN выполняет стробированное геометрическое смешение. Он объединяет предсказания предыдущих нейронов и производит собственное предсказание, используя набор весов, определяемых частью дополнительной дополнительной информации. Последний уровень сети состоит только из одного нейрона, и он обеспечивает общий прогноз сети. Каждый нейрон в сети обновляет свои геометрические веса смешивания, сравнивая свой прогноз с целевой меткой, сообщая ему, какой из входных источников более надежен и заслуживает доверия в будущем.
Большая картина
Если мы снова уменьшим масштаб, чтобы рассмотреть сеть в целом, можно собрать воедино, как GLN делает свои прогнозы. Он должен начинаться с некоторых начальных базовых прогнозов, которые будут переданы в сеть; обычно это просто простое преобразование входных данных. Затем каждый уровень сети начинает делать прогнозы, которые могут быть переданы в последующие уровни, причем каждый уровень, мы надеемся, будет делать стабильно лучшие прогнозы, чем предыдущий уровень. Дополнительная информация позволяет нейронам переключать набор весов, которые они в настоящее время используют, чтобы он больше соответствовал текущему контексту.
DeepMind сравнил свои номера GLN с существующими методами машинного обучения на нескольких различных наборах данных. В этих экспериментах GLN обучались только для одной эпохи (то есть только для одного прохода данных), а другие системы обучались для 100 эпох. Несмотря на то, что каждая часть данных просматривалась только один раз, номера GLN имели сопоставимую производительность с другими методами, демонстрируя эффективность их выборки и потенциал для использования в онлайн-обучении.