Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
16
Добавлен:
30.05.2020
Размер:
432.17 Кб
Скачать

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

Графічна візуалізація обчислень в системі MATLAB.

Процедури настройки персептронних нейронних мереж

Мета роботи: вивчення структурних схем моделі нейрона і засобів системиMATLAB, використовуваних для побудови графіків функцій активації нейрона; вивчення процедури настройки параметрів персептронних нейронних мереж і реалізація правил настройки в системі MATLAB.

Загальні відомості

1. Графічна візуалізація обчислень в системі MATLAB

Простий нейрон

Елементарним осередком нейронної мережі нейронє . Структура нейрона з єдиним скалярним входом показана на мал. 1,а.

Рис. 1

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

Нейрон, показаний на мал. 1,б, доповнений скалярним зсувомb. Зсув підсумовується із зваженим входом w*p і приводить до зрушення аргументу функціїf на величину b. Дію зсуву можна звести до схеми зважування, якщо уявити, що нейрон має другий вхідний сигнал із значенням, рівним 1 (b*1). Вхід n функції активації нейрона як і раніше залишається скалярним і рівним сумі зваженого входу і зсуву b. Ця сума (w*p + b*1) є аргументом функції активаціїf, а виходом функції активації є сигнал а. Константи w і b є скалярними параметрами нейрона. Основний принцип роботи нейронної мережі полягає в настройці параметрів нейрона так, щоб поведінка мережі відповідала деякій бажаній поведінці. Регулюючи ваги і параметри зсуву, можна навчити мережу виконувати конкретну роботу; можливо також, що мережа сама коректуватиме свої параметри, щоб досягти необхідного результату.

Рівняння нейрона із зсувом має вигляд

(1)

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

(2)

Нейрон з векторним входом

Нейрон з одним вектором входуp з R елементами p1, p2,… pR показаний на рис. 2. Тут кожен елемент входу множиться на ваги w11, w12,… w1R відповідно, і зважені значення передаються на суматор. Їх сума рівна скалярному твору вектора-рядка W на вектор-стовпець входу р.

Нейрон має зсув b, який підсумовується із зваженою сумою входів. Результуюча сума

1

або

Мал. 2

і служить аргументом функції активації f. У нотації мови MATLAB цей вираз записується так:

n = W*p + b.

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

Вхід нейрона зображається у вигляді темної вертикальної межі, п д якою указується кількість елементів входу R. Розмір вектора входу p указується нижче за символ p і рівний Rx1.

Вектор входу множиться на вектор-рядок W довжини R. Як і раніше, константа 1 розглядається як вхід, який множиться на скалярний зсув b.

Входом n функції активації нейрона служить сума зсувуb і добуток W*p. Ця сума перетвориться функцією активації f, на виході якої отримуємо вихід нейронаа, який в даному випадку є скалярною величиною.

Структурна схема, приведена на рис. 3, називається шаром мережі. Шар характеризується матрицею вагів W, зсувом b, операціями множення W*p, підсумовування і функцією активаціїf. Вектор входів p зазвичай не включається в характеристики шаруючи.

Кожного разу, коли використовується скорочене позначення мережі, розмірність матриць указується під іменами векторно-матричних змінних(див. мал. 3). Ця система позначень пояснює будову мережі і пов'язану з нею матричну математику.

Функції активації

Функції активації (передавальні функції) нейрона можуть мати самий різний вигляд. Функція активації f, як правило, належить до класу сигмоїдальних функцій, які мають дві горизонтальні асимптоти і одна точка перегину, з аргументом функції n (входом) і значенням функції (виходом) а.

2

Розглянемо три найбільш поширені форми функції активації.

Одинична функція активації з жорстким обмеженням hardlim.

Дана функція описується співвідношенням а = hardlim(n)= 1(n) і показана на рис. 4.

Рис. 4

Вона рівна 0, якщо n < 0, і рівна 1, якщо n = 0.

Щоб побудувати графік цієї функції в діапазоні значень входу –від5 до +5, необхідно ввести наступних операторів мови MATLAB в командному вікні:

Лінійна функція активації purelin

Ця функція описується співвідношенням а = purelin(n)= n і показана на рис. 5.

Рис. 5

Щоб побудувати графік цієї функції в діапазоні значень входу –від5 до +5, необхідно ввести наступних операторів мови MATLAB в командному вікні:

Логістична функція активації logsig

Ця функція описується співвідношенням а = logsig(n)= = 1/(1+exp(-n)) і показана на рис. 6.

Рис. 6

Дана функція належить до класу сигмоїдальних функцій, її аргумент може приймати будь-яке значення в діапазоні від–∞ до +∞, а вихід змінюється в діапазоні від0 до 1. Завдяки властивості диференційованості (немає точок розриву) ця функція часто використовується в мережах з навчанням на основі методу зворотного розповсюдження помилки.

3

Щоб побудувати графік цієї функції в діапазоні значень входу –від5 до +5, необхідно ввести наступних операторів мови MATLAB в командному вікні:

На укрупненій структурній схемі для позначення типу функції активації застосовуються спеціальні графічні символи; деякі з них приведені на мал. 7, де а–ступінчаста, б – лінійна, в – логістична.

Мал. 7

Побудова графіків функцій однієї змінної в системі MATLAB

Для побудови графіка функції однієї змінної в системіMATLAB використовується оператор plot. При цьому графіки будуються в окремих масштабованих і переміщуваних вікнах. Наприклад, для побудови графіка функціїsinx достатньо спочатку задати діапазон і крок зміни аргументу, потім використовувати оператора plot (мал. 8):

Мал. 8

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

2. Процедури настройки параметрів персептронних нейронних мереж.

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

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

повчальною множиною

(1)

Тут p1, p2 ,… pQ – входи персептрона, а t1, t2,… tQ – необхідні (цільові) виходи.

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

4

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

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

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

Правила настройки персептронних нейронних мереж

Настройка параметрів (навчання) персептрона здійснюється з використанням повчальної множини. Позначимо через p вектор входів персептрона, а через t – вектор відповідних бажаних виходів. Мета навчання – зменшити похибку e = а – t, яка рівна різниці між реакцією нейрона а і вектором мети t.

Правило настройки (навчання) персептрона повинне залежати від величини похибкиe. Вектор мети t може включати тільки значення0 і 1, оскільки персептрон з функцією активаціїhardlim може генерувати тільки такі значення.

При настройці параметрів персептрона без зсуву і з єдиним нейроном можливі тільки три ситуації:

1. Для даного вектора входу вихід персептрона правильний (а = t і e = t а = 0), і тоді вектор вагів w не зазнає змін.

2. Вихід персептрона рівний 0, а повинен бути рівний1 ( а = 0, t = 1 і e = t – 0 = 1). В цьому випадку вхід функції активації wТp негативний і його необхідно скоректувати. Додамо до вектора вагів w вектор входу p, і тоді добуток зміниться на позитивну величину, а після

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

3. Вихід персептрона рівний 1, а повинен бути рівний0 (а = 1, t = 0 і e = t – 0 = –1 ). В цьому випадку вхід функції активаціїwТp позитивний і його необхідно скоректувати. Віднімемо з вектора вагів w вектор входу p, і тоді добуток зміниться на негативну величину, а після декількох таких кроків вхід функції активації стане негативним і вектор входу буде класифікований правильно. При цьому змінюється настройка вагів.

Тепер правило настройки (навчання) персептрона можна записати, пов'язавши зміну вектора вагів w з похибкою e = t а :

Всі три випадки можна описати одним співвідношенням

Можна отримати аналогічний вираз для зміни зсуву, враховуючи, що зсув можна розглядати як вага для одиничного входу:

5

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

Тоді правило настройки (навчання) персептрона можна записати в наступній формі:

Описані співвідношення покладені в основу алгоритму настройки параметрів персептрона, який реалізований в Neural Network Toolbox у вигляді функції learnp. Кожного разу при виконанні функції learnp відбуватиметься перенастроювання параметрів персептрона, і, якщо рішення існує, то процес навчання персептрона сходиться за кінцеве число ітерацій. Якщо зсув не використовується, то функція learnp шукає рішення, змінюючи тільки вектор вагів w. Це приводить до знаходження розділяючої лінії, перпендикулярної вектору w, яка належним чином розділяє вектори входу.

Розглянемо простий приклад персептрона з єдиним нейроном і двоелементним вектором входу

Визначимо зсув b рівним 0, а вектор вагів w рівним [1 –0.8]

Повчальну множину задамо таким чином:

Моделюючи персептрон, розрахуємо вихід і помилку на першому кроці настройки:

a = sim(net,p),e = t-a a =

0

e =

1

Використовуючи функцію настройки параметрів learnp, знайдемо необхідну зміну вагів:

Тоді новий вектор вагів прийме вигляд

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

6

Порядок виконання роботи

Завдання 1

Побудувати графіки функцій активації в заданих діапазонах значень відповідно до варіанту(таблиця), використовуючи функцію plot.

Номер

Діапазони значень

Ім'я функції

варіанту

входу

 

1

-3...+3

hardlim

2

-1...+1

hardlims

3

- 4 . +4

purelin

4

-2...+2

poslin

5

-8...+8

satlin

6

-9...+9

satlins

7

-7...+7

radbas

8

-5...+5

tribas

9

-3...+3

logsig

10

-6...+6

tansig

11

-8…+8

poslin

12

-7…+7

hardlims

13

-2…+2

purelin

14

-4…+4

radbas

15

-9…+9

tansig

16

-1…+1

tribas

Завдання 2

1.Для заданого варіанту завдання(таблиця) виконати розрахунок настройки вагів і зсувів персептронной нейронної мережі.

2.Розробити алгоритм створення і моделювання персептронної нейронної мережі.

3.Реалізувати розроблений алгоритм в системі MATLAB.

4.Визначити параметри створеної нейронної мережі(ваги і зсув) і перевірити правильність роботи мережі для послідовності вхідних векторів (не менше 5).

5.Роздрукувати текст програми.

Номер

Один двоелементний вхід; кількість нейронів – 1

Діапазони

 

 

варіанту

Входи персептрона

Цільові виходи

значень входів

 

 

 

 

 

 

 

1

-4...+4

{[-3; 1] [2; -1] [2; 2] [3; -1]}

{1 1 0 0}

2

-3...+3

{[-2; -1] [1; -1] [0; 1] [2; 0]}

{1 0 1 0}

3

-2...+2

{[0; 0] [1; 1] [-1; 1] [-1; 0]}

{0 0 1 1}

4

-4…+4

{[-2; 2] [1; 2] [0; 0] [3; -2]}

{0 1 0 1}

5

-3...+3

{[-1; 1] [-2; -1] [1; -2] [2; 0]}

{1 0 0 1}

6

-2+2

{[0; 0] [-1; 1] [-1; 0] [1; 1]}

{0 1 1 0}

7

-4…+4

{[-2; 1] [1; -2] [3; -1] [2; 2]}

{0 0 0 1}

8

-3...+3

{[-2; 1] [0; 1] [2; -1] [-2; -1]}

{0 0 1 0}

9

-2+2

{[-1; -1] [0; 0] [1; -1] [1; 1]}

{1 1 1 0}

10

-4…+4

{[0; 0] [2; -2] [1; -2] [-2; -1]}

{0 1 0 0}

7