Файл: Лабораторна робота 8.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.05.2024

Просмотров: 16

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторна робота №8

Тема: Апроксимація функції з використанням нейронних мереж.

Мета : навчитися використовувати нейронні мережі для апроксимації функції.

Завдання: У середовищі Matlab| необхідно побудувати і навчити нейронну мережу для апроксимації табличний заданої функції , i=1,20|. Розробити програму, яка реалізує нейромережний алгоритм апроксимації і виводить результати апроксимації у вигляді графіків.

1 Теоретичні відомості

 

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

Нейрон є складовою частиною нейронної мережі. Загальна структура:

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

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

Математична модель нейрона:

де S – результат підсумовування (sum|); щ(i) – вага (weight|) синапсу, i=1,n|; x – компонент вхідного вектора (вхідний сигнал), i=1,n|; b – значення зсуву (bias|); n – число входів нейрона; у – вихідний сигнал нейрона; f – нелінійне перетворення (функція активації).


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

Синаптічеськие зв'язки з позитивними вагами називають збудливими, з негативними – гальмуючими. Описаний обчислювальний елемент можна вважати спрощеною математичною моделлю біологічних нейронів. Щоб підкреслити відмінність нейронів біологічних і штучних, других іноді називають нейроподібними елементами, або формальними нейронами.

На вхідний сигнал S нелінійний перетворювач відповідає вихідним сигналом f(S), який є виходом у нейрона.

Приклади активаційних функцій:

Приклади активаційних функцій:

а) функція одиничного стрибка; б) лінійний поріг (гістерезис);

в) сигмоїд| (логістична функція); г) сигмоїд| (гіперболічний тангенс).

Одній з найбільш поширених є нелінійна функція активації, так звана логістична функція, або сигмоїд| (функція S – образного вигляду):

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

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

2 Методика вказівки

 

Завдання. У середовищі Matlab| необхідно побудувати і навчити нейронну мережу для апроксимації табличний заданої функції yi=f|(xi|)=[2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 489 5.06 5.63 5.91], i=1,20|.

У математичному середовищі Matlab| створюємо новий M-File|, в якому записуємо код програми створення і навчання нейронної мережі з використанням вбудованих функцій пакету мереж Neural| Netwworks| Toolbox|.


Для вирішення скористаємося функцією newff|(.) – створення «класичною» багатошаровою НС з навчанням по методу зворотного розповсюдження помилки.

P = zeros|(1,20);

for| i = 1:20 %создание масиву

P(i)= i*0.1; %входные дані (аргумент)

end|

T=|[2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 489 5.06 5.63 5.91]; %входные дані (значення функції)

net| = newff|([-1 2.09],[5 1],{'tansig|' 'purelin|'}); %создание нейронній мережі

net|.trainParam.epochs = 100; %задание числа епох навчання

net=train|(net,P,T|); %обучение мережі

у = sim|(net,P|); %опрос навченій мережі

figure| (1);

hold| on|;

xlabel| ('P'|);

ylabel| ('T'|);

plot|(P,T,P,y,'o|'),grid|;%прорисовка графіка початкових даних і функції, сформованою нейронною мережею

 

3 Контрольні питання

 

1. Дайте визначення «нейрона».

2. Що Ви розумієте під навчанням нейронної мережі? 

3. Що таке «повчальна множина»? 

4. Поясните сенс алгоритму навчання з вчителем. 

5. Що таке апроксимація функції?

6. Які функції в середовищі Маtlab використовуються для створення нейронної мережі? .