Один из современных алгоритмов NAS, недавно разработанный Google, потребовал 48000 часов работы группы графических процессоров (GPU) для создания единой сверточной нейронной сети, используемой для задач классификации и идентификации изображений. У Google есть все необходимое для параллельной работы сотен графических процессоров и других специализированных схем, но это недоступно для многих других.
В статье, представленной на Международной конференции по обучающим представлениям в мае, исследователи Массачусетского технологического института описывают алгоритм NAS, который может напрямую изучать специализированные сверточные нейронные сети (CNN) для целевых аппаратных платформ – при запуске на массивном наборе данных изображений – всего за 200 Часы работы графического процессора, которые могут обеспечить более широкое использование этих типов алгоритмов.
Исследователи утверждают, что ограниченные в ресурсах исследователи и компании могут извлечь выгоду из алгоритма экономии времени и средств.
Общая цель – «демократизировать ИИ», – говорит соавтор Сон Хан, доцент кафедры электротехники и информатики и исследователь лаборатории Microsystems Technology Laboratories в Массачусетском технологическом институте. «Мы хотим дать возможность как экспертам в области ИИ, так и неспециалистам эффективно разрабатывать архитектуры нейронных сетей с помощью кнопочного решения, которое быстро работает на определенном оборудовании."
Хан добавляет, что такие алгоритмы NAS никогда не заменят человеческих инженеров. «Цель состоит в том, чтобы разгрузить повторяющуюся и утомительную работу, связанную с проектированием и совершенствованием архитектур нейронных сетей», – говорит Хан, к которому в статье присоединились два исследователя из его группы, Хан Цай и Лигенг Чжу.
Бинаризация и обрезка "на уровне пути"
В своей работе исследователи разработали способы удаления ненужных компонентов дизайна нейронной сети, чтобы сократить время вычислений и использовать только часть аппаратной памяти для запуска алгоритма NAS.
Дополнительное нововведение гарантирует, что каждая выведенная CNN работает более эффективно на определенных аппаратных платформах – процессорах, графических процессорах и мобильных устройствах – по сравнению с теми, которые разработаны с использованием традиционных подходов. В тестах CNN исследователей составляли 1.Измерения на мобильном телефоне в 8 раз быстрее, чем у традиционных моделей, соответствующих золотому стандарту, с аналогичной точностью.
Архитектура CNN состоит из уровней вычислений с регулируемыми параметрами, называемыми «фильтрами», и возможных связей между этими фильтрами.
Фильтры обрабатывают пиксели изображения в виде сеток квадратов, таких как 3×3, 5×5 или 7×7, причем каждый фильтр покрывает один квадрат. Фильтры по существу перемещаются по изображению и объединяют все цвета покрытой ими сетки пикселей в один пиксель. Различные слои могут иметь фильтры разного размера и подключаться для обмена данными по-разному. Результатом является сжатое изображение – из объединенной информации от всех фильтров – которое может быть более легко проанализировано компьютером.
Поскольку количество возможных архитектур на выбор, называемое «пространством поиска», настолько велико, применение NAS для создания нейронной сети на массивных наборах данных изображений является недопустимым с точки зрения вычислений. Инженеры обычно запускают NAS на небольших наборах данных прокси и передают изученную архитектуру CNN в целевую задачу.
Этот метод обобщения снижает точность модели, однако. Более того, одна и та же выводимая архитектура также применяется ко всем аппаратным платформам, что приводит к проблемам с эффективностью.
Исследователи обучили и протестировали свой новый алгоритм NAS на задаче классификации изображений в наборе данных ImageNet, который содержит миллионы изображений в тысячах классов. Сначала они создали пространство поиска, которое содержит все возможные «пути» CNN-кандидатов – то есть, как слои и фильтры соединяются для обработки данных.
Это дает алгоритму NAS свободу выбора для поиска оптимальной архитектуры.
Обычно это означает, что все возможные пути должны храниться в памяти, что превышает пределы памяти графического процессора. Чтобы решить эту проблему, исследователи используют технику, называемую «бинаризацией на уровне пути», которая сохраняет только один выбранный путь за раз и снижает потребление памяти на порядок. Они сочетают эту бинаризацию с «сокращением на уровне пути», методом, который традиционно изучает, какие «нейроны» в нейронной сети можно удалить, не влияя на результат.
Однако вместо того, чтобы отбрасывать нейроны, алгоритм NAS исследователей обрезает целые пути, что полностью меняет архитектуру нейронной сети.
При обучении всем путям изначально дается одинаковая вероятность выбора.
Затем алгоритм отслеживает пути – сохраняя только по одному за раз – чтобы отметить точность и потерю (числовой штраф, назначаемый за неправильные прогнозы) их выходных данных. Затем он регулирует вероятности путей для оптимизации как точности, так и эффективности. В конце концов, алгоритм отсекает все пути с низкой вероятностью и оставляет только путь с наибольшей вероятностью – что и является окончательной архитектурой CNN.
С учетом аппаратного обеспечения
Другим ключевым нововведением стало то, что алгоритм NAS "осведомлен об оборудовании", говорит Хан, что означает, что он использует задержку на каждой аппаратной платформе в качестве сигнала обратной связи для оптимизации архитектуры. Например, для измерения этой задержки на мобильных устройствах крупные компании, такие как Google, будут использовать «ферму» мобильных устройств, что очень дорого.
Вместо этого исследователи построили модель, которая прогнозирует задержку, используя только один мобильный телефон.
Для каждого выбранного уровня сети алгоритм выбирает архитектуру на основе этой модели прогнозирования задержки. Затем он использует эту информацию для разработки архитектуры, которая работает как можно быстрее, обеспечивая при этом высокую точность.
В экспериментах CNN исследователей работала почти в два раза быстрее, чем модель золотого стандарта на мобильных устройствах.
По словам Хан, одним интересным результатом стало то, что их алгоритм NAS спроектировал архитектуры CNN, которые долгое время считались слишком неэффективными, но в тестах исследователей они фактически были оптимизированы для определенного оборудования. Например, инженеры практически перестали использовать фильтры 7×7, потому что они в вычислительном отношении дороже, чем несколько фильтров меньшего размера. Тем не менее, алгоритм NAS исследователей обнаружил, что архитектуры с некоторыми уровнями фильтров 7×7 оптимально работают на графических процессорах.
Это связано с тем, что графические процессоры обладают высокой степенью распараллеливания, то есть они выполняют множество вычислений одновременно, поэтому могут обрабатывать один большой фильтр одновременно более эффективно, чем обработка нескольких небольших фильтров по одному.
«Это противоречит предыдущему человеческому мышлению», – говорит Хан. "Чем больше пространство поиска, тем больше неизвестных вещей вы сможете найти.
Вы не знаете, будет ли что-то лучше, чем прошлый человеческий опыт. Пусть ИИ разберется."
