Поиск нейронной архитектуры - ограничения и расширения

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

Это называется AutoML, и он может охватывать многие части прогнозного моделирования, такие как поиск архитектуры и оптимизация гиперпараметров. В этом посте я сосредоточусь на первом, поскольку в последнее время наблюдается бурный рост методов поиска «лучшей» архитектуры для данного набора данных. Представленные результаты основаны на совместной работе с Джонатаном Лоррейном.

Важность поиска нейронной архитектуры

В качестве побочного примечания имейте в виду, что нейронная сеть только с одним скрытым слоем и функцией нелинейной активации способна представлять любую возможную функцию при условии, что в этом слое достаточно нейронов (UAT). Однако такая простая архитектура, теоретически способная обучать любую функцию, не представляет иерархической обработки, происходящей в зрительной коре головного мозга человека. Архитектура нейронной сети придает ей индуктивное смещение, а неглубокие широкие сети, не использующие свертки, значительно хуже справляются с задачами классификации изображений, чем глубокие сверточные сети. Таким образом, чтобы нейронные сети могли обобщать и не перегружать обучающий набор данных, важно найти архитектуры с правильным индуктивным смещением (независимо от того, вдохновлены ли эти архитектуры мозгом или нет).

Обзор поиска по нейронной архитектуре (NAS)

NAS был вдохновляющей разработкой Google, которая привела к нескольким последующим работам, таким как ENAS, PNAS и DARTS. Он включает в себя обучение контроллера повторяющейся нейронной сети (RNN) с использованием обучения с подкреплением (RL) для автоматического создания архитектур. Затем эти архитектуры обучаются весам и оцениваются на наборе для проверки. Их производительность на проверочном наборе является сигналом вознаграждения для контроллера, который затем увеличивает его вероятность создания хорошо зарекомендовавших себя архитектур и снижает вероятность создания архитектуры, которая работает плохо. Для нетехнических читателей это, по сути, требует от человека ручной настройки нейронной сети и изучения того, что хорошо работает, и его автоматизации. Идея автоматического создания архитектур NN не была придумана NAS, поскольку другие подходы, использующие такие методы, как генетические алгоритмы, существовали задолго до этого, но NAS эффективно использовал RL для эффективного поиска в чрезмерно большом пространстве для исчерпывающего поиска. Ниже компоненты NAS анализируются более подробно, прежде чем я перейду к обсуждению ограничений метода, а также его более эффективного преемника ENAS, а также интересного режима отказа. Следующие 2 подраздела лучше всего понять при повторном сравнении текста с приведенным ниже рисунком, показывающим, как архитектуры выбираются и обучаются:

Контроллер LSTM

Контроллер генерирует архитектуры, делая ряд вариантов для заранее определенного количества временных шагов. Например, при создании сверточной архитектуры контроллер начинает только с создания архитектур с 6 уровнями в них. Для каждого слоя контроллер принимает всего 4 решения: высота фильтра, ширина фильтра, количество фильтров и шаг (то есть 24 временных шага). Предполагая, что первый уровень пронумерован 0, тогда решения 𝑪 на конкретном уровне 𝒍 выбираются как:

  • Высота фильтра 𝑪_ {𝒍, h} ~ p_ {𝒍 x 4)
  • Ширина фильтра 𝑪_ {𝒍, w} ~ p_ {𝒍 x 4 + 1)
  • Количество фильтров 𝑪_ {𝒍, f} ~ p_ {𝒍 x 4 + 2)
  • Шаг - 𝑪_ {𝒍, s} ~ p_ {𝒍 x 4 + 3)

Обратите внимание, что распределение вероятностей на временном шаге 𝒕, p_𝒕 = f_𝒕 (h_𝒕) является просто линейной функцией скрытого состояния на этом временном шаге, за которым следует softmax. Поскольку контроллер является LSTM, его скрытое состояние на начальном временном шаге h_0 = [0,0,…, 0] устанавливается равным вектору всех нулей. Каждое выборочное решение имеет предустановленную группу значений, например [24, 36, 48, 64] для количества фильтров (выглядит как вероятностный поиск по сетке). В конце концов, количество уровней увеличивается, отсюда и необходимость динамических вычислений, предлагаемых LSTM. Есть надежда, что скрытое состояние LSTM запомнит прошлые выборы и смещает распределения вероятностей будущих временных шагов, чтобы принять эти выборы во внимание.

Обучение выборочным архитектурам

После того, как данная архитектура создана, она затем обучается для ограниченного количества эпох (50), и соблюдается точность проверки Acc_v. Интересно, что здесь задействовано немного загадочного формирования вознаграждения, поскольку максимальная точность проверки, наблюдаемая за последние 5 эпох, затем кубируется и принимается в качестве вознаграждения, которое используется для обновления параметров контроллера с использованием градиента политики:

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

Выбор лучшей архитектуры

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

Обзор эффективного поиска архитектуры (ENAS)

Причина, по которой NAS используется не всеми, от экспертов по глубокому обучению до непрофессионалов, связана с его чрезмерно дорогой вычислительной сложностью. Фактически, для этого требуется ~ 32000 часов графического процессора, что заставляет задуматься, почему бы не нанять эксперта для разработки архитектуры, а не вкладывать столько ресурсов в автоматический поиск одного. ENAS был создан для решения этой самой проблемы.

Распределение веса

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

Лучше всего это понять с помощью рисунка, показанного ниже. Напомним, что на примере NAS я показал, как создается вся архитектура CNN. Здесь я сосредоточусь на повторяющейся ячейке. Ячейка в контексте ENAS - это, по сути, просто ориентированный ациклический граф (DAG). Количество узлов в DAG указывается заранее, поэтому нужно изучать только соединения. DAG можно рассматривать как граф вычислений с ребрами, представляющими матричные умножения, которые передают информацию от одного узла к другому, и узлами, представляющими различные «скрытые состояния».

DAG создается путем выбора для каждого узла:

  • Функция активации для использования в этом узле, то есть [tanh, sigmoid, ReLU]
  • Предыдущий узел для подключения текущего узла, то есть в узле 4 возможны следующие варианты: [1,2,3]

Отобранный DAG на рисунке ниже показан красными стрелками. Остальные синие стрелки не являются частью выбранной архитектуры, а просто показывают некоторые другие соединения, которые возможны при создании группы DAG с 5 узлами в ней. Незакрашенные синие узлы представляют собой внутренние узлы, а оранжевые узлы представляют собой листовые узлы. Выходные данные листовых узлов объединяются посредством усреднения (или, возможно, с помощью какого-либо другого механизма), и это считается скрытым состоянием всей повторяющейся ячейки на текущем временном шаге h_ {t}. Черные стрелки обозначают жестко заданные соединения (т.е. здесь нет выбора). Например, ячейка всегда принимает в качестве входных данных как характеристики на текущем временном шаге x_ {t}, так и скрытое состояние ячейки на предыдущем временном шаге h_ {t-1}.

Поскольку с каждым ребром в группе DAG связана матрица, пул общих параметров - это просто набор всех этих матриц.

Почему эти методы так хорошо работают

Хотя архитектуры (вместе с их изученными весами), предоставляемые NAS или ENAS, обеспечивают исключительную производительность при классификации изображений и задачах языкового моделирования, неясно, связано ли это с методом поиска.

Основополагающая истина для поиска архитектуры

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

Кто определяет пространство поиска

Решения, принимаемые контроллером на каждом временном шаге, чрезвычайно ограничены. Они сводятся к выбору из набора опций, которые в прошлом уже считались достаточно хорошо работающими для повторяющихся или сверточных архитектур. Например, параметры ширины фильтра [1, 3, 5, 7] являются стандартными значениями, которые использовались в таких моделях, как ResNets или DenseNets. Таким образом, само пространство поиска смещено таким образом, что довольно сложно выбрать архитектуры, которые работают плохо. Очевидно, что наличие более детальных вариантов выбора увеличивает сложность выборки алгоритма поиска, но если мы действительно верим в эффективность алгоритма поиска, мы не будем ограничивать его использованием значений, которые мы, люди, сочли эффективными, поскольку это может помешать открытию. более эффективных архитектур.

Сравнение со случайным поиском

В наших экспериментах, а также в параллельных работах Sciuto et al. и Ли и Талвакар, похоже, нет никакой пользы от использования контроллера на основе RL по сравнению со случайным поиском для исследования пространства архитектур. Мы сосредотачиваемся на ENAS для задачи моделирования языка Penn Treebank, где целью является создание повторяющейся ячейки. Как видно на рисунке ниже, при выборке 1000 архитектур из обученного контроллера вместо выборки 1000 архитектур из неподготовленного контроллера, обученный контроллер работает лучше, но это можно объяснить схемой распределения веса, а не способностью контроллера исследовать пространство поиска. Обученный контроллер выбирает менее разнообразный набор архитектур, поскольку он по определению должен быть предвзятым. Это означает, что когда общие параметры обновляются во время обучения, они должны быть эффективными для меньших архитектур. С другой стороны, случайный контроллер выбирает гораздо более разнообразные архитектуры, поэтому общие параметры обновляются в попытке быть эффективными для слишком большого количества архитектур, но в конечном итоге не являются особенно эффективными для любой данной архитектуры.

Что изучает контроллер

Если использование контроллера на основе RL не дает однозначно лучшего результата, чем случайный поиск, то что же изучает контроллер? Глубокое обучение имеет репутацию в результате создания моделей черного ящика, которые не поддаются интерпретации, хотя для таких задач, как классификация изображений, обнаружение объектов или даже сегментация, существуют методы визуализации того, на какие функции входных изображений NN обращают внимание, хотя результаты следует воспринимать с недоверием, как показано в Adebyo et al.. Как минимум, мы ожидаем, что повторяющийся характер контроллера будет влиять на будущие решения, основанные на прошлых. В ENAS этого не происходит. Такая безусловная выборка архитектурных решений вызывает беспокойство, поскольку могут существовать высокоэффективные ячейки, требующие определенных шаблонов соединения между узлами, и такие шаблоны не могут быть обнаружены, если невозможно обусловить прошлые решения.

На рисунке ниже показано скрытое состояние контроллера RNN для архитектуры с 100 выборками (каждая строка соответствует скрытому состоянию контроллера для одной архитектуры). Обратите внимание, что в (a) все строки одинаковы, даже несмотря на то, что выбранные архитектуры различны, что демонстрирует, что контроллер не кодирует варианты архитектуры в своем скрытом состоянии.

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

  • После 5 эпох обучения выберите и сохраните 1000 архитектур на эпоху (до 10 000). Как только этот буфер заполнится, случайным образом замените 100 архитектур за эпоху.
  • В 10-м веке добавьте контролируемый штраф за восстановление случайной выборки из 100 архитектур из буфера памяти архитектур. Эти потери добавляются к потерям градиента политики на каждом этапе обучения контроллера: L = L_ {PG} + L_ {Sup}

Эта регуляризация работает аналогично тому, как моделирование языка с помощью RNN выполняется авторегрессионным способом: цель на каждом временном шаге - предсказать, какой будет выбор архитектуры на следующем временном шаге. Похоже, здесь есть небольшая проблема с курицей и яйцом. Если мы требуем, чтобы контроллер реконструировал архитектуры, выбор которых на каждом временном шаге изначально не был обусловлен прошлыми временными шагами, то разве мы не просто усиливаем такое поведение? Фактически, это не имеет значения, поскольку мы пытаемся дать контроллеру возможность запоминать и воспроизводить последовательности, и это, по крайней мере, заставляет скрытое состояние этого контроллера включать прошлые выборы. (b) на приведенном выше рисунке показан эффект этой регуляризации, и ясно, что скрытое состояние контроллера теперь, по крайней мере, различается между выбранными архитектурами.

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

Будущие направления

Способ, которым в настоящее время сравниваются архитектуры, слишком прост. Рассмотрение только производительности набора проверки не учитывает многие полезные свойства, которые мы могли бы захотеть иметь в моделях. Например, можно было бы смещать поиск архитектуры, чтобы сгенерировать архитектуры, более устойчивые к злонамеренным возмущениям, или архитектуры, которые лучше подходят для сокращения. Чтобы дать методам поиска архитектуры такую ​​возможность, было бы полезно как-то количественно оценить пространство функций, которые могут быть изучены конкретной архитектурой. Это позволяет использовать более интересные понятия «лучше», поскольку многие архитектуры дают аналогичную точность проверки, но даже если A_ {1} имеет немного худшую производительность, чем A_ {2}, возможно, у него есть другие свойства, которые мы ценим, чем A_ {2}. нет. В связи с недавними интересами сообщества машинного обучения, такими как повышение конфиденциальности и снижение предвзятости, необходимы более умные методы поиска архитектуры, которые приводят к архитектурам, удовлетворяющим этим требованиям.