www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Изучение архитектуры нейронной сети

Дата публикации Oct 16, 2018

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

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

Прежде всего…

Что значит изучать архитектуру нейронной сети? Это значит попытаться объединить всенейронные сети строительные блокинаилучшим способом добиться максимальной производительности в какой-либо задаче, скажем, категоризация изображений ImageNet.

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

алгоритмы нейронной сети будут бить человека в области поиска нейронной архитектуры, точно так же, как они бьют их в гоу и шахматах!

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

Но, как вы можете видеть, естьмного возможных нейронных строительных блокови пространство поиска огромно. Представьте, что мы испробовали все возможные сверточные слои: различное количество входных и выходных плоскостей, расширение, глубину, объединение, нелинейности и т. Д.… Пространство поиска может быть от 10¹⁴ до 10² илиБольшеопции! Это огромное пространство. Представьте, что нам нужно 1 час, чтобы потренироваться и протестировать одну архитектуру ... ну, нам понадобится 10¹⁴ часов или вечность!

Градиентные методы

Методы на основе контроллера, такие какZoph, Le (2017) использует рекуррентную нейронную сеть для создания новых архитектур, а затем тестирует их с помощью обучения с подкреплением.

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

Они кодируют связность и структуру нейронной сети в строку переменной длины и используют контроллер RNN для создания новых архитектур. «Дочерняя сеть» - это обученный набор данных для получения точности обучения и валидации. Точность проверки используется как сигнал вознаграждения для обучения контроллера. Это, в свою очередь, создает лучшие нейронные сети на следующих итерациях, поскольку контроллер со временем улучшает поиск.

Лю в ал. (2017)использует эвристический поиск, чтобы начать с простых структур нейронной сети и постепенно увеличивать сложность. Эта статья основана на работеZoph et all (2018), В последнем документе они снова используют один и тот же контроллер RNN для поиска архитектур:

Архитектура модели контроллера для рекурсивного построения одного блока сверточной ячейки.

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

Чтобы уменьшить количество возможных комбинаций параметров, они используют фиксированную построенную блочную архитектуру, показанную на рисунке ниже. Этот блок может реализоватьОстаточный типслои иgooglenet типаслои. Они позволяют контроллеру RNN находить несколько блоков для каждого уровня, обычно 5, что является хорошим компромиссом между эффективностью и пространством поиска.

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

В этой работе они также ограничивают количество возможных основных строительных блоков следующим списком:

  • идентичность; 1x7, затем 7x1 свертка; 1x3, затем 3x1 свертка; Средний пул 3х3; Максимальное объединение 3х3, 5х5 или 7х7; Свертка 1х1 или 3х3; 3x3 или 5x5 или 7x7 глубинная отделимая свертка; 3х3 дилатационная свертка
Масштабируемая архитектура для классификации изображений состоит из двух повторяющихся мотивов, называемых «Нормальная ячейка» и «Редукционная ячейка».

Они создают архитектуры, такие как на изображении слева. Основываясь на предшествующей истории архитектуры, они решают, что общая архитектура должна состоять из двух типов ячеек: (1) сверточные ячейки, которые возвращают карту объектов того же измерения, илиНормальная клеткаи (2) сверточные ячейки, которые возвращают карту объектов, уменьшенную на два по высоте, ширине илиРедукция CelL Обратите внимание, что в этих архитектурах они также удваивают количество фильтров на выходе всякий раз, когда размер пространственной активации уменьшается, чтобы поддерживать примерно постоянное измерение скрытого состояния. Обратите также внимание, что эта архитектура на левой картинке чем-то похожа наблоки в ResNetВ том числе выбор нормальных и редукционных клеток.

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

Интересно, что ниже вы можете увидеть лучшие ячейки, найденные алгоритмом на рисунке ниже. Они кажутся более сложной версиейВводный-RESNETслои.

Архитектура лучших сверточных ячеек (NASNet-A) с блоками B = 5, идентифицированными с помощью CIFAR-10

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

Производительность по классификации ImageNet для подмножества моделей, работающих в условиях ограниченных вычислений, то есть операций с кратным накоплением <1,5 B на изображение

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

Сравнение эффективности случайного поиска (RS) с обучением переобучению (RL) для обучения нейронных архитектур

В целом это довольно управляемый поиск моделей, но методология и результаты могут быть использованы для многих различных видов нейронных сетей. Мы ожидаем, что эта техника будет использоваться гораздо чаще в ближайшие несколько лет. Один недостаток заключается в том, что используемая архитектура модели очень похожа на блочную архитектуру ResNet. Также построенный блок захватывает только подмножество возможных наборов. Это, конечно, все сделано дляуменьшить пространство поискаи сделать проблему более понятной, но она, например, не распространяется на архитектуры кодер-декодер или более нишевые приложения. Для этого нужно было бы создавать новые построенные блоки и базовые сети.

Кроме того, поиск архитектуры очень сложен в вычислительном отношении и занимает много времени. Вам нужно 500 графических процессоров (дорогой как NVIDIA P100!), И вам нужно протестировать 20000 нейронных сетей в течение 4 дней, чтобынайти результаты,

Генетический поиск

Генетический поиск - это исчерпывающие методы поиска, которые создают различные нейронные архитектуры, а затем пробуют их один за другим. Как таковые они часто ограничены медленным процессом неуправляемого поиска. Примерами являются Wierstra и соавт. (2005), Floreano et al. (2008), Stanley et al. (2009). Эти методы используют эволюционные алгоритмы для поиска новых архитектур.

нейроэволюциейэто недавний подход, который нашел успех в алгоритмах обучения с подкреплением. Это былонедавний успехв задачах обучения подкрепления, где другие алгоритмы (DQN, A2C и т. д.) не сработали.

Сокращение как поиск сетевой архитектуры

Недавно обрезка нейронной сети была пересмотрена как метод поиска архитектуры нейронной сети., Эта статья показывает две основные идеи: 1) можно начать с обрезки нейронной сети и обучить ее с нуля; 2) отсечение может, таким образом, рассматриваться как метод оптимизации архитектуры нейронной сети подобно поиску сетевой архитектуры.

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

Об авторе

У меня почти 20-летний опыт работы в нейронных сетях как в аппаратном, так и в программном обеспечении (редкая комбинация). Смотрите обо мне здесь:средний,страница в Интернете,филолог,LinkedIn, и больше…

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map