НОУ ІНТУІТ, Лекція, Методи класифікації та прогнозування
Пакет Matlab
Пакет MATLAB (The MathWorks) також надає користувачам можливість роботи з нейронними мережами. MATLAB "Neural Network Toolbox", що входить у стандартну поставку, надає широкі можливості для роботи з нейронними мережами всіх типів.
Перевага пакету MATLAB полягає в тому, що при його використанні користувач не обмежений моделями нейронних мереж та їх параметрами, жорстко закладеними в нейросимуляторі, а має можливість самостійно сконструювати ту мережу, яку вважає оптимальною для вирішення поставленого завдання.
Розглянемо приклад конструювання нейронної мережі у пакеті Matlab.
Нехай є 15 незалежних змінних – показників діяльності фірми та одна залежна змінна – обсяг продажів. Маємо базу даних за минулий рік. Необхідно збудувати понеділковий прогноз обсягів продажів на місяць. Для вирішення задачі пропонується використовувати тришарову мережу зворотного розповсюдження.
Сформуємо таку мережу, яка включає 15 нейронів у входному шарі (за кількістю вхідних змінних), 8 нейронів у другому шарі та 1 нейрон у вихідному шарі (за кількістю вихідних змінних).
Для кожного шару виберемо передатну функцію: перший шар – tansig, другий – logsig, третій – purelin.
У середовищі Matlab синтаксис такої нейронної мережі виглядає так:
де PR - масив мінімальних та максимальних значень для R векторів входу;
Si - кількість нейронів у i-му шарі;
TFi – функція активації шару i;
btf - навчальна функція, що реалізує метод зворотного розповсюдження;
blf - функція налаштування, що реалізує метод зворотного розповсюдження;
pf – критерій якості навчання.
Активаційною функцією може бути будь-яка диференційована функція , наприклад, tansig, logsig, purelin.
де P - безліч вхідних векторів;
n - кількість входів СР;
m - кількість нейронів у прихованому шарі;
l - кількість виходів СР.
Необхідно встановити метод розрахунку значення помилки. Наприклад, якщо вибрано метод найменших квадратів, то ця функція виглядатиме так: Net .performFcn='SSE'.
Для встановлення максимальної кількості епох рівним 10000 скористаємося функцією: net.trainParam.epochs=10000.
Запустити процес навчання можна таким чином:
Після закінчення навчання мережі її можна зберегти у файлі, наприклад, з ім'ям nn1. mat.
Для цього необхідно виконати команду:
Таким чином, у пакеті можливе конструювання мережі будь-якої складності і немає необхідності прив'язуватися до обмежень, що накладаються нейросимуляторами. Однак для роботи з нейронними мережами в пакеті Matlab необхідно вивчити як саме середовище, так і більшість функцій Neural Network Toolbox. Для більш детального вивчення конструювання нейронних мереж Neural Network Toolbox можна порекомендувати [49, 50].