Краткое руководство по проблемам, связанным с поиском нейронной архитектуры

Статья построена на основе моей предыдущей статьи, в которой представлено краткое введение в Поиск нейронной архитектуры (NAS).

Таким образом, NAS пытается заменить зависимость от человеческой интуиции автоматическим поиском нейронной архитектуры для данной задачи.

Для получения дополнительной информации, пожалуйста, проверьте мой предыдущий пост.

Краткий обзор NAS

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

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

Это видно на рисунке 1, где стратегия поиска отправляет архитектуру A в блок оценки производительности, который возвращает метрику производительности стратегии поиска.

Используя этот показатель производительности, стратегия поиска обновит свой внутренний механизм для навигации в пространстве поиска нейронной архитектуры.

Сразу же возникает вопрос: «Как мы измеряем производительность нейронной архитектуры?».

Оценка производительности

Попробуем разобраться на примере.

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

Теперь, чтобы получить производительность нейронной архитектуры A, выполните следующие действия:

Первый шаг:

Разделите набор для обучения на 2 набора: обучающий набор и проверочный набор, как показано на рис. 3.

Второй шаг:

Обучите нейронную архитектуру A на обучающем наборе данных за фиксированное количество эпох. После обучения у вас будет нейронная архитектура с тренированными весами.

Теперь оцените точность обученной нейронной архитектуры A на проверочном наборе. Это становится показателем производительности, возвращаемым блоком «Оценка производительности» на рис. 1.

Узкое место

Теперь, что является узким местом алгоритма NAS?

Именно этот блок «Оценка производительности» на рис. 1 требует огромных вычислительных ресурсов и в итоге требует огромного количества времени для выполнения поиска архитектуры.

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

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

Итак, в общей сложности нам нужно 1 x 10 000 = 10 000 часов для выполнения всего обучения. Эти 10 000 часов составляют 416,67 дней (или более года).

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

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

Заключение

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

Подпишитесь на DDIntel Здесь.

Присоединяйтесь к нашей сети здесь: https://datadriveninvestor.com/collaborate