Download as pdf or txt
Download as pdf or txt
You are on page 1of 62

0.1 Вступ.

Класифiкацiя алгоритмiв машинного навчання:


1. З учителем / Без учителя
2. Регресiя / Класифiкацiя
3. Дискримiнативнi / Генеративнi

0.1.1 Алгоритми з учителем/без учителя


Нехай маємо вибiрку, що складається з (xi , yi ), i = 1, N , де xi ∈ R1×p , yi ∈ R.
Число N - називається розмiром вибiрки, p - кiлькiстю регресорiв, xi -
спостереженням, xj ∈ RN ×1 - регресорами, yi - вiдгуками. Якщо ми спосте-
рiгаємо вiдгуки yi - то маємо справу з навчанням з учителем, якщо нi - то
без учитиля.
Матриця дизайну:

x31 . . . xp1
 1
x1 x21

 x12 x22 p
x32 . . . x2 
X=  ... ...
 (1)
... 
p
x1N x2N x3N . . . xN

Розглянемо приклад: Нехай здiйснюється медичний експеримент, те ве-


ктор x - це температура тiла, тиск, а y - пульс. Тодi N - це кiлькiсть пацiєнтiв
з якими маємо справу, xi = (x1i , x2i ) - температура та тиск i-того пацiєнта, yi
- пульс i-того пацiєнта. x1 = (x11 , . . . , x1N )T ∈ RN ×1 - це вектор температур
усiх пацiєнтiв.

0.1.2 Регресiя/Класифiкацiя
Кожен алгоритм видає якийсь результат, ми кажемо - алгоритм прогнозує
вiдгук, або цiльову змiнну. У спрощенiй постановцi задачi, цiльова змiнна є
або числом або певною характеристикою. Якщо вiдгук є числом, то ми має-
мо справу iз задачею регресiї, якщо фактором - то iз задачею класифiкацiї.

0.1.3 Дискримiнативнi / Генеративнi


Дискримiнативнi алгоритми - це алгоритми метою якої є прогнозування
цiльової змiнної. Генеративний алгоритм - це алгортим метою якого є про-
гнозновування розподiлу.

1
0.2 Регресiя.
0.2.1 Лiнiйна регресiя
Це алгоритм пошуку найкращої лiнiйної формули для прогнозування вiд-
гуку:
yi = β0 + β1 x1i + . . . + βp xpi , (2)
Якщо ми маємо справу з навчанням з учителем (а так i є для задачi регре-
сiї), то в цiй формулi “не вистачає” лише β = (β0 , . . . , βp )T ∈ Rp×1 .
Зауваження: 1. Будемо опускати елемент β0 . Тобто, за потреби (завжди)
будемо додавати до матрицi дизайну колонку з одиниць.
2. Взагалi кажучи, очiкувати на те, що знайдуться такi (β0 , . . . , βp ) за яких
всi N рiвностей (2) будуть виконанi не варто.
Тодi формулу (2) перепишемо у виглядi:
p
X
yi = βk xki + εi = (xi , β) + εi , i = 1, N
k=1

Оскiльки ми маємо N рiвнянь то перепишемо їх у матричнiй формi:

Y = Xβ + ε, (3)

де
Y = (yi )Ti=1,N ∈ RN ×1 , X ∈ RN ×p , β ∈ Rp×1 , ε ∈ RN ×1 .
Тут εi - це похибка прогнозування i-того вiдгуку, а ε - це вектор похибок.
Ми вважаємо, що ε - це випадковий вектор. Тепер, нашу задачу можна
сформулювати так: знайти “найкраще” β яке мiнiмiзує ε.
Як шукати β? Розглянемо наступнi мiркування. Припустимо, N > p та
rank(X) = p. Будемо мiнiмiзувати

||ε||2 = ||Y − Xβ||2 → min .

Помiтимо, що вектори X i , i = 1, p утоворюють пiдпростiр L ⊂ RN , dim(L) =


p, нам потрiбно знайти вектор v ∈ L, щоб ||Y − v||2 → min.

v = P rL (Y )

0 = X T (Y − v) = X T (Y − Xβ)
X T Xβ = X T Y
отримали певну систему лiнiйних рiвнянь якi називаються нормальними
рiвняннями.
β̂ = (X T X)−1 X T Y
β̂ ∈ Rp×1 - це оцiнка МНК.
Можна намалювати графiк, де по однiй осi будуть вiдкладенi Yi а по
iншiй (X β̂)i (Predicted with observed) величину X β̂ будемо позначати Ŷ (це
нашi передбачення на тренувальнiй вибiрцi). Якщо ε - незалежнi, та мають
розподiл N(0, σ 2 ).
E β̂ = β, V arβ̂ = (X T X)−1 σ 2 .

2
0.2.2 Нелiнiйнiсть в лiнiйнiй регресiї
Найпростiшим способом додати нелiйностi в модель є введення нових ре-
гресорiв рiвних степеням (або добуткам) iснуючих регресорiв. Запишемо
лiнiйну регресiйну формулу:
p
X
yi = βk xki + εi = (xi , β) + εi , i = 1, N
k=1

Додамо ще кiлька регресорiв z k = (xl )kl (xm )km . Розглянемо приклад,


коли p = 1:

yi = β0 + β1 x1i + εi , i = 1, N
Тодi додатковi регресори матимуть вигляд: zi1 = (x1i )2 , zi2 = (x1i )3 , . . ., i тодi
наша формула набуває вигляду:
yi = β0 + β1 x1i + β2 (x1i )2 + β3 (x1i )3 + εi
Таким чином додаючи новi степенi ми отримуємо полiном, який може
пройти через усi точки нашої вибiрки, це буде дуже погана модель, тому
що вона буде погано прогнозувати новi значення. Така ситуацiя називається
перенавчаннями.
Таким чином, ми прагнемо побудувати алгоритм який мав би малу по-
хибку, але при цьому не перенавчався. Для цього, як правило, видiляють
певну частину даних яка не приймає участi в тренування (оцiнцi параме-
трiв), розбиваючи таким чином вибiрку на тренувальну та тестову. Основнi
принципи для розбиття вибiрки:
1. Тренувальна та тестовi вибiрки мають бути однорiдними.
2. Розмiр тестової вибiрки має бути достатнiм, щоб оцiнити якiсть моделi.

Якщо у нас є двi вибiрки, то ми тренуємо алгоритм на тренувальнiй


вибiрцi (у випадку регресiї отримуємо значення параметрiв β̂) а потiм пе-
ревiряємо якiсть роботи алгоритму на тестовiй вибiрцi. В той же час ми
можемо перевiряти якiсть роботи i на тренувальнiй вибiрцi також. Тодi ми
отримаємо двi похибки - похибку на тестовiй вибiрцi, та похибку на трену-
вальнiй.
Нехай весь датасет має вигляд D = (xi , yi ), i = 1, N , ми розбиваємо його
на двi частини Dtrain = (xi , yy ), i = 1, Ntrain та Dtest = (xi , yi ), i = 1, Ntest ,
так, що Ntrain + Ntest = N , Dtrain ∩ Dtest = ∅, Dtrain ∪ Dtest = D. Тодi
знаходимо β̂ = β̂train , i обчислюємо похибки:
NX
train NX
train

|Ŷtrain,i − Ytrain,i | = |Xtrain β̂train − Ytrain,i |,


k=1 k=1

N
X test N
X test

|Ŷtest,i − Ytest,i | = |Xtest β̂train − Ytest,i |.


k=1 k=1
Як правило рахують не суму модулiв похибок а суму квадратiв похибок.
NX
train  2 NX
train  2
RSStrain = Ŷtrain,i − Ytrain,i = Xtrain β̂train − Ytrain,i ,
k=1 k=1

3
N
Xtest  2 N
X test  2
RSStest = Ŷtest,i − Ytest,i = Xtest β̂train − Ytest,i .
k=1 k=1

0.2.3 Регуляризацiя, Гребенева регресiя


ОНК має певну проблему з дисперсiєю. Як ми вже бачили дисперсiя ОНК
рiвна:
V ar[β̂] = σ 2 (X T X)−1 ,
за умови V ar[ε] = σ 2 IN .
Для регуляризацiї використовують такий прийом:

J(β) = ||Y − Xβ||2 + λ||β||2 → min, (4)

це так звана L2 -регуляризацiя.


За аналiтичної точки зору це еквiвалентно такiй задачi:

||Y − Xβ||2 → min,


(5)
||β||2 ≤ t

Розв’яжемо задачу (4).

J(β) = (Y − Xβ)T (Y − Xβ) + λβ T β,

∇J(β) = −2X T Y + 2(X T X)β + 2λβ = 0.


Звiдси маємо рiвняння:

(X T X + λIp )β = X T Y,

β̂RR = (X T X + λIp )−1 X T Y.


Легко показати формулу для дисперсiї:

V ar[β̂RR ] = σ 2 Z(X T X)−1 Z T ,

де:
Z = (λ(X T X)−1 + Ip )−1 .
Очевидно, що β̂RR ≤ β̂LS .
Зауважимо, що отримана оцiнка дуже чуттєва до масштабу величин X
та Y , тож перед проведенням процедури гребеневої регрессiї, данi потрiбно
нормалiзувати:
Xi − Xi
X i0 = .
S(X i )

0.2.4 LASSO
Least Absolute Shrinkage and selection operator.
LASSO - це метод регуляризацiї, який використовує норму L1 замiсть
норми L2 в гребеневiй регресiї.
p
X
||β||1 = |βj |.
j=1

4
Тодi функцiонал LASSO має вигяд:

||Y − Xβ||22 + λ||β||1 → min, (6)

Еквiвалентна задача виглядає так:


||Y − Xβ||22 → min,

(7)
||β||1 ≤ t

0.2.5 Гiперпараметри
В задачах, що розглядалися, зокрема гребеневiй регресiї та LASSO, виник
ще один параметр - λ. Це параметр, не має iнтерпритацiї в термiнах предме-
тної областi (або задачi, що розглядається) i є чисто технiчним параметром
покликаним допомогти зменшити дисперсiї, або покращити точнiсть алго-
ритму (на тестових даних). Тому λ не оцiнюється з даних, а є параметром,
що задається дослiдником, вiн є фiксованим.
Виникає запитання - а звiдки його брати? Це параметр потрiбно пiд-
бирати. Такi параметри, взагалi кажучи змiнюють нашу модель (цiльовий
функцiонал) i тому вони називаються гiперпараметрами. Як правило цi гi-
перпараметри пiдбирають.
Насправдi виникає проблема. При переборi гiперпаметрiв, та тестуван-
нi моделi з певним гiперпараметром на тестовiй вибiрцi, виходить, що ми
“навчаємо” гiперпараметр, i вiн стає залежним вiд даних (тестових!). Тому,
щоб модель не “перенавчилася” на тестових даних, вибiрку розбивають на
три частини - тренувальну, валiдацiйну та тестову. На валiдацiйнiй частинi
вибiрки пiдбираються гiперпараметри.

0.2.6 Оптимiзацiя
Метод градiєнтного спуску.
Отже, як було показано вище оцiнка найменших квадратiв має вигляд:

β̂ = (X T X)−1 X T Y.

У випадку коли матриця X, та вектор Y мають вiдносно невелику роз-


мiрнiсть, ОНК можна обчислити безпосередньо. Однак зi збiльшенням роз-
мiрностi матрицi X виникають обчислювальнi проблеми зi знаходженням
оберненої матрицi (X T X)−1 .
На допомогу в таких випадках приходять наближенi методи, зокрема
метод градiєнтного спуску. Вiн полягає в наступному.
Нехай маємо деяку функцiю F : Rn → R. Припустимо, що ця функцiя
є гладкою. Зафiксуємо деяку точку x0 ∈ Rn . Тодi градiєнт: ∇F (x0 ), це
напрямок у якому функцiя зростає найшвидше, а вiдповiдно −∇F (x0 ) -
напрямок у якому функцiя найшвидше спадає.
Таким чином для пошуку найближчого до x0 максимуму слiд руха-
тись в напрямку, ∇F (x0 ) а для пошуку найближчого мiнiмуму у напрямку:
−∇F (x0 ).
Нас цiкавить задача пошуку мiнiмуму. Тодi поклавши x1 = x0 −α∇F (x0 ),
для деякого малого α, отримаємо F (x1 ) ≤ F (x0 ). Аналогiчним чином ви-
значимо послiдовнiсть xn = xn−1 − α∇F (xn−1 ), n ≥ 1. Зауважимо, що необ-
хiдно визначити момент зупинки алгоритму. Помiтимо, що якщо точка x∗

5
- є екстремумом, то ∇F (x∗ ) = 0, а отже якщо при якомусь m: xm = x∗ то
всi подальшi xm+i , i ≥ 0 рiвнi xm = x∗ .
Однак не завжди за допомогою такого покрокового алгоритму вдається
знайти безпосереднiй мiнiмум x∗ , або для цього потрiбно забагато крокiв.
Тому для зупинки алогоритма використовують деяке наближення x∗ . Для
цього фiксуємо деяке ε > 0 i якщо |F (xn+1 ) − F (xn )| < ε то алгоритм
зупняється.
Зауважимо, що метод градiєнтного спуску має деякi недолiки. По-перше
швидкiсть збiжностi може бути занадто малою. По-друге алгоритм може
зiйтись до локального мiнiмуму i це може суттєво спотворити потрiбний
результат.
Розглянемо тепер метод градiєнтного спуску в контекстi пошуку розв’язку
задачi МНК. Ми маємо функцiонал:
1 1
J(β) = ||Y − Xβ||2 = (Y − Xβ)T (Y − Xβ),
2N 2N
який слiд мiнiмiзувати по β ∈ Rp .
Тодi ∇J(β) = N1 X T (Xβ − Y ). Далi вибираємо деяке β (0) ∈ Rp×1 , α та ε.
Зауважимо, що функцiя J(β) - опукла, тому вона має єдиний мiнiмум.
Обчислюємо β (n+1) :

β (n+1) = β (n) − (α/N )X T (Xβ (n) − Y ) = β (n) + (α/N )X T (Y − Xβ (n) ).

Якщо |J(β (n+1) ) − J(β (n) )| < ε то зупиняємо алгоритм i покладемо β̂ =


β (n+1) .

6
0.3 Логiстична регресiя.
Розглянемо задачу бiнароної класифiкацiї. Нехай маємо вибiрку (xi , yi ), i =
1, N , xi ∈ R1×p , yi ∈ {0, 1}. Чи можна її розв’язати за допомогою лiнiйної
регресiї?
Якщо спробувати застосувати регресiю напряму отримаємо:
p
X
y i = β0 + βk xki + εi .
k=1

Така модель має цiлий ряд недолiкiв, пов’язаних з тим, що yi приймає


лише два значення, тодi як права частина є певною гiперплощиною i при-
ймає безлiч значень. Тому виникає iдея наближати не yi а ймовiрнiсть:

P {yi = 1; xi , β} = P {yi = 1; xi , β} · 1 + P {yi = 0; xi , β} · 0 = Eyi

за допомогою регресiї. Зокрема вийде модель:


p
X
P {yi = 1; xi , β} = β0 + βk xki + εi .
k=1

Сама ймовiрнiсть, однак змiнюється вiд 0 до 1, тодi як права частина


приймає нескiнченнi значення. Тому замiсть ймовiрностi розглянемо “шан-
си” (odds):
p
P {yi = 1; xi , β} X
= β0 + βk xki + εi .
P {yi = 0; xi , β}
k=1

Вiдношення шансiв приймає значеня вiд 0 до ∞, тодi як права частина


може приймати значення, що сягають −∞. Тому вiзьмемо вiд лiвої частини
логарифм:
p
P {yi = 1; xi , β} X
ln = β0 + βk xki + εi .
1 − P {yi = 1; xi , β}
k=1

Оскiльки самi значення ймовiрностей ми не спостерiгаємо, отже потреби


у εi немає (насправдi ми наближаємо мат. сподiвання, а середнє значення
εi = 0 тож його можна i потрiбно прибрати у всiх формулах). Тодi отримали
модель:
P {yi = 1; xi , β} = g(xi · β),
де ми додали одиничний регресор для вiльного члена, i функцiя g має
вигляд:
ez 1
g(z) = = .
1+e z 1 + e−z
Яким чином знаходити невiдомий параметр β у цiй моделi? Є два спосо-
би - методом максимальної вiрогоднiстi, та за допомогою функцiї втрат.
Почнемо з першого. Запишемо функцiю вiрогiдностi:
N
Y N
Y
L(β) = p(Y ; X, β) = p(yi ; xi , β) = g(xi · β)yi (1 − g(xi · β))1−yi .
i=1 i=1

7
Тепер запишемо логарифмiчну функцiю вiрогiдностi:
N
X
l(β) = yi ln(g(xi · β)) + (1 − yi ) ln(1 − g(xi · β)) → max .
i=1

Для оптимiзацiї скористаємось методом градiєнтного пiдйому. Зауважи-


мо, що для логiстичної функцiї справедливо:

g 0 (z) = g(z)(1 − g(z)).

Тодi:
N
∂l ∂ X
(β) = yi ln(g(xi · β)) + (1 − yi ) ln(1 − g(xi · β)) =
∂βj ∂βj i=1

N
X yi ∂ 1 − yi ∂
= g(xi · β) − g(xi · β) =
i=1
g(xi · β) ∂βj 1 − g(xi · β) ∂βj
N  
X yi 1 − yi ∂
= g(xi · β)(1 − g(xi · β)) − g(xi · β)(1 − g(xi · β)) (xi ·β) =
i=1
g(xi · β) 1 − g(xi · β) ∂βj
N
X
= (yi (1 − g(xi · β)) − (1 − yi )g(xi · β)) xji =
i=1
N
X N
X
= (yi (1 − g(xi · β)) − (1 − yi )g(xi · β)) xji = (yi − g(xi · β))xji =
i=1 i=1

= (X j )T (Y − g(Xβ)).
∇β l(β) = X T (Y − g(Xβ)).
Тодi маємо рекурентне правило для градiєнтного пiдйому:
(m+1) (m)
βj := βj + αX j · (Y − g(X · β (m) )),

або
β (m+1) := β (m) + αX T (Y − g(X · β (m) )).
Поговоримо тепер, про метод заснований на функцiї втрат. Крос-ентропiєю
двох дискретних розподiлiв {pk } та {qk } називається величина:
X
H(p, q) = − pk ln qk .
k

Поняття ентропiї взято з термодинамiки, i воно визначає ступiнь “хао-


тичностi” величини, що дослiджується (у нашому випадку розподiлу). Ен-
тропiя також вiдiграє значну роль в теорiї iнформацiї. Ми не будемо загли-
блюватися в цi галузi, а будемо вважати формулу даною.
Якщо обидва розподiли зосередженi на {0, 1} то:

H(p, q) = −p1 ln q1 − (1 − p1 ) ln(1 − q1 ).

8
Пiдставивши в якостi p1,i := yi , а в якостi q1,i = g(xi · β), отримаємо:
N
X
l(β) = − H(p·,i , q·,i ).
i=1

Тобто максимiзацiя логарифмiчної функцiї вiрогiдностi еквiвалентна мiнi-


мiзацiї функцiоналу крос-ентропiї.

0.3.1 Метод Ньютона-Рафсона


У випадку логiстичної (а також лiнiйної) регресiї є бiльш ефективний алго-
ритм для оптимiзацiї нiж градiєнтний спуск який ми розглянули до цього.
Для того, щоб добитися швидшої збiжностi нiж градiєнтний спуск слiд вра-
хувати опуклiсть функцiоналу, що оптимiзується.
Для цього, потрiбно обчислити гесiан

∂2l
 
2
H(β) = ∇ l(β) =
∂βj ∂βk j,k=1,p

Обчислимо його для логiстичної регресiї:


N N
∂2l ∂ X X
= (yi − g(xi · β))xji = − g(xi · β)(1 − g(xi · β))xki xji .
∂βj ∂βk ∂βk i=1 i=1

Введемо матрицю G:
 
g1 0 ... 0
 0 g2 ... 0 
G= ,
 
.. .. .. ..
 . . . . 
0 0 ... gN

gi = g(xi · β)(1 − g(xi · β)).


Тодi
H = −X T GX
Зауважимо, що H - вiд’ємно визначена, отже функцiя l угнута, а отже
має єдиний максимум. Як його знайти?
Для кожного β ∈ Rp введемо допомiжну ф-цiю Fβ : Rp → R,

1
Fβ (z) = l(β) + (∇l(β))T (z − β) + (z − β)T H(β)(z − β).
2
Запишемо тепер Fβ (z) у формi:

1 T
Fβ (z) = z H(β)z + (∇l(β))T z + c(β),
2
тодi:
∇z Fβ (z) = H(β)z + ∇l(β) = 0,
або
z ∗ = H −1 (β)∇l(β).

9
Можна показати, що l зростає в напрямку z ∗ , отже iтеративний алго-
ритм:

β (n+1) = β (n) + αH −1 (β (n) )(∇l(β (n) )) = β (n) − α(X T G(β (n) )X)−1 (∇l(β (n) )),

збiгатиметься до максимум l. Як правило, вiн збiгається швидше нiж гра-


дiєнтний спуск.

0.3.2 Софтмакс регресiя


Логiстичну регресiю можна модифiкувати для випадку, коли ми маємо кла-
сифiкацiю на багато класiв. У цьому випадку ми маємо вибiрку (xi , yi ),
xi ∈ Rp×1 , yi ∈ {1, . . . , K}. Тодi слiдуючи таким же мiркуванням, як i для
логiстичної регресiї запишемо:
  p
P {yi = k; xi , β} X
ln = xji βk,j ,
P {yi = K; xi , β} j=1

де  
| | | |
β =  β1 β2 βK−1  ∈ Rp×(K−1) .
...
| | ||
P 
p j
exp x β
j=1 i k,j
P {yi = k; xi , β} = P P .
K−1 p j
l=1 exp j=1 xi βl,j

Як пiдганяти таку модель? Можна скористатися крос-ентропiєю:


K
N X
1{k} (yi ) ln P {yi = k; xi , β} → min .
X
H(β; Y, X) = −
i=1 k=1

Як правило, однак до цiєї функцiї приходять iншим шляхом. Предста-


вимо yi ∈ {1, . . . , K} у виглядi так званого one-hot вектора:

ỹi = (0, . . . , 1, . . . , 0),

де одиниця стоїть на k-тому мiсцi, якщо yi = k. тодi:


K
X
Hi (β; ỹi , xi ) := − ỹi,k ln P {ỹi,k = 1; xi , β},
k=1

N
X
H(β; Ỹ , X) = Hi (β; ỹi , xi ).
i=1

Цю ж задачу мiнiмiзацiї можна отримати, розглянувши сумiсну щiль-


нiсть векторiв ỹi , та шукаючи β яке максимiзує цю щiльнiсть.

10
0.3.3 Як працює логiстична регресiя?
Розглянемо ситуацiю бiнарної класифiкацiї.
1. Спочатку ми маємо тренувальний набрi (xi , yi ), i = 1, N .
2. Iтеративно обчислюємо параметр β̂ ∈ Rp .
3. Прогнозом нашої моделi є ймовiрнiсть: P {yi = 1; xi , β̂} = g(xi · β̂). То-
дi для довiльного x, модель передбачає, ймовiрнiсть того, що вiдповiдне
спостереження належить першому класу, i ця ймовiрнiсть рiвна: g(x · β̂).
Якщо ця ймовiрнiсть бiльша 1/2 (або шанси бiльшi одиницi, або логарифм
шансiв бiльший нуля) то присвоюємо даному спостереженню клас 1, iнакше
присвоюємо клас 0.
Аналогiчна ситуацiя з багатокласовою класифiкацiєю. Алгоритм вивчить
набiр векторiв β̂k , кожен з яких дасть можливiсть обчислити ймовiрнiсть
того, що y належить k-тому класу. Пiсля цього, ми обираємо клас iз най-
бiльшою прогнозованою ймовiрнiстю.
Зауважимо, що алгоритм прогнозує P {y = k; x, β̂}, але β̂ - це вектор
(або матриця), тобто невипадкова величина!
Алгоритм логiстичної регресiї є лiнiйним класифiкатором! Спавдi, роз-
глянемо роздiляючу поверхню. Ми вiдносимо x до класу 1 якщо:
 
P {y = 1; x, β}
ln > 0,
1 − P {y = 1; x, β}
що еквiвалентно
x · β > 0.
Вiдповiдно, ми класифiкуємо точку x до 0 класу, якщо
x · β < 0.
Тобто роздiляючою поверхнею є x · β = 0.

0.4 Метод k-найближчих сусiдiв


Метод класифiкацiї пiд назвою k-найближчих сусiдiв (k − nn) полягає в
тому, що для заданої точки знаходять k точок iз навчаючої вибiрки (вибiрки
з точок для яких вiдома приналежнiсть до певного класу), i класифiкують
задану точку до тiєї групи представникiв якої найбiльше серед обраних k
сусiдiв.
Випадок коли k = 1 працює несподiвано добре для певних типiв задач.
Вiн вiдповiдає побудовi дiаграми Вороного з центрами у кожнiй точцi на-
вчаючої вибiрки.
Метод k-найближчих сусiдiв може бути адаптовано до “невпевного” ви-
бору, шляхом введення другого параметру, такий метод називається (k, l)-
правило. Полягає воно в тому що класифiкацiя вiдбувається якщо за “пере-
можний” клас “проголосувало” не менше нiж l точок з навчаючої вибiрки,
в iншому разi приймається рiшення D. Така модель застосовуєтсья у зада-
чах з неоднаковими втратами при неправильнiй класифiкацiї, i тому надає
можливiсть “меношстi” впливати на вибраний клас.
Двома основними параметрами k − nn класифiкатора є власне вибiр чи-
сла k а також вибiр метрики. Ми поговоримо про вплив цих гiперпараметрiв
пiзнiше.

11
0.4.1 Вибiр метрики
Iншим важливим питанням є вибiр метрики для k − nn класифiкатора.
В рiзних працях розглядалися декiлька рiзних метрик. Наведемо кiльки
метрик якi мають теоретичний результат. Так для 2-класової класифiкацiї
локальна метрика d(x, y) = |p(1|x) − p(1|y)| мiнiмiзує рiзницю мiж ризиком
у скiнченiй моделi та асимптотичним ризиком.
Iншi дослiдження
p стосувалися метрики Махалонобiса:
d(x, y) = (x − y)T A(x − y). Була обчислена спецiальна матриця A яка
мiнiмiзує ризик.
Але цi результати мають швидше теоретичний iнтерес. З практичної
точки зору велике значення має так звана дотична метрика.
Розглянемо задачу розпiзнавання рукописних цифр. Для цього як пра-
вило зменшують зображення до вiдносно невеликого розмiру (16x16, 25x25)
i переводять у формат grayscale. Таким чином зображення представляється
у виглядi вектора чисел вiд 0 до 255 (часто його ще нормують, щоб отри-
мати числа вiд 0 до 1).
Однак в при розпiзнаваннi рукописних цифр - однаковi цифри (напри-
клад 3) можуть бути досить по рiзному написанi, наприклад пiд нахилом.
2
Однак їхнi представлення у вiдповiдному просторi Rn , де n × n це роз-
мiр зображення можуть знаходитись досить далеко одне вiд одного. I тому
класифiкатор на основi k-найближчих сусiдiв може працювати некоректно.
Ми б хотiли позбутись ефекту повороту при вимiрюваннi вiдстанi мiж
двому цифрами у одному i тому ж класi. Розглянемо для цього множи-
2
ну точок в Rn що оригiнальнiй трiйцi та її повернутiй версiї - отримаємо
2
одновимiрну криву в Rn (зеленого кольору на малюнку). Для рiзних трiйок
з нашого набору проведемо вiдповiдну криву шляхом ротацiї зображення
яку назвемо iнварiантним многовидом в даному контекстi. Тепер, за-
мiсть того, щоб використовувати звичайну Евклiдову вiдстань мiж двома
зображеннями ми будемо використовувати найкоротшу вiдстань мiж двома
кривими.
Iншими словами, вiдстань мiж двома зображеннями - це найменша Ев-
клiдова вiдстань мiж iнварiантними многовидами породженими цими зо-
браженнями. Назвемо таку вiдстань - iнварiантною метрикою.
В принципi можна було б використовувати метод 1-найближчого сусi-
да для класифiкацiї використовуючи цю метрику. Однак на практицi це
пов’зяно з рядом проблем - необхiдно обчислювати вiдстанi мiж кривими,
що досить складно, по друге слiд великi трасформацiї наприклад на 180
градусiв приведуть нас до хибних результатiв (наприклад 6 та 9).
Для вирiшення цих проблем використовується дотична вiдстань. Ми
можемо апроксимувати кожен iнварiантний многовид дотичною в точцi що
вiдповiдає оригiнальному зображенню.
Дотична може бути обчислена рiзними способами - як дотична до кри-
вої отриманої внаслiдок малих поворотiв так i iнших просторових методiв.
Таким чином необхiдно обчислити iнварiантну дотичну пряму для кожного
зображення iз навчаючої вибiрки. Аналогiчно будується дотична до зобра-
ження що пiдлягає класифiцiї, i знаходиться найближча лiнiя у тренуваль-
нiй вибiрцi - клас (цифра) яка вiдповiдають найближчiй лiнiї i буде наш
передбачений клас.
Можна було б додати повернутi версiї зображень i використати звичай-

12
ний метод k − nn. Однак проблема полягає у тому, що окрiм поворотiв
ми можливо захочимо додати розмитi версiї зображень а також стягнутi,
розтягнутi або змiщенi. I кiлькiсть зображень яку слiд згенерувати може
виявитись завеликою.
Тодi як пiдхiд дотичних метрик, приведе до того що ми матимемо справу
з багатовимiрним многовидом невеликої розмiрностi (3-4, по розмiрностi
для кожної трасформацiї) i побудова дотичних гiперплощин є елегантним
способом вирiшити цю проблему.
Так, даний пiдхiд дозволив отримати кращу якiсть порiвнювану з роз-
пiзнаванням людиною на вибiрцi з U.S. Postal services database (7291 трену-
вальне зображення i 2007 тестових).
Ретельно побудована нейронна мережа дала точнiсть в 0.049, метод 1
найближчого сусiда з Евлклiдовою метрикою - 0.055 а метод 1 сусiда з
дотичною метрикою - 0.026.
Даний набiр зображень є досить складним для розпiзнавання i отримана
точнiсть у 0.026 є близькою до точностi розпiзнавання людиною.

0.5 Байєсiвська класифiкацiя


Розглядаємо задачу, що полягає у тому щоб класифiкувати певний об’єкт
як приналежний до одного з K класiв {1, 2, . . . , K}. Кожен об’єкт представ-
лений певним набором характеристик X (feature vector X) що належить до
певного фазового простору X. Як правило X = Rp , або X = X1 × . . . × Xp де
кожна Xp це деяка скiнчена множина або R.
Пропорцiя класу k у популяцiї що розглядається може бути вiдомою або
невiдомою величиною πk . Об’єкти, що належать класу k розподiленi згiдно
зi щiльнiстю pk (x) (теж як правило невiдомою).

13
Задача полягає у тому. щоб вiднести новий об’єкт X до одного з K + 2
можливих класiв: {1, . . . , K, D, O}. Тут D означає неможливiсть (або невпев-
ненiсть) вiднести об’єкт до жодного з класiв {1, . . . , K}, а O означатиме, що
об’єкт X є викидом який слiд вилучити iз розгляду.
Припустимо, що щiльностi pk та апрiорнi ймовiрностi πk - вiдомi. У цьо-
му випадку стає можливим сконструювати класифiкатор iз певними опти-
мальними властивостями. На практицi такi результати як правило не мо-
жуть бути застосованi безспосередньо, оскiльки щiльностi pk невiдомi. Але
отриманi теоретичнi результати дають можливiсть порiвнювати iншi пра-
ктичнi методи.
Припустимо також, що викидiв у задачi що розглядається немає. Нехай
класифiкуюче правило (класифiкатор) має вигляд:

ĉ : X → {1, . . . , K, D}

Щоб визначити чи є даний класифiкатор хорошим чи поганим нам потрi-


бен якийсь критерiй оцiнки якостi класифiкатора. Для цього розглянемо
ймовiрностi неправильної класифiкацiї:

p− (k) = P {ĉ(X) 6= k, ĉ(X) ∈ {1, . . . , K}|C = k},

де C - це справжнiй клас що вiдповiдає X.


Розглянимо також ймовiрностi вiдмови:

pd (k) = P {ĉ(X) = D|C = k}.

Величини p− (k) та pd позначають безумовнi ймовiрностi неправильної кла-


сифiкацiї або вiдмови вiдповiдно.
Звичайним пiдходом, щодо визначення якостi класифiкатора є визначе-
ння так званої функцiї втрат.
Нехай L(k, l) - це втрати вiд прийняття неправильнного рiшення, що-
до вiднесення об’єкту до класу l якщо справжнiй клас C = k. Очевидно
має бути L(k, k) = 0 та часто визначають L(k, D) = d для всiх k. В той
же час всi iншi L(k, l) можуть набувати довiльних додатнiх значень. Якщо
будь-яка неправильна класифiкацiя викликає однаковi втрати то функцiя
класифiкацiї має вигляд:

 0, якщо l = k,
L(k, l) = 1, якщо l 6= k, (8)
d, якщо l = D

Тут k = 1, . . . , K та l = 1, . . . , K, D.
Визначена таким чином функцiя втрат є стандартним вибором, коли не-
має пiдстав (або додаткової iнформацiї) вважати, що рiзнi помилковi рiше-
ння ведуть до рiзних втрат. Однак в деяких випадках, припущення одна-
ковостi втрат не є допустимим, наприклад у медичних задачах, де рiзнi
неправильнi рiшення можуть вести до вiдмiнних та дуже суттєвих втрат i
це варто враховувати у побудовi моделi.
Введемо тепер функцiю ризику для класифiкатора ĉ - це очiкуванi
втрати при використаннi цього класифiкатора:

R(ĉ, k) = E[L(k, ĉ(X))|C = k] =

14
K
X
L(k, l)P {ĉ(X) = l|C = k} + L(k, D)P {ĉ(X) = D|C = k} =
l=1

p− (k) + dpd (k).


Повний ризик - це повнi очiкуванi втрати вважаючи i клас C i вектор
X випадковими:
K
X K
X
R(ĉ) = ER(ĉ, C) = πk p− (k) + d πk pd (k).
k=1 k=1

Позначимо:
πk pk (x)
p(k|x) = P {C = k|X = x} = K
P
πl pl (x)
k=1

апостерiорнi ймовiрностi класу k при заданому X = x. Тодi має мiсце на-


ступна

Теорема 1 Класифiкатор, що мiнiмiзує повний ризик з функцiєю втрат


заданою (8) має вигляд:

k, якщо p(k|X) = maxl≤K p(l|x) та ця величина перевищує 1 − d,
c(x) =
D, якщо p(k|x) ≤ 1 − d
(9)
А для загальної функцiї втрат:
( P
k, якщо, при цьому досягається minl≤K L(j, l)p(j|x) < d,
c(x) = j
D, iнакше
(10)

Доведення.

Маємо:
Z
R(ĉ) = E[E[L(C, ĉ(X))|X]] = E[L(C, ĉ(x))|X = x]p(x)dx
X

K
P
де p(x) = πk pk (x) - маргiнальна щiльнiсть для X.
k=1
Нам достатньо мiнiмiзувати умовне математичне сподiвання, яке можна
записати у виглядi:
K
X
L(k, c)p(k|x),
k=1

як функцiю c для кожного x. Для c = D маємо:


K
X
L(k, D)p(k|x) = d
k=1

15
За рiвномiрної функцiї втрат (8) мiнiмiзатор має вигляд:

1 − p(1|x), . . . , 1 − p(K|x), d

якщо ĉ = 1, . . . , K, D вiдповiдно. Таким чином ми вибириаємо максимум з


p(1|x), . . . , p(K|x), 1 − d та знаходимо шуканий розв’язок.

Альтернативний спосiб запису оптимального класифiкатора для функцiї
втрат (8) - це вибрати клас з найвищим πk pk (x) якщо вiн перевищує (1 −
d)p(x).
Оптимальний класифiкатор iз щойно доведеної теореми також називає-
ться Байєсовим класифiкатором, або Байєсовим вирiшуючим пра-
вилом. Якщо два або бiльше класiв досягають максимального значення
p(k|x) то клас можна вибирати (серед них) довiльним чином.
Значення R(c) повного ризику для Байєсiвського класифiкатора нази-
вають Байєсовими ризиком. Ця величина - це найкраще, чого можна
досягнути при вiдомих πk та pk , i встановлює стандарт для порiвняння для
всiх iнших класифiкаторiв.
Для двох класiв, i без “невпевненого” вибору (d = 0), Байєсовий ризик
має вигляд: E min[p(1|x), p(2|x)]. Для довiльної кiлькостi класiв вiн має ви-
гляд:
E[1 − max p(k|x)].
Покладемо r(x) = 1 − maxk p(k|x). Тодi з невпевненим вибором:

p− = E[r(X)I[r(X) ≤ d]], pd = P {r(X) > d},

та Байєсiвський ризик має вигляд: R = p− + dpd .

0.5.1 Наївний байєсiвський класифiкатор


Наївний баєсiвський класифiкатор, є одним iз найпростiших генеративних
алгоритмiв. Його суть полягає у “наївному припущеннi”:
p
Y
pk (x1 , . . . , xp ) = pk (xj ).
j=1

Тодi апостерiорна щiльнiсть для класу k матиме вигляд:


p
πk pk (x) Y
p(k|x) = K
∝ π k pk (xj ).
P
πl pl (x) j=1
k=1

Тобто, для того, щоб класифiкувати об’єкт нам потрiбно оцiнити величини
pk (xi ) = P {Xi |C = K}.
Розглянемо приклад - баєсiвський класифiкатор спаму. Нехай маємо
словник у якому p-слiв (p-може сягати кiлькох тисяч). Об’єктом який слiд
класифiкувати є повiдомлення x. Повiдомлення ми представляємо як ве-
ктор iндикаторiв кожного слова зi словника. Тобто x = (x1 , . . . , xp ), i кожне
xj ∈ {0, 1}.

16
Наприклад нехай маємо словник: (“я”, “ти”, “ми”, “любити”, “не любити”,
“гуляти”, “спати”) - всього 7 слiв, отже p = 7. Тодi повiдомлення: “я люблю
гуляти” кодується як x = (1, 0, 0, 1, 0, 1, 0).
Тепер маючи тренувальний датасет (xi , yi ), i = 1, N , yi ∈ {0, 1}, де y = 0
- спам, y = 1 - не спам, можемо оцiнити апрiорнi йомвiрностi πk :
N N
1 X 1 X
π1 = yi , π0 = (1 − yi ) = 1 − π1 ,
N i=1 N i=1

та щiльностi pk (xj ):
N N
1 X 1 X
p1 (xj ) = yi 1xj =1 , p0 (xj ) = (1 − yi )1xj =0 ,
N1 i=1 N0 i=1

де
N
X N
X
N1 = N π 1 = y1 , N0 = N π0 = (1 − yi ),
i=1 i=1

кiльксть не спамових та спамових повiдомлень вiдповiдно.


Зауважимо, що в результатi ми отримали сумiсний розподiл: p(x, y) =
πy py (x).

0.6 Опорна машина векторiв


В даному роздiлi ми побудуємо оптимальний лiнiйний класифiкатор, а потiм
покажимо, як за його допомогою можна створювати нелiнiйнi класифiка-
тори.
Отже, як i ранiше припустимо наш тренувальний набiр даних мiстить
N пар (xi , yi ), де xi ∈ Rp , а yi ∈ {−1, 1}. Визначимо гiперплощину:

{x : f (x) = x · β + β0 = 0},

де β це одиничний вектор, ||β|| = 1. Класифiкацiйне правило, створене f (x)


виглядає таким чином:

G(x) = sign(x · β + β0 ).

За допомогою f (x) можна визначити знакозмiнну вiдстань з точки x до


гiперплощини f (x) = x · β + β0 = 0. Оскiльки класи лiнiйно роздiльнi то
можливо знайти функцiю f (x) = x · β + β0 , таку що yi f (xi ) > 0, ∀i. Таким
чином можливо знайти гiперплощину що створює найбiльший вiдступ мiж
тренувальними точками для класiв 1 та −1.
Для початку нагадаємо трохи алгебри. Гiперплощина в Rp задається
формулою x · β + β0 = 0. Тут β це вектор нормалi, перпендикулярний до
гiперплощини. Якщо вздовж вектору β вiдкласти вiдстань β0 отримаємо
“новий нуль” - x0 . Для довiльної точки x ∈ Rp вiдстань вiд x до гiперпло-
щини задається формулою:
1
d(L, x) = β · (x − x0 ) = (x · β + β0 ),
||β||

17
для довiльного x0 ∈ L: x0 · β = −β0 .
Наша задача знайти таку пряму, щоб вiдстань вiд усiх тренувальних
точок до прямої була максимальною (поки розглядаємо випадок лiнiйно
роздiльних даних). Позначимо цю вiдстань 2M .
Тодi оптимiзацiйна проблема має вигляд:

maxβ,β0 ,||β||=1 M
(11)
yi (xi · β + β0 ) ≥ M, i = 1, . . . , N

Вiдступ з кожного боку гiперплощини до найближчої тренувальної то-


чки буде принаймнi M , а отже вся смуга буде мати ширину 2M .
Зауважимо, що задача полягає у максимiзацiї вiдсстанi вiд усiх точок,
тобто yi (xTi β + β0 ) ≥ ||β||M . Зауважимо, що множення на будь яку констан-
ту не змiнить цiєї задачi оптимiзацiї, тому можна покласти M = ||β||−1 .
Дана проблема може буте перефразована бiльш зручно:

minβ,β0 ||β||
(12)
yi (xTi β + β0 ) ≥ 1, i = 1, . . . , N

Зауважимо, що умови ||β|| = 1 бiльше немає, а M = ||β||−1 . Дана проблема


є задачею опуклої оптимiзацiї i тому допускає розв’язання, як це показано
у дискримiнантному аналiзi.
Розв’язучи цю задачу (а це є задача опуклої оптимiзацiї), записавши
умови Каруша-Куна-Такера ми побачимо, що значеня матимуть лише то-
чки що потрапляють на край межi. Такi точки i називаються опорними
векторами.

Припустимо зараз що класи перетинаються у фазовому просторi. Один


зi способiв як працювати з таким перетином, все ще максимiзувати M , але

18
дозволити деяким точкам бути на неправильнiй сторонi. Визначимо допо-
мiжнi (люфтовi - slack) змiннi: ξ = (ξ1 , . . . , ξN ) (це такi змiннi якi в зада-
чi оптимiзацiї перетворюють нерiвностi на рiвностi). Iснує два природнiх
способи як модифiкувати задачу оптимiзацiї:

yi (xi · β + β0 ) ≥ M − ξi , (13)

або
yi (xi · β + β0 ) ≥ M (1 − ξi ), (14)
N
P
∀i, ξi ≥ 0, ξi ≤ constant. Цi два варiанти ведуть до рiзних розв’язкiв.
i=1
Перший варiант виглядає бiльш природнiм, оскiльки вiн вводить вимiрює
перекриття (overlap) у абсолютнiй вiдстанi, другий вибiр вводить вiдносну
вiдстань для перекриття, що змiнює ширину вiдступу M . Однак перший
варiант веде до неопуклої задачi оптимiзацiї а другої до опуклої. Таким
чином ми використаємо другу форму, що приведе нас до “стандартних”
опорних векторiв.
Iдея полягає в наступному. Величина ξi в обмеженнях yi (xi · β + β0 ) ≥
M (1−ξi ) - це величина пропорцiйна “перестрибку” прогнозу Pf (xi ) = xi ·β+β0
на неправильнiй сторонi вiдступу. Тому обмежуючи суму ξi ми обмежує-
мо загальну пропорцiйну величину на яку точкам “дозволяється” перестри-
бнути на неправильну сторону вiдступу. P Неправильна класифiкацiя вiдбу-
вається коли ξi > 1, отже обмеження ξi < K, обмежує загальну кiлькiсть
неправильних класифiкацiй величиною K.
Можемо переформулювати задачу оптимiзацiї позбавившись обмеження
на норму β, визначивши M = ||β||−1 :


 ||β|| → min,
yi (xi · β + β0 ) ≥ 1 − ξi , ∀i,

(15)

 ξ ≥ 0,
 P
ξi ≤ constant

Зауважимо, що величини ξi мають наступну iнтерпритацiю: якщо ξi = 0,


то точка лежить у своїй пiвплощинi поза смугою, якщо ξ ∈ (0, 1), то точка
лежить у смузi, i якщо ξ ≥ 1, то точка лежить поза смугою у неправильнiй
пiвплощинi.
Iз сутностi задачi оптимiзацiї бачимо, що точки якi лежать у правиль-
них пiвплощинах не вiдiграють великої ролi, що є однiєю з вiдмiнностей
вiд дискримiнантного аналiзу, де вирiшуючi межi (межi смуги) визначенi
коварiацiєю розподiлiв класiв та позицiями центроїдiв. Такi точки, з ξ > 0,
що впилвають на класифiкатор i називаються опорними векторами.
Задачу (15) можна переформулювати у наступному виглядi:

N
 minβ,β0 12 ||β||2 + C
P
ξi ,


i=1 (16)
y (x · β + β0 ) ≥ 1 − ξi , ∀i,
 i i


ξi ≥ 0

Тут “цiновий” параметр C виступає в ролi константи з (15). Лiнiйно роз-


дiльний випадок вiдповiдає C = ∞, (тобто всi ξi = 0).

19
Функцiя Лагранжа має вигляд:
N N N
1 X X X
L= ||β||2 + C ξi − αi (yi (xi · β + β0 ) − (1 − ξi )) − µi ξi ,
2 i=1 i=1 i=1

яку слiд мiнiмiзувати по β, β0 та ξi . Прирiвнявши вiдповiднi похiднi до нуля,


отримаємо:
N
P
β= αi yi xi ,
i=1
PN (17)
0= αi yi ,
i=1
αi = C − µi , ∀i,
а також невiд’ємнiсть обмежень αi , µi , ξi ≥ 0, ∀i. Пiдсавляючи отриманi
величини в лагранжiан отримаємо лагранжiан дуальної цiльової функцiї:
N N N
X 1 XX
LD = αi − αi αj yi yj xi · xj ,
i=1
2 i=1 j=1

що дає нижню межу цiльової функцiї (16 у будь-якiй допустимiй точцi. Нам
PN
слiд максимiзувати LD за обмежень: 0 ≤ αi ≤ C та αi yi = 0. На додачу
i=1
до умов (17) потрiбнi ще умови Каруша-Куна-Такера:

αi [yi (xi · β + β0 ) − (1 − ξi )] = 0, (18)


µi ξi = 0, (19)
yi (xi · β + β0 ) − (1 − ξi ) ≥ 0, (20)
для i = 1, . . . , N . Разом з (17) цi рiвностi та нерiвностi характеризують
розв’язок який знаходиться спецiальними алгоритмами.
Iз (17) ми бачимо, що роз’язок бути мати вигляд:
N
X
β̂ = α̂i yi xi ,
i=1

де ненульовi коефiцiєнти α̂i будуть лише для тих спостережень i, для яких
(20) в точностi виконано (в силу (18)). Цi спостереження i називають опор-
ними векторами, оскiльки β̂ зображено у виглядi лише цих векторiв.
Серед цих точок, деякi будуть лежати на межi смуги (ξˆi = 0), а тому
будуть характеризуватися 0 < α̂i < C, решта ξˆi > 0 матимуть α̂ = C.
Iз (18) випливає що тi точки що лежать на межi 0 < α̂i , ξˆi = 0 можуть
бути використанi для обчислення β0 .
Задача максимiзацiї LD як правило простiша за нiж оригiнальна задача
i розв’язується стандартними технiками.
Отримавши вектори β̂0 та β̂, класифiкатор має вигляд:

Ĝ(x) = sign(fˆ(x)) = sign(x · β̂ + β̂0 ).

Параметром налаштування (тюнiнгу) моделi є константа C.

20
0.6.1 Використання ядер у SVM.
Розглянутi вище моделi є лiнiйними. Як i в задачах регресiї їх можна зро-
бити нелiнiйними додавши додатковi ознаки, такi як степенi початкових
даних, або сплайни. Так, для кожного xi можна розглянути функцiю:

h(xi ) = (h1 (xi ), . . . , hm (xi )),

i звичайний класифiкатор:

G(x) = sign(h(x) · β + β0 ).

Зауважимо, що задачу оптимiзацiї яку ми розглядали ранiше, можна пе-


реформулювати лише у виглядi скалярних добуткiв, так функцiя LD може
бути зображена у виглядi:
N N N
X 1 XX
LD = αi − αi αj yi yj < h(xi ), h(xj ) >,
i=1
2 i=1 j=1

розв’язок цiєї задачi може бути представлений у виглядi:


N
X
f (x) = h(x) · β + β0 = αi yi < h(x), h(xi ) > +β0 .
i=1

Таким чином бачимо, що знати всю функцiю h(x) непотрiбно, а потрiбно


знати лише скалярнi добутки, або ядерну функцiю:

K(x, x0 ) =< h(x), h(x0 ) > .

Щоб функцiя K(x, y) могла зображатись у виглядi скалярного добутку вона


повинна бути симетричною, додатньо напiв-визначеною.
Популярними ядерними функцiями є:

Полiномiальне ядро, степенi d K(x, x0 ) = (1+ < x, x0 >)d ,


0 2
Радiальне (Гаусове) ядро K(x, x0 ) = e−γ||x−x || , (21)
Тангенс гiперболiчний K(x, x0 ) = tanh(k1 < x, x0 > +k2 ).

Наприклад для полiномiального ядра другого степеня:

K(x, x0 ) = (1+ < x, x0 >)2 = 1+2x1 x01 +2x2 x02 +(x1 x01 )2 +(x2 x02 )2 +2x1 x2 x01 x02 .
√ √ √
Таким чином m = 6 i h(x) = (1, 2x1 , 2x2 , x21 , x22 , 2x1 x2 ). Тодi має мiсце
зображення: K(x, x0 ) =< h(x), h(x0 ) >.
В багатовимiрних просторах роль параметра C полягає у згладжуван-
нi роздiляючої повернхнi. Справдi, якщо C - велике, це приведе до малих
значень ξi тобто до малої кiлькостi неправильно класифiкованих тренуваль-
них даних, що як правило веде до перенавчання та нерегулярної роздiлячої
кривої.

21
0.7 Моделi заснованi на деревах.
Iдея методiв заснованих на деревах полягає у подiлi простору значень на
набiр прямокутникiв, i потiм натренувати просту просту модель у кожному
прямокунтнику. Подiбнi моделi дуже простi, але тим не менше демонстру-
ють гарнi результати на певних типах задач.
Для початку розглянемо регресiйну проблему з неперервним вiдгуком
Y та регресорами X1 та X2 зi значеннями на одиничному iнтервалi. Для
початку роздiлимо простiр на два регiони, та змоделюємо вiдгук середнiм
Y у кожному з регiонiв. Ми вибираємо змiнну та точку подiлу щоб досягти
найкращої пiдгонки.
Тодi один з цих регiонiв роздiляється на два iнших регiони та цей процес
продовжується поки не виконається якесь зупиняюче правило.
Наприклад, як показано на малюнку, ми спочатку роздiлимо регiон при
X1 = t1 , потiм регiон X1 ≤ t1 буде роздiлено прямою X2 = t2 та регiон
X1 > t1 прямою X1 = t3 . Нарештi регiон X1 > t3 буде роздялено X2 = t4 . У
результатi отримаємо розбиття простору на регiони R1 , . . . , R5 як показано
на малюнку.

Вiдповiдна регресiйна модель прогнозує Y константою cm в регiонi Rm :

22
5
X
fˆ(X) = cm I(X1 ,X2 )∈Rm .
m=1

Таку модель можна уявити як вирiшуюче дерево, що показано на ма-


люнку. Також на малюнку зображена поверхня для Y :

Тепер повернемось до питання - як виростити регресiйне дерево. Нашi


данi склаються з p регресорiв та вiдгуку, всього N спостережень, якi ми
позначимо (xi , yi ), i = 1, . . . , N , з xi = (xi1 , xi2 , . . . , xip ). Алгоритм пови-
нен автоматично вирiшити по яким змiнним проводити роздiлення та по
яким точкам а також топологiю (форму) дерева. Спершу припустимо, що
ми маємо розбиття на M регiонiв R1 , . . . , RM та ми моделюємо вiдгук як
константу у кожному регiонi:
M
X
f (x) = cm I(x ∈ Rm ).
m=1
P
Якщо застосувати критерiй мiнiмiзацiї заснований на сумi квадратiв (yi −
f (xi ))2 то легко побачити, що найкращi ĉm це просто середнi значення yi в
регiонi Rm :
ĉm = ave(yi |xi ∈ Rm ).
Однак знаходження найркащого розбиття з точки зору мiнiмальної суми
квадратiв в цiлому недосяжне з обчислювальної точки зору. Отже при бу-
демо використовувати жадiбний алгоритм. Стартуючи з усiх даних, визна-
чимо роздiляючу змiнну j та роздiляючу точку s, та визначимо пару пiв-
площин:
R1 (j, s) = {X|Xj ≤ s}, та R2 (j, s) = {X|Xj > s}.
Далi ми будемо шукати роздiляючу змiнну j та роздiляючу точку s так,
щоб розв’язати:
 
X X
min min (yi − c1 )2 + min (yi − c2 )2  .
j,s c1 c2
xi ∈R1 (j,s) xi ∈R2 (j,s)

23
Для будь-якого вибору j та s, внутрiшня мiнiмiзацiя розв’язується як:
ĉ1 = ave(yi |xi ∈ R1 (j, s)), таĉ2 = ave(yi |xi ∈ R2 (j, s)).
Для кожної роздiляючої змiнної, визначення роздiляючої точки s може бути
зроблено дуже швидко i тому скануючи всi вхiднi данi визначення найкра-
щої пари (j, s) є можливим з обчислювальної точки зору.
Знайшовши найкраще роздiлення, ми будуємо розбивання даних на два
результуючих регiони та повторюємо роздiлючу процедуру для кожного з
двох регiонiв. Тодi цей процес повторюється на кожному з регiонiв. Наскiль-
ки великим має бути дерево? Очевидно, що завелике дерево може перена-
вчитися на даних тодi як замале дерево може не вловити потрiбну стру-
ктуру. Розмiр дерева є парамтером моделi який визначає складнiсть, та
оптимальний розмiр має бути адаптовано до даних. Один зi способiв може
полягати у тому, щоб роздiляти вузли дерева лише якщо зменшення суми
квадратiв звадяки такому розщепленню перевищує певний порiг. Ця стра-
тегiя досить проста однак, досить слабке роздiлення може вести до дуже
гарного роздiлення пiсля нього.
Кращою стратегiєю буде ростити велике дерево T0 i зупиняти процес
роздiлення лише коли деякий мiнiмальний розмiр вузла (наприклад 5) бу-
де досягнуто. Тодi таке велике дерево слiд урiзати використовуючи cost-
complexity pruning, яке ми зараз розглянемо.
Визначимо пiддерево T ∈ T0 як будь-яке дерево, що може бути отримано
шляхому урiзання T0 , або згортання будь-якої кiлькостi внутрiшнiх вузлiв
(не крайнiх листкiв). Проiндексуємо термiнальнi (крайнi) вузли iндексом
m, так що вузол m представляє регiон Rm . Нехай |T | позначає кiлькiсть
термiнальних вузлiв у T . Позначимо:
Nm = #{xi ∈ Rm },
1 X
ĉm = yi ,
Nm
xi ∈Rm
1 X
Qm (T ) = (yi − ĉm )2 ,
Nm
xi ∈Rm

визначимо цiновий критерiй складностi (cost complexity criterion):


|T |
X
Cα (T ) = Nm Qm (T ) + α|T |.
m=1

Iдея полягає у тому, щоб для кожного α пiддерево Tα ∈ T0 мiнiмiзувало


Cα (T ). Параметр налаштування (tuning paramter) α > 0 управляє балансом
мiж розмiром дерева та його якiстю прогнозування (goodness of fit). Великi
значення α приведуть до малих дерев Tα , та навпаки. Очевидно, що з α = 0
розв’язком буде дерево T0 .
Для кожного α можна показати, що iснує єдине найменше пiддерево Tα
таке що мiнiмiзує Cα (T ). Щоб знайти Tα ми використаємо урiзання най-
слабшого зв’язку (weakest link pruning): ми згортаємо внутрiшнiй
P вузол, що
продукує найменше по-вузлове збiльшення у величнi: Nm Qm (T ) та про-
m
довжуємо до тих пiр поки не дiйдемо до дерева з одним вузлом. Це дає нам
скiнченну кiлькiсть пiддерев, i можна показати що вона мiстить Tα .

24
Оцiнку α отримують з кросс-валiдацiї, α̂ вибирають таким щоб мiнiмi-
зувати кросс-валiдовану суму квадратiв. Наше фiнальне дерево - це Tα̂ .
Класифiкацiйнi дерева

Якщо вiдгук має факторний вигляд зi значенням в {1, . . . , K} єдиною


змiною що потрiбна в наведеному вище алгоритмi - це критерiй для роздi-
лення та урiзання дерева.
Для регресiї ми використовували середньоквадратичну мiру забрудне-
ностi вузла Qm (T ) яка не є пiдходящою для класифiкацiї. Для вузла m що
представляє регiон Rm з Nm спостереженнями, покладемо:
1 X
p̂mk = I(yi = k),
Nm
xi ∈Rm

пропорцiю значень з класу k у вузлi m. Ми класифiкуємо спостереження


до класу k(m) = argmaxk p̂mk - як головний клас у вузлi m. Можуть роз-
глядатися рiзнi мiри Qm (T ):
Помилка класифiкацiї: N1m
P
I(yi 6= k(m)) = 1 − p̂mk (m).
i∈Rm
P K
P
Iндекс Джинi: p̂mk p̂mk0 = p̂mk (1 − p̂mk ). (22)
k6=k0 k=1
PK
Кросс-ентропiя: − p̂mk log p̂mk .
k=1
Для двох класiв, якщо p це пропорцiя в другому класi, цi три мiри -
1 − max(p, 1 − p), 2p(1 − p), −p log p − (1 − p) log(1 − p), вiдповiдно. Вони
показанi на малюнку нижче. Всi три схожi, але крос-ентропiя та iндекс
Джинi диференцiйованi, а отже бiльше пiдходять для чисельної оптимiзацiї.

Порiвнюючи оптимiзацiю для регресiї та для класифiкацiї ми бачимо що


потрiбно зважити мiру Q кiлькостями NmL та NmR - спостережень у двох
дочiрнiх вузлах створених роздiленням вузла m.

25
На додачу до цього, крос-ентропiя та iндекс Джинi бiльш чутливi до
змiн у вузлових ймовiрностях нiж похибка класифiкацiї. Наприклад у за-
дачi з двома класами з 400 спостереженнями в кожному класi (позначимо
як (400,400)), припустимо вiдбулось роздiлення вузла (300,100) та (100,300),
в той час як iнше можливе роздiлення (200,400) та (200,0). Обидва роздi-
лення продукують похибку класифiкацiї у 0.25, але друге роздiлення ге-
нерує чистий вузол i тому бiльш бажаний. I крос-ентропiя i Iндекс Джинi
краще використовувати коли вирощувати дерево. Для урiзання методом
cost-complexity будь-яка з трьох мiр може використовуватися, але типово
використовується похибка класифiкацiї.
Iндекс Джинi може бути iнтерпритовано двома цiкавими способами. За-
мiсть того щоб класифiкувати спостереження до головного класу у вузлi,
ми можемо класифiкувати їх до класу k iз ймовiрнiстю p̂mk . Тодi
Pтренуваль-
на похибка такої класифiкацiї на даному вузлi складатиме: p̂mk p̂mk0 -
k6=k0
це iндекс Джинi.
Аналогiчно, якщо закодувати кожне спостереження як 1 для класу k та
0 iнакше, то дисперсiя по такому вузлу для такого 0-1 вiдгука буде p̂mk (1 −
p̂mk ). Просумувавши по всiм класам k знову отримаємо iндекс Джинi.

0.8 Ансаблевi алгоритми класифiкацiї. Boosti-


ng.
Ансеблевi (ensemble) алгоритми полягають у тому, щоб натренувати декiль-
ка класифiкаторiв для вирiшення однiєї i тiєї ж проблеми. Такi алгоритми
називають також - алгоритмами заснованими на голосуваннi (committee-
based algorithm), або навчанням системи з багатьма класифiкаторами.
Типовим прикладом такого пiдходу є Boosting, та алгоритм AdaBoost,
який дозволяє натренувати декiлька дуже простих алгоритмiв (як правило
вирiшующих “кущiв” або коренiв - це дерево з одним вузлом) якi працю-
ють лише трохи краще за випадковий вибiр та однак є досить “дешевими”
в тренуваннi. В результатi комбiнацiї великої кiлькостi прострих алгори-
тмiв вдається побудувати класифiкатор який демонструє значнi показники
ефективностi i навiть перевершує гарно натренованi складнi алгоритми.
Груповi алгоритми довели свою ефективнiсть вигравши декiлька пре-
стижних мiжнародних конкурсiв такi як KDD-Cups (2009-2011 роки), а та-
кож Netflix prize в 1M доларiв було присуджено в 2009 року командi яка
використовувала груповi алгоритми.
Зауважимо, що в групових алгоримах можуть використовуватись будь-
якi алгортими, включаючи досить складнi, такi як нейроннi мережi.
Iснує два фундаментально рiзних пiдходи до ансамблювання - послi-
довний, коли наступний алгоритм вибирається з урахуванням результа-
тiв попереднього, та паралельний коли декiлька алагоритмiв тренуються
одночасно. Ми розпочнемо з послiдовного пiдходу.
Далi ми розглянемо процедуру boosting-а. Вона полягає у тому щоб на-
тренувати хороший алгоритм як комбiнацiю великої кiлькостi простих але
“дешевих” алгоритмiв.
Почнемо з бiнарної класифiкацiї. Нехай ми маємо справу, з фазовим
простором X, на якому заданi незалежнi однаково розподiленi випадковi

26
величини з розподiлом P та справжньою iстинною функцiєю f . Уявiмо со-
бi, що простiр X роздiлено на три частини X1 , X2 , X3 кожна з яких має вагу
в третину розподiлу, i алгоритм з випадковим вибором працює з 50% вiдсо-
тковою ймовiрнiстю. Ми б хотiли отримати хороший класифiкатор (тобто з
нульовою похибкою) для цiєї проблеми, але маємо “поганий” класифiкатор
який правильно класифiкує спостереження в частинах X1 та X2 але непра-
вильно в X3 , а отже має похибку класифiкацiї 1/3. Назвемо цей алгоритм
h1 . Очевидно, h1 не є бажаним класифiкатором.
Iдея boosting-у полягає у тому щоб виправити помилки, якi допускає
алгоритм h1 . Ми можемо спробувати вивести новий розподiл P 0 з P який
зробить помилки h1 бiльш очевидними, тобто буде зосереджений в основно-
му на X3 . Тодi ми зможемо натренувати новий класифiкатор з P 0 , назвемо
його h2 . Припустимо, що h2 теж є слабким класифiкатором, i наприклад
лише класифiкує спостереження з X1 та X3 , та неправильно класифiкує
спостережння з X2 .
Тодi скомбiнувавши класифiкатори h1 та h2 певним чином (пiзнiше ми
покажемо, як саме) ми отримаємо новий класифiкатор який корректно кла-
сифiкуватиме на X1 та можливо матиме певнi помилки на X2 та X3 .
Далi ми виведемо деякий новий розподiл P 00 щоб зробити похибки ком-
бiнованого класифiкатора бiльш очевидними, i натренуємо класифiкатор h3
з цим розподiлом, так що h3 коректно класифiкуватиме в X2 та X3 . Тодi
комбiнуючи h1 , h2 та h3 ми отримаємо бажаний класифiкатор, оскiльки
в кожнiй частинi простору X1 , X2 та X3 , як мiнiмум два класифiкатори
здiйснять коректну класифiкацiю.
Наступний алгоритм показує процедуру ансаблювання у загальному ви-
падку, однак функцiї AdjustDiscribution та Combine ще потрiбно визначити.
Алгоритм
Вхiд: Початковий розподiл P , Початковий навчальний алгоритм L, кiль-
кiсть раундiв навчання T .
Процес:
1. P1 = P - Iнiцiалiзацiя розподiлу.
2. for t = 1, . . . , T :
3. ht = L(Pt ); - тренуємо слабкий алгоритм з розподiлом Pt
4. εt = Pt (ht (X) 6= f (X)); - обчислюємо помилку ht
5. Pt+1 = AdjustDistribution(Pt , εt )
6. end;
Вихiд: H(x) = Combine({h1 (x), . . . , hT (x)})

0.8.1 Алгоритм AdaBoost.


Розглянемо бiнарну класифiкацiю на класах {−1, +1}. Одна з версiй алго-
ритму AdaBoost полягає у мiнiмiзацiї експотенцiйної функцiї втрат:
h i
L(h|P ) = E e−f (X)h(X) ,

використовуючи адитинвну вагову комбiнацiю слабких алгоритмiв:


T
X
H(x) = αt ht (x).
t=1

27
Експоненцiйна функцiя втарта використовується, оскiльки вона дає еле-
гантну i просту рекурентну формулу (update formule), є узгодженною iз
задачею мiнiмiзацiї помилки класифiкацiї а також, як може бути показано,
пов’язана зi стандартним вiдношенням правдоподiбностi.
Якщо експоненцiйна функцiя витрат мiнiмiзується за H, то частиннi
похднi вiд експотенцiйної фукнцiї втрат для кожного x рiвнi нулю:

∂e−f (x)H(x)
= −f (x)e−f (x)H(x) = −e−H(x) P (f (x) = 1|x)+eH(x) P (f (x) = −1|x) = 0.
∂H(x)
Тодi розв’язуючи попереднє рiвняння отримаємо:
1 P (f (x) = 1|x)
H(x) = ln ,
2 P (f (x) = −1|x)
i тому:  
1 P (f (x) = 1|x)
sign(H(x)) = sign ln =
2 P (f (x) = −1|x)

1, P (f (x) = 1|x) > P (f (x) = −1|x)
= argmaxy∈{−1,1} P (f (x) = y|x)
−1, P (f (x) = 1|x) < P (f (x) = −1|x)
(23)
Отже отримуємо. що sign(H(x)) досягає Байєсiвської похибки. Зауважи-
мо, що ми проiгнорували випадок P (f (x) = 1|x) = P (f (x) = −1|x). Наве-
денi вилкдаки показують що при мiнiмiзацiї експотенцiйної функцiї втрат,
похибка класифiкацiї також мiнiмiзується, а отже експотенцiйна функцiя
втрат є правильною оптимiзацiйною цiллю для замiщення не-диференцiйовану
похибку класифiкацiї.
H отримується шляхом iтеративної геренацiї ht та αt . Перший слабкий
класифiкатор h1 згенеровано з використаннями слабкого алгоритму з поча-
тковим розподiлом. Коли класифiкатор ht згенеровано з розподiлом Pt , його
вага αt має бути визначена так, щоб мiнiмiзувати експотенцiйну втрату:
h i
L(αt ht |Pt ) = Et e−f (X)αt ht (X) = Et e−αt If (X)=ht (X) + eαt If (X)6=ht (X) =
 

e−αt Pt (f (X) = ht (X)) + eαt Pt (f (X) 6= ht (X)) = e−αt (1 − εt ) + eαt εt ,


де εt = Pt (f (X) 6= ht (X)). Щоб отримати оптимальне αt , прирiвняємо похi-
дну експотенцiйної функцiї втрат до нуля:
∂L(αt ht |Pt )
= −e−αt (1 − εt ) + eαt εt = 0,
∂αt
тодi отримаємо розв’язок:
 
1 1 − εt
αt = ln .
2 εt

Пiсля того як слабкi класифiкатори та їхнi ваги були згенерованi, цi


класифiкатори зкомбiнованi як Ht−1 . Тодi, AdaBoost пiдганяє вибiрковий
розподiл таким чином, що в наступному раундi, базовий навчаючий ал-
горитм видасть слабкий класифiкатор ht який виправить деякi помилки
класифiкацiї Ht−1 . Беручи до уваги експотенцiйну втрату знову, iдеальний

28
класифiкатор ht що виправляє всi помилки Ht−1 повинен мiнiмiзувати екс-
потенцiйну втрату:
h i h i
L(Ht−1 + ht |P ) = E e−f (X)(Ht−1 (X)+ht (X)) = E e−f (X)Ht−1 (X) e−f (X)ht (X) .

Використавши розклад Тейлора для e−f (X)ht (X) експотенцiйна функцiя втрат
апроксимується виразом:

f (X)2 ht (X)2
  
L(Ht−1 + ht |P ) ≈ E e −f (X)Ht−1 (X)
1 − f (X)ht (X) + =
2
  
−f (X)Ht−1 (X) 1
E e 1 − f (X)ht (X) + ,
2
зауваживши, що f (X)2 = 1 та ht (X)2 = 1.
Таким чином iдея для класифiкатора ht :
  
1
ht (x) = argminh L(Ht−1 +h|P ) = argminh E e −f (X)Ht−1 (X)
1 − f (X)h(X) + =
2
 −f (X)Ht−1 (X) 
h
−f (X)Ht−1 (X)
i e
argmaxh E e f (X)h(X) = argmaxh E f (X)h(X) ,
Ee−f (X)Ht−1 (X)
зауваживши, що E[e−f (X)Ht−1 (X) ] - константа. Визначимо щiльнiсть розпо-
дiлу pt наступним чином:

p(x)e−f (x)Ht−1 (x)


pt (x) = .
Ee−f (X)Ht−1 (X)
Тодi за визначенням математичного сподiвання отримаємо:
 −f (X)Ht−1 (X) 
e
ht (x) = argmaxh E f (X)h(X) =
Ee−f (X)Ht−1 (X)

argmaxh Et f (X)h(X).
Помiтивши, що f (X)ht (X) = 1 − 2If (x)6=ht (x) , iдеальний класифiкатор мати-
ме вигляд:
ht (x) = argminh Pt (f (X) 6= h(X)).
Як можна побачити, iдеальний класифiкатор ht мiнiмiзує похибку класи-
фiкацiї при розподiлi Pt . Таким чином слабкий класифiкатор має бути на-
тренований на Pt та мати похибку класифiкацiї меншу нiж 0.5 з розподiлом
Pt . Розглянувши спiввiдношення мiж Pt та Pt+1 отримаємо:

p(x)e−f (x)Ht (x) p(x)e−f (x)Ht−1 (x) e−f (x)αt ht (x)


pt+1 (x) = −f
= =
Ee (X)H t (X) Ee−f (X)Ht (X)
Ee−f (X)Ht−1 (X)
pt (x)e−f (x)αt ht (x) .
Ee−f (X)Ht (X)
Таким чином алгорим AdaBoost має вигляд:
Вхiд: Набiр даних D = {(X1 , y1 ), . . . , (Xm , ym )}; Базовий алгоритм навчан-
ня L, кiлькiсть раундiв навчання: T . Процес:

29
1. p1 (X) = 1/m - Iнiцiалiзацiя розподiлу.
2. for t = 1, . . . , T :
3. ht = L(D, Pt ); - тренуємо класифiкатор ht з розподiлом Pt
4. εt = Pt (ht (X) 6= f (X)); - обчислюємо помилку ht
5. if εt > 0.5  then  break
1 1−εt
6. αt = 2 ln εt ; Визначаємо ваги ht
−αt f (X)ht (X)
pt+1 (X) = ptZ(X) × e−αt Iht (X)=f (X) + eαt Iht (X)6=f (X) = pt (X)e Zt

7. t
,
де Zt це нормуючий множник.
6. end; T 
P
Вихiд: H(x) = sign αt ht (x) .
t=1

0.8.2 Приклад.
Розглянемо роботу алгоритму AdaBoost на прикладi класифiкацiї XOR. Не-
хай маємо 4 точки:
z1 = (1, 0), y1 = 1
z2 = (−1, 0), y1 = 1
z3 = (0, 1), y1 = −1
z4 = (0, −1), y1 = −1
Розглянемо також 8 слабких класифiкаторiв:

h1 (x) = I(x1 > −0.5) − I(x1 ≤ −0.5), h2 = −I(x1 > −0.5) + I(x1 ≤ −0.5),

h3 (x) = I(x1 > +0.5) − I(x1 ≤ +0.5), h4 = −I(x1 > +0.5) + I(x1 ≤ +0.5),
h5 (x) = I(x2 > −0.5) − I(x1 ≤ −0.5), h6 = −I(x2 > −0.5) + I(x1 ≤ −0.5),
h7 (x) = I(x2 > +0.5) − I(x1 ≤ +0.5), h8 = −I(x2 > +0.5) + I(x2 ≤ +0.5).

Нехай наш алгоритм L обчислює всi 8 значень hi (x) iз заданим розподi-


лом, i обирай той, що має найменшу похибку. Якщо таких декiлька то вiн
вибирає навмання.
Запишемо тепер покроково роботу алгоритму AdaBoost:

30
1. На першому кроцi найменшу похибку класифiкацiї в 0.25 дають алго-
ритми: h2 , h3 , h5 , h8 . Припустимо L вибирає h2 як класифiкатор. Тодi маємо
неправильну класифiкацiю для z1 , тобто похибка ε1 = P0 (h1 (X) 6= f (X)) =
P0 (z1 ) = 0.25. Тодi обчислимо вагу α1 :
1
α1 = ln(0.75/0.25) = 0.5 ∗ ln(3) ≈ 0.55.
2
Обчислимо тепер ймовiрнiсть p1 , з точнiстю до нормованого множника Zt :

p1 (z1 ) ∝ 0.25eαt = 0.25 3 ≈ 0.433,
0.25
p1 (z2 ) ∝ 0.25e−αt = √ ≈ 0.1443,
3
p1 (z3 ) = p1 (z4 ) = p1 (z2) ∝ 0.1443.
Тодi нормуючий множник: Z1 ≈ 0.8629. Отже: P1 ≈ (0.5018, 0.1673, 0.1673, 0.1673)
2. Обчислимо тепер похибки для кожного з алгоритмiв hi , i = 1, 8 з
новим розподiлом P1 ;
ε(h1 ) = P1 (h1 (X) 6= f (X)) = p1 ({z2 , z3 , z4 }) ≈ 0.5,
ε(h2 ) = P1 (h2 (X) 6= f (X)) = p1 (z1 ) ≈ 0.5018,
ε(h3 ) = P1 (h3 (X) 6= f (X)) = p1 (z2 ) ≈ 0.1673,
ε(h4 ) = P1 (h4 (X) 6= f (X)) = p1 ({z1 , z3 , z4 }) ≈ 0.832,
ε(h5 ) = p1 (z3 ) ≈ 0.1673,
ε(h6 ) = p1 ({z1 , z2 , z4 }) ≈ 0.832,
ε(h7 ) = p1 ({z1 , z2 , z3 }) ≈ 0.832,
ε(h8 ) = p1 (z4 ) ≈ 0.1673.
Таким чином найменшу похибку дають класифiкатори h3 , h5 , h8 . Нехай
L вибирає h3 . тодi:
ε2 ≈ 0.1673,
α2 ≈ 0.5 ln(0.83273/0.16727) = 0.5 ln(4.97836) = 0.5 ∗ 1.6051 = 0.80255.
Тодi
P2 ∝ (0.2249, 0.37328, 0.075, 0.075), Z2 = 0.74818
3. На наступному кроцi найменшу похибку дадуть алгоритми h5 та h8 ,
нехай L вибирає h5 . Тодi:
ε3 = P2 (h5 (X) 6= f (X)) = p2 (z3 ) = 0.075/0.74818 = 0.1,
α3 = 0.5 ln(9) = 1.0986.
Тодi класифiкатор H(x) має вигляд: H(x) = sign(0.55 ∗ h1 (x) + 0.80255 ∗
h3 (x)+1.0986∗h5 (x)), вiн зображений на малюнку пiд iндексом (d) i коректно
класифiкує всi значення.
Отже скомбiнувавши за допомогою алгоритму AdaBoost декiлька лiнiй-
них i слабких класифiкаторiв, отримали нелiнiйний класифiкатор з нульо-
вою похибкою.
Зауважимо, що одним з основних недолiкiв алгоритму AdaBoost - це
вразливiсть до зашумлення. Якщо данi занадто забрудненi алгоритм буде
перенавчатися.

31
0.9 Паралельнi алгоритми ансамблювання.
Тепер ми перейдемо до iншого способу ансамблювання, а саме паралель-
ного ансамблювання, або упаковки(?), англ. bagging. Якщо основною iдеєю
послiдовного ансамблювання було покращення (boost), результатiв роботи
попереднього алгоритму, то основна iдея паралельного пiдходу полягає у
використаннi незалежностi базових (слабких) алгоритмiв очiкуючи зна-
чного зменшення похибки в результатi комбiнування таких незалежних ал-
горитмiв.
Розглянемо для iлюстрацiї бiнарну класифiкацiю з класами {−1, +1}.
Нехай iстина функцiя f , та кожен базовий класифiкатор видає незаелжну
похибку ε:
P (hi (X) 6= f (X)) = ε.
Пiсля комбiнування
T Tподiбних класифiкаторiв у фiнальний класифiкатор:
P
H(x) = sign hi (x) , ансамбль H(x) видасть похибку лишу коли як мi-
i=1
нiмум половина всiх базових класифiкаторiв згенерує похибку. Тодi за не-
рiвнiстю Хофдiнга (Hoeffding inequality), загальна похибка ансамблю рiвна:
[T /2]  
X T 1 2
P (H(X) 6= f (X)) = (1 − ε)k εT −k ≤ e− 2 T (2ε−1) .
k
k=0

Звiдки явно видно, що загальна похибка спадє експоненцiйно зi зростанням


розмiру ансамблю T , та прямує до нуля при T → ∞.
Однак на практицi неможливо досягнути повної незалежностi базових
алгоритмiв оскiльки вони натренованi на тiй же самiй вибiрцi. Можна досяг-
ти меншої залежностi базових алгоритмiв якщо додати деякої випадковостi
у процес навчання.
Iншою перевагою паралельного пiдходу є можливiсть паралельних об-
числень класифiкаторiв, що може суттєво спростити застосування.

0.9.1 Bagging.
Типовим алгоритмом паралельного ансамблювання є bagging, що походить
вiд: Bootstrap AGGergatING. Як випливає з назви два ключових компо-
нента це boostrap та aggregation.
Алгоритм bagging був запропонований Breiman, в 1996 роцi у роботi:
Bagging predictors. Machine Learning, 24(2):123–140,
Основна iдея полягає у тому, щоб iз заданої вибiрки зробити певну кiль-
кiсть неперетинуючихся пiд-вибiрок i натренувати базовi алгоритми на ко-
жнiй пiд-вибiрцi. Однак, оскiльки розмiр вибiрки скiнчений, такий пiдхiд
приведе до малих i нерепрезентативних вибiрок i до дуже слабких базових
класифiкаторiв.
Bagging використовує технiку boostrap щоб отримати вiд-вибiрки. Зокре-
ма, для вибiрки розмiру m генеруються пiд-вибiрки розмiру m використо-
вуючи вибiр iз замiною. Таким чином деякi початковi данi увiйдуть у пiд-
вибiрку декiлька разiв а iншi не потраплять взагалi. Повторюючи процес
T разiв отримаємо T -пiдвибiрок розмiру m. Пiсля цього на кожнiй пiд-
вибiрцi буде натренований базовий класифiкатор. Метод bagging-у викори-

32
стовує найбiльш популярнi стратегiї для агрегацiї, а саме - голосування
для класифiкацiї, та усереднення для регресiї.
Алгоритм виглядає наступним чином:
Вхiд: Набiр даних D = {(X1 , y1 ), . . . (Xm , ym )}, навчаючий алгоритм L, кiль-
кiсть iтерацiй T .
Процес:
1. for t = 1, . . . , T :
2. ht = L(D, Pbs ), де Pbs - це розподiл на пiдвибiрцi отриманiй методом
бутстрап.
3. end
PT
Вихiд: H(x) = argmaxy∈{1,...,K} I(ht (x) = y).
t=1
Варто зазначити що bootstraping також забезпечує ще одну перевагу
для bagging-а. Як було показано Брейманом, якщо задано m тренувальних
прикладiв, ймовiрнiсть що i-тий приклад буде вибрано 0, 1, 2, . . . разiв при-
близно має розподiл Пуассона за λ = 1, а отже ймовiрность того, що i-тий
приклад з’явиться хоча б раз рiвна: 1 − e−1 ≈ 0.632. Iншими словами, для
кожного базового класифiкатора h що використано в bagging-у, приблизно
36.8% оригiнальних тренувальних прикладiв якi не будуть використанi в
його тренувальному процесi (ймовiрнiсть того, що об’єкт не потрапить у
вибiрку (1 − 1/l)l → 1/e ≈ 0.368). Якiсть базового класифiкатора може бути
оцiнена використовуючи out-of-bag приклади (тi що не попали у вибiрку) i
тому таким чином може бути обчислена загальна оцiнка похибки ансамблю.

0.9.2 Випадковий лiс.


Випадковий лiс (Random Forest), є одним з найбiльш поширених алгоритмiв
машинного навчання який є ефективним на майже всiх типах задач (окрiм
обробки зображень). Цей алгоритм є типовим прикладом застосування па-
ралельного ансамблювання - bagging-у, який ми розглядали нещодавно.
Оскiльки дерева типово позначаються лiтерою T , то в цьому роздiлi ми
будемо використовувати символ B для позначення кiлькостi паралельних
алгоритмiв.
Алгоритм має такий вигляд:
1. for i = 1, . . . , B:
2. Генеруємо бустрап-вибiрку Z ∗ розмiру N з тренувальних даних.
3. Вирощуємо випадкове дерево Ti на Z ∗ , шлахом рекурсивного повтору
наступних крокiв для кожного термiнального вузла поки не буде досягнуто
мiнiмiального розмiру вузла nmin .
4. i. Випадково вибираємо m ознак з p.
5. ii. Вибираємо найкращу змiнну та точку розщеплення з m ознак
вибраних ранiше.
6. iii. Розщеплюємо вузол.
7. end
Виводимо результуючий ансамблевий класифiкатор. Для регресiї це: fˆrf
B
(x) =
B
1
P
B Ti (x). Для класифiкацiї вибирають клас за який проголосувало бiль-
i=1
шiсть дерев.

Емпiричне правило: параметр m вибирають як p в задачах класифi-
кацiї або p/3 в задачах регерсiї (де p- це кiлькiсть ознак). Для задач кла-

33
сифiкацiї рекомендується обирати nmin = 1 а регресiї nmin = 5.
Дослiдимо дисперсiю та змiщення такого алгоритму. Вiдомо, що для B
2
н.о.р.в.в. кожна з яких має дисперсiю σ 2 , їхнє середнє має дисперсiю σB .
Якщо ж змiннi лише однаково розподiленi але не обов’язково незалежнi
з попарною кореляцiєю ρ, дисперсiя середнього має вигляд:
1−ρ 2
ρσ 2 + σ .
B
При збiльшеннi B другий доданок зникає, але перший залишається, таким
чином величина попарної кореляцiї дерев обмежує переваги усереднення
(bagging-у).
Iедя випадкового лiсу полягає в тому щоб покращити зменшення диспер-
сiї з викоританням bagging-у шляхом зменшення кореляцiї мiж деревами,
не збiльшуючи дисперсiю занадто сильно. Цього вдається досягти шляхом
випадкового вибору ознак, зокрема:
Перед кожним розщепленням, вибрати m ≤ p ознак випадковим чином,
як кандидати для розщеплення.
Пiсля того як B таких дерев {T (x; Θi )}B
i вирощено, прогнозуюча фун-
кцiя (для регресiї) має вигляд:
B
1 X
fˆrf
B
(x) = T (x; Θi ). (24)
B i=1

Тут Θi характеризує i-те випадкове дерево в термiнах роздiляючих змiн-


них, значеннях у термiнальних вузлах, точки розщеплення кожного вузла.
Iнтуїтивно, зменшення m приведе до зменшення кореляцiї мiж будь-якими
парами дерев у ансамблi, а тому за формулою для дисперсiї зменшить дис-
персiю середнього.
Взагалi кажучи, далеко не кожен класифiкатор може бути покраще-
ний таким чином. Виглядає що лише глибоко нелiнiйнi класифiкатори як
дерева отримують найбiльше користi вiд bagging-а (лiнiйнi класифiкатори
взагалi не покращуються bagging-ом). Для дерев натренованих на бустрап-
вибiрках, ρ-типово мале (0.05, або менше), тодi як σ 2 не набагато бiльша за
дисперсiю звичайного дерева.
Зауважимо, що змiщення випадкового лiсу рiвне змiщенню дерева, i при
bagging-у майже не змiнюється. Таким чином покращення результату дося-
гається лише за рахунок зменшення дисперсiї.
На рiзних задачах boosting та випадковi дерева демонструють схожу ре-
зультативнiсть. Часто boosting працює трохи краще. Однак перевагою ви-
падкового лiсу є те, що вiн часто показує результати бизькi до оптимальних
“з коробки” (out-of-the-box), тобто без суттєвого налаштування.
Випадковий лiс використовується у дослiдженнях даних помiрної ви-
мiрностi (напиклад фiнансовi, медичнi, данi що вiдносяться до електронної
комерцiї, реклами та iншi), для даних високої розмiрностi, таких як зобра-
ження або аналiз тексту випадковий лiс часто поступається iншим методам,
хоча iснують модифiкацiї випадкового лiсу для багатовимiрних даних та-
кож.

34
Роздiл 1

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

1.1 Ймовiрнiсна та невiд’ємна матрична факто-


ризацiя.
Ймовiрнiсна матрична факторизацiя (PMF) а також факторизацiя невiд’ємних
матриць це методи навчання без учителя, якi дозволяють зобразити “вели-
ку” матрицю V ∈ Rn×m у виглядi добутку двох менших матриць: V ≈ W H,
де W ∈ Rn×r , H ∈ Rr×m , причому як правило (n + m)r << nm.
Для загальних матриць може використовуватись сингулярний матри-
чний розклад (singular value decomposition), але вiн не спрацює у випадку
невiд’ємних даних якi виникають у деяких задачах.
Ми будемо розглядати данi технiки з точки зору сучасних застосувань
- рекомендацiйнi системи. Рекомендацiйнi системи - це набiр алгоритмiв
якi на основi деякої iнформацiї дають рекомендацiю користувачу системи
з приводу того, що йому чи їй буде до вподоби. Наприклад Netflix може
рекомендувати фiльми, онлайн платформи продукти i так далi.
Рекомендацiйнi системи побудованi на основi виведення певного “про-
файлу” користувача, або визначення набору ознак, якi характеризувати-
муть користувача, i дадуть можливiсть надати йому рекомендацiю.
Насправдi це технiка зменшення розмiрностi, i є “конкуруючою” до ме-
тоду головних компонент, хоча i має суттєвi вiдмiнностi.
Розглянемо кiлька прикладiв.
Content filtering. Розглянемо проект здiйснений радiо Пандора в США,
що називається the Music Genome Project. Вони просили експертiв оцiнити
рiзнi пiснi, кожна з яких мала набiр характеристик (багато гiтари, жiночий
голос, тривалiсть, гучнiсть, баси i т.д.) У той же час користувачi створили
власнi профайл у якому було багато запитань щодо музики яка подобається
користувачам, та iншої iнформацiї. Потiм було побудовано модель що ста-
вить у вiдповiднiсть певнi риси з профайла до певних властивостей пiсень.
Однак такий пiдхiд використовує лише статичну iнформацiю i не враховує
динамiчну або поведiнкову - тобто якi пiснi справдi подобаються тим чи
iншим користувачам.
Collaborative filtering (Сумiсне фiльтрування).
Фундаментально iнший, що називається collaborative filtering пiдхiд по-
лягає у наступному. Вiн навпаки не використовує нiяку апрiорну iнформа-

35
цiю про користувачiв або об’єкти, що дослiджуються (фiльми, пiснi). Нато-
мiсть вимагається, щоб користувачi самi поставили бали (рейтинг) багатьом
об’єктам. Потiм на основi вже зiбраних даних, для нового користувача, на
основi неповних даних вiд нього потрiбно знайти “схожих” (або навпаки -
“протилежних”) користувачiв. Таким чином вводиться деяка “метрика” на
множинi користувачiв, i для рекомендацiї наступного фiльму слiд викори-
стовувати вiдгук людей якi дуже “схожi” на нового користувача (метод дуже
подiбний до k − nn).
Зауважимо, що обидва пiдходи описанi вище не є взаємовиключними.
Для побудови моделi використаємо метод, що називається Matrix Factori-
zation (матрична факторизацiя).
Нехай ми маємо матрицю M , що складється з N1 рядкiв (кожен ря-
док представляє користувача), та N2 колонок (кожна колонка представляє
об’єкт, фiльми, пiсню, книгу). mij - це рейтинг, який i-тий користувач по-
ставив j-тому об’єкту. Така матриця буде мати багато пропущених значень,
бо користувачi як правило не оцiнюють всi доступнi фiльми а лише деякi.
Iдея полягає у тому, щоб факторизувати матрицю певним чином (на
добуток матриць iз малим рангом) використовуючи лише данi якi ми маємо,
i потiм отримавши таку факторизацiю заповнити пропущенi данi.
Цей пiдхiд схожий на Singular Value Decomposition (для якого потрiбно
знати всi значення матрицi), де матрицю великої розмiрностi можна рок-
зласти у добуток трьох матриць меншої розмiрностi (двох ортонормаль-
них та однiєї дiагональної). Важливо вiдмiтити, що якщо матриця M має
невеликй ранг r, то матрицi що входять у SVD будуть мати розмiрнiсть:
N1 × r, r × r, r × N2 , i будуть значно меншими за M .
Ми хочемо розкласти матрицю M у добуток матриць U V , U ∈ RN1 ×d
та V ∈ Rd × N2 , де d << min{N1 , N2 }. Таким чином ми отримаємо деяких
d параметрiв якi справдi важливi для кожного користувача, в той час як
всього у нас N2 об’єктiв, i це число може бути дуже великим, але нам не
потрiбно його знати всi N2 рейтингiв, а лише вивчити d параметрiв. Заува-
жимо, що цi параметри - це латентнi параметри i у них може не бути якоїсь
зрозумiлої iнтерпритацiї.
Таким чином i-тий користувач буде представлений d-вимiрним векто-
ром, i-тим рядком у матрцi U , а j-тий об’єкт, теж d-вимiрним вектором,
j-тою колонкою у матрицi V .
Для того щоб побудувати такий розклад, маючи велику кiлькiсть пропу-
щених даних використовують метод, що називається - Probabilistic Matrix
Factrization. Позначимо Ω = {(i, j) : Mij визначено}. Позначимо Ωui - мно-
жину всiх пар з першою координатою i, Ωvj - множину всiх пар з другою
координатою j.
PMF - це генеративна модель. Для N1 користувачiв та N2 об’єктiв зге-
неруємо:
ui ∼ N(0, λ−1 I), i = 1, . . . , N1 ,
vj ∼ N(0, λ−1 I),0 j = 1, . . . , N2 .
Маючи ui , vj , отримаємо що:

Mij ∼ N(uTi vj , σ 2 ), ∀(i, j) ∈ Ω.

36
Зауважимо, що вибiр гаусового розподiлу для Mij очевидно не вiдповiд-
ає дiйсностi, однак це дуже зручний прийом що веде до алгоритму який
легко реалiзувати та результуюча модель демоснтрує гарнi результати.
Нехай M складається з MO - спостережуваної частини (observed) та Mm
- пропущенної (missed). Для обчислення невiдомих параметрiв (шуканих
матриць U та V ) скористаємось байєсiвським пiдходом - а саме максимiза-
цiєю апостерiорної ймовiрностi. Запишемо:
  " #"N #
Y N1
Y Y 2

p(MO , U, V ) =  p(Mij |ui , vj ) ×


 p(ui ) p(vj ) .
(i,j)∈Ω i=1 i=1

Тодi MAP (maximal aposteriori) розв’язком буде:


X N1
X N2
X
UM AP , VM AP = argmaxU,V ln p(Mij |ui , vj ) + ln p(ui ) + ln p(vj ).
(i,j)∈Ω i=1 j=1

Тодi цiльова функцiя має вигляд:


N1 N2
X 1 X λ X λ
L=− ||M ij − uT
i v j ||2
− ||ui ||2
− ||vj ||2 + const.
2σ 2 i=1
2 j=1
2
(i,j)∈Ω

Обчислимо похiднi:
X 1
∇ui L = (Mij − uTi vj )vj − λui = 0,
σ2
j∈Ωui

X 1
∇ vj L = (Mij − vjT ui )ui − λvj = 0.
σ2
i∈Ωvj

Цi рiвняння можна розв’язати явно:


 −1  
X X
ui = λσ 2 I + vj vjT   Mij vj  ,
j∈Ωui j∈Ωui

 −1  
X X
vj = λσ 2 I + ui uTi   Mij ui  .
i∈Ωvj i∈Ωvj

Однак цi рiвняння неможливо розв’язати одночасно для всiх ui та vj . Тому


ми скористаємось координатним пiд’йомом.
Алгоритм.
Вхiд: Неповна матриця M , з множиною Ω. Ранг d (вибираєтья як параметр
для алгоритму).
Вихiд: N1 записiв для користувачiв ui ∈ Rd , N2 для об’єктiв, vj ∈ Rd .
Iнiцiалiзацiя: згенерувати vj ∈ N(0, λ−1 I).
Для кожної iтерацiї:
for i = 1, . . . , N1 обчислити вектор ui :
 −1  
X X
ui = λσ 2 I + vj vjT   Mij vj  .
j∈Ωui j∈Ωui

37
for j = 1, . . . , N2 обсчислити вектор vj :
 −1  
X X
2
vj = λσ I + ui uTi   Mij ui  .
i∈Ωvj i∈Ωvj

Передбачити що користувач i оцiнить об’єкт j як uTi vj заокруглено до


найближчого значення рейтингу.
В якостi критерiю збiжностi слiд обчислити логарифмiчну функцiю прав-
доподiбностi, та переконатись що вона збiгається. Алгоритм можна зупини-
ти коли змiна функцiї правдоподiбностi занадто мала.
Отримавши матрицi U та V можна не лише передбачати пропущенi
значення, але i порiвнювати об’єкти мiж собою (використовуючи рiзницю
vi − vj ). Справдi, якщо два об’єкти схожi мiж собою, то i колонки M·i та
M·j будуть теж близькими. Але M·i = U vi а M·j = U vj , отже:

M·i − M·j = U (vi − vj ),

а отже vi та vj теж повиннi бути близькими мiж собою.

1.1.1 Зв’язок факторизацiї матрць та гребеневою ре-


гресiєю.
Розглянемо j-тий об’єкт (колонку) матрицi M . Ми отримаємо деякий ве-
ктор, з пропущеними даними. Звузимо задачу, що прогнозування j-того
об’єкту:
Yi = Mij = U vj .

Отримали регресiйну задачу. Розглянемо функцiонал гребеневої регре-


сiї:
1
(Mij − uTi vj )2 + λ||vj ||2 ,
σ2
тодi рiдж-оцiнка буде мати вигляд:
 −1  
X X
vj = λσ 2 I + ui uTi   Mij ui  .
i∈Ωvj i∈Ωvj

38
Таким чином отриманий вираз для матричної факторизацiї спiвпадає з
рiдж-оцiнкою у пов’язанiй регресiйнiй задачi. Отже матричну факториза-
цiю, можна уявити собi як одночасне розв’язання N1 + N2 задач гребеневої
регресiї що розв’язуються iтеративно.
Зауважимо, що ми можемо також використати звичайну регресiю. Тодi
ми отримаємо оцiнку:
 −1  
X X
vj =    Mij ui  .
i∈Ωvj i∈Ωvj

Ця оцiнка спiвпадатиме з матричною факторизацiєю, якщо прибрати гау-


совiсть, та лише максимiзувати функцiю правдоподiбностi: p(MO |U, V ).
Проблема полягає у тому, що для того щоб обчислити таку оцiнку по-
трiбно, щоб кожен користувач оцiнив як мiнiмум d об’єктiв, та кожен об’єкт
мав як мiнiмум d оцiнок, що не є реалiстичним припущенням. Тому нам i
потрiбнi апрiорнi припущення.

1.1.2 Моделювання тем (topic modeling).


Розглянемо iншу технiку матричної факторизацiї, а саме такої в якiй за-
повненi елементи матрицi всi невiд’ємнi.
Один з прикладiв для чого це потрiбно може бути обробка великих ма-
сивiв текску (у виглядi книг, чи статей) для того щоб згрупувати “схожi”
твори мiж собою. При цьому наперед невiдомо за якими ознаками слiд ви-
являти “схожiсть” i самi ознаки теж потрiбно отримати з алгоритму. Так
один документ може стосуватися кiлькох рiзних тем - наприклад документ
про оцифровку медичних карт буде мiстити медичнi термiни, економiчнi а
також технологiчнi.
Ми припускаємо, що iснує набiр ймовiрнiсних розподiлiв на множинi слiв
з фiксованого словника. I кожен розподiл зосереджений (або майже зосере-
джений) на деякiй пiдмножинi слiв, що певним чином близькi i стосуються
якоїсь спiльної теми.
Маючи список таких ймовiрностей асоцiйованих з темами, ми зможемо
охарктеризувати заданий документ вектором пропороцiй входження кожної
теми у документ.
Звичайно, ми не маємо списку тем наперед, i повиннi їх якимось чи-
ном вивчити. Для цього використовується метод який надизвається LDA -
Latent Dirichlet Allocation (латенте розмiщення Дiрiхлє).
Позначимо через βi - вектор розподiлу ймовiрностей для i-тої теми (ве-
ктор β буде мати розмiрнiсть рiвну кiлькостi слiв у словнику), а θj - розпдiл
тем у j-тому документi. Вектор θj має розмiрнiсть рiвну кiлькостi тем.
Припустимо ми маємо K тем, якi згеренованi незалежно i мають розпо-
дiл Дiрiхле. Тобто:
βk ∼ Dirichlet(γ), k = 1, . . . , K
θd ∼ Dirichlet(α), d = 1, . . . , D
тут D - це кiлькiсть документiв.
Далi, для n- того слова у d-тому документi ми повиннi вирiшити до
якої теми належить це слово, i ми генеруємо величину cdn ∼ Discrete(θd ) -

39
iндикатор теми. Тобто cdn вибирає тему, i ймовiрнiсть того що буде вибрано
i-ту тему це θdi .
Пiсля того, як вибрано тему, згенеруємо власне слово xdn ∼ Discrete(βcdn ).
Зауважимо, що в данiй моделi не береться до уваги порядок слiв, а ли-
ше самi слова. Таку модель називають “коробкою слiв”. Якщо спробувати
згенерувати документ з такої моделi вийде нечитабельний текст. Однак для
наших застосувань така модель працює.
Щодо розподiлу Дiрiхлє, то це неперевний розподiл над ймовiрнiсними
розподiлами. Нехай βk деякий ймовiрнiсний розподiл, а γ- додатнiй вектор-
ний параметр. Тодi:
P
Γ( γi ) Y V
γj −1
p(βk |γ) = V i βk,j .
Q
Γ(γj ) j=1
j=1

У нашому випадку, вектор γ буде сталим вектором, i надалi ми вважа-


тимемо γ константою. Властивiсть розподiлу Дiрiхле така, що при γ → 0,
розподiл вироджується а при γ → ∞ стає рiвномiрним. В нашому випадку,
γ буде деяким невеликим числом типу 0.1, так що розподiл буде зосередже-
ний на деякiй невеликiй пiдмножинi слiв.
Навчання моделi є досить складним, i виходить за межi курсу. Там може
викростовуватись i MCMC (Markov Chains Monte Carlo) i EM-алгоритм з
певними модифiкацiями.
Дана модель застосовувалась для кластеризацiї стетей New York Times
за 20 рокiв i показала досить високу ефективнiсть. Алгоритм Latent Diri-
chlet Allocation iмплементовано в python, sklearn.
Виявляється, що моделювання тем за допомогою LDA, тiсно пов’язно з
факторизацiєю невiд’ємних матриць. Розглянемо ймовiрнiсть того, що n-те
слово в d-тому документi це слово з iндексом i зi словника P (xdn = i|β, θd ).
Цю ймовiрнiсть можна розкласти:
K
X
P (xdn = i|β, θ) = P (xdn = i, cdn = k|β, θd ) =
k=1

K
X K
X
P (xdn = 1|β, cdn = k)P (cdn = k|θd ) = βki θdk .
k=1 k=1
Визначимо матрицю B як матрицю, колонки якої це вектори βi :
B = [β1 , . . . , βK ],
та матрицю Θ, колонки якої це θj :
Θ = [θ1 , . . . , θD ],
тодi:
P (xdn = i|β, θ) = (BΘ)id .
Iншими словами матриця ймовiрностей зображується у виглядi добутку
матриць B та Θ, де всi три матрицi - це матрицi з невiд’ємними членами, а
тому звичайний розклад за сингулярними значеннями не працює.
Тож розглянемо тепер власне саму факторизацiю невiд’ємних матриць.

40
1.1.3 Факторизацiя невiд’ємних матриць.
Зауважимо, що iснує два алогоритми якi називається факторизацiєю не-
вiд’ємних матриць, i це вносить деяку плутанину в термiнологiї.
Припустимо, ми маємо матрицю X ∈ RN1 ×N2 , такую що всi Xij вiдомi
(немає пропущених значень), а також всi Xij ≥ 0. Наша задача розкласти
матрицю X у добуток матриць W ∈ RN1 ×k та H ∈ Rk×N2 , причому Wik ≥ 0
та Hkj ≥ 0.
При цьому можливо, що матриця X має багато
P нулiв. Факторизацiя яку
ми хочемо отримати буде приблизною: Xij ≈ Wik Hkj .
k
Цей пiдхiд має багато рiзних застосувань, наприклад:
1. Аналiз текстових даних - Xij - це кiлькiсть входжень i-того слова в j-тий
документ.
2. Аналiз зображень (зокрема iдентифiкацiя облич) - N × M векторизоване
зображення може бути представлене колонкою X.
Iснує двi цiльовi функцiї (що веде до двох рiзних алгоритмiв): Перший
варiант це мiнiмiзацiя норми Фробенiуса:
XX
||X − W H||2F = (Xij − (W H)ij )2 .
i j

Другий це дивергенцiя:
XX
D(X||W H) = − [Xij ln(W H)ij − (W H)ij ].
i j

Важливо, що обидва алгоритма досить швидкi з обчислювальної точки зо-


ру.
Задача полягає у мiнiмiзацiї цiльової функцiї за обмежень невiд’ємностi
для матриць H та W . Покажемо, як це можна зробити.
Означення. Функцiя G(h, h0 ) називається допомiжною функцiєю для
F (h) якщо виконанi умови:

G(h, h0 ) ≥ F (h), G(h, h) = F (h).

Лема 1 Якщо G - допомiжна функцiя, тодi F (ht ) незростає, де:

ht+1 = argminh G(h, ht ).

Доведення:
F (ht+1 ) ≤ G(ht+1 , ht ) ≤ G(ht , ht ) = F (ht ). 
Зауважимо, що F (ht+1 ) = F (ht ) лише якщо ht локальний мiнiмум G(h, ht ).
Якщо iснує неперервна похiдна F в деякому околi ht , то звiдси випливає,
що ∇F (ht ) = 0. Таким чином, послiдовнiсть ht визначена у лемi збiгається
до локального мiнiмуму hmin = argminh F (h) цiльової функцiї:

F (hmin ) ≤ . . . ≤ F (ht+1 ) ≤ F (ht ) ≤ . . . ≤ F (h2 ) ≤ F (h1 ) ≤ F (h0 ).

Далi ми покажемо, що вибираючи пiдходящу допомiжну функцiю для


цiльової функцiї можна отримати послiдовнiсть що збiгається до локального
мiнiмуму з леми.

41
Теорема 2 Послiдовнiсть ||X − W H||F не зростає при замiнi:

(W T X)ij
Hij = Hij ,
(W T W H)ij

(XH T )ij
Wij = Wij .
(W HH T )ij
Норма буде iнварiантною для такої послiдовностi тодi i лише тодi коли
W та H стацiонарнi точки цiєї вiдстанi.

Доведення.
Покажемо, спочатку, що вiрне наступне твердження: Нехай K(ht ) - дiа-
гональна матриця:
Kij (ht ) = δij (W T W ht )i /hti ,
тодi:
1
G(h, ht ) = F (ht ) + (h − ht )T ∇F (ht ) + (h − ht )T K(ht )(h − ht )
2
є допомiжною функцiєю для:
1X X
F (h) = (xk − Wki hi )2 .
2 i
k

Очевидно, що G(h, h) = F (h), тому потрiбно лише показати, що G(h, ht ) ≥


F (h).

42
Для цього запишемо розклад Тейлора для другої степенi для функцiї
F (h):
1
F (h) = F (ht ) + (h − ht )T ∇F (ht ) + (h − ht )T (W T W )(h − ht ),
2
тому нерiвнiсть G(h, ht ) − F (h) ≥ 0 зводиться до:

(h − ht )T [K(ht ) − W T W ](h − ht ) ≥ 0.

Покажемо, що матриця K(ht ) − W T W додатньо напiввизначена. Для цього


розглянемо матрицю:

Mij (ht ) = hti (K(ht ) − W T W )ij htj

яка всього лише є масштабуванням K − W T W . Тодi K − W T W є додатньо


напiввизначеною тодi i лише тодi коли:
X X
νT M ν = νi Mij νj = hti (W T W )ij htj νi2 − νi hti (W T W )ij htj νj =
ij ij
 
X 1 2 1 2 1X T
(W T W )ij hti htj νi + νj − νi νj = (W W )ij hti htj (νi − νj )2 ≥ 0.
ij
2 2 2 ij

Таким чином ми довели до G(h, ht ) є допомiжною функцiєю для F .


Тепер пыдставимо функцiю G у лему, i отримаємо:

ht+1 = ht − k(ht )−1 ∇F (ht ),

при цьому F (ht ) буде неспадною згiдно до леми. Безпосередньо розписавши


компоненти цiєї нерiвностi отримаємо:

(W T x)i
ht+1
i = hti .
(W T W ht )i

Помiнявши мiсцями W та H можна показати аналогiчний результат для H.



Доведемо тепер аналогiчну теорему для дивергенцiї.

Теорема 3 Функцiя D(X||W H) не зростає при замiнi:


P
Wik Xil /(W H)il
Hkl = Hkl i P ,
Wjk
j
P
Hjk Xik /(W H)ik
k
Wij = Wij P .
Hjl
l

Дiвергенцiя буде iнварiантною для цiєї послiдовностi тодi i лише тодi коли
W та H є стацiонарними точкими дiвергенцiї.

43
Доведення.
Доведемо спочатку допомiжне твердження:
Функцiя
 
t t
X X X W ij h j W ij h j
G(h, ht ) = (xi log xi −xi )+ Wij hj − xi P t
log Wij hj − log P
t

i ij ij
W ik h k W il h l
k l

є допомiжною для :
 
X xi X
F (h) = xi log  P  − xi + Wij hj .
 
i
Wij hj j
j

Справдi, очевидно, що G(h, h) = F (h). Для того, щоб показати, що


G(h, ht ) ≥ F (h) ми скористаємось опуклiстю логарифма щоб вивести не-
рiвнiсть:
X X Wij hj
− log Wij hj ≤ − αj log
j j
αj

що виконується для всiх невiд’ємних αj таких що їх сума рiвна одиницi.


Покладемо:
Wij htj
αj − P
Wik htk
k
та отримаємо:
 
X X Wij htj Wij htj
− log Wij hj ≤ − P t
log Wij hj − log P
t

j j
W ik hk W ik h k
k k

t
звiдки випливає, що F (h) ≤ G(h, h ).
Мiнiмум функцiї G(h, ht ) по вiдношенню до h визначається шляхом при-
рiвняння градiєнту до нуля:

dG(h, ht ) X Wij htj 1 X


=− xi P t + = Wij = 0,
dhj i
Wik hk hj i
k

звiдки отриммаємо вигляд послiдовностi ht :

htj X x
ht+1
j = P P i t Wij .
Wjk i Wik hk
k k

Оскiльки G допомiжна функцiя, F незростає на цiй послiдовностi. Перепи-


савши формулу у матричнiй формi отримаємо твердження теореми.
Помiнявши мiсцями H та W отримаємо аналогiчнi формули для W .

Цiльова функцiя дивергенцiї має цiкаву iнтерпритацiю. Припустиму: що
елементи матрицi X мають розподiл Пуасона:

Xij ∼ Pois((W H)ij )

44
Тодi мiнус дивергенцiя це функцiя максимальної правдоподiбностi для W
та H:
X X
−D(X||W H) = [Xij ln(W H)ij − (W H)ij ] = ln P (Xij |W, H) + const
ij ij

де Y Y
P (X|W, H) = P (Xij |W, H) = Pois(Xij |(W H)ij ).
ij ij

Розподiл Пуасона це цiлочисельний розподiл, однак ним добре моделювати


скiнченi цiлозначнi величини також, оскiльки ймовiрнiсть залишку (P (ξ >
n)) є дуже малою.

1.1.4 Застосування NMF


Розглянемо як N M F може використовуватись для моделювання тем.
Нехай X - це матриця частот, тобто Xij це кiлькiсть входжень слова i в
документ j. Будемо використовувати дивергенцiю як цiльову функцiю.
Пiсля того, як знайшли
P H та W додамо ще один крок6 для k = 1, . . . , K:
1. Покладемо ak = Wik
i
2. Подiлимо Wik на ak для всiх i
3. Помножимо Hkj на ak для всiх j
Зауважимо, що така процедура не змiнить добутку W H.
Iнтерпритувати це можна таким чином: k-та колонка W це k-та тема.
j-та колонка H демонструє як багато документ j використовує кожну тему.
Розглянемо тепер iнше застосування - а саме моделювання обличч. Ко-
жне обличчя зображається у виглядi вектору який утворює стовпчик ма-
трицi X. Таким чином кожна колонка утворює свiй “кластер”.
Для цiєї задачi можна використовувати метод k-середнiх i ототожнити
обличчя з центроїдом. У такому разi ми отримаємо матрицю цетроїдiв, i для
того щоб вiдворити зображення треба помножити його на довгий вектор з
усiх нулiв крiм одного - що вiдповiдає нашому зображенню. Такий пiдхiд
не дуже зручний.
З iншого боку можна також використати i сингулярний розклад ма-
триць. Але при цьому ми отримаємо ортонормованi матрицi, можливо з
вiд’ємними значеннями якi важко iнтерпритувати i з якими складно пра-
цювати.
Розглянемо тепер N M F . Виявляється, що матриця W буде складатися
з частин обличч - по аналогiї з моделюваннням тем, а саме обличчя буде
зображуватись у виглядi лiнiйної комбiнацiї частин облич, що є зручним i
зрозумiлим.

45
46
Роздiл 2

Нейроннi мережi

2.1 Iсторичний екскурс


Розпочнемо розгляд нейронних мереж з деякого iсторичного екскурса.
Iсторично нейроннi мережi розвинулися зi спроб наслiдувати роботу
людського мозку. У дещо спрощеному виглядi мозок можна уявити як ком-
бiнацiю багатьох нейронiв якi з’єднанi мiз собою так званими аксонами. На
кожен нейрон надоходить деякий електричний сигнал вiд iнших нейронiв
якi сумуються, i якщо сума сигналiв перевищує певний порiг то нейрон над-
силає новий (модифiкований) сигнал сумiжним нейронам. Врато зазначити,
що у мозку людини близько 100 мiльярдiв нейронiв якi не вiдновлюються
при втратi.

Нейроннi мережi сьогоднi використовуються майже в усiх застосуваннях


машинного навчання, зокрема в обробцi сигналiв, комп’ютерному баченнi,
генерацiї мови, розпiзнавання мови та почерку, в медицинi та iнших галузях.
Нейроннi мережi органiзованi наступним чином. Вхiдний вектор даних
зображується у виглядi послiдовностi вхiдних нейронiв, якi формують вхi-
дний шар, або рiвень. Результат роботи нейронної мережi також зображу-
ється у виглядi рiду нейронiв, якi називаються вихiдним рiвнем. Мiж вхi-
дним та вихiдним рiвнями можуть розташовуватись iншi рiвнi. Всi нейрони
певного рiвня “пов’язанi” з усiма нейронами попереднього рiвня, i (внутрi-

47
шнє) значення кожного нейрона це лiнiйна комбiнацiя всiх нейронiв попере-
днього рiвня. Однак на виходi нейрон посилає не своє внутрiшнє значення, а
так зване “зовнiшнє” значення, рiвне деякiй функцiї (активацiйнiй функцiї)
вiд внутрiшнього значення.
Якщо всi нейрони використовують однакову активацiйну функцiю f : R →
R, i мають n рiвнiв (включаючи вхiдний) то вектор вихiдних нейронiв y буде
рiвним:
y = f (Wn f (..f (W2 f (W1 x))),
де x - вхiднi значення (вектор), W1 - матриця вагiв для першого рiвня, W1 x
- внутрiшнi значення нейронiв другого рiвня (перший це вхiднi значення),
вектор f (W1 x) - це результат застосування скалярної функцiї f до кожного
компоненту вектора W1 x - це зовнiшнi значення другого рiвня нейронiв i
так далi.
Типовими активацiйними функцiями можуть бути (в рiзнi моменти роз-
витку теорiї нейронних мереж): 1. Iдентичне вiдображення: f (x) = x
2. Порогова функцiя f (x) = 1x≥θ
3. Сiгмоїда: f (x) = (1 + e−x )−1
4. RecLu функцiя (Rectified Linear Unit): f (x) = x+ = max{x, 0}.

Першими роботами в галузi нейронних мереж були роботи Уорена Мак-


Калоха та Вальтера Пiтта (Warren McCulloch and Walter Pitts), 1943 року,
що вважається першою роботою з нейронних мереж. Нейрони в цих робо-
тах представляли собою певнi логiчнi функцiї (з бiнарними значеннями) а їх
об’єднання дозволяло отримувати результат якоїсь складної логiчної фун-
кцiї. В цих роботах вперше використано iдею про те щоб нейрон посилав
сигнали лише якщо функцiя перевищує певний порiг.
Наступними роботами в галузi нейронних мереж були мережi Хебба
(Hebb Network, Hebb learning, 1949), якi полягали в наступному
Наступним важливим етапом була проста, лiнiйна нейронна мережа,
що називалась перцептрон (розробляли багато вчених, зокрема Розенблат
(Frank Rosenblatt, 1958, 59, 60)).
Далi, в 60-тих роках 20 столiття була розроблена нелiнiйна модель, що
називалась Adaline (Madaline). Bernard Widrow, Ted Hoff, 1960).
В 1989 роцi була доведена теорема Цибенко, про апроксимацiю будь-якої
неперервної функцiї нейронною мережею з одним прихованим рiвнем, десь
в той же час з’явилися роботи що стосуються згорткових нейронних ме-
реж, рекурентних а також метод зворотнього поширення похибки (LeCun,
1985). Нейроннi мережi стали особливо популярними пiсля 2010 року, коли
вiдбувся значний рiст доступних обчислювальних потужностей.

2.1.1 Мережi Хебба


Мережi Хебба були напевно найпершими нейронними мережами, якi вико-
ристовувалися для класифiкацiї, а не лише для логiчних операцiй. Мережi
Хебба оперують з бiнарними даними якi можуть зображуватись у виглядi
{0, , 1}, або у бiполярнiй формi {−1, 1}. Виявилось, що бiполярне зображе-
ння дає значно кращi результати.
Мережа Хебба, це прямоточна нейронна мережа з одним рiвнем. Не-
хай маємо тренувальний набiр (xk , yk ), та xk ∈ Rn . Алгоритм тренування

48
виглядає наступним чином:
Крок 0. Iнiцiалiзацiя: wi = 0, i = 1, n
Крок 1. Для кожного вхiдного вектора x та значення y:
Крок 2. Встановити початковi значення (вхiднi нейрони) рiвними xi , i =
1, n.
Крок 3. Встановити значення вихiдного нейрона рiвне y.
Крок 4. Оновити ваги: wik+1 = wik +xi y, i = 1, n та зсув: bk+1 = bk +y. Таким
чином правило оновлення вагiв у векторному виглядi можна зписати як:
wk+1 = wk + xy, або δw = xy.
Фiнальне значення вихiдного нейрона рiвне: Y = 1wx+b≥0 − 1wx+b<0 .
Мережi Хебба використовувались як для логiчних функцiй, так i для
простих задач класифiкацiї. Наприклад, букву “x” можна зобразити в на-
ступному виглядi:
10001
01010
00100
01010
10001
тiльки замiсть 0 на вхiд слiд подати −1.
Зауважимо, що мережа Хебба є досить примiтивною, хоча i дозволяє,
наприклад розпiзнавати букви в шрифтах. Однак навiть для логiчних фун-
кцiй вона не працює, наприкла функцiя XOR, що не є лiнiйно роздiльною
не класифiкується коректно мережею Хебба.

2.1.2 Перцептрон
Наступним за важливiстю етапом у розвитку нейронних мереж був пер-
цептрон. Варто зазначити, що навiть у наш час вiн не повнiстю втратив
актуальнiсть, i є простим i дiєвим механiзмом для класифiкацiї лiнiйно роз-
дiлених даних. На вiдмiну вiд своїх попередникiв перцептрон гарантує, що
класифiкатор буде коректним за умови лiнiйної роздiльностi даних.
Нехай yin - це внутрiшнє значення вихiдного нейрона для двофакторної
класифiкацiї, тодi фiнальна активацiйна функцiя буде мати вигляд:

 1, якщо yin > θ,
f (yin ) = 0, якщо yin ∈ [−θ, θ], (2.1)
−1, якщо yin < −θ

Таким чином, ми бачимо, що перцептрон це алгоритм класифiкацiї з мо-


жливою вiдмовою вiд класифiкацiї, або рiвнем надiйностi, що задається
параметром θ. Зауважимо, що θ може бути рiвним нулю, тодi перцептрон
перетворюється на звичайний лiнiйний класифiкатор.
Правило для iтеративного обчислення вагiв для перцептрону виглядає
наступним чином (у векторному виглядi):
wk+1 = wk + αyk xk ,
тут, α - це швидкiсть навчання, yk ∈ {−1, 1}, вiдоме правильне значення на
навчаючiй вибiрцi, xk - k-тий тренувальний вектор. Зауважимо, що ми до-
даємо до вхiдних параметрiв 1, так що якщо ми маємо розмiрнiсть xk рiвну

49
n, то вхiдних нейронiв буде n + 1. Як i ранiше вiльний член позначатимемо
b, i правила для його iтеративного обчислення такi ж як i для w.
Суттєвою вiдмiннiстю перцептрона вiд мережi Хебба, є те, що оновлен-
ня вагiв вiдбувається, лише якщо поточний прогноз помилковий, i по-друге,
проходження по всiй тренувальнiй вибiрцi робиться доти доки всi прогнози
не стануть правильними. Тобi вводиться поняття треувальної епохи (traini-
ng epoch).
Алгоритм має наступний вигляд:
Крок 0. Iнiцiалiзувати всi ваги wi0 = 0, та зсув b = 0. Встановити деяке
α ∈ (0, 1] (часто α = 1).
Крок 1. Поки умова зупинки не виконана повторювати кроки 2-6:
Крок 2. Для кожної тренувальної пари (xk , yk ) повторити кроки 3-5:
Крок 3. Встановити вхiднi значення i-того нейрона рiвним xki
Крок 4. Обчислити вхiдне та вихiдне значення прогнозу:
yin = b + xk w

 1, якщо yin > θ
yout = 0, якщо yin ∈ [−θ, θ] (2.2)
−1, якщо yin < −θ

Крок 5. Оновити ваги та зсув за умови yout 6= yk :


wj+1 = wj + αyk xk , bj+1 = bj + αyk . Iнакше wj+1 = wj , bj+1 = bj .
Крок 6. Умова зупинки - жодних змiн на Кроцi 2.
Врештi правило класифiкацiї вiднесе нову точку x до класу +1, якщо
n
P
wx + b = wi xi + b > θ, та до класу −1 якщо wx + b < −θ. В iншому разi
i=1
алгоритм вiдмовляється вiд класифiкацiї.
Перцептрон застосовується як для логiчних функцiй, так i для довiльних
числових тренувальних даних.
Має мiсце наступна теорема:
Теорема 4 Нехай iснує такий вектор w∗ , що f (xk w∗ ) = yk , для всiх k, де
f це функцiя опиана вище (yout ). Тодi для довiльного початкового вектору
w алгоритм перцептрону для обчислення вагiв wj зiйдеться до деякого ва-
гового вектору, що дасть правильний прогноз на всiх тренувальних даних
за скiнчену кiлькiсть крокiв.
Без Доведення. Зауважимо, що розв’язок який дає алгоритм перцептрону
не єдиний i залежить вiд початкових вагiв.

2.2 Прямоточнi (feed-forward) нейроннi мере-


жi з одним прихованим шаром
Почнемо з розгляду нейронних мереж з одним прихованим шаром:
Зауважимо, що як правило, ми додаємо один вхiдний нейрон що рiвний
1.
Для задачi класифiкацiї на K класiв, отримаємо K вихiдних нейронiв
кожен з яких моделює ймовiрнiсть приналежностi до вiдповiдного класу.
Прихований шар складатиметься з M нових змiнних Zm :
T
Zm = σ(α0m + αm X), m = 1, . . . , M,

50
Tk = β0k + βkT Z, k = 1, . . . , K,
fk (X) = gk (T ), k = 1, . . . , K,
де Z = (Z1 , . . . , ZM ), та T = (T1 , . . . , Tk ).
Активацiйна функцiя σ як правило вибирається як сiгмоїда σ(v) = 1+e1−v
або RECtified Linear Unit (reclu) функцiя reclu(z) = z + = max 0, z.
Вихiдна функцiя gk (T ) це фiнальна трансформацiя вектору T . Для ре-
гресiї як правило використовується функцiя gk (T ) = Tk а для класифiкацiї
софтмакс функцiя:
eTk
gk (T ) = K .
P T
e l
l=1

Нейрони всерединi мережi називаються прихованими нейронами, оскiль-


ки величини Zm не спостерiгаються безпосередньо. Взагалi кажучи, ней-
ронна мережа може мати бiльш нiж один прихований рiвень, але як ми
побачимо пiзнiше, з теоретичної точки зору одного рiвня достатньо.
Зауважимо, що якщо σ це лiнiйна функцiя то вся нейронна мережа пере-
твороюється на лiнiйну модель. Таким чином можна уявити собi нейронну
мережу як нелiнiйне узагальнення лiнiйної регресiї.
Розглянемо процедуру пiдгонки такої нейронної мережi.
Невiдомi параметри в нейронних мережах часто називають вагами. По-
значимо множину всiх вагiв через θ, що включає в сееб:

{α0m , αm ; m = 1, . . . , M }, M (p + 1)вагiв,

{β0k , βk ; k = 1, . . . , K}, K(M + 1)вагiв.

51
Для регресiї використаємо суму квадратiв похибок:
K X
X N
R(θ) = (yik − fk (xi ))2 .
k=1 i=1

Для класифiкацiї розглянемо або середньоквадратичну похибку, або крос-


ентропiю:
XN XK
R(θ) = − yik log fk (xi ),
i=1 k=1

iз вiдповiдним класифiкатором G(x) = argmaxk fk (x).


Iз softmax активацiйною функцiєю та крос-ентропiєю як цiльовою фун-
кцiєю нейронна мережа виходить в точностi еквiвалентною логiстичнiй ре-
гресiї.
Як правило глобальний мiнiмум R(θ) веде до перенавчання, замiсть цьо-
го часто вводять певнi регуляризацiйнi процедури - або штрафний доданок,
або ранню зупинку.
Загальний пiдхiд до мiнiмiзацiї R(θ) це метод градiєнтного спуску, який
в термiнологiї нейронних мереж називають методом зворотнього розповсю-
дження похибки (back-propagation). Завдяки зручнiй формi цiльової фун-
кцiї, градiєнт може бути легко обчислений використовуючи загальне пра-
вило диференцiювання складних функцiй. Це може бути зроблено шляхом
прямого i зворотнього проходу по мережi занотовуючи лише величини ло-
кальнi для кожного нейрону.
Розглянемо алгоритм зворонього розповсюдження похибки для цiльової
T
функцiї - суми квадратiв похибок. Нехай zmi = σ(α0m + αm xi ), та zi =
(z1i , z2i , . . . , zM i ). Тодi отримаємо:
N
X N X
X K
R(θ) = Ri = (yik − fk (xi ))2 ,
i=1 i=1 k=1

з похiдними:
∂Ri
∂βkm = −2(yik − fk (xi ))gk0 (βkT zi )zmi ,
K (2.3)
∂Ri
2(yik − fk (xi ))gk0 (βkT zi )βkm σ 0 (αm
T
P
∂αml =− xi )xil .
k=1

Тодi крок градiєнтного спуску буде на (r + 1) iтерацiї буде мати вигляд:


N
(r+1) (r)
X ∂Ri
βkm = βkm − γr (r)
,
i=1 ∂βkm

N
(r+1) (r)
X ∂Ri
αml = αml − γr (r)
,
i=1 ∂αml
де γr - швидкiсть навчання (learnning rate). Далi запишемо рiвняння (2.3)
у виглядi:
∂Ri
∂βkm = δki zmi ,
∂Ri (2.4)
∂αml = smi xil .

52
Величини δki та smi це похибки з поточної моделi з вихiдного та прихо-
ваного рiвнiв вiдповiдно. З означення похибки задовiльняють:
K
X
smi = σ 0 (αm
T
xi ) βkm δki ,
k=1

рiвняння що називаются рiвняннями зворотнього розповсюдження. Вико-


ристовуючи цi рiвняння, iтеративнi змiни в рiвняннях (2.3) можуть бути
iмплементованi двокроковим алгоритмом. В прямому проходi, поточнi ва-
ги фiксованi а передбачуванi значення fˆk (xi ) обчислюються за формулою
fˆx (xi ) = gk (T ), як i ранiше. У зворотньому проходi, опхибки δki обчислю-
ються а потiм розповсюджуються назад за формулами для smi щоб отри-
мати похибки smi . Обидва набори похибок використовуються для обчисле-
ння градiєнтiв для iтеративного процесу в (2.3). Цей двохетапний процес
i називаєтся зворотнiм розповсюдженням. Його також називають дельта-
правилом (iсторична назва). Для крос-ентропiї рiвняння виводяться анало-
гiчно.
Переваги процесу зворотнього розповсюдження полягаються у його про-
стiй, локальнiй природi. У цьому алгоритмi кожен прихований нейрон пе-
редає та отримує iнформацiю лише та з нейронами з якими вiн має спiльнi
зв’язки. Отже алгоритм може бути ефективно iмплементований з викори-
станням паралельних обчислень.
Формули (2.3) є прикладом “групового навчання” (batch learning), де
новi iтерацiї параметрiв є сумами по всiм тренувальним даним. Навчання
також може бути здiйснено послiдовно (online) - оброблюючи кожне спо-
стережння по одному, оновлюючи градiєнт для кожного спостереження та
зациклюючи цей процес проходячи по всiм тренувальним даним багато ра-
зiв. Один такий прохiд називається тренувальною епохою (training epoch).
Такий послiдовний пiдхiд дозволяє обробляти дуже великi об’єми даних.
З нейроними мережами пов’язано кiлька проблем:
1. Початковi значення. Не зовсiм зрозумiло якi початковi ваги слiд
вибирати. Як правило стартують з величин випадково обраних близько ну-
ля. Поблизу нуля сигмоїда є приблизно лiнiйною, тож модель починається
з лiнiйної i з часом стає все бiльш нелiнiйною. Однак проблемою є те, що
початковий вибiр вагiв може вплинути на результат.
2. Перенавчання. Дуже часто нейроннi мережi мають забагато при-
хованих нейронiв що веде до перенавчання. Ранiше цю проблему частково
вирiшували ранньою зупинкою алгоритму (можливо так вийшло випадко-
во). Зараз бiльш поширеною тенхiкою є регуляризацiя. До основної цiльової
функцiї додають штрафну функцiю J(θ), розглядаючи:

R(θ) + λJ(θ),

де X X
2 2
J(θ) = βkm + αml ,
km ml

та λ ≥ 0 -це параметр налаштування. Завеликi значення λ ведить до урiзння


вагiв до нуля. Для оцiнки λ використовується крос-валiдацiя.
Така регуляризацiя додає доданки 2βkm та 2αml до вiдповiдних виразiв
градiєнту (2.3). Можливi також i iншi штрафiнi функцiї.

53
3. Масштабування. Данi вимiрянi в рiзному масштабi можуть суттє-
во спотворити результат. Тому гарною практикою є маштабування даних
(щоб мати нульове середнє та одиничну дисперсiю), що дозволяє однаково
трактувати всi вхiднi данi в процесi регуляризацiї.
4. Кiлькiсть прихованих нейронiв та рiвнiв. Взагалi кажучи краще
мати забагато нейронiв, нiж замало. Типовий пiдхiд полягає у тому щоб
додати багато нейронiв, i намагтися уникнути перенавчання шляхом регу-
ляризацiї.
5. Локальнi мiнiмуми. Функцiя R(θ) не є опуклою, i допускає багато
локальних мiнiмумiв. Тому доцiльно повторити тренування декiлька разiв з
рiзними стартовими вагами. Альтернативою може бути усереднення перед-
бачень багатьох мереж натренованих з рiзними вагами, на противагу однiй
мережi натренованiй багато разiв.

2.3 Згортковi нейроннi мережi


Ми вже розглянули щiльнi нейроннi мережi та методи оптимiзацiї. Однак,
виявляється, що на практицi щiльнi нейроннi мережi не є дуже корисними
самi по собi. Адже навiть порiвняно невелика мережа, буте мати дуже бага-
то коефiцiєнтiв якi треба навчити. Iнша, досить серйозна, проблема полягає
у тому, що щiльнi нейроннi мережi надзвичайно важко iнтерпритувати в
термiнах предметної областi задачi, що дослiджується. У цьому роздiлi ми
розглянемо приклад такой предметної областi - а саме обробки зображень.
Статистична обробка зображень (а саме класифiкацiя, розпiзнавання
образiв, пошук об’єктiв на зображеннях та iншi задачi) завжди була надзви-
чайно важливою областю дослiджень з величезним практичним (зокрема
комерцiйним) потенцiалом. Однак протягом багатьох рокiв, iснуючi методи
не давали прйнятних результатiв.
Так, навiть найпростiша задача класифiкацiї рукописних цифр довгий
час не мала прийнятного розв’язку. Класичнi методи, такi як knn або ло-
гiстична регресiя дозволяли здiйснювати класифiкацiю зображень, але то-
чнiсть при цьому була вiдносно низька. Щодо бiльш складних задач, типу
розпiзнавання людини на фотографiї, успiхи були ще бiльш скромними.
Однак сама галузь обробки зображень (мається на увазi графiчної оброб-
ки фотографами та дизайнерами) активно розвивалася. Було вироблено цi-
лий ряд технiк та методiв перетворення зображення шляхом накладання
так званих фiльтрiв. Давайте розглянемо, що представляє собою фiльтр.
Нехай маємо зображення
Пiсля обробки фiльтром для виявлення границь (фiльтр Собеля) отри-
маємо: (фото взято з https://en.wikipedia.org/wiki/Sobel_operator).
Як працює подiбний фiльтр? Зокрема фiльтр Собеля, визначає градiєнт
- або швидкiсть змiни iнтенсивностi кольору у горизонтальному та верти-
кальному напрямах. Для того, щоб обчислити градiєнт виконують наступну
операцiю. Нехай X ∈ Rm×m - це матриця, що мiстить iнтенсивностi кожного
пiкселя на зображеннi (вважаємо, що зображення має розмiр m × m i ли-
ше один канал, наприклад grayscale). Тодi для обчислення горизонтального

54
55
градiєнта використовують матрицю:
 
1 0 −1
Fx =  2 0 −2  (2.5)
1 0 −1
А для вертикального  
1 2 1
Fy =  0 0 0  (2.6)
−1 −2 −1
Такi 3 × 3 матрицi послiдовно накладаються на зображення, починаю-
чи з верхнього лiвого кута. Накладання полягає у тому, що обчислюється
поелементна сума всiх членiв фiльтру помножених на вiдповiдний елемент
зображення.
Нахай для прикладу маємо 5 × 5 зображення:
 
150 150 0 92 96
 145 145 2 94 100 
 
X=  130 100 10 12 200  (2.7)

 120 113 19 99 96 
183 115 22 103 88
Тодi накладемо фiльтр (скажiмо Fx ) у лiвий верхнiй кут i обчислимо
значення: 150∗1+150∗0−1∗0+145∗2+145∗0−2∗2+1∗130+0∗100−1∗10 = 556.
Отже значення фiльтру у точцi (1, 1) рiвне 556. Потiм зсуваємо фiльтр на
одиницю вправо i отримаємо значення: 150 ∗ 1 + 0 ∗ 0 − 92 ∗ 1 + 145 ∗ 2 + 2 ∗ 0 −
94 ∗ 2 + 100 ∗ 1 + 10 ∗ 0 − 12 ∗ 1 = 248. Отже значення фiльтру у точцi (2, 1)
рiвне 248. Потiм зсуваємо ще на одинцю вправо i обчислюємо значення в
точцi (3, 1). Далi вправо зсувати вже не можна, тому ми розмiщуємо фiльтр
на один рядок нижче, починаючи з лiвого боку i обчислюємо значення у
точках (1, 2), (2, 2), (3, 2). Далi зсуваємо, ще на одинцю вниз i обчислюємо
значення в точках (1, 3), (2, 3), (3, 3). На цьому обчислення закiнчуються.
В результатi накладання фiльтру Fx на матрицю X отримали деяку 3 × 3
матрицю, назвемо її Gx .
Якщо “намалювати” цю матрицю, тобто масштабувати, так щоб числа
були в iнтервалi вiд 0 до 255 то побачимо, що на нiй видiленi вертикальнi
лiнiї. Аналогiчно зробимоqз фiльтром Fy i отримаємо 3×3 матрицю Gy . Далi
поелементно обчислимо G2x + G2y - це i будуть градiєнти в кожнiй точцi
отриманi
 за допомогою фiльтру Собеля. Напрямок градiєнту задається θ =
G
atan Gxy .
В результатi отримаємо таке зображення як показано на малюнку. Мо-
жна помiтити, що фiльтр “з’їв” по одному пiкселю з кожного боку, тобто
“вiдфiльтроване” зображення стало m − 2 × m − 2.
Зауважимо, що описане накладання фiльтру називається “згорткою”, хо-
ча це не є згорткою у математичному сенсi!
Повертаючись до задач машинного навчання, основною проблемою при
аналiзi зображень була їх багатовимiрнiсть та вiдсутнiсть сенсу у засто-
суваннi алгоритмiв попiксельно. Тому з’явилася iдея, використати знання
предметної областi (накладання фiльтрiв) для навчання. Зрозумiло, що роз-
мiрнiсть вона зменшує не суттєво, але данi стають бiльш розрiдженими i їх
стає легше аналiзувати.

56
Застосування рiзних фiльтрiв разом з такими методами як SVM дозво-
лило досягнути суттєвого прогресу i перейти вiд розпiзнавання рукописних
чисел, наприклад до задачi класифiкацiї зображення на предмет наявностi
чи вiдсутностi на ньому чогось (людини, обличчя i т.д.). Зокрема, є досить
вiдомий алгоритм iз застосуванням iншого фiльру (HoG) та ядерного SVM
у задачi класифiкацiї фотографiї на наявнiсть на нiй людини. Цей алгоритм
планувалося використовувати для автоматизацiї роботи свiтлофорiв.
Однак проблеми все ще залишалися. Фотографiї потрiбно було обробля-
ти вручну накладаючи рiзнi фiльтри. Зображення великого розмiру все ще
дуже погано пiддавалися аналiзу. Багатокласова класифiкацiя була факти-
чно неможливою. Задачi типу пошуку об’єкту на зображеннi та визначення
його координат залишалися досить складними.
Варто зазначити, що спроби використати нейроннi мережi для аналiзу
зображень майже не припинялися. Особливим ентузiастом у цiй галузi був
Ян ЛеКун. Тому досить природно з’явилася iдея використовувати згортки у
нейронних мережах. Спочатку використовувалися фiксованi (детермiнованi
згортки) типу оператора Собеля або HoG. Але згодом, стало очевидно, що
нейронна мережа може сама “вивчити” потрiбнi фiльтри!
Отже розглянемо архiтектуру подiбної нейронної мережi (їх стали нази-
вати згортковими). По-перше, на вхiд мережi подаються вже не вектори а
багатовимiрнi масиви, двовимiрнi для одноканальних зображень або триви-
мiрнi для RGB-зображень. Тодi “матриця” X стає у даному представленнi
4-вимiрною! А саме X ∈ Rm×m×3×N , де m × m це розмiр зображення, 3 - це
кiлькiсть каналiв, N - кiлькiсть зображень.
Далi, на зображення накладається ряд фiльтрiв розмiрностi k × k × 3
(тут пiдсумовування буде вестися одночасно по всiм каналам, тобто у сумi
буде 3k 2 доданкiв). Кожен фiльтр перетворює m × m × 3 зображення на
(m−k+1)×(m−k+1)×1 масив. Потiм декiлька таких фiльтрiв “з’єднуються”
утвроюючи (m − k + 1) × (m − k + 1) × K масив, де K - це кiлькiсть фiльтрiв.
(Вiзуалiзацiю цього процесу для одноканальних зображень можна поди-
витися тут: https://cs231n.github.io/convolutional-networks/).
Така конструкцiя утворює один шар згорткової нейронної мережi (заува-
жимо, що до згортки ще додають вiльний член, як у щiльних нейронних
мережах, один вiльний член на фiльтр).
Ми вже бачили, що використання фiльтру k × k × 3 перетворює зобра-
ження m × m × 3 у масив (m − k + 1) × (m − k + 1) × 1. Iнодi така змiна роз-
мiрностi небажана (при чому “бажаною” може бути як бiльша так i менша
розмiрнiсть!). Окрiм того, для великих зображень, рух по одному пiкселю
може бути занадто повiльним. Тому для операцiї згортки визначають ще
два параметри: padding (p) та stride (s). Padding полягає у тому, що края зо-
браження доповнюються нулями, щоби пiсля згортки отримати зображення
бiльшого розмiру (нiж m − k + 1), а stride означає “крок” або зсув згортки.
У прикладах вище ми мали stride=1, що означає, що ми зсуваємо фiльтр
на
h один пiксель.
i hТодi розмiрiоб’єкту пiсля застосування такої згортки буде
m+2p−k
s + 1 × m+2p−ks + 1 × 1, де [] - це цiла частина.
Бiльше про “арифметику” згорткових нейронних мереж можна почитати
тут: https://arxiv.org/pdf/1603.07285.pdf.
Зауважимо, що згортка вiд згортки - знову буде деякою згорткою (як i з
множенням матриць), тому для того щоб нейронна мережа працювала необ-

57
хiдно додати в систему нелiнiйнiсть. Для цього пiсля згортки застосовують
активацiйну функцiю (покоординатно).
I останнє, про що залишилося сказати, це про операцiю pooling. Виявля-
ється, що у зображення далеко не всi пiкселi несуть змiстовне навантаження
i частину пiкселiв можна просто викинути, суттєво зменшивши розмiрнiсть.
У згорткових нейронних мережах так i роблять. Пiсля застосування згор-
тки, отриманий (двовимiрний) масив розбивається на блоки (часто 2 × 2) з
яких вибирається максимальне значення. В результатi отримується масив
значно менших розмiрiв.
Активацiйну функцiю при цьому, як правило, застосовують перед pooling-
ом.
Таким чиному утворюється “стандартний блок” згорткової нейронної ме-
режi: Згортка -> Активацiя -> Pooling. Сюди iнодi додаються BatchNormali-
zation та/або Dropout про який ми говорили ранiше. Згортковi мережi мо-
жуть складатися iз багатьох таких блокiв. Як правило, кожен наступний
блок має меншi “лiнiйнi” розмiри i бiльшу глибину. Закiнчується згорткова
нейронна мережа щiльним рiвнем, та активацiйною функцiєю, що вiдповiд-
ає задачi (наприклад softmax для класифiкацiї).
Розглянемо кiлька прикладiв згорткових нейронних мереж.

Зауважимо, що остання мережа (VGG-16) має 138 мiльйонiв параметрiв!


Подiбнi архiтектури дозволили працювати з вiдносно великими зобра-
женнями (254x254), i непогано розв’язували задачi класифiкацiї на таких

58
зображеннях. Однак, на цьому прогрес зупинився. Виявилося, що подаль-
шi покращення шляхом збiльшення кiлькостi шарiв (глибини) або кiлькостi
фiльтрiв фактично неможливi.
Це пов’язно з проблемою затухаючого градiєнта про який ми говорили
ранiше. Це була серйозна проблема, яка не дозволяла тренувати глибокi
мережi, що було необхiдно для бiльш складних задач (таких як опис зобра-
ження, пошук об’єкта на зображеннi iз вказанням координат, знаходження
контура об’єкта та iншi). Ця проблема була вирiшена у компанiях Google
та Microsoft.
Спочатку Google запропонували архiтектуру Inception (в мережi яку во-
ни назвали GoogLeNet). Ми не будемо її розглядати у цьому курсi, оскiльки
вона вже частково втратила актуальнiсть. А потiм у Microsoft запропону-
вали архiтектуру залишкових блокiв.

59
Залишковi нейроннi мережi вирiшили проблему затухаючого градiєнта,
та уможливили тренування нейронних мереж у сотнi рiвнiв!

2.4 Рекурентнi нейроннi мережi


У попередньому роздiлi ми побачили як можна побудувати нейронну мере-
жу яка використовує просторову структуру вхiдних даних. В цьому роздiлi,
ми покажемо яким чином можна спроектувати нейронну мережу для ана-
лiзу послiдовностей.
Аналiз послiдовностей має суттєвi вiдмiнностi вiд аналiзу зображень.
Тут пiд послiдовностями, ми майже завжди матимемо на увазi текст. (Хоча
рекурентнi нейроннi мережi також застосовуються до аналiзу ДНК послi-
довностей, до аналiзу голосової iнформацiї та iн.).
Отже перша суттєва вiдмiннiсть полягає у тому, що при аналiзi послi-
довностей ми маємо чiтку “часову” пряму, або напрям - злiва-направо.
По-друге, зв’язок мiж окремими елементами послiдовностi може зберiгати-
ся протягом довгого “часу” (наприклад, щоб зрозумiти речення потрiбно
дочитати його до кiнця).
По-третє, довжина послiдовностi варiюється (на вiдмiну вiд фiксованих роз-
мiрiв зображення).
По-четверте, кожен елемент послiдовностi як правило має значення (на вiд-
мiну вiд пiкселiв у зображеннях, якi по окремостi не несуть нiякої iнфор-
мацiї). Як наслiдок, не дуже зрозумiло, яким чином порiвнювати послiдов-
ностi, якi послiдовностi є “близькими” та як оцiнити “якiсть” послiдовностi.

Розглянемо типовi задачi, якi розв’язують рекурентнi нейроннi мережi.

1. Sentiment analysis. Це типова задача класифiкацiї, коли на вхiд пода-


ється повiдомлення i потрiбно визначити його емоцiйне забарвлення.
2. Named entity recognition. Це задача пошуку певних об’єктiв у послiдов-
ностi (наприклад iмен чи географiчних об’єктiв). На виходi з алгоритму ми
матимемо iнформацiю про те де знаходяться шуканi об’єкти. Або бiльш то-
чно - чи є кожен елемент послiдовностi шуканим об’єктом.
3. Machine translation. Машинний переклад, це переклад з однiєї мови на
iншу.

Iснує також багато iнших задач, наприклад: text summarization, question


answering, text generation i так далi. Але перелiченi три задачi будуть для
нас особливо важливими, оскiльки вони задають рiзнi типовi архiтектури
для рекурентних мереж.
Проблеми якi виникаються при аналiзi текстових даних.

1. Як представити “данi”? Що є “спостереженням”? Слово, символ, рече-


ння?
2. Як обробляти спостереження рiзної довжини?
3. Як врахувати зв’язок мiж словами, якi знаходяться далеко одне вiд одно-
го?
4. Як забезпечети “зворотнiй” аналiз, коли змiст слова може змiнитися в
залежностi вiд того, що буде далi?

60
4. Як представити текстовi данi для машинної обробки?

Для розв’язання цих задач iснує багато рiзних моделей. Ми коротко


оглянемо основнi, в той час як повний огляд виходить далекi за межi дано-
го курсу.

Iснує двi принципових моделi для роботи з текстовими даними - що ба-


зується на символах та на словах. Бiльш поширеною є модель, що базується
на словах, тому на нiй ми i зосередимося.
Отже найпростiша рекурентна нейронна мережа має вигляд як показано
на малюнку.

Тут жовтi кружечки - це власне “прихований шар” мережi, синi круже-


чки вхiднi данi, а сiрi кружечки - можливий вiдгук системи. Тобто РНН
працює наступним чином:
1. У якостi вхiдних даних розглядається певний текст/набiр текстiв (часто
його називають корпусом).
2. Кожне “спостереження” xi - це речення, а ознакою або регресором буде
слово у реченнi x2i - це друге слово у i-тому реченнi. Основна вiдмiннiсть
РНН полягає у тому, що кiлькiсть ознак p не є фiксованою.
3. Кожне слово переводиться у певний числовий вектор. Найпростiший ва-
рiант - це one-hot вектор. Варто зазначити, що в сучасних застосуваннях
такий пiдхiд уже майже не використовують.
4. Отже, прихований шар нейронної мереж h отримує на вхiд числовий
вектор (фiксованої довжини!), що представляє наступне слово, та “стан”
мережi у попереднiй момент часу. На основi цих двох об’єктiв, прихований
шар обчислює свiй новий стан, та, можливо, вiдгук y j . Новий стан, разом
iз наступним словом передається до наступної копiї прихованого шару.
5. Ключовою особливiстю РНН є те, що прихований шар є одним i тим же
для кожного слова! Тобто, ваги прихованого шару використовуються i на-
вчаються одночасно.

61
Бiльш формально:
hn+1 = g(Wh hn + Wx xn+1
i + b),
де g - активацiйна функцiя, hn - попереднiй стан нейронної мережi (як
правило вектор), xn+1
i - вектор (фiксованої довжини!), що представляє n+1-
ше слово у реченнi i, Wx - матриця вагiв, b- вiльний член.
Яким же чином, таку мережу можна натренувати? Таким же чином, як
i звичайну нейронну мережу - нам потрiбнi будуть тренувальнi, розмiченi
данi з “правильними” вiдповiдями, цiльова функцiя, по якiй рахується гра-
дiєнт, який потiм “розповсюджується назад у часi” по нейроннiй мережi.
Однак такий пiдхiд має суттєвi недолiки, зокрема Vanishing gradient. Щоб
якимось чином, цю проблему вирiшити, а також забезпечити довгостроко-
ву “пам’ять” нейроннiй мережi використовують бiльш складнi будiвельнi
блоки нiж ми розглянули до цих пiр.
Першим таким блоком яким ми розглянемо буде Gated Recurrent Unit
(GRU).

Отже GRU блок, має наступну структуру. Ключовим елементом, є так


звана “комiрка пам’ятi” (memory cell), на малюнку позначена як ht . На вхiд
до GRU блоку подається поточне значення пам’ятi ht−1 та слово xt .
Спочатку обчислюється значення так званих гейтiв (gate):
Γu = σ(Wuh ht−1 + Wux xt + bu )
Γr = σ(Wrh ht−1 + Wrx xt + br )
Основна задача гейту - визначити, коли слiд “записати” певну iнформацiю
у пам’ять. Наприклад, мережа може записати 1, щоб позначити, що пiдмет
жiночого роду, для того, щоб використати цю iнформацiю пiзнiше. Заува-
жимо, що Γ як правило 0 або 1.
Пiсля цього обчислюється нове значення за формулою:
h̃t = tanh(Wh (Γr ∗ ht−1 ) + Wx xt + b).
Далi ми обчислюємо нове значення пам’ятi за формулою:
ht = Γu ∗ h̃t + (1 − Γu ) ∗ ht−1 ,
де ∗ - операцiя поелементного множення.

62

You might also like