НАЛАШТУВАННЯ ПАРАМЕТРІВ ГЛИБОКИХ НЕЙРОННИХ МЕРЕЖ ЗА ДОПОМОГОЮ ЕВОЛЮЦІЙНИХ АЛГОРИТМІВ
01.12.2024 13:14
[1. Інформаційні системи і технології]
Автор: Книш Тетяна Олегівна, магістр, Західноукраїнський національний університет, м. Тернопіль
Глибокі нейронні мережі, хоч і дуже потужні, є надзвичайно складними через їхню варіативну архітектуру та велику кількість налаштувань. Якщо налаштування традиційного алгоритму машинного навчання, такого як Random Forest, є досить простим (де основним параметром є кількість дерев), то для глибокого навчання потрібно визначити складну архітектуру мережі, яка часто залежить від задачі, що розв’язується. Наприклад, для задач розпізнавання чи класифікації зображень глибокі мережі складаються з кількох шарів, кожен з яких виконує свою специфічну функцію у трансформації даних [1-3].
Глибока нейронна мережа будується із багатьох шарів, що розташовані у певному порядку та мають різні функції, щоб допомогти визначити складні, нелінійні зв'язки між вхідними даними та виходом. Кожен шар може містити різну кількість нейронів, мати свої початкові налаштування ваг і функції активації. Усі ці параметри повинні бути визначені до початку навчання, і простір можливих налаштувань дуже великий, оскільки оптимальна комбінація залежить від конкретної задачі, що потребує вирішення.
Конструкція багатошарової архітектури обмежується деякими правилами. Наприклад, вихід одного шару має відповідати формату вхідних даних наступного. Якщо шар очікує вектор на вході, а йому передують дані у двовимірній формі (як у випадку з шаром Reshape), необхідно забезпечити правильне узгодження даних. Також є обмеження щодо налаштувань кожного нового шару, який додається до моделі, – наприклад, шар Reshape потребує кортеж, що визначає розмірність вихідної матриці, яка має відповідати розміру вхідного вектора.
Таким чином, налаштування параметрів і структури нейронної мережі створюють великий простір пошуку з безліччю можливих конфігурацій. Оскільки головна мета полягає в досягненні максимальної точності моделі, вибір оптимальної конфігурації є завданням оптимізації. У цій роботі використано еволюційний алгоритм для виконання метаевристичного пошуку, що дозволяє знайти конфігурацію з високою точністю для задач класифікації.
Спроба налаштування різних комбінацій параметрів і архітектур шарів може сильно впливати на продуктивність моделі в задачах класифікації, які є одними з найпоширеніших для глибоких мереж. Тому правильний вибір параметрів і структури шарів можна розглядати як задачу оптимізації, де метою є поліпшення точності класифікації.
Через масштабність простору пошуку ми вирішили використати еволюційні алгоритми [4], які показали хороші результати в оптимізаційних задачах із великими просторами пошуку.
Еволюційний алгоритм також може знайти комбінацію параметрів або структуру шарів, яку експерт міг би не вибрати через певні упередження чи обмежені знання про задачу. Наприклад, експерт може уникати певних комбінацій шарів, оскільки такі конфігурації рідко зустрічаються в літературі. Однак еволюційний алгоритм може знайти унікальну послідовність шарів, яка покаже високі результати у класифікації, навіть якщо ця комбінація є нетиповою.
У даному підході кожен індивід у популяції еволюційного алгоритму представляє певну архітектуру мережі зі своїми параметрами. Значення придатності для кожного індивіда обчислюється як точність мережі при розв'язанні задачі класифікації. Користувачеві потрібно лише визначити, які параметри будуть включені в простір пошуку, та встановити діапазон значень для кожного з них. Щоб зменшити розмір простору пошуку, ми використали числові послідовності з певним кроком між значеннями. Для категоріальних параметрів, таких як функція активації, потрібно задати список можливих значень. Усі параметри передаються до функції ініціалізації індивіда, яка генерує популяцію, а також визначає обмеження для мутацій, щоб гарантувати допустимі варіації.
У кожному поколінні до індивідів послідовно застосовуються оператори рекомбінації та мутації з певною ймовірністю для кожного процесу. Це дає змогу відтворити необхідну кількість індивідів, які потім оцінюються на основі їхньої точності. Після оновлення значень придатності кожного індивіда застосовується метод відбору за рулеткою, що обирає індивідів пропорційно до їхніх значень придатності серед нової популяції та тих, що залишились з попереднього покоління. Це дозволяє зберегти індивідів з хорошою продуктивністю, зберігаючи різноманітність у популяції, щоб алгоритм не застряг у локальному максимумі.
Використання еволюційних алгоритмів забезпечує гнучкість і ефективність у пошуку оптимальних архітектур мереж, зберігаючи різноманітність конфігурацій і мінімізуючи ризик застрягання в локальних максимумах. Це дає змогу отримувати точні моделі навіть для складних задач класифікації, забезпечуючи їхню адаптацію до специфіки даних. Таким чином, інтеграція еволюційних алгоритмів у процес налаштування глибоких нейронних мереж є ефективним підходом для підвищення їхньої продуктивності.
Література
1. LeCun Y., Bengio Y., Hinton G. Deep learning, Nature, 2015. Vol. 521, No. 7553. Pp. 436–444.
2. Hinton G., Deng L., Yu D., Dahl G.E., Mohamed A.-r., Jaitly N., Senior A., Vanhoucke V., Nguyen P., Sainath T.N., et al. Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups, IEEE Signal Processing Magazine, 2012. Vol. 29, No. 6. Pp. 82–97.
3. Acharya U.R., Oh S.L., Hagiwara Y., et al. A deep convolutional neural network model to classify heartbeats. Computers in Biology and Medicine. 2017. Vol. 89. Pp. 389–396.
4. Eiben A.E., Smith J.E. Introduction to evolutionary computing, in: Natural Computing, Springer-Verlag Berlin Heidelberg, 2003.