Пошук архітектури нейронної мережі

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Пошук архітектури нейронної мережі (ПАНМ, англ. Neural Architecture Search)[1][2] — це метод для автоматизації проектування штучних нейронних мереж (ШНМ), модель що широко використовується у галузі машинного навчання. ПАНМ використано для розробки мереж, які не поступаються або перевершують архітектури, розроблені вручну.[3][4] Методи ПАНМ можна класифікувати за простором пошуку, стратегією пошуку та стратегією оцінки продуктивності:[1]

  • Простір пошуку визначає тип(и) ШНМ, які можуть бути проектовані та оптимізовані.
  • Стратегія пошуку визначає підхід, використовуваний для дослідження простору пошуку.
  • Стратегія оцінки продуктивності оцінює продуктивність можливої ШНМ на етапі розробки (без її створення та навчання).

ПАНМ тісно пов'язаний із оптимізацією гіперпараметрів[5] та метанавчанням[6] і є підгалуззю автоматизованого машинного навчання (AutoML).

Навчання з підкріпленням[ред. | ред. код]

Навчання з підкріпленням (НП) може бути основою для стратегії пошуку ПАНМ. 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] на основі яких можна або оцінити, або передбачити кінцеву продуктивність нейронних архітектур за лічені секунди. Бенчмарк для ПАНМ визначається як набір даних із фіксованим розподілом тренувань та тестів, простором пошуку та фіксованим конвеєром тренування (гіперпараметрами). Головним чином існують два типи бенчмарків для ПАНМ: замісниковий та табличний. Замісниковий бенчмарк використовує замісникову модель (наприклад, нейронну мережу), щоб передбачити продуктивність архітектури з простору пошуку. З іншого боку, табличний бенчмарк оцінює фактичну продуктивність архітектури, навченої до збіжності. Обидва ці бенчмарки можна запитувати та використовувати для ефективного моделювання багатьох ПАНМ-алгоритмів, використовуючи лише центральний процесор для запиту замість навчання архітектури з нуля.

Примітки[ред. | ред. код]

  1. а б Elsken, Thomas; Metzen, Jan Hendrik; Hutter, Frank (8 серпня 2019). Neural Architecture Search: A Survey. Journal of Machine Learning Research. 20 (55): 1—21. arXiv:1808.05377. Bibcode:2018arXiv180805377E — через jmlr.org.
  2. Wistuba, Martin; Rawat, Ambrish; Pedapati, Tejaswini (4 травня 2019). A Survey on Neural Architecture Search. arXiv:1905.01392 [cs.LG].
  3. а б в Zoph, Barret; Le, Quoc V. (4 листопада 2016). Neural Architecture Search with Reinforcement Learning. arXiv:1611.01578 [cs.LG].
  4. а б в г д Zoph, Barret; Vasudevan, Vijay; Shlens, Jonathon; Le, Quoc V. (21 липня 2017). Learning Transferable Architectures for Scalable Image Recognition. arXiv:1707.07012 [cs.CV].
  5. Matthias Feurer and Frank Hutter. Hyperparameter optimization. In: AutoML: Methods, Systems, Challenges, pages 3–38.
  6. Vanschoren, Joaquin (2019). Meta-Learning. Automated Machine Learning. The Springer Series on Challenges in Machine Learning. с. 35—61. doi:10.1007/978-3-030-05318-5_2. ISBN 978-3-030-05317-8. S2CID 239362577.
  7. Zoph, Barret; Vasudevan, Vijay; Shlens, Jonathon; Le, Quoc V. (2 листопада 2017). AutoML for large scale image classification and object detection. Research Blog (амер.). Процитовано 20 лютого 2018.
  8. Hieu, Pham; Y., Guan, Melody; Barret, Zoph; V., Le, Quoc; Jeff, Dean (9 лютого 2018). Efficient Neural Architecture Search via Parameter Sharing. arXiv:1802.03268 [cs.LG].
  9. Real, Esteban; Moore, Sherry; Selle, Andrew; Saxena, Saurabh; Suematsu, Yutaka Leon; Tan, Jie; Le, Quoc; Kurakin, Alex (3 березня 2017). Large-Scale Evolution of Image Classifiers. arXiv:1703.01041 [cs.NE].
  10. Suganuma, Masanori; Shirakawa, Shinichi; Nagao, Tomoharu (3 квітня 2017). A Genetic Programming Approach to Designing Convolutional Neural Network Architectures (англ.). arXiv:1704.00764v2 [cs.NE].
  11. а б Liu, Hanxiao; Simonyan, Karen; Vinyals, Oriol; Fernando, Chrisantha; Kavukcuoglu, Koray (1 листопада 2017). Hierarchical Representations for Efficient Architecture Search (англ.). arXiv:1711.00436v2 [cs.LG].
  12. а б Real, Esteban; Aggarwal, Alok; Huang, Yanping; Le, Quoc V. (5 лютого 2018). Regularized Evolution for Image Classifier Architecture Search. arXiv:1802.01548 [cs.NE].
  13. Miikkulainen, Risto; Liang, Jason; Meyerson, Elliot; Rawal, Aditya; Fink, Dan; Francon, Olivier; Raju, Bala; Shahrzad, Hormoz; Navruzyan, Arshak; Duffy, Nigel; Hodjat, Babak (4 березня 2017). Evolving Deep Neural Networks. arXiv:1703.00548 [cs.NE].
  14. Xie, Lingxi; Yuille, Alan (2017). Genetic CNN. 2017 IEEE International Conference on Computer Vision (ICCV). с. 1388—1397. arXiv:1703.01513. doi:10.1109/ICCV.2017.154. ISBN 978-1-5386-1032-9. S2CID 206770867.
  15. а б в Elsken, Thomas; Metzen, Jan Hendrik; Hutter, Frank (24 квітня 2018). Efficient Multi-objective Neural Architecture Search via Lamarckian Evolution. arXiv:1804.09081 [stat.ML].
  16. Liu, Yuqiao; Sun, Yanan; Xue, Bing; Zhang, Mengjie; Yen, Gary G; Tan, Kay Chen (2021). A Survey on Evolutionary Neural Architecture Search. IEEE Transactions on Neural Networks and Learning Systems. PP (2): 1—21. arXiv:2008.10937. doi:10.1109/TNNLS.2021.3100554. PMID 34357870. S2CID 221293236.
  17. White, Colin; Neiswanger, Willie; Savani, Yash (2 листопада 2020). BANANAS: Bayesian Optimization with Neural Architectures for Neural Architecture Search. arXiv:1910.11858 [cs.LG].
  18. Thomas, Elsken; Jan Hendrik, Metzen; Frank, Hutter (13 листопада 2017). Simple And Efficient Architecture Search for Convolutional Neural Networks. arXiv:1711.04528 [stat.ML].
  19. а б Zhou, Yanqi; Diamos, Gregory. Neural Architect: A Multi-objective Neural Architecture Search with Performance Prediction (PDF). Baidu. Процитовано 27 вересня 2019.
  20. Tan, Mingxing; Chen, Bo; Pang, Ruoming; Vasudevan, Vijay; Sandler, Mark; Howard, Andrew; Le, Quoc V. (2018). MnasNet: Platform-Aware Neural Architecture Search for Mobile. arXiv:1807.11626 [cs.CV].
  21. Howard, Andrew; Sandler, Mark; Chu, Grace; Chen, Liang-Chieh; Chen, Bo; Tan, Mingxing; Wang, Weijun; Zhu, Yukun; Pang, Ruoming; Vasudevan, Vijay; Le, Quoc V.; Adam, Hartwig (6 травня 2019). Searching for MobileNetV3. arXiv:1905.02244 [cs.CV].
  22. Pham, H., Guan, M.Y., Zoph, B., Le, Q.V., Dean, J.: Efficient neural architecture search via parameter sharing. In: Proceedings of the 35th International Conference on Machine Learning (2018).
  23. Li, L., Talwalkar, A.: Random search and reproducibility for neural architecture search. In: Proceedings of the Conference on Uncertainty in Artificial Intelligence (2019).
  24. H. Cai, L. Zhu, and S. Han. Proxylessnas: Direct neural architecture search on target task and hardware. ICLR, 2019.
  25. X. Dong and Y. Yang. Searching for a robust neural architecture in four gpu hours. In IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2019.
  26. а б H. Liu, K. Simonyan, and Y. Yang. Darts: Differentiable architecture search. In ICLR, 2019
  27. S. Xie, H. Zheng, C. Liu, and L. Lin. Snas: stochastic neural architecture search. ICLR, 2019.
  28. Chu, Xiangxiang and Zhou, Tianbao and Zhang, Bo and Li, Jixiang. Fair darts: Eliminating unfair advantages in differentiable architecture search. In ECCV, 2020
  29. а б Arber Zela, Thomas Elsken, Tonmoy Saikia, Yassine Marrakchi, Thomas Brox, Frank Hutter. Understanding and Robustifying Differentiable Architecture Search. In ICLR, 2020
  30. а б Xiangning Chen, Cho-Jui Hsieh. Stabilizing Differentiable Architecture Search via Perturbation-based Regularization. In ICML, 2020
  31. Yuhui Xu, Lingxi Xie, Xiaopeng Zhang, Xin Chen, Guo-Jun Qi, Qi Tian, Hongkai Xiong. PC-DARTS: Partial Channel Connections for Memory-Efficient Architecture Search. In ICLR, 2020
  32. Ruochen Wang, Minhao Cheng, Xiangning Chen, Xiaocheng Tang, Cho-Jui Hsieh. Rethinking Architecture Selection in Differentiable NAS. In ICLR, 2022
  33. Wu, Bichen; Dai, Xiaoliang; Zhang, Peizhao; Wang, Yanghan; Sun, Fei; Wu, Yiming; Tian, Yuandong; Vajda, Peter; Jia, Yangqing; Keutzer, Kurt (24 May 2019). FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture Search. arXiv:1812.03443 [cs.CV].
  34. Sandler, Mark; Howard, Andrew; Zhu, Menglong; Zhmoginov, Andrey; Chen, Liang-Chieh (2018). MobileNetV2: Inverted Residuals and Linear Bottlenecks. arXiv:1801.04381 [cs.CV].
  35. Keutzer, Kurt (22 травня 2019). Co-Design of DNNs and NN Accelerators (PDF). IEEE. Процитовано 26 вересня 2019.
  36. Shaw, Albert; Hunter, Daniel; Iandola, Forrest; Sidhu, Sammy (2019). SqueezeNAS: Fast neural architecture search for faster semantic segmentation. arXiv:1908.01748 [cs.CV].
  37. Yoshida, Junko (25 серпня 2019). Does Your AI Chip Have Its Own DNN?. EE Times. Процитовано 26 вересня 2019.
  38. 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.
  39. Zela, A., Siems, J. and Hutter, F., 2020. Nas-bench-1shot1: Benchmarking and dissecting one-shot neural architecture search. arXiv preprint arXiv:2001.10422.
  40. Dong, X. and Yang, Y., 2020. Nas-bench-201: Extending the scope of reproducible neural architecture search. arXiv preprint arXiv:2001.00326.
  41. 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.