Штучний нейрон.
Нейронні мережі – це самонавчальні системи, імітуючі діяльність людського мозку. Розглянемо докладніше структуру штучних нейронних мереж (ШНМ) і їхнє застосування в конкретних задачах.
Незважаючи на велику розмаїтість варіантів нейронних мереж усі вони мають загальні риси. Так усі вони, також як і мозок людини, складаються з великого числа однотипних елементів – нейронів імітуючих нейрони головного мозку і зв'язані між собою. На рис.1. показана схема нейрона
EMBED PBrush
З рис.1. видно, що штучний нейрон, так само як і живий, складається із синапсів, що зв'язують входи нейрона з ядром, ядра нейрона, яке здійснює обробку вхідних сигналів і аксона, що зв'язує нейрон з нейронами наступного шару. Кожен синапс має вагу, яка визначає наскільки відповідний вхід нейрона впливає на його стан. Стан нейрона визначається за формулою:
де n - число входів нейрону, xi – значення i-го входу нейрона, wi – вага i-го синапсу
Потім визначається значення аксона нейрона за формулою:
де f - деяка функція, що називається активаційною.
Найчастіше як активаційну функцію використовують, так званий, сигмоїд, що має наступний вид:
Основна перевага цієї функції в тому, що вона диференційована на всій осі абсцис і має дуже просту похідну:
При зменшенні параметра a сигмоїд стає більш положистим, вироджуючись у горизонтальну лінію на рівні 0,5 при a=0. При збільшенні a сигмоїд все більше наближається до функції одиничного скачка.
Нейронні мережі зворотнього поширення похибки.
Нейронні мережі зворотного поширення – це наймогутніший інструмент пошуку закономірностей, прогнозування, якісного аналізу. Таку назву – мережі зворотного поширення (back propagation) вони одержали через використовуваний алгоритм навчання, у якому похибка поширюється від вихідного шару до вхідного, тобто в напрямку, протилежному напрямку поширення сигналу при нормальному функціонуванні мережі.
Нейрона мережа зворотного поширення складається з декількох шарів нейронів, причому кожен нейрон шару i зв’язаний з кожним нейроном шару i+1, тобто мова йде про повнозв’язану ШНМ.
В загальному випадку задача навчання ШНМ зводиться до знаходження деякої функціональної залежності Y=F(X) де X - вхідний вектор, а Y - вихідний вектор. В загальному випадку така задача, при обмеженому наборі вхідних даних має нескінченну множину розв’язків. Для обмеження простору пошуку при навчанні ставиться задача мінімізації цільової функції похибки ШНМ, що знаходиться за методом найменших квадратів:
де EMBED Equation.3 - значення j-го виходу нейронної мережі, EMBED Equation.3 - цільове значення j-го виходу, p – кількість нейронів в вихідному шарі.
де EMBED Equation.3 - параметр, що визначає швидкість навчання.
де EMBED Equation.3 - значення j-го виходу нейрону, EMBED Equation.3 - зважена сума вхідних сигналів, що визначається за формулою (1), при цьому множник
де EMBED Equation.3 - значення і-го входу нейрону
Далі розглянемо визначення першого множника формули (7)
де k – кількість нейронів в шарі n+1
Введемо допоміжну змінну.
Тоді ми зможемо визначити рекурсивну формулу для знаходження EMBED Equation.3 n-ного шару, якщо нам відоме EMBED Equation.3 наступного n+1-го шару.
Знаходження EMBED Equation.3 для наступного шару ШНМ не викликає труднощів, так як нам відомий цільовий вектор, тобто вектор тих значень, котрі повинна видавати ШНМ при даному наборі вхідних значень.
І на кінець напишемо формулу (6) в розкритому вигляді
Тепер розглянемо повний алгоритм навчання нейронної мережі:
Подати на вхід ШНМ один з потрібних зразків і визначити значення виходів нейронів ШНМ.
Розрахувати EMBED Equation.3 для вихідного шару ШНМ за формулою (12) і визначити зміни ваг EMBED Equation.3 вихідного шару N за формулою (13).
Розрахувати за формулами (11) і (13) відповідно EMBED Equation.3 і EMBED Equation.3 для інших шарів ШНМ, N=N-1..1
Скоректувати всі ваги ШНМ
Якщо помилка значна, то перейти на крок 1.
На другому етапі навчання мережі почергово в довільному порядку вибираються вектори з навчальної послідовності
Підвищення ефективності навчання ШНМ зворотнього поширення .
Найпростіший метод градієнтного спуску дуже неефективний у випадку, коли похідні по різних вагах сильно відрізняються. Це відповідає ситуації, коли значення функції S для деяких нейронів близька по модулю до 1. В цьому випадку для плавного зменшення похибки потрібно вибрати дуже малу швидкість навчання, але при цьому навчання може зайняти дуже багато часу.
Найпростішим методом вдосконалення градієнтного спуску є введення моменту ?, коли вплив градієнту на зміну ваг змінюється з часом.
Тоді формула (13) набуде вигляду
Додатковою перевагою від введення моменту є здатність алгоритму подолати дрібні локальні мінімуми.
Представлення вхідних даних.
Основна відмінність ШНМ в тому, що в них усі вхідні і вихідні параметри представлені у виді чисел із плаваючою крапкою в діапазоні [0..1]. У той же час дані предметної області часто мають інше кодування. Так це можуть бути числа в довільному діапазоні, дати, символьні рядки. Тобто дані про проблему можуть бути як кількісними так і якісними. Розглянемо спочатку перетворення якісних даних у числові, а потім розглянемо спосіб перетворення вхідних даних у необхідний діапазон.
Якісні дані ми можемо розділити на дві групи: упорядковані (ординальні) і невпорядковані. Для розгляду способів кодування цих даних ми розглянемо задачу про прогнозування успішності лікування якого-небудь захворювання. Прикладом упорядкованих даних можуть наприклад бути дані, наприклад, про додаткові фактори ризику при даному захворюванні.
А також можливим прикладом може бути наприклад вік хворого.
Небезпека кожного фактора зростає в таблицях при русі зліва направо.
У першому випадку ми бачимо, що в хворого може бути кілька факторів ризику одночасно. У такому випадку нам необхідно використовувати таке кодування, при якому відсутня ситуація, коли різним комбінаціям факторів відповідає те саме значення. Найбільш розповсюджений спосіб кодування, коли кожному фактору ставиться у відповідність розряд двійкового числа. 1 у цьому розряді говорить про наявність фактора, а 0 про його відсутність. У такий спосіб для представлення усіх факторів досить 4-х розрядного двійкового числа. У такий спосіб число 10102 = 1010 означає наявність у хворого гіпертонії і вживання алкоголю, а числу 00002 відповідає відсутність у хворого факторів ризику. У такий спосіб фактори ризику будуть представлені числами в діапазоні [0..15].
В другому випадку ми також можемо кодувати всі значення двійковими вагами, але це буде недоцільно, тому що набір можливих значень буде занадто нерівномірним. У цьому випадку більш правильним буде установка у відповідність кожному значенню своєї ваги, що відрізняється на 1 від ваги сусіднього значення. Так число 3 буде відповідати віку 50 – 59 років. У такий спосіб вік буде закодований числами в діапазоні [0..4].
В принципі аналогічно можна вчинити і для неупорядкованих даних, поставивши у відповідність кожному значенню яке небудь число. Однак це вводить небажану упорядкованість, що може спотворити дані, і сильно утруднити процес навчання. У якості одного із способів рішення цієї проблеми можна запропонувати поставити у відповідність кожному значенню один із входів ШНМ. У такому випадку при наявності цього значення відповідний йому вхід встановлюється в 1 або в 0 у противному випадку. На жаль даний спосіб не є панацеєю, тому що при великій кількості варіантів вхідного значення число входів ШНМ розростається до величезної кількості. Це різко збільшить витрати часу на навчання. Як варіант обходу цієї проблеми можна використати трохи інше рішення. У відповідність кожному значенню вхідного параметра ставиться бінарний вектор, кожен розряд якого відповідає окремому входу ШНМ. Наприклад якщо число можливих значень параметра 128, то можна використовувати 7-ми розрядний вектор. Тоді першому значенню буде відповідати вектор 0000000 а сто двадцять восьмому - вектор 1111111, а, наприклад, двадцять шостому значенню – 0011011. Тоді число необхідних для кодування параметрів входів можна визначити як
де n- кількість значень параметра, N- кількість входів
Для ШНМ необхідно щоб вхідні дані лежали в діапазоні [0..1], у той час як дані проблемної області можуть лежати в будь-якому діапазоні. Припустимо що дані по одному з параметрів лежать у діапазоні [Min..Max]. Тоді найбільш простим способом нормування буде
де x- вихідне значення параметра, EMBED Equation.3 -значення, подаване на вхід ШНМ
На жаль цей спосіб кодування не позбавлений недоліків. Так у випадку якщо Max >> EMBED Equation.3 , то розподіл даних на вході може бути вкрай нерівномірним, що приведе до погіршення якості навчання. Тому в подібних ситуаціях , а також у випадку, коли значення входу лежить у діапазоні [0;?] можна використовувати нормування за допомогою функції виду
Нейроемулятор Neural Network Wizard.
Neural Network Wizard 1.7 – програмний емулятор нейрокомп?ютера. У Neural Network Wizard реалізована багатошарова нейронна мережа, що навчається по алгоритму зворотного поширення похибки (back propagation). Програма може застосовуватися для аналізу інформації, побудови моделей процесів і прогнозування. Для роботи із системою необхідно проробити наступні операції:
Зібрати статистику по процесу.
Навчити нейромережу на приведених даних.
Перевірити отримані результати.
В результаті навчання нейромережа самостійно підбере такі значення коефіцієнтів і побудує таку модель, що найбільш точно описує досліджуваний процес.
Підготовка вхідних даних.
Дані для навчання нейронної мережі повинні бути сформовані в текстовому файлі з розділювачами (Tab чи пробіл). Кількість прикладів повинна бути досить великою. При цьому необхідно забезпечити, щоб вибірка була репрезентативною. Крім того, потрібно забезпечити, щоб дані були не суперечливі. Вся інформація повинна бути представлена в числовому виді. Причому це стосується всіх даних. Якщо інформація представляється в текстовому виді, то необхідно використовувати будь-який метод, що переводить текстову інформацію в числа.
Можна домогтися гарних результатів, якщо провести передоробку даних. Якщо текстову інформацію можна якось ранжирувати, то необхідно це враховувати. Наприклад, якщо ви кодуєте інформацію про міста, то можна ранжирувати по чисельності населення і задати відповідне кодування: Київ = 1, Львів = 2, і т.д. Якщо ж дані не можуть бути упорядковані, то можна задати їм довільні номери. Взагалі, краще при кодуванні вхідної інформації збільшувати відстань між об'єктами (Київ = 1, Львів = 11) і визначати результат за відстанню між значенням, отриманим з нейромережі і кодом об'єкта.
До підготовки даних для нейромережі потрібно підходити дуже серйозно. Від цього залежить 90% успіху.
Особливості навчання нейромережі.
При навчанні нейромережі потрібно враховувати кілька факторів:
По-перше, якщо ви будете подавати на вхід суперечливі дані, те нейромережа може взагалі ніколи нічому і не навчитися. Вона буде не в змозі зрозуміти, чому в одному випадку 2+2=4, а в другому 2+2=5. Позбудьтеся від суперечливих даних у навчальній і тестовій вибірці.
По-друге, кількість зв'язків між нейронами має бути меншою ніж кількість прикладів в навчальній вибірці. Інакше нейромережа не навчиться, а "запам'ятає" усі приведені приклади.
По-третє, Якщо занадто довго навчати нейромережу, те вона може "перенавчитися". Необхідно визначати момент, коли процес буде вважатися завершеним.
В цілому, немає чітких правил як потрібно навчати нейромережу, щоб одержати найкращий результат. Для підбору найкращих параметрів навчання можна використовувати, наприклад, генетичні алгоритми, але вже зовсім інша тема
Робота з системою.
Крок 1. Відкрийте базу даних.
Виберіть файл із навчальною вибіркою… Інформація, що міститься в цьому файлі, використовується для навчання нейромережі. Ви можете відкрити txt-файл для навчання, чи nnw-файл – навчену нейромережу.

Рис.2 Початок роботи системи.
Крок 2. Задайте поля і їх властивості.
Виберіть поле в списку і вкажіть, як його обробляти.
Використовувати поле як…Нейронна мережа складається з вхідного, вихідного і прихованого шарів. Кількість нейронів у першому й останньому шарі залежить від того, скільки полів ви визначите як вхідні і вихідні. Поля, відзначені позначкою "не використовувати" у навчанні і тестуванні нейромережі застосовуватися не будуть.
Нормалізувати поле як…На вхід нейромережі повинна подаватися інформація в нормалізованому виді. Тобто це числа в діапазоні від 0 до 1. Ви можете вибрати метод нормалізації.
(X-MIN)/(MAX-MIN) - лінійна нормалізація.
1/(1+exp(ax)) - експонентна нормалізація.
Авто (х- EMBED Equation.3 )/a, 1/(1+exp(a)) - нормалізація, заснована на статистичних характеристиках вибірки
Без нормалізації - нормалізація не здійснюється
Параметри нормалізації…Задайте значення, використовувані у формулах нормалізації.

Рис. 3. Поле і його властивості
Крок 3. Задайте параметр нейромережі.
Число шарів нейромережі…Нейронна мережа складається з шарів – вхідного, вихідного і прихованих. Необхідно вказати кількість прихованих шарів. Загального правила скільки повинно бути таких шарів немає, звичайно задається 1-3 схованих шарів. Можна говорити, що чим більш нелінійна задача, тим більше прихованих шарів повинно бути.
Шари, Число нейронів…В Neural Network Wizard всі елементи попереднього шару зв'язані з усіма елементами наступного. Кількість нейронів у першому й останньому шарі залежить від того, скільки полів ви вказали як вхідні і вихідні. Кількість нейронів у кожнім схованому шарі необхідно задати. Загальних правил визначення кількості нейронів немає, але необхідно, щоб число зв'язків між нейронами було менше кількості прикладів у навчальній вибірці. Інакше нейромережа втратить здатність до узагальнення, а просто "запам'ятає" усі прикмети з навчальної вибірки. Тоді при тестуванні на прикладах, наявних у навчальній вибірці вона буде демонструвати прекрасні результати, а на реальних даних – дуже погані.
Параметр сигмоїди…Сигмоїда застосовується для забезпечення нелінійного перетворення даних. У противному випадку, нейромережа зможе виділити тільки лінійно розділимі множини. Чим вище параметр, тим більше перехідна функція подібна на порогову. Параметр сигмоїди підбирається, емпірично.

Рис.4 Параметри нейромережі.
Крок 4. Задайте параметр навчання.
Використовувати для навчання мережі % вибірки…Усі приклади, що подаються на вхід нейромережі, поділяються на дві множини – навчальна і тестова. Задайте, скільки відсотків прикладів будуть використовуватися в навчальній вибірці. Записи, що використовуються для тестування, вибираються випадково, але пропорції зберігаються.
Швидкість навчання…Параметр визначає амплітуду корекції ваг на кожнім кроці навчання.
Момент (імпульс)…Параметр визначає ступінь впливу i-ої корекції ваг на i+1-шу.
Розпізнано, якщо помилка за прикладом <…Якщо результат прогнозування відрізняється від значення з навчальної, множини менше вказаної величини, то приклад вважається розпізнаним.
Використовувати тестову множину як валідаційну…При встановлення цього прапорця, навчання буде припинено з видачею повідомлення, як тільки помилка на тестовій множині почне збільшуватися. Це допомагає уникнути ситуації перенавчання нейромережі.
Критерії зупинки навчання…Необхідно визначити момент, коли навчання буде закінчено.

Рис.5 Параметри навчання
Крок 5. Перевірте всі задані параметри.
Переконаєтеся, що ви вказали всі параметри вірно.

Рис. 6. Перевірка всіх заданих параметрів
Крок 6. Запустіть навчання системи.
Пуск навчання/зупинка навчання…Запустіть процес. В таблиці над кнопкою ви можете спостерігати, як міняється помилка навчання.
Розподіл помилки…У діаграмі відображається розподіл помилки. Зелені стовпці – помилка на навчальній вибірці, червоні – на тестовій вибірці. Чим правіше стовпець, тим вище значення помилки. Шкала від 0 до 1. Чим вище стовпець, тим більше прикладів із зазначеною помилкою.
Розподіл прикладів у навчальній/тестовій вибірці…На цих графіках ви можете відслідковувати наскільки результати спрогнозовані нейронною мережею збігаються зі значеннями в навчальній (ліворуч) і тестовій (праворуч) вибірці. Кожен приклад позначений на графіку точкою. Якщо крапка попадає на виділену лінію (діагональ), то це означає що нейромережа передбачила результат з досить високою точністю. Якщо точка знаходиться вище діагоналі, значить нейромережа недооцінила результат, нижче – переоцінила. Необхідно домагатися, щоб точки розташовувалися якнайближче до діагоналі.
Крок 7. Розрахуйте кінцевий результат.
У наборі вхідних параметрів введіть цифри і натисніть на кнопку "Розрахунок". У таблиці розраховані параметри ви одержите результат. Необхідно мати на увазі, що безглуздо перевіряти нейромережу на числах, що виходять за границі навчальної і тестової вибірки. Якщо ви навчили нейромережу додавати на числах в діапазоні від 0 до 10, то і тестувати нейромережу необхідно в тому самому діапазоні .
Якщо результати вас влаштовують, то натисніть на кнопку "Зберегти". Neural Network Wizard збереже всі параметри і настроювання у файлі з розширенням nnw.

Рис.7. Запуск системи

Рис.8. Розрахунок кінцевих результатів.
Приклад навчання нейронної мережі.
Для прикладу розглянемо процес навчання нейронної мережі арифметиці, а точніше додаванню двох чисел. Розглянемо рішення цієї проблеми по кроках.
Крок 1. На вхід ми подаємо наступну інформацію:
Крок 2. Вказуємо, що поле RES – цільове.
Тобто нейромережа буде намагатися визначити яким чином значення полів S1 і S2 впливають на поле RES.
Крок 3. Визначаємо конфігурацію нейронної мережі.
Задаємо кількість прихованих шарів – 1. Кількість елементів у 1-ому шарі – 2. В результаті ми одержимо наступну конфігурацію
EMBED Visio.Drawing.6
Крок 4. Визначаємо параметри навчання.
Зупинити навчання по проходженні 10000 епох.
Крок 5. Перевіряємо правильність конфігурації мережі і параметрів навчання.
Крок 6. Запускаємо систему на навчання, у процесі якого система побудує модель операції додавання.
Крок 7. Після закінчення навчання ми можемо тестувати отриману модель. Вводимо початкові параметри і розраховуємо результат.
Це загальні принципи роботи. На практиці одержати якісний результат на реальних даних не так просто. Для того, щоб одержувати якісний результат при використанні нейромереж треба розуміти яка математична модель покладена в її основу і дуже грамотно підходити до підбору статистичної вибірки, на якій нейромережа буде навчатися.
Формат файлу NWW.
Даний файл є результат навчання нейросистеми, і дозволяє відновлювати параметри отриманої нейронної мережі для подальшого її використання в конкретних програмах. Розглянемо докладно формат отриманого файлу.
По своїй структурі це стандартний ini – файл, що складається з окремих секцій, кожна з який описує один з етапів роботи системи.
Секція [Main]
Містить єдиний параметр State. Цей параметр містить номер етапу, роботи NNW, на якому відбулася зупинка (фактично номер кроку). Він потрібний для коректного продовження роботи на основі відновлених даних.
Секція [Phase1]
Відповідає першому етапу роботи програми – вибору файлу, що містить навчальну вибірку. Містить також один єдиний параметр LearnSampleFileName, значенням якого є повне ім'я файлу (шлях до файлу), що містить навчальну вибірку.
Секція [Phase2]
Відповідає другому етапу роботи. На цьому етапі вибираються використовувані поля, їхня роль у навчанні і параметри цих полів. У даній секції містяться наступні параметри:
AvailableFieldsCount – кількість доступних полів у навчальному наборі даних (доступними полями є всі поля, що мають числовий формат)
FieldName_X, де Х лежить у діапазоні [0, AvailableFieldsCount - 1] – ім'я поля в навчальній вибірці
FieldType_Х – тип використовуваного поля. Можливі наступні значення цього параметра: 0 – поле використовується як вхідне, 1 – поле використовується як цільове, 2 – поле не бере участь у навчанні.
NormType_Х – тип нормалізації поля. Використовуються наступні значення цього параметра:
0–використовується лінійна нормалізація виду
EMBED Equation.3
1–використовується сигмоидальная нормалізація виду
EMBED Equation.3
2–використовується автоматична нормалізація з урахуванням статистичних параметрів наявної вибірки. При цьому використовуються формули
EMBED Equation.3 , EMBED Equation.3
3 – нормалізація не використовується.
Наступні параметри є параметрами нормалізації
MAX_Х – параметр, значення якого використовується при лінійній нормалізації як максимальне значення даного поля.
MIN_Х – параметр, значення якого використовується при лінійній нормалізації як мінімальне значення даного поля.
MID_Х - параметр, значення якого використовується при автоматичній нормалізації як середнє значення даного поля.
DISP_Х – дисперсія значень даного поля
ALPHA_Х – параметр, значення якого використовується в сигмоидальной нормалізації як параметр а.
Indexing – параметр визначає чи використовується псевдовипадкова послідовність прикладів у навчальній вибірці. Значення, рівне 1, говорить про те, що така послідовність використовується. У цьому випадку важливу роль грає параметр IND_Х, (Х лежить у діапазоні [0,RecordCount-1]) значення якого визначає, яку позицію в навчальній вибірці займає запис з номером Х. У випадку, якщо значення параметра дорівнює 2, то це говорить, що для ініціалізації використовувався датчик випадкових чисел, значення початкової установки якого зберігається в параметрі IND_INIT.
Секція [Phase3]
Відповідає третьому етапу роботи. На цьому етапі визначається власне конфігурація нейромережі. У даній секції знаходяться наступні параметри:
HideLayers – кількість прихованих шарів ШНМ
Layer_Х – кількість нейронів у прихованому шарі Х
Alpha – параметр крутості передатної функції нейрона
Секція [Phase4]
Визначає параметри навчання нейромережі
UseForTeach – показує, скільки відсотків навчальної вибірки використовується для навчання. Відповідно всі записи, що залишилися, використовуються для тестування нейросети.
TeachSpeed – параметр, значення якого відповідає за швидкість навчання нейросети. Він лежить у діапазоні від 0 до 1 і фактично визначає, наскільки сильно коректуються ваги нейромережі в кожній ітерації
Miu – параметр, що визначає величину моменту (момент це один зі способів оптимізації навчання ШНМ).
IdentErr – параметр, використовуваний для рішення задач класифікації. Визначає, при якій похибці приклад може вважатися правильно розпізнаним.
TestAsValid – визначає, чи використовується тестова множина як валідаційна. Якщо значення цього параметра дорівнює 1, то навчання автоматично зупиняється при зростанні помилки на тестовій множині.
Epoch – чи зупиняти навчання при досягненні визначеного числа епох
EpochС – усього епох, що використовуються для навчання нейромережі
MaxTeachErr – чи зупиняти навчання, якщо максимальна помилка при навчанні стала меншшою визначеного значення
MaxTeachErrV – значення максимальної помилки при навчанні (при досягненні цього значення навчання припиняється).
MidTeachErr – чи зупиняти навчання, якщо середня похибка при навчанні стала меншою визначеного значення
MidTeachErrV – максимальне значення середньої похибки при навчанні (при досягненні цього значення навчання припиняється).
TeachIdent – чи зупиняти навчання, якщо при навчанні розпізнана визначена кількість прикладів.
TeachIdentС – скільки відсотків прикладів при навчанні повинно бути розпізнано.
MaxTestErr – чи зупиняти навчання, якщо максимальна помилка при тестуванні стала меншою визначеного значення
MaxTestErr – значення максимальної помилки при тестуванні (при досягненні цього значення навчанні припиняється).
MidTestErr – чи зупиняти навчання, якщо середня помилка при тестуванні стала меншою визначеного значення
MidTestErrV – максимальне значення середньої похибки при тестуванні (при досягненні цього значення навчанні припиняється).
TestIdent – чи зупиняти навчання, якщо при тестуванні розпізнана визначена кількість прикладів.
TestIdent – скільки відсотків прикладів при тестуванні повинно бути розпізнано.
Секція [Network].
У цій секції описуються параметри, що безпосередньо впливають на нейромережу.
TeachSpeed – швидкість навчання нейромережі
Miu – момент при навчанні нейромережі
Alpha – параметр крутості сигмоїди
Epoch – номер поточної епохи
CountLayers – кількість шарів нейромережі
Layer_Х – кількість нейронів у відповідному шарі нейромережі (при Х=0 – вхідний шар).
W_X_Y_Z – значення ваги, що з'єднує нейрон Z у шарі X з нейроном Y у попередньому шарі. (X – номер прихованого шару, Y – номер входу цього шару, Z – номер нейрона в цьому шарі). При цьому вихід нейрона Z буде визначатися в такий спосіб:
EMBED Equation.3 , EMBED Equation.3
WT_X_Z – зсув нейрона Z у шарі X.