Короткі теоретичні відомості

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

1) створення мережі;

2) навчання мережі;

3) тестування мережі;

4) використання мережі для розв’язання поставленого завдання.

Приклад розрахунку параметрів мережі.

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

Вихідний вектор вибирають таким чином, щоб його компоненти відповідали векторам входу.

У нейропакеті NeuralNetworkToolbox системи Matlab задання вхідного і вихідного вектора записується наступним чином:

– вхідний вектор

– вихідний (цільовий) вектор

Число нейронів у прихованому шарі визначається за формулою:

,

де n – число вхідних нейронів (); m – число вихідних нейронів (); – число елементів навчальної вибірки (); – число синаптичних ваг.

Підставивши відповідні значення, отримаємо

.

Оцінивши необхідне число ваг, розраховують число нейронів у прихованому шарі:

.

Експериментально встановлено, що для задачі апроксимації кращі результати дає двошарова однонапрямлена мережа, що містить один нейрон у вхідному шарі, 30 нейронів в прихованому шарі і один нейрон у вихідному
шарі.

Вихідний сигнал формального нейрона обчислює активаційна або передатна функція. Зазвичай це функція purelin або tansig (функції показані в таблиці 4.1). Зауважимо, що за замовчанням у пакеті NeuralNetworksToolbox використовується функція tansig.

Таблиця 4.1 – Види передавальних функцій

Передавальні функції Графік Формула Діапазон значень
purelin
tansig

 

Створювана багатошарова (двошарова) мережа – це мережа з безперервними сигналами, тому для обчислення вихідних сигналів прихованого шару використовується гладенька безперервна функція гіперболічного тангенса tansig.

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

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

Для створення однонапрямленої нейронної мережі, що навчається із застосуванням алгоритму зворотного поширення в нейропакеті NeuralNetworksToolbox, використовується функція newff.

Синтаксис функції newff має вигляд:

net = newff (PR, [S1 S2... SNl], {TF1 TF2... TFNl}, BTF, BLF, PF)

Функція newff як вхідні параметри використовує:

PR – матрицю мінімальних та максимальних значень для вхідних елементів з розмірністю . Для отримання матриці PR можна використовувати функцію minmax;

Si – кількість нейронів в i- му шарі, N1 – кількість шарів;

TFi - функцію активації i- го шару, за замовчанням 'tansig';

BTF – навчальну функцію зворотного поширення, за замовчанням 'trainlm';

BLF – алгоритм підстроювання ваг і зміщень (навчальний алгоритм), за замовчанням 'learngdm';

PF - функцію оцінки функціонування мережі, за замовчанням 'mse'.

Функція newff повертає однонапрямлену мережу, що складається з N
шарів.

Для перегляду і подальшого моделювання створеної нейронної мережі застосовується функція gensim (net), яка генерує нейромережевий блок Simulink. Структурна схема мережі зображується за допомогою типового набору блоків, з'єднувальних елементів і позначень, прийнятих у пакеті NeuralNetworksToolbox і пакеті Simulink системи Matlab.

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

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

Алгоритм зворотного поширення помилки діє ітеративно, по кроках, які називають епохами або циклами. Величина кроку визначає швидкість навчання. При великому кроці є велика ймовірність пропуску абсолютного мінімуму, а при малому кроці зростає час навчання.

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

- реалізовано задану кількість циклів;

- помилка досягла заданої величини;

- помилка досягла деякого значення і перестала зменшуватися;

- градієнт помилки став менше заданого.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: