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

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

Так как же найти нейронные архитектуры для наших наборов данных?

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

Почти все популярные статьи по NAS вручную проектируют макроархитектуру. Они применяют либо байесовскую оптимизацию, либо эволюционные алгоритмы, либо обучение с подкреплением, либо поиск дифференцированной архитектуры, чтобы найти микро / модульные блоки для интеграции в структуру макросов. Перечислить все микроструктуры сложно с вычислительной точки зрения, поэтому в алгоритмах поиска применяются многие априорные значения. Эти априорные значения обычно кодируются в дискретном пространстве поиска, доступном для алгоритма. Например, в пространстве NASNet каждый узел имеет фиксированную степень ввода 2, и в архитектуре Micro имеется 5 таких узлов.

Эти априорные значения / предубеждения в области поиска подтверждают гипотезу о том, что нейронные архитектуры оптимально настроены на основе использования различных операций. Эта гипотеза предсказывает, что что-то вроде входного узла, прошедшего через свертку 3x3, а затем конкатенированного с результатом дополненного нулями максимального пула 2x2, обработка одного и того же входа будет наиболее успешной. Очевидно, эта гипотеза предполагает гораздо более сложную комбинацию операций, однако я думаю, что этот быстрый пример передает идею.

Этот приоритет в области поиска NAS отражает предпочтение дизайна сети Inception по сравнению с проектами ResNet или DenseNet. Inception / GoogLeNet передает входной блок для разделения блоков обработки, таких как максимальное объединение 3x3 и свертки 1x1, 3x3 и 5x5. Все выходные данные блоков затем либо поэлементно суммируются, либо объединяются по оси признаков, чтобы сформировать выходной сигнал микроячейки.

ResNet и DenseNets сосредоточены на подключении или потоке данных между операциями обработки.

ResNet использует простую схему разводки, которая достигла прорыва в точности классификации изображений и позволила обучать гораздо более глубокие нейронные сети. ResNet «пропустить соединение» принимает входные данные с предыдущего уровня (или блока микроархитектуры) (l-1) и отправляет их вперед на (l + 1). DenseNet использует более интенсивную схему подключения, отправляя все предыдущие входы на следующий уровень. Например, слой (l + 4) будет получать входные данные (l, l + 1, l + 2 и l + 3).

Нейронные сети со случайным подключением

Аргумент в этом сообщении заключается в том, что Подключение ›Подключение различных операций в контексте поиска по нейронной архитектуре. Случайно подключенные нейронные сети используют одну и ту же операцию для каждого узла - разделительную свертку 3x3 по глубине. Вместо того, чтобы сосредотачиваться на соединении операций, таких как свертки с различными размерами фильтров, через умные пути, эти сети просто случайным образом соединяют одну и ту же операцию во всех архитектурах Micro. Макроархитектура сети со случайной разводкой разработана авторами статьи. Это включает в себя такие решения, как количество этапов для пространственной субдискретизации карт функций и количество узлов, которые должны быть на каждом этапе. Эти сети в конечном итоге выглядят как на изображении ниже:

Эти сети быстро генерируются с использованием алгоритмов случайного графа, которые используют эвристику для управления распределением степени узла (количества соединений) по всей сети. Самое интересное, что один из этих алгоритмов (алгоритм WS) используется в сетевой науке для моделирования сетей малого мира. Это описывает социальные явления, при которых мы в среднем находимся на расстоянии 6 прыжков друг от друга в социальных сетях. В статье упоминается, что эта структура была вдохновлена ​​неврологией, и подчеркивается, что коннектом из 300 нейронов нематоды (червя) также имеет эту структуру маленького мира.

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

Если вам нужно полное объяснение статьи о случайной проводной нейронной сети и о том, как случайный граф преобразуется в DAG / CNN, посмотрите видео ниже!

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