Структурна оптимізація штучних нейронних мереж



Розглянуто проблему підвищення ефективності нейронних мереж. Запропонований оригінальний алгоритм структурної оптимізації. Розроблена система що може використовуватись для підвищення якості роботи існуючих нейромережевих технологій.

Structural optimization of artificial neural networks

Ferens Dmytro, Yaroslaw Dorogyy ACTS NTUU “KPI”

Ukraine, Kyiv

Summary

A problem of increasing the efficiency of neuralnetworks has been examined. The original algorithm of structural optimization basedon genetic algorithm and immutable data structures was proposed.A system which can be used to enhancethe effectiveness of existing neural network technologies was developed.

Keywords

Neuralnetworks, data science, genetic algorithms, immutable data structures

Штучні нейронні мережі — математичні моделі побудовані за принципом функціонування біологічних нейронних мереж [1]. На сьогоднішній день апарат нейронних мереж широко використовується для вирішення задач класифікації, кластеризації та регресії. Проте, найбільш значимим недоліком нейронних мереж є складність вибору оптимальної структури мережі – кількості шарів, нейронів та зв’язків між ними. Проблема вибору структури тісно зв’язана з проблемами недонавчання та перенавчання. Занадто прості мережі не здатні виявляти закономірності у реальних задачах. Занадто складні мережі мають багато надлишкових параметрів що в процесі навчання налаштовуються не лише на виявлення закономірностей але і на відтворення шуму.

На сьогоднішній день, підбір архітектури нейронної мережі, кількості шарів та нейронів, топології, швидкості навчання та інших гіперпараметрів мережі виконується шляхом проб та помилок. Взаємозв’язок між гіперпараметрами та здатністю до узагальнення невідомий. Саме тому, генетичні алгоритми є ідеальними кандидатами для вирішення таких задач [2].

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

Програмна реалізація системи має вигляд клієнт-серверного додатку з асинхронною комунікацією шляхом протоколу WebSocket. Для серверної частини була використана мова програмування Clojure [3] – функціональна мова загального призначення. Для реалізації мережі використовуються незмінні версії двохмірних матриць – при спробі змінити об’єкт такої матриці користувач отримує новий об’єкт, повністю незалежний від оригінального. Таким чином, різні мутації над однією мережею можна обчислювати паралельно і незалежно одна від одної, що значно підвищує ефективність системи.

Для клієнтської частини була використана мова програмування ClojureScript - підмножина мови програмування Clojure що виконується в середовищі веб-переглядача. Це дає змогу значну частину програмного коду використовувати як на клієнтській так і на серверній частинах, що значно спрощує програмування.

На початку роботи, користувачу необхідно задати параметри навчання, параметри генетичного алгоритму та конфігурацію початкової мережі. Оскільки алгоритм орієнтований на оптимізацію існуючих мереж, рекомендується заздалегідь підібрати початкову кількість навчальних епох, протягом яких мережа навчається у звичайному режимі. Також, необхідно вибрати набір даних на яких відбуватиметься навчання.

Панель налаштування алгоритму

Для навчання мережі використовується алгоритм зворотнього поширення помилки що включає такі методи регуляризації як затухання ваг та інерційність градієнтного спуску. Корекції ваг та зміщення обчислюються:

\[\Delta{{w}_{i,j}}\left[ t+1 \right]=-\eta {{y}_{i}}{{\delta }_{i}}+\mu \Delta{{w}_{i,j}}\left[ t \right]-\frac{\eta \varepsilon }{N}{{w}_{i,j}}\left[ t\right]\]

\[\Delta{{b}_{i}}=-\eta {{\delta }_{j}}\]

Окрім того, під час навчання використовуються методи DropOut [4] та DropConnect [5]. Інтерфейс користувача надає змогу задати вірогідність активації кожного нейрону у методі DropOut та вірогідність активації (присутності) у мережі кожного зв’язку у методі DropConnect.

Оскільки кількість ітерацій генетичного алгоритму може бути необмеженою а кількість можливих мутацій збільшується експоненційно по відношенню до розміру мережі, час роботи алгоритму може бути значним. Узв’язку з цим, доцільно використовувати асинхронну модель шляхом протоколу WebSocket – сервер після обчислення кожної мутації та кожної ітерації відправляє результати асинхронно на клієнт що динамічно їх відображає.

Приклад роботи додатку

На рисунку зображений інтерфейс програми під час роботи алгоритму: послідовність вибраних мутацій кожної ітерації, значення ціни на навчальній та тестовій вибірках, витрачений час на обрахунок. Для кожної ітерації алгоритму можливо переглянути усі перевірені мутації у порядку зростання значення ціни. Також, графічний інтерфейс надає змогу порівняти мережу одержану за допомогою структурної оптимізації та після традиційного навчання еквівалентної кількості епох.

Було проведено моделювання алгоритму та дослідження його роботи для вирішення різних задач класифікації та розпізнавання. При вирішенні завдання MONK’s-3 [6] алгоритму вдалось зменшити тривалість навчання мережі більш ніж удвічі у порівнянні із традиційним алгоритмом. У задачі TwoSpirals [7] алгоритм зумів побудувати складну багатошарову мережу що виконує класифікацію з точністю 92.7% При класифікації обличч [8] алгоритм зменшив швидкість навчання та збільшив точність класифікації з 93.4% до 95.8% , видаливши при цьому близкько 10% зв’язків початкової мережі.

Перелік посилань:

  1. Хайкин С. Нейронные сети, полный курс [Текст] /Саймон Хайкин. – 2-е изд., перед. – М. : Вильямс, 2008. - 1103 с. – ISBN5-8459-0890-6

  2. Dasgupta D. Designing Application-Specific NeuralNetworks using the Structured Genetic Algorithm [Текст] / Dasgupta D., McGregor D.: Proceedings of International Workshop on Combinations of Genetic Algorithms and Neural Networks. – 1992.

  3. Clojure – home [Електронний ресурс] : [Інтернет-портал]. – [USA,2008-2014]. – Режим доступу: www.clojure.org (дата звернення 2.05.2015 р.). – Назва з екрана.

  4. Sristava N. Dropout: A SimpleWay to Prevent Neural Networks from overfitting [Текст] / Sristava N., HintonG., Krizhevsky A., Sutskever I., Salakhutdinov R. // Journal of Machine Learning Research. – 2014. –Vol. 15.

  5. Wan L. Regularization of Neural Networkusing DropConnect [Текст] / Wan L., Zeiler M., Zhang S., LeCun Y., Fergus R.: International Conference on Machine Learning. – 2013.

  6. Thrun S. The monk's problems: A performance comparison of di erent learning algorithms [Текст] : Technical Report CMU-CS-91-197. – Carnegie Mellon University. – 1991.

  7. Lang K. Learningto Tell Two Spirals Apart [Текст] / Lang K., Witbrock M.: Proceedings of the Connectionist Models Summer School. – 1988.

  8. The Yale Face database B [Електронний ресурс]: Електронні дані. –– [USA, 2001-2015]. – Режим доступу: www.vision.ucsd.edu/~iskwak/ExtYaleDatabase/Yale%20Face%20Database.htm (дата звернення 1.05.2015 р.). – Назва з екрана.
May 25, 2016