ProxylessNAS - розроблений ефективний алгоритм для автоматичного дизайну високопродуктивних нейромереж
ProxylessNAS - розроблений ефективний алгоритм для автоматичного дизайну високопродуктивних нейромереж
ProxylessNAS безпосередньо оптимізує архітектури нейронних мереж для конкретного завдання та обладнання, що дозволяє значно збільшити продуктивність порівняно з попередніми проксі-підходами. На наборі даних ImageNet нейромережа проектується за 200 GPU-годин (у 200-378 разів швидше за аналоги), а автоматично спроектована модель CNN для мобільних пристроїв досягає того ж рівня точності, що і MobileNetV2 1.4, працюючи в 1,8 рази швидше.
em>Дослідники з Массачусетського технологічного інституту розробили ефективний алгоритм для автоматичного дизайну високопродуктивних нейромереж для конкретного апаратного забезпечення, пише видання MIT News.
Алгоритми для автоматичного проектування систем машинного навчання — нова галузь досліджень у сфері ІІ. Така техніка називається пошук нейронної архітектури (neural architecture search, NAS) і вважається важким обчислювальним завданням. У автоматично спроектованих нейромереж точніший і ефективніший дизайн, ніж у тих, які розроблені людьми. Але пошук нейронної архітектури потребує справді величезних обчислень. Наприклад, сучасний алгоритм NASNet-F, нещодавно розроблений Google для роботи на графічних процесорах, займає 48 000 годин обчислень на GPU для створення однієї згорткової нейромережі, яка використовується для класифікації та виявлення зображень. Звичайно, Google може паралельно запустити сотні графічних процесорів та іншого спеціалізованого обладнання. Наприклад, на тисячі GPU такий розрахунок займе лише дві доби. Але такі можливості є далеко не у всіх дослідників, а якщо запускати алгоритм у обчислювальній хмарі Google, то це може влетіти в копійчину.
Дослідники MIT підготували статтю для Міжнародної конференції з навчання (International Conference on Learning Representations, ICLR 2019), яка відбудеться з 6 по 9 травня 2019 року. У статті ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware описується алгоритм ProxylessNAS, здатний безпосередньо розробляти спеціалізовані згорткові нейромережі для конкретних апаратних платформ.
При запуску на масивному наборі даних зображень алгоритм спроектував оптимальну архітектуру лише за 200 годин роботи GPU. Це на два порядки швидше, ніж розробка архітектури CNN за іншими алгоритмами
Вигоду від алгоритму отримають дослідники та компанії, обмежені в ресурсах. Більш спільна мета — «демократизувати ІІ», каже співавтор наукової роботи Сон Хан (Song Han), доцент електротехніки та інформатики в лабораторії технології мікросистем (Microsystems Technology Laboratories) у MIT. Хан додав, що такі алгоритми NAS ніколи не замінять інтелектуальної праці інженерів: «Мета полягає в тому, щоб розвантажити повторювану і стомливу роботу, яка приходить із проектуванням та вдосконаленням архітектури нейронних мереж».
У своїй роботі дослідники знайшли способи видалення непотрібних компонентів нейронної мережі, скорочення часу обчислень та використання тільки частини апаратної пам'яті для запуску алгоритму NAS. Це гарантує, що розроблена CNN більш ефективно працює на конкретних апаратних платформах: CPU, GPU та мобільних пристроях.
Архітектура CNN складається з шарів з регульованими параметрами, званими «фільтрами», та можливих зв'язків між ними. Фільтри обробляють пікселі зображення у квадратних сітках — таких як 3×3, 5×5 або 7×7 де кожен фільтр покриває один квадрат. По суті, фільтри переміщуються за зображенням і поєднують кольори сітки пікселів в один піксель. У різних шарах фільтри різного розміру, які по-різному з'єднані для обміну даними. На виході CNN виходить стисло зображення, скомбіноване з усіх фільтрів. Оскільки кількість можливих архітектур — так званий «простір пошуку» — дуже велика, застосування NAS для створення нейромережі на масивних наборах даних зображень потребує величезних ресурсів. Зазвичай розробники запускають NAS на менших наборах даних (проксі) та переносять отримані архітектури CNN на цільове завдання. Однак такий метод знижує точність моделі. Крім того, одна і та ж архітектура застосовується до всіх апаратних платформ, що призводить до проблем ефективності.
Дослідники MIT навчили та протестували новий алгоритм на завданні класифікації зображень безпосередньо в наборі даних ImageNet, який містить мільйони зображень у тисячі класів. Спочатку вони створили простір пошуку, який містить усі можливі "шляхи" CNN-кандидатів, щоб алгоритм знайшов серед них оптимальну архітектуру. Щоб простір пошуку помістився у пам'ять GPU, вони використовували метод під назвою «бінаризація на рівні шляху» (path-level binarization), який зберігає лише один шлях за раз і на порядок заощаджує пам'ять. Бінарізація поєднується з «обрізанням на рівні шляху» (path-level pruning) - методом, який традиційно вивчає, які нейрони в нейромережі можна безболісно видалити без шкоди для системи. Тільки замість видалення нейронів алгоритм NAS видаляє цілі шляхи, повністю змінюючи архітектуру.
Зрештою алгоритм відсікає всі малоймовірні шляхи і зберігає тільки шлях з найбільшою ймовірністю — це і є кінцева архітектура CNN.