Модуль навчання паралельної рекурентної нейронної мережі в системі Matlab

 

Дунець Оксана Василівна

Студентка Тернопільського національного економічного університету

Факультет комп’ютерних інформаційних технологій

Кафедра Інформаційно-обчислювальних систем та управління

Спеціальність: комп’ютерні науки

4 курс

Група КН-41

Завідувач кафедри, д.т.н, проф. Саченко А.О.

доц. к.т.н. Турченко В.О.

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

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

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

Використано вбудований модуль рекурентної НМ в системі Matlab, а за допомогою функції «layrecnet» в програмі створюється нова рекурентна НМ на основі вхідних даних (рисунок 1), яка навчатиметься на основі методу групового навчання за алгоритмом зворотного поширення помилки, що складається з наступних кроків [3, 4]:

  1. Встановити сумарну квадратичну помилку SSE (Sum Squared Error) в необхідне мінімальне значення SSE та кількість епох навчання;
  2. Проініціалізувати пороги та вагові коефіцієнти нейронів значеннями з відрізку (0-0.5);
  3. Для вхідного вектора виконати наступну навчальну ітерацію:3.1. Обрахувати  вихідне значення БШП 1

    3.2. Обчислити помилку вихідного нейрону    2та помилку нейронів схованого шару 3

    3.3. Обчислити зміни вагових коефіцієнтів та порогів всіх нейронів та додати їх до відповідних значень змін, отриманих для попередніх навчальних векторів 4.1 4.2 4.3 4.4

    3.4. Обрахувати SSE5.1

    1. Повторити крок 3 вище для кожного навчального вектора  , де pt?{1,…,PT}, де  – розмір усієї вхідної навчальної вибірки;
    2. Обчислити вагові коефіцієнти та пороги нейронів використовуючи вирази   5.1 5.2 5.3де6  -крок навчання;
    3. Обчислити загальну SSE E(t)  для навчальної епохи використовуючи вираз:   7
    4. Якщо значення  E (t)  більше, ніж бажана мінімальна помилка  Emin,  то збільшити номер навчальної епохи до   та знову перейти до кроку 3, в іншому випадку – завершити процес навчання.

TNn - копия

Алгоритм навчання нейронної мережі зображений на рисунку 2.

обучение нм

Рисунок 2 – Алгоритм навчання рекурентної НМ

Після введення усіх даних користувачем буде створена нейронна мережа, якщо усі введенні дані будуть вірні, тоді наступить етап тренування нейронної мережі, її тестування та виведення вихідних результатів.

Графічний інтерфейс користувача розроблений в системі Matlab за допомогою команди guide. Для кодування модуля було розроблено чотири модуля: графічного вводу, зчитування даних з файлів, навчання та виводу результатів навчання, виводу результатів прогнозу.

Інтерфейс користувача запрограмований в системі Matlab за допомогою команди «gui», a саме функції – «guide» [5]. Виклик функції «guide»  дозволяє створити діалоговий екран, а функція «guide» викликає саме вікно для створення  користувацького інтерфейсу, у якому можна обрати різні об’єкти для позначення клавіш, а саме: pushbutton, edit, popupmenu, checkbox та інші. Коли  об’єкт був вибраний, то його оголошення  у програмному файлі відбувається автоматично, далі необхідно запрограмувати об’єкт на потрібне функціонування. Розроблений графічний інтерфейс зображений на рисунку  3, де користувач може вибрати вхідний файл із даними, встановити кількість входів, схованих шарів та виходів, обрати функцію активації та метод навчання, вказати назву вихідного файлу та можливість паралельного навчання нейронної мережі, запустити на виконання програму або ж закрити її.

график

Рисунок 3 – Вікно графічного інтерфейсу

Висновки. Таким чином, розроблено алгоритми функціонування структурних частин модуля програми, модуль паралельного навчання рекурентної нейронної мережі та графічний інтерфейс, з використанням функції guide в системі Matlab. Проведені експериментальні дослідження прискорення розпаралелення показали, що ефективність розпаралелення становить 47% на 2 ядрах комп’ютера.

Список використаних джерел

  1. Haykin S. Neural networks and learning machines / S. Haykin – Prentice Hall, 2008. – 936 p
  2. Турченко В.О. Паралельна грід-базована бібліотека для навчання нейронних мереж. / В.О. Турченко – Тернопіль: ТНЕУ, 2012. – 89 с.
  3. Турченко В.О. Порівняння ефективності групового навчання багатошарового персептрону на паралельному комп’ютері та обчислювальному кластері // В.О. Турченко – Вісник Національного Технічного Університету України «Київський Політехнічний Інститут». Інформатика, управління та обчислювальна техніка: Збірник наукових праць. – Київ: ВЕК+, 2011. – №54. – С. 130-138.
  4. Turchenko V., Grandinetti L. Parallel Batch Pattern BP Training Algorithm of Recurrent Neural Network, Proceedings of the 14th IEEE International Conference on Intelligent Engineering Systems / V. Turchenko, L. Grandinetti – 2010, Las Palmas of Gran Canaria, Spain, pp. 25-30.
  5. 5. Function Guide Matlab [Електронний ресурс] – Режим доступу до сторінки: http://www.mathworks.com/help/matlab/gui-development.html

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *