Смекни!
smekni.com

Штучні нейронні мережі (стр. 2 из 4)

Один з найпесимістичніших результатів Мінського показує, що одношаровий персептрон не може відтворити таку просту функцію, як ВИКЛЮЧАЄ АБО. Це функція від двох аргументів, кожний з яких може бути нулем або одиницею. Вона приймає значення одиниці, коли один з аргументів рівний одиниці (але не обидва).

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

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

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

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

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

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

Навчання без вчителя

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

Алгоритми навчання

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

У штучній нейронній мережі, що використовує навчання по Хеббу, нарощування ваг визначається добутком рівнів збудження передаючого і приймаючого нейронів. Це можна записати як

wij(e+1) = w(e) + α OUTi OUTj,

де wij(e) - значення ваги від нейрона i до нейрона j до налагодження, wij(e+1) - значення ваги від нейрона i до нейрона j після налагодження, α - коефіцієнт швидкості навчання, OUTi - вихід нейрона i та вхід нейрона j, OUTj - вихід нейрона j; e – номер епохи (ітерації під час навчання).

Для навчання нейромереж в багатьох випадках використовують алгоритм зворотного розповсюдження помилки. Розв’язок задачі за допомогою нейронної мережі зводиться до наступних етапів:

1. Вибрати відповідну модель мережі (наприклад, трьохшарову )

2. Визначити топологію мережі (кількість елементів та їх зв’язки)

3. Вказати спосіб навчання (наприклад, зі зворотним розповсюдженням помилок) і параметри навчання

Кількість прихованих елементів – не менша за кількість вхідних.

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

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

Розглянемо структуру 3-шарової нейромережі.

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

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

Шар V1 (рівень L=1): вектор V1k1; де k1=1..QV1; матриця ваг W1i,k1; різниця векторів D1k1; Шар V2 (L=2): вектор V2k2; де k2=1..QV2; матриця ваг W2k1,k2; різниця D2k2; Вихідний шар (L=3): стани його елементів записані у векторі Yj; j=1..QY; матриця ваг W3k2,j; різниця D3j; істинний вихід (true) описується вектором YTj; j=1..QY.

Тобто Ytj – істинне значення для елементу j, Yj- його реальних вихід.

Розмір навчальної вибірки на виході Y: QM, номер вектора m=1..QM.

Навчання нейромережі відбувається за наступним алгоритмом (рис.10)

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


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

, ΔW=0,

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

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

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

Шар 1:

;
, де

Шар 2:

;
, де

Шар 3:

;
, де

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

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

- лінійна помилка для всіх векторів навчальної множини

- сумарна квадратична помилка (для всіх векторів)

- середня відносна помилка (0 – 100%)

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

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

3 шар

,
,

де

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

2 шар

,
,де

1 шар

,
, де
,