Дельта правило

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Дельта-правило — метод навчання перцептрону за принципом градієнтного спуску по поверхні помилки. Дельта-правило розвинулося з першого і другого правил Хебба. Його подальший розвиток привів до створення методу зворотного поширення помилки.

Правила Хеба[ред.ред. код]

Перцептрон Розенблата у початковому його виконанні складався з фотоелементів, які, залежно від поданого на них сигналу виробляли сигнал логічної одиниці, або логічного нуля. Сигнали з фотоелементів надходили на зважений суматор (елементарний процесор, штучний нейрон) з пороговою функцією активації. Нейрон також видавав сигнал логічного нуля, або логічної одиниці [1]. Мета навчання перцептрона полягала в тому, щоб при подачі на фотоелементи закодованого образу на його виході з'являлася логічна одиниця в разі належності поданого образу до заздалегідь певного класу і нуль в іншому випадку. Логіка навчання наступна: якщо сигнал перцептрона при деякому образі вірний, то нічого коригувати не потрібно, якщо немає — проводиться коригування ваги суматора. Правила коригування ваг запропоновані Хебом в 1949 році [2] і мають наступний зміст:

  • Перше правило Хеба — Якщо сигнал перцептрона невірний, і дорівнює нулю, то необхідно збільшити ваги тих входів, на які була подана одиниця.
  • Друге правило Хеба — Якщо сигнал перцептрона невірний і дорівнює одиниці, то необхідно зменшити вагу тих входів, на які була подана одиниця.[3]

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

Дельта-правило[ред.ред. код]

Власне дельта-правилом називають математичну, трохи загальнішу форму запису правил Хеба. Нехай вектор \mathbf{X}={x_1,x_2,...x_r,...x_m} — вектор вхідних сигналів, а вектор \mathbf{D}={d_1,d_2,...d_k,...d_n} — вектор сигналів, які повинні бути отримані від перцептрона під впливом вхідного вектора. Тут n — кількість нейронів, що входять до перцептрону. Вхідні сигнали, поступивши на входи перцептрону, були зважені і підсумовані, в результаті чого отримано вектор \mathbf{Y}={y_1,y_2,...y_k,...y_n} вихідних значень перцептрона. Тоді можна визначити вектор помилки \mathbf{\Epsilon}={e_1,e_2,...e_k,...e_n}, розмірність якого збігається розмірністю вектором вихідних сигналів. Компоненти вектора помилок визначаються як різниця між очікуваним і реальним значенням вихідного сигналу нейрону перцептрона:

\mathbf{\Epsilon=D-Y}

За таких позначеннях формулу для коригування j-ї ваги i-го нейрона можна записати так:

w_j(t+1)=w_j(t)+e_i x_j

Номер сигналу  j змінюється в межах від одиниці до розмірності вхідного вектора m. Номер нейрону i змінюється в межах від одиниці до кількості нейронів n. Величина t — номер поточної ітерації навчання. Таким чином, вага вхідного сигналу нейрона змінюється у бік зменшення помилки пропорційно величині сумарної помилки нейрона. Часто вводять коефіцієнт пропорційності \eta, на який множиться величина помилки. Цей коефіцієнт називають швидкістю навчання. Таким чином, підсумкова формула для коректування ваг зв'язків перцептрону має наступний вигляд:

w_j(t+1)=w_j(t)+\eta e_i x_j

Узагальнене дельта-правило[ред.ред. код]

З метою розширення кола завдань, що вирішуються перцептроном, Уїдроу і Хофом [4] була запропонована сигмоїдаальна функція активації для нейронів. Це дозволило перцептрону оперувати з неперервними сигналами, але виникла необхідність модифікації алгоритму навчання.[5] Модифікований алгоритм спрямований на мінімізацію функції середньоквадратичної помилки:

\epsilon=\frac{1}{2} \sum^{n}_{i=1}{(d_i-y_i)^2}

Ця функція визначається матрицею вагових коефіцієнтів w_{ij}. Тут i — номер нейрона, а j — номер входу. Поверхня, що описується цією функцією має форму псевдопараболоіди.[6] Завданням навчання є знаходження глобального мінімуму цієї поверхні. Одним із способів знаходження мінімуму є метод градієнтного спуску. Коригування ваг проводиться в напрямку антиградієнта поверхні:

\Delta w_{ij}=-\eta \frac {\partial \epsilon}{\partial w_{ij}}

Тут \eta — коефіцієнт швидкості навчання.

Функція помилки є складною і залежить в першу чергу від вихідних сигналів перцептрона. Відповідно до правил диференціювання складних функцій:

\frac {\partial \epsilon}{\partial w_{ij}} = \frac{\partial \epsilon}{\partial y_i} \frac{\partial y_i}{\partial w_{ij}} (*)

Вихідний сигнал y_i кожного нейрона визначається за формулою:

y_i = \operatorname{f}(S), S = \sum^{m}_{j=1}{w_{ij} x_j}

Тут m — кількість входів перцептрона, x_j — сигнал на j-му вході, а \operatorname{f}(S) — функція активації. Тоді отримаємо:

\frac{\partial y_i}{\partial w_{ij}}=\frac{\partial \operatorname{f}(S)}{\partial S} \frac {\partial S}{\partial w_{ij}}= f^\prime(S) x_j (**)

Продиференціювавши функцію помилки за значенням вихідного сигналу, отримаємо:

\frac {\partial \epsilon}{\partial y_i}=-(d_i-y_i) (***)

Підставивши формули (**) і (***) у вираз (*) отримаємо вираз для коригування ваги j-го входу у i-го нейрона при будь-якій активаційний функції[7]:

\Delta w_{ij} = \eta (d_i-y_i)f^\prime(S_i)x_j

З цієї формули видно, що в якості активаційна функція при використанні узагальненого дельта-правила повинна бути неперевно диференційована на всій осі абсцис. Перевагу мають функції активації з простою похідною (наприклад — логістична крива або гіперболічний тангенс).

На основі дельта-правила Уїдроу і Хопфа був створений один з перших апаратних нейрокомп'ютерів Adaline (1960).

Примітки[ред.ред. код]

  1. Можливий варіант використання замість {0,1} сигналів {-1,1}
  2. Hebb DO — The Organization of Behavior. John Wiley & Sons, New York, 1949
  3. Ясницкий Л. Н. Введение в искусственный интеллект. М.: Издательский центр «Академия», 2005 — c. 30 — 32
  4. Widrow B., Hoff M.E. — Adaptive switching circuits. 1969 IRE WESTCON Conferencion Record. — New York, 1960
  5. Л. Н. Ясницкий — Введение в искусственный интеллект. — с.34-36
  6. Л. Н. Ясницкий — Введение в искусственный интеллект. — с.35
  7. Л. Н. Ясницкий — Введение в искусственный интеллект. — с.36

Див. також[ред.ред. код]

Література[ред.ред. код]