Насколько хорошо понимать ENAS, предложенный Джеффом Дином и другими в одной статье?

TensorFlow алгоритм Node.js Нейронные сети
Автор | Архитектор платформы пророка четвертой парадигмы Чен Дихао
Редактор | Наталья
Эта статья опубликована на AI Frontline с разрешения автора и не может быть воспроизведена без разрешения!
Руководство по передовой ИИ:Полное название ENAS — «Эффективный поиск нейронной архитектуры». Оно взято из статьи «Эффективный поиск нейронной архитектуры с помощью совместного использования параметров», опубликованной Google Джеффом Дином и другими в 2018. Он может автоматически обучать модель, которая лучше, чем человеческий дизайн, за один день. . Так что же такого удивительного в этом удивительно выглядящем ENAS? Как это связано с AutoML, который в последнее время был в моде?

В этой статье будет постепенно представлен основной алгоритм NAS для автоматического создания моделей нейронных сетей в отрасли, а также наиболее распространенный алгоритм ENAS в настоящее время, и вы узнаете, что такое ENAS.

Для получения дополнительных галантерейных товаров, пожалуйста, обратите внимание на публичный аккаунт WeChat «AI Frontline» (ID: ai-front)
Введение

С появлением алгоритмов машинного обучения AutoML постепенно стал широко известен в отрасли и начал применяться. Google недавно часто выпускал документы, связанные с AutoML, и запустил службу AutoML Vision на платформе Google Cloud, которая позволяет пользователям загружать небольшое количество помеченных данных изображения для переобучения эксклюзивной модели классификации изображений. Эта технология «AutoML» была примерно представлена ​​в моем Weibo, что реально можно реализовать с помощью Fine-tune и других методов, поэтому я выбрасываю первый пункт этой статьи,Не существует обязательного стандарта для определения AutoML, поскольку он может автоматически обучать хорошую модель, это ценный AutoML..

Полное название ENAS — «Эффективный поиск нейронной архитектуры», взятое из статьи «Эффективный поиск нейронной архитектуры с помощью совместного использования параметров», опубликованной Google в 2018 году (ссылка на статью: https://arxiv.org/pdf/1802.03268.pdf), которая эффективен за счет совместного использования параметров модели.Реализовать исследование структуры модели нейронной сети, то естьМожет автоматически обучать модель, которая работает лучше, чем человеческий дизайн, за день. ENAS использует такие технологии, как обучение с подкреплением и динамическое построение вычислительных графов. С точки зрения макроэкономики это алгоритм поиска, а на выходе — тщательно подобранная модель нейронной сети. Таким образом, это своего рода AutoML, который оправдывает ожидания. Машинное обучение (ML)» также требует технической поддержки, такой как автоматическое извлечение функций, автоматическая настройка гиперпараметров и т. д., но в настоящее время это выходит за рамки этой статьи.

Для введения ENAS вы, возможно, видели такие статьи, как «Google Brain выпускает новый метод поиска нейронной архитектуры: ускорение в 1000 раз», «ENAS: эффективный поиск нейронной архитектуры через совместное использование параметров» и другие статьи, рекламируемые в СМИ. Вот вторая точка зрения этой статьи,Бесполезно читать технические статьи, переведенные СМИ.Если вы хотите изучить технологию, вы можете прочитать оригинальную статью или эту статью.. Прежде чем представить детали реализации алгоритма ENAS, я надеюсь шаг за шагом представить некоторые базовые знания и понимание.

Принципы NAS

NAS — это поиск нейронной архитектуры, цель которого — найти хорошую модель нейронной сети из множества компонентов нейронной сети. Мы знаем, что модель нейронной сети представляет собой модельную структуру, которая может быть сложена произвольно.Основные компоненты включают в себя FC (полный слой соединений), Convolution (сверточный слой), Polling (пулирующий слой), Activation (функция активации) и т. д. Последний компонент Предыдущий компонент можно использовать в качестве входных данных.Разные методы подключения компонентов и методы настройки гиперпараметров имеют разные эффекты в разных сценариях приложений.Например, ниже представлена ​​структура начальной модели, которая очень эффективна в сценариях классификации изображений.

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

Так может ли компьютер самостоятельно изучить и сгенерировать эту сложную сетевую структуру? В настоящее время это неосуществимо, в том числе из-за деформации различных алгоритмов NAS и алгоритма ENAS, временно неспособного генерировать такую ​​сетевую структуру, вот третья точка зрения в этой статье,Подавляющее большинство машинного обучения — это не искусственный интеллект, и компьютеры не приобретают возможности, выходящие за рамки их заявленных целей, без какой-либо причины.. Поэтому компьютеры не изучают программирование или моделирование сами по себе. Мы еще не разработали наборы данных и алгоритмы для автоматического моделирования. Так называемая «модель нейронной сети проектирования ИИ» на самом деле предназначена только для поиска лучших результатов в заданном пространстве поиска. структура модели.

Например, мы предполагаем, что модель должна представлять собой трехслойную полносвязную нейронную сеть (один входной слой, один скрытый слой, один выходной слой), причем скрытый слой может иметь разные функции активации и количество узлов, предполагая, что активация функция должна быть в relu или sigmoid. , а количество скрытых узлов должно быть одним из 10, 20 и 30, тогда мы называем пространство поиска этой сетевой структуры {relu, sigmoid} * {10, 20, 30}. В пространстве поиска можно комбинировать 6 возможных структур модели.В перечисляемом пространстве поиска мы можем реализовать эти 6 возможных структур модели соответственно.Конечная цель состоит в том, чтобы создать модель с наилучшим эффектом, тогда мы можем тренироваться отдельно.Эти 6 модели оцениваются по AUC, точности и другим показателям, а затем возвращают или генерируют оптимальную структуру модели нейросети.

следовательно,Алгоритм NAS представляет собой алгоритм поиска заданного пространства поиска структуры модели., конечно, это пространство поиска не может иметь только несколько комбинаций параметров.В примере пространства поиска ENAS имеется около 1,6 * 10 ^ 29 необязательных структур, и алгоритм поиска не может быть решен путем перечисления структуры модели и обучения по отдельности. Более эффективным алгоритмом эвристического поиска является байесовская оптимизация, обучение с подкреплением, эволюционный алгоритм и т. д., упомянутые ниже.

Автоматическая настройка с гиперпараметрами

Как упоминалось ранее, NAS - это алгоритм поиска, который должен найти структуру модели с хорошим модельным эффектом из очень крупномасштабного пространства поиска.Этот вид проблемы также можно рассматривать как проблему оптимизации, то есть найти другую Эффект модели от пространства поиска.Улучшенная структура модели. Структура и эффект модели нейронной сети не являются линейными, и нет функции, которая может описать эту связь.Если такая функция есть, мы можем найти оптимальное решение математически с помощью деривации, SGD и других методов.Поэтому, это может можно рассматривать как проблему оптимизации черного ящика или проблему многорукого бандита.Для решения проблемы оптимизации черного ящика обратитесь к другой статье в столбце «Байесовская оптимизация: лучший способ настройки гиперпараметров». (https://zhuanlan.zhihu.com/p/29779000).

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

Если вы использовали мое приложение tensorflow_tempalate_application с открытым исходным кодом, вы должны понять, почему шаблонное приложение? Потому что мы можем выбрать лучшую структуру модели, передав параметры --model={dnn, lr, wide_and_deep, cnn}, или мы можем передать параметры --optimizer={sgd, adadelta, adagrad, adam, ftrl, rmsprop} Чтобы выбрать лучший алгоритм оптимизации и т. д., я не буду здесь вдаваться в подробности, если вам интересно, вы можете узнать об этом на Github:

https://github.com/tobegit3hub/tensorflow_template_application

Фактически, NAS может быть общей проблемой настройки гиперпараметров или проблемой настройки для сценариев структуры модели. Например, модель NASnet с открытым исходным кодом и алгоритм ENAS от Google являются шагом вперед в общей настройке гиперпараметров.Конечно, это не означает, что последний метод лучше и продвинутее, но некоторые проблемы трудно описать с помощью гиперпараметров, например, использование гиперпараметры Чтобы указать, какой уровень находится перед входом каждого уровня, вот статья, в которой представлена ​​​​классическая реализация NAS на основе градиента политики:

https://lab.wallarm.com/the-first-step-by-step-guide-for-implementing-neural-architecture-search-with-reinforcement-99ade71b3d28

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

Поэтому я попытался использовать функцию NAS в реализации Advisor с открытым исходным кодом от Google Vizier и обнаружил, что менее ста строк кода могут обеспечить полную автоматическую функцию структуры сети без каких-либо изменений на стороне сервера.Мы используем десятки строк Код Keras Или любой фреймворк, такой как TensorFlow, можно использовать, если пространство поиска гиперпараметров описано заранее, а пример кода также отправлен на Github.

Ссылка на гитхаб:

https://github.com/tobegit3hub/advisor/tree/master/examples/keras

Алгоритм оптимизации для NAS

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

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

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

В ранее рекомендованном блоге используется алгоритм градиента политики в обучении с подкреплением, включая упомянутую ниже статью ENAS, в которой также используется этот алгоритм, и другие статьи Google представили использование алгоритма Evolution и DQN, а AlphaZero находится в настройке гиперпараметров. используется, а в последнем документе Deepmind по настройке параметров представлен алгоритм оптимизации роя, подобный PSO.

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

Мы часто видим, что люди, которые играют в го и игры, любят использовать алгоритмы DQN и A3C для оптимизации модели, потому что игра в шахматы и игры могут быть смоделированы с помощью программного обеспечения и могут быстро получать вознаграждение, например, собирать десятки предметов за одну минуту. состояния и вознаграждения в размере 10 000 достаточно для обучения очень сложной модели AlphaZero (на основе ResNet). Однако настройка гиперпараметров AlphaZero использует байесовскую оптимизацию на основе гауссовского процесса, потому что переобучение модели для настройки гиперпараметров очень дорого, для получения состояния и вознаграждения требуется около нескольких часов, чего недостаточно для обучения модели намного слабее. чем ResNet.Однако можно математически предположить, что все гиперпараметры соответствуют совместному распределению Гаусса, затем найти среднее значение и дисперсию отношения состояния и вознаграждения с помощью гауссовского процесса, а затем выбрать следующую лучшую точку исследования на основе исследования /эксплуатационный принцип, который является принципом реализации байесовской оптимизации. Это на самом деле объясняет, почему предыдущие модели NAS от Google, основанные на DQN и эволюционных алгоритмах, требовали одновременного обучения сотен графических процессоров в течение многих месяцев, потому что оценка того, хороша или плоха структура модели, действительно требует много времени, поэтому ENAS решает проблему оценка моделей.После того, как вопрос настолько Эффективен, будет подробное введение позже.

Ниже представлена ​​более наглядная диаграмма, показывающая, почему байесовская оптимизация математически лучше, чем догадки (алгоритм случайного поиска). Во-первых, красная точка указывает на то, что гиперпараметры исследованы, есть только один гиперпараметр X, который необходимо настроить, ось Y указывает на эффект модели после выбора этого гиперпараметра X. Можно считать, что Y является правильная скорость модели, то есть чем больше, тем лучше, синяя линия верна Соответствие между гиперпараметром X и правильной скоростью Y, потому что мы не можем пройти все X, поэтому синяя линия неизвестна, и наша цель — узнать несколько красных точек, чтобы найти самую высокую точку на синей линии. На приведенном выше рисунке есть пунктирная линия и голубая область, которые представляют собой среднее значение и дисперсию, возвращаемые гауссовским процессом в байесовской оптимизации.Среднее значение и дисперсия находятся в диапазоне значений X, соответственно представляющих ожидаемое значение этого X Какова правильная скорость и пространство, в котором эта точка X может плавать.

Если присмотреться, то можно обнаружить, что красная точка должна быть на пунктирной линии, потому что эта точка была исследована, то есть получена правильная скорость с использованием этого X для обучения модели, поэтому эта точка тоже должна быть на синей линии. Светло-голубая область представляет возможное плавающее пространство.Поэтому, чем больше пунктирная линия в светло-голубой области, тем достоин исследования.Может оказаться, что новая верхняя точка не обязательно.Чем больше значение Y, тем больше достойный эксплуатации. Чтобы сбалансировать разведку и эксплуатацию, существует следующая функция полезности, которая также является алгоритмом. Мы можем просто думать об этом как о кривой, полученной путем прибавления среднего значения к дисперсии λ раз, а затем взятия наибольшего значения в качестве следующей точки исследования, потому что эта точка исследования представляет ожидаемое значение Y в этой позиции X, и есть больше неизвестных для изучения.Возможность, если вам трудно понять, рекомендуется обратиться к «Байесовской оптимизации: лучший метод настройки гиперпараметров» (https://zhuanlan.zhihu.com/p/29779000).

Внедрение ЭНАС

NAS был введен раньше, чтобы все поняли, что NAS — это всего лишь поисковый алгоритм. NAS не научился моделировать и не может заменить ученых-алгоритмистов для разработки сложной структуры нейронной сети, такой как Inception, но он может использовать эвристические алгоритмы для выполнения большого количества вычислений, пока люди дают пространство для поиска сетевой структуры, он может быть быстрее, чем люди Находить хорошие структуры моделей более точно.

ENAS также является реализацией NAS, поэтому люди должны сначала предоставить пространство для поиска базовой сетевой структуры, что также является ограничением ENAS в настоящее время (не упоминается в документе).ENAS требует, чтобы человек указал количество узлов для сгенерированной модели сети., мы также можем понимать это как количество слоев, то есть люди позволяют ENAS спроектировать сложную структуру нейронной сети, но если люди говорят, что существует только 10 слоев, то ENAS невозможно создать сетевую структуру с более чем 10 слоями. 10 слоев, а сгенерировать сетевую структуру из воздуха тем более невозможно ResNet или Inception. Конечно, мы можем спроектировать количество узлов равным 10 000 или 1 000 000, и результирующая структура сети будет намного сложнее. Так зачем это ограничение? Причиной этого является E (эффективный) в ENAS.

Вы, наверное, знаете, почему ENAS более эффективен, чем другие NAS, из-за разделения веса (совместного использования параметров), что здесь означает разделение веса? Это общий вес модели, который все понимают, но ENAS будет генерировать и пробовать различные структуры моделей.Могут ли веса разных моделей быть общими? На самом деле, здесь я перевожу Совместное использование параметров в распределение веса, что означает, что этот Параметр означает вес модели, а то, как разные структуры модели разделяют параметры, является ключом к ENAS. ENAS определяет концепцию узла, которая похожа на слой в нейронной сети, но поскольку слой определенно прикреплен к задней части предыдущего слоя, и узел может произвольно заменить предварительный ввод.

Ниже приведена более наглядная схема.Для обычных нейронных сетей мы обычно подключаем вход предыдущего слоя в качестве выхода для каждого слоя.Конечно, мы также можем определить некоторые ветви, которые не обязательно являются комбинацией линий, и каждый узел ENAS будет иметь атрибут индекса перед узлом.На этом рисунке Node1 указывает на Node0, Node2 также указывает на Node0, а Node3 указывает на Node1.

По факту,Что ENAS необходимо изучить и выбрать, так это отношения связи между узлами. Большое количество структур модели нейронной сети будет создано через различные соединения. Выбор оптимального соединения эквивалентен «проектированию» новой модели нейронной сети.. Если вы понимаете, вы можете подумать, что структура этой генеративной нейронной сети немного низковата, потому что стиль структуры сгенерированной сети относительно похож, а количество узлов должно быть фиксированным, и даже создать новую структуру сложно. как опрос 1х1 в нем. Да, с этими жалобами все в порядке.В настоящее время ENAS может изменить соединение для вас и сгенерировать новую модель, но это основа для ENAS для разделения весов, и это может помочь вам настроить его с очень низким количество кода.Структура модели создает лучшую модель.Следующим шагом является введение принципа реализации E (Эффективный), ядро ​​этой статьи.

Мы знаем, что TensorFlow представляет направление потока данных Tensor, а план направления потока — это график вычислений (Graph), определенный пользователем с помощью кода Python.Если мы хотим реализовать модель, в которой все слои на приведенном выше рисунке связаны по прямой линии, нам нужно написать в коде Укажите несколько слоев, а затем соединить вход и выход, чтобы можно было тренировать веса модели. Когда мы меняем модель, в которой все слои соединены прямой линией на приведенном выше рисунке, на модель с перекрестным соединением справа, становится очевидным, что это два разных графика, и предыдущая контрольная точка, которая экспортировала веса модели, не может быть импортированы в последнюю модель. Но интуитивно положение этих узлов не изменилось.Если форма входных и выходных тензоров остается неизменной, веса этих узлов одинаковы, то есть веса узлов Node0, Node1, Node2 и Node3 на левый можно полностью скопировать в соответствующий узел справа.

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

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

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

Возвращаясь к предыдущей проблеме реализации ENAS в TensorFlow, мы знаем, что TensorFlow требует от разработчиков сначала определить график, а затем загрузить веса для запуска, но процесс определения графика отделен от процесса обучения модели, а ENAS требует от нас для постоянной корректировки в процессе обучения модели Структура графика, чтобы попробовать лучшую структуру модели графика. На самом деле это непросто реализовать в TensorFlow с интерфейсом декларативного программирования, но лучше реализовать в PyTorch с интерфейсом императивного программирования. Конечно, здесь можно назвать TensorFlow, потому что автор ENAS предоставляет исходный код реализации ENAS на базе TensorFlow, адрес открытого исходного кода — https://github.com/melodyguan/enas. Мы также тщательно изучили код: автор использует множество интерфейсов, таких как tf.case() и tf.while(), которые на самом делеСоздайте график окончательной обученной дочерней модели в соответствии с параметрами в графике TensorFlow., поэтому нет кода Python для определения набора графиков всех дочерних моделей, и нет необходимости каждый раз перестраивать график, чтобы повлиять на производительность обучения модели.

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

Многие могут подумать, что текущие общие веса относительно просты, и могут достичь только матричного умножения и сложения, то есть роли полносвязного слоя, но в изображениях будет использоваться больше сверточных сетей, а также будет размер фильтра. и размер ядра опроса.и другие параметры должны быть выбраны. На самом деле, ENAS уже рассмотрел это. Веса этих узлов и метод использования весов называются ячейками. В настоящее время предоставлены два типа ячеек, умножение и свертка, и они были проверены на наборах данных PTB и Cifar10. , Конечно, в будущем также могут быть добавлены такие ячейки, как RNN, или даже различные ячейки могут быть смешаны вместе.Конечно, это требует более сложных оценок и реализации в реализации, таких как соединение предварительных узлов.

Для настройки параметров модели контроллера ENAS в статье используется градиент политики в обучении с подкреплением.Конечно, как упоминалось ранее, нет проблем с использованием байесовской оптимизации, DQN и эволюционных алгоритмов. Однако в настоящее время модель контроллера ENAS и реализация общих весов объединены, поэтому сложно расширить новый алгоритм оптимизации контроллера.В будущем мы надеемся интегрировать в советник больше алгоритмов оптимизации (в настоящее время байесовская оптимизация , Случайный поиск, поиск по сетке, планируют поддерживать градиент политик, DQN, алгоритм эволюции, оптимизацию роя частиц и т. д.), чтобы облегчить использование ENAS и другими алгоритмами NAS уже реализованных алгоритмов настройки.

В целом, ENAS дает нам новую идею для автоматической настройки гиперпараметров и автоматического создания структур нейронных сетей. Благодаря распределению веса все сгенерированные модели не нужно переобучать, а большое количество состояний и вознаграждений можно получить, выполнив вывод только один раз, предоставив большое количество реальных обучающих выборок и данных оптимизации для последующего алгоритма настройки. Это очень дешевая попытка настройки.Хотя может оказаться невозможным найти лучшую структуру модели, в таком большом пространстве поиска можно быстро проверить новые структуры моделей и настроить алгоритмы, которые генерируют структуры моделей. огромный прорыв в проверенных наборах данных PTB и CIFAR-10.

Конечно, нельзя игнорировать недостатки самого ЭНАС (это также направление, которое следует учитывать для оптимизации ЭНАС в будущем). Во-первых, для разделения веса должно требоваться одинаковое количество Узлов, что ограничит разнообразие генерируемой модели; во-вторых, в настоящее время учитывается только индекс предыдущего Узла, а позже его можно считается соединяющим несколько узлов для создания большего пространства поиска и более сложной структуры модели; В-третьих, веса, обученные определенной моделью, будут использоваться для повторного использования всех моделей для оценки. Это может быть несправедливо по отношению к другим моделям, и это может оказаться невозможным найти лучшую модель, чем текущая обученная модель; последняя является текущей оценкой на основе выводаНастраиваемые параметры должны быть отражены в процессе вывода.Гиперпараметры, такие как скорость обучения и отсев, не могут быть настроены и выбраны.

Суммировать

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

Спасибо Hieu Pham, Melody Y Guan, Barret Zoph, Quoc V Le, Jeff Dean за эту статью.

об авторе

Чен Дихао, архитектор платформы «Пророк четвертой парадигмы», работал инженером по исследованиям и разработкам инфраструктуры в Xiaomi Technology и UnitedStack. Активен в сообществах с открытым исходным кодом, таких как OpenStack, Kubernetes, TensorFlow и т. д., и внедрил облачную платформу глубокого обучения Cloud Machine Learning, учетная запись Github https://github.com/tobegit3hub.


Для получения дополнительных галантерейных товаров, пожалуйста, обратите внимание на публичный аккаунт WeChat «AI Frontline» (ID: ai-front)