ПОРІВНЯЛЬНИЙ АНАЛІЗ ФУНКЦІЙ АКТИВАЦІЇ БАГАТОШАРОВОГО ПЕРСЕПТРОНУ
21.09.2022 20:56
[1. Информационные системы и технологии]
Автор: Лихошерстов Дмитро Олександрович, аспірант кафедри конструювання електронно обчислювальної апаратури, Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського»; Лебедев Денис Юрійович, кандидат технічних наук, доцент, доцент кафедри конструювання електронно обчислювальної апаратури Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського»
При створені різноманітних систем передбачення, прийняття рішень чи розпізнавання образів необхідно визначитися із структурно-функціональною будовою нейромережі. Вибір функції активації відіграє важливу роль, адже це безпосередньо впливає на характеристики роботи нейромережі. В сучасних системах, швидкодія та точність визначення образів відіграє надважливу роль.
В даній праці пропонується за допомогою експерементальних досліджень порівняти функції активації, а саме лінійні, логістичні та гіперболічні. В якості технічного завдання буде виступати додаток, котрий визначає цифру введену користувачем в спеціальне поле за допомогою курсора миші.
Для реалізації системи визначення цифр буде створено нейромережу. Архітектура нейромережі це багатошаровий персиптрон, котрий складається із вхідний шар, прихований шар та шар вихідних нейронів (рис. 1).
В якості функції активації виберемо три базові та найчастіше вживані, а саме - сигмоїдна функція, ModReLU(ReL з витіком) та тангенс (рис.2). Слід звернути увагу, дві функції мають експонентні залежності, а одна немає. Таким чином зможемо встановити вплив експоненти на якість роботи нейромережі та швидкодію.
Рис. 1 – Загальна структура багатошарового персиптрону
Рис. 2 – Графік та формула функцій активації
В якості навчальної бази для нейромережі використаємо базу даних «MNIST database» [1]. В даній базі знаходиться 60 тисяч цифр від “0” до “9” у файлі “train-labels-idx1-ubyte” для навчання багатошарового персиптрону та 10 тисяч цифр у файлі “train-images-idx3-ubyte” для тестування. Всі дані представлені у бінарному вигляді, де переходу від білого кольору до чорного кольору відповідає діапазон від 0 до 1. Кожна цифра в базі даних представляє собою зображення, що має розміри 28 на 28 пікселів, а це в свою чергу буде означати, що на вхідному шарі отримуємо 784 вхідних нейрони. Також потрібно зазначити, що діапазон кольорової відповідності знаходиться в межах від 0 до 1 включно, то діапазони для активаційних функцій стають також в межах від 0 до 1. Для сігмоїдної функції змін немає. Для ModReLU та th(x) змінюється діапазон.
Проект був створений на С++ в середовищі програмування Visual Studio. Для реалізації графічної складової використовували бібліотеки Qt. Також дана бібліотека підтримує створення крос-платформового застосунку (рис. 3). Зарахунок бібліотеки Qt та інтегрованого середовища розробки Qt Creator є можливість з легкістю адаптувати створений застосунок до інших операційних систем. Інтерфейс застосунку зображений на рис. 4 та лістинг програми був завантажено на GitHub [2]. Відео роботи застосунку можна знайти на платформі Google[3].
Рис. 3 – Функціонально-структурна схема додатку
В ході тестування додатку було встановленно, що:
1. Значення точності системи із функцією активації ModReLU має найбільшу точність (рис. 5) в межах 85% - 96% в залежності від навчального датасету. Детальніше на табл. 1 та рис. 5.
2. Система не має жодних сповільнень в роботі на системі із процесором AMD Ryzen 3900X та 32GB пам’яті DDRR4 при роботі сигмоїдної функції та ModReLU. При роботі тангенса час навчання збільшився в 2 – 3 рази (від сигмоїдної приблизно в 2 рази, а від ModReLU в 3 рази). Слід зазначити, що база даних була однакова при всіх трьох навчаннях.
3. Згідно табл. 1 ModReLU має найвищий діапазон точності при навчанні та кращий показник точності при тестуванні системи. Сигмоїдна функція продемонструвала друге значення при навчані та тестувані. th(x) продемонструвала найгірші значення.
Рис. 4 – Загальний вигляд користувацького інтерфейсу додатку по визначенню цифр на вхідному зображені
Табл. 1 – Значення точності визначення для активаційних функцій
Рис. 5 – Результати роботи нейромережі для різних активаційних функцій
Висновки - в ході тестування додатку було встановлено, що функція активації ModReLU має найкращі показники в швидкості навчання, в точності визначення як при навчані нейромережі так і при тестуванні. Сигмоїдна функція продемострувала середні показники. Функція активації th(x) продемонструвала найгірші показник – час навчання збільшився в 2 – 3 рази, точність визначення погіршилася в середньому аж в 10 разів.
Список літератури:
1. База даних MNIST database - http://yann.lecun.com/exdb/mnist/.
2. Лістинг фреймворку - https://github.com/date7887/Multilayer-perceptron.
3. Відео роботи застосунка - https://drive.google.com/drive/folders/19-RL--k3L91iW2-1JPjoTAEIaxpxeA8y?usp=sharing.