Математика штучних нейронних мережШтучна нейронна мережа (ШНМ, англ. artificial neural network, ANN) поєднує біологічні принципи з передовою статистикою для розв'язування задач у таких областях як розпізнавання образів та ігровий процес. ШНМ приймають базову модель нейронних аналогів, з'єднаних один з одним різними способами. СтруктураНейронНейрон з міткою , що отримує вхід від нейронів-попередників, містить наступні складові:[1]
Функція виходу часто просто тотожна функція. Нейрон входу (англ. input neuron) не має попередників, і слугує інтерфейсом входу для всієї мережі. Так само, нейрон виходу (англ. output neuron) не має наступників, й отже, слугує інтерфейсом виходу всієї мережі. Функція поширенняФункція поширення (англ. propagation function) обчислює вхід до нейрона з виходів , і зазвичай має вигляд[1] ЗміщенняМоже бути додано член зміщення (англ. bias), що змінює її вигляд на такий:[2]
Нейронні мережі як функціїНейромережні моделі можливо розглядати як такі, що визначають функцію, яка бере вхід (спостереження) та видає вихід (рішення) або розподіл над або над та . Іноді моделі тісно пов'язані з певним правилом навчання. Загальне використання фрази «модель ШНМ» насправді є визначенням класу таких функцій (де членів класу отримують варіюванням параметрів, ваг з'єднань або особливостей архітектури, таких як кількість нейронів, кількість шарів або їхня зв'язність). З математичної точки зору мережну функцію нейрона визначають як композицію інших функцій , які можливо розкласти далі на інші функції. Це можливо зручно подавати у вигляді мережної структури зі стрілками, що зображують залежності між функціями. Широко вживаний тип композиції — нелінійна зважена сума, де , де (що зазвичай називають передавальною функцією, також англ. activation function[3]) — це деяка наперед визначена функція, наприклад, гіперболічний тангенс, сигмоїдна функція, нормована експоненційна функція (англ. softmax function) або випрямляльна функція (англ. rectifier function). Важливою характеристикою передавальної функції є те, що вона забезпечує плавний перехід за зміни значень входу, тобто невелика зміна входу призводить до невеликої зміни виходу. Далі йдеться про набір функцій як вектор . ![]() Цей рисунок зображує такий розклад , із залежностями між змінними, показаними стрілками. Їх можливо тлумачити двояко. Перший погляд — функційний: вхід перетворюється на тривимірний вектор , який відтак перетворюється на 2-вимірний вектор , який остаточно перетворюється на . Цей погляд найчастіше зустрічається в контексті оптимізації. Другий погляд — імовірнісний: випадкова змінна залежить від випадкової змінної , що залежить від , яка залежить від випадкової величини . Цей погляд найчастіше зустрічається в контексті графових моделей. Ці два погляди здебільшого рівнозначні. В кожному разі для цієї конкретної архітектури складові окремих шарів незалежні одна від одної (наприклад, складові не залежать одна від одної за заданого їхнього входу ). Це, природно, уможливлює якусь міру паралелізму у втіленні. ![]() Такі мережі як попередня зазвичай називають мережами прямого поширення, оскільки їхній граф є орієнтованим ациклічним графом. Мережі з циклами зазвичай називають рекурентними. Такі мережі зазвичай зображують у спосіб, показаний у верхній частині малюнка, де показано як залежну від самої себе. Проте не показано часову залежність, що мається на увазі. Зворотне поширенняАлгоритми тренування зворотним поширенням поділяють на три категорії:
АлгоритмНехай — мережа з з'єднань, входів та виходів. Нижче позначують вектори в , — вектори в , а — вектори в . Їх називають входами (англ. inputs), виходами (англ. outputs) та вагами (англ. weights) відповідно. Мережа відповідає функції , яка, за заданих ваг , відображує вхід до виходу . У керованім навчанні послідовність тренувальних прикладів створює послідовність ваг , починаючи з деяких початкових ваг , зазвичай обираних випадково. Ці ваги обчислюють по черзі: спочатку обчислюють , використовуючи лише для . Тоді виходом цього алгоритму стає , даючи нову функцію . Обчислення однакове на кожному кроці, тож описано лише випадок . обчислюють з , розглядаючи змінну ваг та застосовуючи градієнтний спуск до функції для пошуку локального мінімуму, починаючи з . Це робить мінімізувальною вагою, знайденою градієнтним спуском. Псевдокод навчанняЩоби втілити наведений вище алгоритм, необхідні явні формули для градієнта функції , де функція . ПоширенняПоширення охоплює наступні етапи:
Уточнювання вагДля кожної ваги:
Темп навчання (англ. learning rate) — це відношення (відсоток), яке впливає на швидкість і якість навчання. Що більше це відношення, то швидше тренується нейрон, але що це відношення менше, то точніше навчання. Знак градієнта ваги вказує, чи змінюється похибка прямо, чи обернено до ваги. Тож вагу необхідно оновлювати в протилежному напрямку, «спускаючись» з градієнта. Навчання повторюють (на нових пакетах), доки мережа не запрацює адекватно. ПсевдокодПсевдокод для алгоритму стохастичного градієнтного спуску для навчання тришарової мережі (один прихований шар): встановити початкові значення ваг мережі (часто малі випадкові значення) робити для кожного тренувального прикладу під назвою пр. зробити передбачення = вихід нейронної мережі(мережа, пр.) // прямий прохід факт = результат вчителя(пр.) обчислити похибку (передбачення - факт) на вузлах виходу обчислити для всіх ваг з прихованого шару до шару виходу // зворотний прохід обчислити для всіх ваг з шару входу до прихованого шару // продовження зворотного проходу уточнити ваги мережі // шар входу оцінкою похибки не змінюється поки рівень похибки не стане прийнятно низьким повернути мережу Рядки, позначені як «зворотний прохід», може бути втілено за допомогою алгоритму зворотного поширення, який обчислює градієнт похибки мережі щодо змінюваних ваг мережі.[5] Примітки
|
Portal di Ensiklopedia Dunia