Материал: Лабораторна робота №8 Персептрон

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

підсумовування і функцією активаціїf. Вектор входів р зазвичай не включається в характеристики шаруючи.

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

Моделювання персептрона засобами MATLAB

Для формування моделі одношарового персептрона в системі MATLAB призначена функція newp

net = newp(PR, S)

з наступними вхідними аргументами: PR - масив мінімальних і максимальних значень для R елементів входу розміру R 2; S - число нейронів в шарі.

Наприклад, функція net = newp([0 2], 1);

створює персептрон з одноелементним входом і одним нейроном; діапазон значень входу - [0 2].

Як функція активації персептрона за умовчанням використовується функ hardlim.

ВИКОНАННЯ РОБОТИ

Модель нейрона

Для виконання роботи запустіть MATLAB і перейдіть в DEMOS - режим:

Help>Demos>Toolboxes>Neural Networks>

В процесі роботи познайомтеся з простим одновхідним нейроном і з нейроном, що має векторний вхід (декілька входів). Для ознайомлення з простим нейроном виберіть і запустіть приклад

Simple neuron and transfer functions>Run Simple neuron and...

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

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

Для завершення роботи з прикладом клацніть кнопку Close.

6

Малюнок 10

Для вивчення властивостей нейрона з векторним входом необхідно запусти приклад:

Neuron with vector input>Run Neuron with vector.

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

Моделювання персептрона

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

Розглянемо одношаровий персептрон з одним двоелементним вектором входу, значення елементів якого змінюються в діапазоні від–2 до 2 (p1 = [–2 2], p2 = [–2 2], число нейронів в мережі S = 1):

clear, net = newp([-2 2;-2 2],1); %Створення персептрона net

За умовчанням ваги і зсув рівні нулю, і для того, щоб встановити бажані значення, необхідно застосувати наступних операторів:

net.IW{1,1} = [-1 1];

% Ваги w11= -1; w12 = 1

net.b{1} = [1];

% Зсув b = 1

Запишемо рівняння (1) в розгорненому вигляді для даної мережі:

7

В цьому випадку розділяюча лінія має вигляд

і відповідає лінії L на мал. 8.

Визначимо реакцію мережі на вхідні векториp1 і p2, розташовані по різні сторони від розділяючої лінії:

p1=[1; 1];

a1=sim(net,p1) % Моделювання мережі net з вхідним вектором p1 a1=

1 p2=[1; -1];

a2=sim(net,p2) % Моделювання мережі net з вхідним вектором p2 a2=

0

Персептрон правильно класифікував ці два вектори.

Відмітимо, що можна було б ввести послідовність двох векторів у вигляді масиву осередків і отримати результат також у вигляді масиву осередків

p3={[1; 1] [1; -1]}

a3=sim(net,p3) % Моделювання мережі net при вхідному сигналі p3 p3 =[2x1 double] [2x1 double]

a3 =

[1][0]

Ініціалізація параметрів

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

clear, net = newp([-2 2;-2 2],1);

Запитаємо характеристики вагів входу

 

 

net.inputweights{1, 1}

 

 

 

ans =

 

 

 

 

delays: 0

 

 

 

initFcn: ‘initzero’

 

 

 

learn: 1

 

 

 

learnFcn: ‘learnp’

 

 

 

learnParam: []

 

 

 

size: [1 2]

 

 

 

userdata: [1x1 struct]

 

 

weightFcn: ‘dotprod’

 

 

 

З цього списку виходить, що

як функція

ініціалізації за

умовчан

використовується функція initzero, яка

привласнює вагам

входу нульові значення. У

цьому можна переконатися, якщо витягувати значення елементів матриці вагів і зсуву:

wts = net.IW{1,1}, bias = net.b{1}

 

 

wts =

0

 

 

 

0

 

 

 

bias =

 

 

 

 

8

0

Тепер переустановимо значення елементів матриці вагів і зсуву: net.IW{1,1} = [3, 4];

net.b{1} = 5;

wts = net.IW{1,1}, bias = net.b{1} wts =

3 4 bias =

5

Для того, щоб повернутися до первинних установок параметрів персептрона, призначена функція init:

net = init(net); wts = net.IW{1,1}, bias = net.b{1} wts =

0 0 bias =

0

Можна змінити спосіб, яким ініціалізувався персептрон за допомогою функціїinit. Для цього досить змінити тип функцій ініціалізації, які застосовуються для установки первинних значень вагів входів і зсувів. Наприклад, скористаємося функцією ініціалізації rands, яка встановлює випадкові значення параметрів персептрона:

%Задати функції ініціалізації вагів і зсувів net.inputweights{1,1}.initFcn = ‘rands’; net.biases{1}.initFcn = ‘rands’;

%Виконати ініціалізацію раніше створеної мережі з новими функціями

net = init(net);

wts = net.IW{1,1}, bias = net.b{1} wts =

-0.1886 0.8709

bias =

-0.6475

Видно, що ваги і зсуву вибрані випадковим чином.

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

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

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

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

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

5.Побудувати графік, аналогічний представленому на мал. 2, для своїх початкових даних.

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

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

8.Скласти звіт, який повинен містити :

–мета лабораторної роботи;

9

–структурну схему нейронної мережі;

–алгоритм, текст програми і графік;

–виводи.

№ п/п

Число входів

Межі зміни входів

Нейронів в шарі

 

 

 

 

1

2

-7…7

2

2

2

- 3 3

2

3

2

-9…9

3

4

2

- 5 5

3

5

2

- 8 8

2

6

2

- 1 1

3

7

2

-2…2

3

8

2

-4…4

2

9

2

-6…6

3

10

2

-4…4

3

11

2

-7…7

3

12

2

- 3 3

3

13

2

-9…9

2

14

2

- 5 5

2

15

2

- 8 8

3

16

2

- 1 1

2

10