Математика штучних нейронних мереж

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

Шаблон:Main

Штучна нейронна мережа (ШНМ, Шаблон:Lang-en) поєднує біологічні принципи з передовою статистикою для розв'язування задач у таких областях як розпізнавання образів та ігровий процес. ШНМ приймають базову модель нейронних аналогів, з'єднаних один з одним різними способами.

Структура

Нейрон

Нейрон з міткою j, що отримує вхід pj(t) від нейронів-попередників, містить наступні складові:[1]

  • збудження (Шаблон:Lang-en) aj(t), стан нейрона, що залежить від дискретного часового параметра,
  • необов'язковий поріг (Шаблон:Lang-en) θj, що лишається незмінним, якщо не змінюється навчанням,
  • функцію збудження (Шаблон:Lang-en) f, яка обчислює нове збудження в заданий час t+1 виходячи з aj(t), θj та чистого входу pj(t), породжуючи відношення
aj(t+1)=f(aj(t),pj(t),θj),
  • та функцію виходу (Шаблон:Lang-en) fout, яка обчислює вихід зі збудження
oj(t)=fout(aj(t)).

Функція виходу часто просто тотожна функція.

Нейрон входу (Шаблон:Lang-en) не має попередників, і слугує інтерфейсом входу для всієї мережі. Так само, нейрон виходу (Шаблон:Lang-en) не має наступників, й отже, слугує інтерфейсом виходу всієї мережі.

Функція поширення

Функція поширення (Шаблон:Lang-en) обчислює вхід pj(t) до нейрона j з виходів oi(t), і зазвичай має вигляд[1]

pj(t)=ioi(t)wij.

Зміщення

Може бути додано член зміщення (Шаблон:Lang-en), що змінює її вигляд на такий:[2]

pj(t)=ioi(t)wij+w0j, де w0j — це зміщення.

Нейронні мережі як функції

Шаблон:See also

Нейромережні моделі можливо розглядати як такі, що визначають функцію, яка бере вхід (спостереження) та видає вихід (рішення) f:XY або розподіл над X або над X та Y. Іноді моделі тісно пов'язані з певним правилом навчання. Загальне використання фрази «модель ШНМ» насправді є визначенням класу таких функцій (де членів класу отримують варіюванням параметрів, ваг з'єднань або особливостей архітектури, таких як кількість нейронів, кількість шарів або їхня зв'язність).

З математичної точки зору мережну функцію нейрона f(x) визначають як композицію інших функцій gi(x), які можливо розкласти далі на інші функції. Це можливо зручно подавати у вигляді мережної структури зі стрілками, що зображують залежності між функціями. Широко вживаний тип композиції — нелінійна зважена сума, де f(x)=K(iwigi(x)), де K (що зазвичай називають передавальною функцією, також Шаблон:Lang-en[3]) — це деяка наперед визначена функція, наприклад, гіперболічний тангенс, сигмоїдна функція, нормована експоненційна функція (Шаблон:Lang-en) або випрямляльна функція (Шаблон:Lang-en). Важливою характеристикою передавальної функції є те, що вона забезпечує плавний перехід за зміни значень входу, тобто невелика зміна входу призводить до невеликої зміни виходу. Далі йдеться про набір функцій gi як вектор g=(g1,g2,,gn).

Граф залежностей ШНМ

Цей рисунок зображує такий розклад f, із залежностями між змінними, показаними стрілками. Їх можливо тлумачити двояко.

Перший погляд — функційний: вхід x перетворюється на тривимірний вектор h, який відтак перетворюється на 2-вимірний вектор g, який остаточно перетворюється на f. Цей погляд найчастіше зустрічається в контексті оптимізації.

Другий погляд — імовірнісний: випадкова змінна F=f(G) залежить від випадкової змінної G=g(H), що залежить від H=h(X), яка залежить від випадкової величини X. Цей погляд найчастіше зустрічається в контексті графових моделей.

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

Два окремі зображення графу залежностей рекурентної ШНМ

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

Зворотне поширення

Алгоритми тренування зворотним поширенням поділяють на три категорії:

Алгоритм

Нехай N — мережа з e з'єднань, m входів та n виходів.

Нижче x1,x2, позначують вектори в m, y1,y2, — вектори в n, а w0,w1,w2, — вектори в e. Їх називають входами (Шаблон:Lang-en), виходами (Шаблон:Lang-en) та вагами (Шаблон:Lang-en) відповідно.

Мережа відповідає функції y=fN(w,x), яка, за заданих ваг w, відображує вхід x до виходу y.

У керованім навчанні послідовність тренувальних прикладів (x1,y1),,(xp,yp) створює послідовність ваг w0,w1,,wp, починаючи з деяких початкових ваг w0, зазвичай обираних випадково.

Ці ваги обчислюють по черзі: спочатку обчислюють wi, використовуючи лише (xi,yi,wi1) для i=1,,p. Тоді виходом цього алгоритму стає wp, даючи нову функцію xfN(wp,x). Обчислення однакове на кожному кроці, тож описано лише випадок i=1.

w1 обчислюють з (x1,y1,w0), розглядаючи змінну ваг w та застосовуючи градієнтний спуск до функції wE(fN(w,x1),y1) для пошуку локального мінімуму, починаючи з w=w0.

Це робить w1 мінімізувальною вагою, знайденою градієнтним спуском.

Псевдокод навчання

Щоби втілити наведений вище алгоритм, необхідні явні формули для градієнта функції wE(fN(w,x),y), де функція E(y,y)=|yy|2.

Поширення

Поширення охоплює наступні етапи:

  • Пряме поширення крізь мережу для породження значень виходу
  • Розрахунок витрат (Шаблон:Lang-en, члену похибки, Шаблон:Lang-en)
  • Поширення збуджень виходу крізь мережу у зворотному напрямку з використанням тренувального цільового образу для породження дельт (різниць між цільовими та фактичними значеннями виходу) всіх нейронів виходу та прихованих нейронів.

Уточнювання ваг

Для кожної ваги:

  • Помножити дельту виходу ваги на збудження входу, щоби знайти градієнт ваги.
  • Відняти відношення (відсоток) градієнта ваги від неї.

Темп навчання (Шаблон:Lang-en) — це відношення (відсоток), яке впливає на швидкість і якість навчання. Що більше це відношення, то швидше тренується нейрон, але що це відношення менше, то точніше навчання. Знак градієнта ваги вказує, чи змінюється похибка прямо, чи обернено до ваги. Тож вагу необхідно оновлювати в протилежному напрямку, «спускаючись» з градієнта.

Навчання повторюють (на нових пакетах), доки мережа не запрацює адекватно.

Псевдокод

Псевдокод для алгоритму стохастичного градієнтного спуску для навчання тришарової мережі (один прихований шар):

встановити початкові значення ваг мережі (часто малі випадкові значення)
робити
  для кожного тренувального прикладу під назвою пр. зробити
    передбачення = вихід нейронної мережі(мережа, пр.) // прямий прохід
    факт = результат вчителя(пр.)
    обчислити похибку (передбачення - факт) на вузлах виходу
    Шаблон:Nobr // зворотний прохід
    Шаблон:Nobr // продовження зворотного проходу
    уточнити ваги мережі // шар входу оцінкою похибки не змінюється
поки рівень похибки не стане прийнятно низьким
повернути мережу

Рядки, позначені як «зворотний прохід», може бути втілено за допомогою алгоритму зворотного поширення, який обчислює градієнт похибки мережі щодо змінюваних ваг мережі.[5]

Примітки

Шаблон:Примітки

  1. 1,0 1,1 Шаблон:Cite book Шаблон:Ref-de
  2. Шаблон:Cite journal Шаблон:Ref-en
  3. Шаблон:Cite web Шаблон:Ref-en
  4. Шаблон:Cite conference Шаблон:Ref-en
  5. Werbos, Paul J. (1994). The Roots of Backpropagation. From Ordered Derivatives to Neural Networks and Political Forecasting. New York, NY: John Wiley & Sons, Inc. Шаблон:Ref-en