Пошук архітектури нейронної мережі (ПАНМ, англ.Neural Architecture Search)[1][2] — це метод для автоматизації проектування штучних нейронних мереж (ШНМ), модель що широко використовується у галузі машинного навчання. ПАНМ використано для розробки мереж, які не поступаються або перевершують архітектури, розроблені вручну.[3][4] Методи ПАНМ можна класифікувати за простором пошуку, стратегією пошуку та стратегією оцінки продуктивності:[1]
Простір пошуку визначає тип(и) ШНМ, які можуть бути проектовані та оптимізовані.
Стратегія пошуку визначає підхід, використовуваний для дослідження простору пошуку.
Стратегія оцінки продуктивності оцінює продуктивність можливої ШНМ на етапі розробки (без її створення та навчання).
Навчання з підкріпленням (НП) може бути основою для стратегії пошуку ПАНМ. Barret Zoph та Quoc Viet Le[en][3] використали ПАНМ з НП для обробки набору даних CIFAR-10[en] і досягли архітектури мережі, яка конкурує з кращими розробленими вручну архітектурами за точністю, з рівнем помилок 3,65, що на 0,09 % краще та у 1,05 рази швидше, ніж у відповідної моделі, спроектованої вручну. На наборі даних Penn Treebank[en] (PTB) ця модель створила рекурентний блок, який перевершує LSTM, досягаючи значення складності тестового набору 62,4, або на 3,6 складності краще, ніж попередня провідна система. На завданні мовного моделювання символів PTB вона досягла 1,214 бітів на символ.[3]
Навчання архітектури моделі безпосередньо на великому наборі даних може бути тривалим процесом. NASNet[4][7] розв'язав цю проблему шляхом перенесення структурного блоку, розробленого для невеликого набору даних, на більший набір даних. Конструкція була обмежена використанням двох типів згорткових блоків для повернення карт ознак, які виконують дві основні функції при згортці вхідної карти ознак: звичайні комірки, які повертають карти однакового розміру (висоти і ширини), і комірки зменшення, в яких висота і ширина повернутої карти ознак зменшуються вдвічі. Для комірок зменшення початкова операція, яка застосовується до входів крміпрк, використовує крок два (для скорочення висоти і ширини).[4] Вивчені елементи конструкції включали такі аспекти, які нижній (нижні) шар(и) кожного вищого шару взято як вхід, перетворення, застосовані на тому шарі та об'єднання кількох виходів на кожному шарі. У вивченому прикладі найкращий згортковий шар (або «комірка») був розроблений для набору даних CIFAR-10[en] і потім застосований до набору даних ImageNet[en], створюючи копії цієї комірки, кожну зі своїми параметрами. Такий підхід забезпечив точність на рівні 82,7 % топ-1 та 96,2 % топ-5. Це перевищило кращі архітектури, створені вручну, за рахунок 9 мільярдів менших операцій з рухомою комою FLOPS — зменшення на 28 %. Система продовжувала перевершувати вручну розроблений альтернативний варіант на різних рівнях обчислень. Вивчені ознаки зображень, отримані в результаті класифікації зображень, можуть бути перенесені на інші задачі комп'ютерного зору. Наприклад, для виявлення об'єктів навчені комірки, інтегровані з фреймворком Faster-RCNN, покращили продуктивність на 4 % на наборі даних COCO.[4]
У так званому Ефективному Пошуці Архітектури Нейронних Мереж (ЕПАНМ), контролер виявляє архітектури, навчаючись шукати оптимальний підграф у великому графі. Контролер навчається за допомогою методу градієнту стратегії вибирати підграф, який максимізує очікувану винагороду набору перевірки. Модель, що відповідає підграфу, навчається мінімізувати канонічну втрату перехресної ентропії. Кілька дочірніх моделей ділять параметри, ЕПАНМ потребує менше годин на GPU, ніж інші підходи, і в 1000 разів менше, ніж «стандартний» ПАНМ. На CIFAR-10[en] ЕПАНМ досягнув тестової помилки 2,89 %, що зіставно з NASNet. На Penn Treebank ЕПАНМ досягнув показника помилки тесту 55,8.[8]
Еволюція
Альтернативний підхід до ПАНМ ґрунтується на еволюційних алгоритмах і використовується кількома групами.[9][10][11][12][13][14][15] Еволюційний алгоритм для ПАНМ зазвичай виконує наступну процедуру.[16] Спочатку створюється пул, що складається з різних архітектур-кандидатів разом із їхніми балами валідації (привабливість). На кожному етапі архітектури в пулі кандидатів мутуються (наприклад: заміна згорткового шару 3x3 на згортковий шар 5x5). Далі нові архітектури тренуються з нуля протягом кількох епох, і отримують бали валідації. Потім найгірші архітектури в пулі кандидатів замінюються кращими, новішими архітектурами. Цю процедуру повторюють кілька разів, і таким чином пул кандидатів з часом удосконалюється. Мутації в контексті еволюції ШНМ — це операції, такі як додавання або видалення шару, включаючи зміну типу шару (наприклад, від згорткового до пулінгу), зміну гіперпараметрів шару та зміну гіперпараметрів навчання. На наборах даних CIFAR-10[en] та ImageNet[en] еволюція та НП показали порівнянні результати, при цьому обидва дещо перевершували випадковий пошук.[12][11]
Баєсова оптимізація
Баєсова оптимізація (БО), яка довела свою ефективність у гіперпараметричній оптимізації, також може бути застосована до ПАНМ. У цьому контексті цільова функція відображає архітектуру на її помилку валідації після навчання протягом кількох епох. На кожній ітерації баєсова оптимізація використовує замінник для моделювання цієї цільової функції на основі раніше отриманих архітектур і їхніх помилок валідації. Далі обирається наступна архітектура для оцінки, максимізуючи функцію вибору, таку як очікуване покращення, яке забезпечує баланс між дослідженням та експлуатацією. Максимізація функції вибору та оцінка цільової функції часто є обчислювально-витратними для ПАНМ, що робить застосування байєсівської оптимізації складним у цьому контексті.
Недавно BANANAS[17] досягла багатообіцяючих результатів у цьому напрямку, запровадивши високопродуктивну реалізацію БО у поєднанні з нейронним предиктором.
Сходження на вершину
Інша група дослідників використовувала алгоритм сходження на вершину, при якому застосовувалися морфізми мережі, а потім короткі косинусоїдальні прогони оптимізації. При такому підході було отримано конкурентоздатні результати, при цьому використовувана кількість ресурсів була приблизно такого ж порядку, яка необхідна для навчання однієї мережі. Наприклад, на наборі даних CIFAR-10[en] цей метод створив і навчив мережу з рівнем помилок менше 5 % протягом 12 годин на одному графічному процесорі.[18]
Багатокритеріальний пошук
Хоча більшість підходів виключно зосереджені на пошуку архітектури з максимальною прогнозною ефективністю, для більшості практичних застосувань інші цілі також є важливими, такі як використання пам'яті, розмір моделі чи час отримання висновку. З цієї причини дослідники створили багатокритеріальний пошук.[15][19]
LEMONADE[15] — це еволюційний алгоритм, який використовує Ламаркізм для ефективної оптимізації кількох цілей. На кожному поколінні створюються дочірні мережі для покращення Парето-ефективності відносно поточної популяції ШНМ.
Neural Architect[19] вважається багатокритеріальним НП-заснованим ПАНМ з урахуванням ресурсів із вбудовуванням мережі та передбаченням продуктивності. Вбудовування мережі перетворює існуючу мережу в навчальний вектор вбудовування. На основі вбудовування контролерна мережа генерує трансформації цільової мережі. Багатокритеріальна функція винагороди враховує точність мережі, обчислювальний ресурс та час навчання. Винагорода передбачається кількома мережами імітації продуктивності, які навчаються перед або спільно з контролерною мережею. Контролерна мережа навчається методом градієнту стратегії. Після модифікації отримана мережа-кандидат оцінюється як мережею точності, так і мережею часу навчання. Результати комбінуються за допомогою системи винагороди, яка передає свій результат назад контролерній мережі.
Моделі одного погляду
НП або ПАНМ на основі еволюції вимагає тисяч годин використання графічних процесорів пошуку/навчання для досягнення найсучасніших результатів комп'ютерного зору, як описано в статтях NASNet, mNASNet та MobileNetV3.[4][20][21]
Для зменшення обчислювальних витрат багато останніх методів ПАНМ покладаються на ідею розподілу ваги.[22][23] У цьому підході визначається одна надпараметризована супермережа (також відома як модель одного погляду). Супермережа є дуже великим спрямованим ациклічним графом, підграфи якого є різними нейромережами-кандидатами. Таким чином, у супермережі ваги спільно використовуються великою кількістю різних підархітектур, які мають спільні ребра, кожне з яких розглядається як шлях у межах супермережі. Основна ідея полягає в тому, щоб навчити одну супермережу, яка охоплює багато варіантів остаточного дизайну, замість створення та навчання тисяч мереж незалежно одна від одної. Крім навчених параметрів, вивчається набір параметрів архітектури для відображення вподобань одного модуля порівняно з іншим. Такі методи зменшують необхідні обчислювальні ресурси до кількох GPU-днів.
Більш нові роботи додатково поєднують цю парадигму спільного використання ваг, з неперервним розширенням простору пошуку,[24][25][26][27] що дозволяє використовувати методи оптимізації на основі градієнтів. Загалом ці підходи відомі як диференційований пошук архітектур (Differentiable NAS) і виявилися дуже ефективними у дослідженні простору пошуку нейроархітектур. Одним з найпопулярніших алгоритмів серед градієнтних методів для пошуку архітектур ПАНМ є DARTS.[26] Однак DARTS стикається з проблемами, такими як продуктивність в процесі навчання через неминуче об'єднання пропускових з'єднань та погане узагальнення, які були вирішені багатьма сучасними алгоритмами.[28][29][30][31] Методи, такі як[29][30], спрямовані, на забезпечення стійкості DARTS та зроблення ландшафту точності валідації більш гладкими за допомогою введення регуляризації на основі гессіана та випадкового згладжування/атак-протиагенту. Причини погіршення продуктивності подальше аналізуються з точки зору вибору архітектури.[32]
Диференційований пошук архітектур (Differentiable NAS) показав конкурентоздатні результати, використовуючи лише частину часу пошуку, якого вимагають методи пошуку на основі НП. Наприклад, FBNet (скорочено від Facebook Berkeley Network) продемонструвала, що пошук на основі супермережі породжує мережі, які перевершують криву компромісу між швидкістю та точністю mNASNet та MobileNetV2 на наборі даних з класифікації зображень ImageNet. FBNet досягає цього, використовуючи у більш ніж 400 разів менше часу пошуку, ніж було використано для mNASNet.[33][34][35] Крім того, SqueezeNAS продемонстрував, що пошук на основі супермережі породжує нейромережі, які перевершують криву компромісу між швидкістю та точністю MobileNetV3 на наборі даних з семантичної сегментації Cityscapes, і SqueezeNAS використовує у більш ніж 100 разів менше часу пошуку, ніж використовувався авторами MobileNetV3 для пошуку НП-засобами.[36][37]
Бенчмарки для пошуку архітектур нейронних мереж
Пошук архітектур нейронних мереж часто вимагає значних обчислювальних ресурсів через витрати на дороговартісні етапи навчання та оцінки. Це додатково призводить до великого вуглецевого сліду, необхідного для оцінки цих методів. Щоб подолати це обмеження, були впроваджені бенчмарки для ПАНМ,[38][39][40][41] на основі яких можна або оцінити, або передбачити кінцеву продуктивність нейронних архітектур за лічені секунди. Бенчмарк для ПАНМ визначається як набір даних із фіксованим розподілом тренувань та тестів, простором пошуку та фіксованим конвеєром тренування (гіперпараметрами). Головним чином існують два типи бенчмарків для ПАНМ: замісниковий та табличний. Замісниковий бенчмарк використовує замісникову модель (наприклад, нейронну мережу), щоб передбачити продуктивність архітектури з простору пошуку. З іншого боку, табличний бенчмарк оцінює фактичну продуктивність архітектури, навченої до збіжності. Обидва ці бенчмарки можна запитувати та використовувати для ефективного моделювання багатьох ПАНМ-алгоритмів, використовуючи лише центральний процесор для запиту замість навчання архітектури з нуля.
↑Ying, C., Klein, A., Christiansen, E., Real, E., Murphy, K. and Hutter, F., 2019, May. Nas-bench-101: Towards reproducible neural architecture search. In International Conference on Machine Learning (pp. 7105-7114). PMLR.
↑Zela, A., Siems, J. and Hutter, F., 2020. Nas-bench-1shot1: Benchmarking and dissecting one-shot neural architecture search. arXiv preprint arXiv:2001.10422.
↑Dong, X. and Yang, Y., 2020. Nas-bench-201: Extending the scope of reproducible neural architecture search. arXiv preprint arXiv:2001.00326.
↑Siems, J., Zimmer, L., Zela, A., Lukasik, J., Keuper, M. and Hutter, F., 2020. Nas-bench-301 and the case for surrogate benchmarks for neural architecture search. arXiv preprint arXiv:2008.09777.