Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторна робота 3 Навчання штучної нейронної мережі методом зворотного розповсюдження помилки Мет

Работа добавлена на сайт samzan.net:


PAGE  17

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

Навчання штучної нейронної мережі методом зворотного розповсюдження помилки

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

Обладнання: персональний комп’ютер, середовище програмування Borland Delphi; програма „NeuroNet_Image_12”. 

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

1.1. Штучні та біологічні нейронні мережі

Про роботу мозку в даний час відомо дуже мало, тому штучні нейронні мережі /ШНМ/ (neural networks) є надзвичайно спрощеною моделлю біологічних нейронних мереж. Особливість нейромереж (neuronet) – те, що їх навчають, а не програмують.

1.2. Штучний нейрон

Основними компонентами нейромережі є нейрони /neurons/ (елементи, вузли), які з’єднані зв’язками. Сигнали передаються по зважених зв’язках (connection), із кожним з яких пов’язаний ваговий коефіцієнт (weighting coefficient) або вага.

Штучний нейрон (ШН) імітує в першому наближенні властивості біологічного нейрона. Множина вхідних сигналів (вектор X={x1, x2,…, xn}) надходить на ШН (рис. 1.1). Кожен сигнал множиться на відповідну вагу w1, w2,…, wn і подається на суматор Σ (тіло біологічного нейрона). Вага wі відповідає «силі» одного біологічного синаптичного зв’язку (множина ваг – вектор W). Суматор складає зважені входи алгебраїчно, створюючи вихід  NET = XW.

Рис. 1.1. Штучний нейрон

1.3. Активаційні функції нейронів

Сигнал NET далі, як правило, перетворюється активаційною функцією F і дає вихідний нейронний сигнал OUT = F(NET). Активаційна функція F(NET) може бути:

1. Пороговою бінарною функцією (рис. 1.2 а)

,                 (1.1)

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

2. Лінійною обмеженою функцією (рис. 1.2 б)

.                         (1.2)

3. Функцією гіперболічного тангенса (рис. 1.2 в)

,        (1.3)

де С > 0 – коефіцієнт ширини сигмоїди по осі абсцис (звичайно С=1).

4. Сигмоїдною (S-подібною) або логістичною функцією (рис. 1.2 г)

.                                (1.4)

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

  •  здатність підсилювати слабкі сигнали сильніше, ніж великі, і опиратися „насиченню” від потужних сигналів;
  •  монотонність і диференційованість на всій осі абсцис;
  •  простий вираз для похідної

,                     (1.5)

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

У штучному нейроні з активаційною функцією (рис. 1.3) блок, позначений F, приймає сигнал NET і видає сигнал OUT. Якщо блок F звужує діапазон зміни величини NET так, що при будь-яких значеннях NET значення OUT належать деякому кінцевому інтервалу, то F називається «стискаючою» функцією. Як «стискаюча» функція часто використовується сигмоїдна функція.

а   б

в   г 

    

Рис. 1.2. Вид функцій активації: а – порогова бінарна функція; б – лінійна обмежена функція; в – гіперболічний тангенс; г – сигмоїд

Рис. 1.3. Штучний нейрон з активаційною функцією F

4. Одношарові нейронні мережі

Хоча один нейрон і здатний виконувати прості процедури розпізнавання, ефективність нейронних обчислень виникає від з’єднань нейронів у мережі (рис. 1.4). Зазначимо, що вершини-круги зліва служать лише для розподілу вхідних сигналів і тому не вважатимуться шаром. Кожен елемент із множини входів Х окремою вагою сполучений із кожним штучним нейроном.

Зручно вважати вагу елементами матриці W. Матриця має n рядків і m стовпців, де n – кількість входів, а m – кількість нейронів. Наприклад, w3,2 – це вага, що пов'язує третій вхід із другим нейроном. Таким чином, обчислення вихідного вектора Y, компонентами якого є виходи OUT нейронів, зводиться до матричного множення Y = XW, де Y і Х – вектори-рядки.

Рис. 1.4. Одношарова ШНМ

1.5. Персептрони і зародження штучних нейромереж

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

Рис. 1.5. Нейрон персептрона

Перші персептрони були створені Ф. Розенблатом у 60-х роках і викликали великий інтерес. Первинна ейфорія змінилася розчаруванням, коли виявилося, що персептрони не здатні навчитися розв’язанню ряду простих задач. Проте відкриття методів навчання багатошарових ШНМ сприяло відродженню інтересу до ШНМ.

Рис. 1.6. Персептрон

1.6. Багатошарові нейронні мережі

Багатошарові мережі (рис. 1.7) володіють значно більшими можливостями, ніж одношарові. Проте багатошарові мережі можуть привести до збільшення обчислювальної потужності в порівнянні з одношаровими лише в тому випадку, якщо активаційна функція між шарами буде нелінійною (оскільки множення матриць асоціативне, то X(W1W2) еквівалентно (XW1)W2). 

Рис. 1.7. Багатошарова ШНМ

1.7. Навчання нейронних мереж

Мережа навчається, щоб для деякої множини входів X давати бажану множину виходів Y. Навчання здійснюється шляхом послідовного пред’явлення вхідних векторів з одночасним налагодженням ваг відповідно до певної процедури. В процесі навчання ваги мережі поступово стають такими, щоб кожен вхідний вектор виробляв потрібний вихідний вектор. Розрізняють алгоритми навчання з вчителем і без вчителя.

Навчання з вчителем припускає, що для кожного вхідного вектора X існує цільовий вектор YT, що є необхідним виходом. Разом вони називаються навчальною парою. Звичайно мережа навчається для деякої кількості таких навчальних пар (навчальної множини). В ході навчання зчитується вхідний вектор X, обчислюється вихід мережі Y і порівнюється з відповідним цільовим вектором YT,  різниця  D ~ YT – Y за допомогою зворотного зв’язку подається в мережу і змінюються ваги W відповідно до алгоритму, прагнучого мінімізувати помилку ε. Зчитування векторів навчальної множини і налагодження ваг виконується доти, поки сумарна помилка для всієї навчальної множини не досягне заданого низького рівня.

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

1.8. Алгоритм зворотного розповсюдження помилки (backpropagation)

Зворотне розповсюдження помилки означає, що сигнали помилки з виходу мережі використовуються для корекції ваг попередніх шарів. Розглянемо алгоритм навчання на прикладі 3-шарової ШНМ (рис. 1.7), структура якої наступна:

1. Вхідний шар X; стани його елементів записані у векторі Xi, де = 1... QX. Розмір навчальної множини (кількість векторів) на вході Х дорівнює Qn, номер вектора = 1... QN.

2. Приховані шари

Шар V1 (рівень = 1): вектор V1k1, де k= 1...QV1; матриця ваг W1i,k1; різниця векторів D1k1;

Шар V2 (= 2): вектор V2k2, де k= 1...QV2; матриця ваг W2k1,k2; різниця D2k2;

3. Вихідний шар (= 3): стани його елементів записані у векторі Yj; = 1...QY; матриця ваг W3k2,j; різниця D3j; істинний вихід (true) описується вектором YTj, = 1...QY. Тобто Ytj – істинне значення для елемента j, Yj – його реальних вихід.

ШНМ навчається за таким алгоритмом (рис. 1.8).

1. Ініціалізація. Початкові вагові коефіцієнти W приймаються рівними малим випадковим значенням, наприклад з діапазону [-0.3,.. +0.3]:

, , ,  ΔW=0.3.

У вагових матрицях рядки відповідають елементам, від яких йдуть зв’язки, а стовпці – до яких йдуть зв’язки.

 

Рис. 1.8. Алгоритм навчання нейромережі зі зворотним розповсюдженням помилки

2. Нормалізація (масштабування) значень усіх векторів X, YТ(для кожного типу окремо) в діапазон  (MinN; MaxN), наприклад MinN=0.1; MaxN=0.9.

.

3. Пряме розповсюдження (Direct) полягає у знаходженні вихідного вектора Y на основі вхідного X за наступними формулами:

Шар 1: , , де .

Шар 2: , , де .

Шар 3: , , де .

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

  •   – лінійна помилка;
  •   – середня квадратична помилка (mse – Mean squared error);
  •   – середня відносна помилка (0 – 100%) .

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

4. Зворотне розповсюдження помилки (backpropagation) полягає в корекції вагових коефіцієнтів через сигнал різниці D.

Шар 3: , ,

де , e – номер епохи; оскільки в якості активаційної функції використовується сигмоїдна, тому різниця векторів (YT-Y) множиться на похідну від сигмоїдної функції: Y(1 – Y) .

Шар 2:,, де .

Шар 1: , ,

де , ηY, ηL2, ηL1 – норми навчання (наприклад, 0.5).

Із метою контролю значень процесу навчання мережі дматриці W  визначаються:  Min – мінімальне значення; Max – максимальне; Ms – математичне сподівання; Sigma – середньоквадратичне відхилення.

2. Порядок виконання лабораторної роботи

Завдання для варіантів V 1...V 100

1. Згідно з номером варіанта (V) створити 4 початкові чорно-білі /бітові/ зображення (еталони) друкованих символів (табл. 2.1) розміром 16*16 пікселів (зображення зберегти у файлах формату *.bmp). Якщо номер варіанта , то шрифт символів звичайний; якщо , то шрифт курсивний; якщо , то шрифт напівжирний; якщо , то шрифт напівжирний курсивний. Назви файлів початкових зображень вибрати відповідно до назви символів (наприклад, файл А1.bmp для символу „А”).

Для кожного початкового зображення створити наступні зображення розміром 16*16 пікселів (рис. 2.1):

  •  зміщене / Shift / (назва файлу, наприклад,  А1_S1.bmp);
  •  повернуте / Rotate / (назва файлу, наприклад,  А1_R1.bmp);
  •  пошкоджене / Damage / (назва файлу, наприклад А1_D1.bmp);
  •  масштабоване /sCale /  (назва файлу, наприклад А1_С1.bmp).

а    б    в    г 

Рис. 2.1. Зображення символу „А”: а – початкове; б – зміщене;

в – повернуте; г – пошкоджене

Зміни зображень символів можна виконати за допомогою, наприклад, програм Paint та Adobe Photoshop.

2. Створити навчальну вибірку нейромережі – отримані 20 зображень записати у папку „Neuro_Data\Neuro_Train”, яка розміщена у папці головної програми (рис. 2.2).

Рис. 2.2. Фрагмент навчальної (train) вибірки ШНМ

Перелік зображень навчальної вибірки записати у файл „File_Name_tx1.txt” (рис. 2.3 а). У файл назв класівClass_Name_ty1.txt (рис. 2.3 б) записати назви символів згідно варіанту, при цьому назви класів пронумерувати (починаючи з 1 із кроком 1). У файлі навчальної вибірки (рис. 2.3 а) перед назвою кожного зображення записати номер відповідного класу (рис. 2.3 б). У вищеописаних файлах в кожному рядку номер і назва повинні розділятися одним пробілом.

а)   б)

Рис. 2.3. Структура файлу навчальної вибірки (а) та файлу назв класів (б)

3. Створити тестову вибірку нейромережі з 16-ти зображень. Для цього на основі кожного початкового зображення потрібно створити 4 змінених зображення (аналогічно як для навчальної вибірки, але величина трансформації не повинна бути не більшою, ніж для відповідного зображення навчальної вибірки). Отримані 16 змінених зображень записати у папку „Neuro_Data\Neuro_Recogn”, яка розміщена у папці головної програми (рис. 2.4).

Рис. 2.4. Фрагмент тестової вибірки ШНМ

4. Виконати навчання ШНМ за допомогою програми „NeuroNet_Image_12” (рис. 2.5). Для цього потрібно спочатку встановити параметри навчання нейронної мережі (рис. 2.6). Навчання провести для таких значень допустимої похибки навчання mse_Min: 10-2, 10-3, 10-4 (всі інші параметри – за замовчуванням); для кожного випадку записати час навчання мережі та зберегти матриці ваг W у відповідних файлах.

5. Виконати розпізнавання 16-ти зображень створених символів з папки „Neuro_Data\Neuro_Recogn” за допомогою ШНМ, використовуючи матриці ваг W, отримані для різних значень допустимої похибки. Для кожного зображення записати отриманий вихідний вектор Y (рис. 2.7) та результат розпізнавання (оформити у вигляді таблиці звіту).  На основі отриманих даних зробити висновки про ефективність розпізнавання. Які зображення розпізнаються краще?

6. Провести навчання ШНМ при зміні кількості нейронів у прихованих шарах (рис. 2.6) на величину -50 % та +50 %. Для парних варіантів змінювати кількість нейронів у шарі 1 (QV1), а для непарних – у шарі 2 (QV2). Всі значення часу навчання оформити у вигляді таблиці звіту. На основі отриманих даних зробити висновки про ефективність навчання.

7. Виконати навчання ШНМ при ввімкнених прапорцях візуалізації (рис. 2.6) та в покроковому режимі. Зробити 3 екранні форми для різних кроків та пояснити їх (додати до звіту).

Таблиця 2.1

Символи для варіантів V

 (V1= V; якщо V  30, то V= V  - 30)

V1

Символ

V1

Символ

1

2

3

4

1

2

3

4

1

g

е

g

е

16

v

с

v

с

2

h

є

h

є

17

w

т

w

т

3

i

ж

i

ж

18

x

у

x

у

4

j

з

j

з

19

y

ф

y

ф

5

k

и

k

и

20

z

х

z

х

6

l

і

l

і

21

ы

ц

э

ц

7

m

ї

m

ї

22

э

ч

Ы

ч

8

n

й

n

й

23

1

ш

6

ш

9

o

к

o

к

24

2

щ

7

щ

10

p

л

p

л

25

3

ю

8

ю

11

q

м

q

м

26

4

я

9

я

12

r

н

r

н

27

5

ь

0

ь

13

s

о

s

о

28

d

б

d

б

14

t

п

t

п

29

e

г

e

г

15

u

р

u

р

30

f

д

f

д

8. Для одного з випадків навчання записати параметри різниці векторів D (рис. 2.9) для шару 2 на початку навчання та після його завершення, провести аналіз їх зміни та зробити відповідні екранні форми.

9. Додаткове завдання. Розглянути будову і функціонування програми „NeuroNet_Image_12” на рівні програмного коду. Створити спрощену схему алгоритму програми (оператори візуалізації та роботи з файлами не враховувати).

Довідка для роботи з програмою „NeuroNet_Image_12

Програма „NeuroNet_Image_12”, створена в середовищі Borland Delphi, призначена для навчання 3-шарової ШНМ методом зворотного розповсюдження помилки. На вхідний шар Х подаються зображення символів у вигляді одновимірних векторів (записується яскравість кожного пікселя зображення по рядках). На основі значень вектора Х розраховуються вектори прихованих шарів V1, V2 та вихідного шару Y. При навчанні мережі отримані виходи Y порівнюються  з істинними YT, у випадку їх відмінності відбувається корекція матриць вагових коефіцієнтів W1, W2, W3. Процес навчання завершується, якщо отримана похибка mse (сумарна квадратична похибка εk) менша від заданої mse_Min.

Рис. 2.5. Головна форма програми „NeuroNet_Image_12

Навчання ШНМ відбувається протягом часу Time_Delta. Для початку навчання потрібно натиснути кнопку „Навчити НМ”, завершити процес навчання можна кнопкою „Стоп”. Після успішного навчання матриці вагових коефіцієнтів W можна зберегти опцією „Зберегти_W”. Якщо ШНМ була навчена, то за допомогою опції „Розпізнати” можна виконати розпізнавання зображень символів. Значення вагових коефіцієнтів навчених ШНМ можна зчитати з файлу кнопкою „Відкрити_W”.

Опція „Сист_параметри” використовується для встановлення параметрів навчання (рис. 2.6). Опція „Результат_Y” показує результати навчання або розпізнавання (рис. 2.7). Опція „Показати_W_п” забезпечує перегляд параметрів вагових матриць (рис. 2.8).

Рис. 2.6. Параметри навчання ШНМ:  QE – максимальна кількість епох навчання; MinN, MaxN – мінімальне й максимальне значення векторів ШНМ;

QV1, QV2 – кількість нейронів у прихованих шарах 1 та 2;

Eta_L1, Eta_L2, Eta_Y – норми навчання для відповідних шарів;

 Mse_Min – допустима похибка навчання,  Delta_W – початковий діапазон значень матриці W; прапорець „Інверсія_зображення” – встановити для чорних зображень на білому фоні; прапорці “Графік_W”, “Графік_V”, “Графік_D” – показати візуально матриці ваг W, вектори шарів V  і вектори різниці D відповідно; прапорець „Крок” – виконувати навчання НМ по кроках

Рис. 2.7. Результати розпізнавання

Рис. 2.8. Параметри матриць вагових коефіцієнтів W

Рис. 2.9. Параметри векторів D

Опція „Показати_D” відображає вектори різниці D для всіх шарів (рис. 2.9).

Контрольні запитання та завдання

  1.  Що таке штучний нейрон?
  2.  Опишіть спрощену будову та принцип дії біологічного нейрона.
  3.  У чому полягає роль вагових коефіцієнтів?
  4.  Перерахуйте та опишіть основні активаційні функції нейронів, наведіть відповідні формули і графіки.
  5.  Чому як активаційна часто використовується сигмоїдна функція?
  6.  Зобразіть структуру одношарової нейромережі, поясніть принцип її функціонування.
  7.  Що таке „персептрон”?
  8.  У чому полягає головний недолік персептрона?
  9.  Зобразіть структуру багатошарової нейромережі, поясніть принцип її функціонування.
  10.  Чому для ефективної роботи багатошарової нейромережі активаційна функція повинна бути нелінійною?
  11.  Опишіть основні способи навчання нейромереж, поясніть їх недоліки та переваги.
  12.  У чому полягає концепція Хебба, яка використовується при навчанні НМ?
  13.  Опишіть алгоритм навчання нейромережі зі зворотним розповсюдженням помилки.
  14.  Яким чином формуються матриці вагових коефіцієнтів НМ?
  15.  Для чого потрібно проводити нормалізацію значень вхідних і вихідних векторів НМ?
  16.  Опишіть математичну модель прямого розповсюдження сигналу на прикладі 3-шарової нейромережі.
  17.  Як  математично описуються помилки навчання нейромережі?
  18.  Опишіть математичну модель зворотного розповсюдження помилки на прикладі 3-шарової нейромережі.
  19.  Чому нейромережі ефективні при розпізнавані зображень?

Список використаної літератури

  1.  Глибовець М.М., Олецький О.В. Штучний інтелект. – К.: КМ Академія, 2002. – 336 с.
  2.  Заенцев И.В. Нейронные сети: основные модели. – Воронеж: Изд-во Воронеж. ун-та, 1999. – 76 с.
  3.  Каллан Р. Основные концепции нейронных сетей. – М.: Вильямс, 2003. – 288 с.
  4.  Кутковецький В.Я. Розпізнавання образів: Навчальний посібник. – Миколаїв: Вид-во МДГУ ім. П. Могили, 2003. – 196 с.
  5.  Люгер Дж.Ф. Искусственный интеллект: Стратегии и методы решения сложных проблем. – М.: Вильямс, 2003. – 864 с.
  6.  Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы. – М.: Горячая линия – Телеком, 2004. – 452 с.
  7.  Уосермен Ф. Нейрокомпьютерная техника. Теория и практика. – 1992. – 184 с.
  8.  Хьюбел Д. Глаз, мозг, зрение. – М.: Мир, 1990. – 239 с.




1. Рубцова20 век Образ Отчизны у Рубцова сливается с образом огонька теплого родного близкого не только для
2. вещественную основу производства
3. Курсовая работа- Использование электронно-вычислительной техники в бухгалтерском учете
4. СБЕРБАНК Введение
5. Ядерное оружие Организация спасательных работ
6. Бухучет в строительных организациях
7.  Общие положения прокурора в уголовном процессе
8. Курсовая работа- Капитальный ремонт
9. Развитие законодательства о защите прав коренных малочисленных народов в Российской Федерации
10. тема выглядит в виде единого субординационного ряда
11. Тигрята- Опрос с помощью родителей- Оцените по 10ти бальной системе насколько ребенку
12. БелРЦОКО от 18
13. Здесь русский дух здесь Русью пахнет Славянский стиль в моём доме и городе в Тюмени и Тюменской области
14.  На приведенном рисунке осуществляется
15. Что стоит закрыть все воспоминания за дубовой дверью своего сознания
16. Игровые терапевты использующие JFS предоставляют детям возможность поделиться чувствами которые сложно в.html
17. Модификация метода построения тестов для конечных автоматов относительно неразделимости
18. Лабораторная работа 8 Строки символов Задается произвольный текст содержащий не более 10 строк в
19. Тема практичного заняття ’ 1 Поняття предмет метод і система трудового права
20. Тема- Відношення на графах.html