Professional Documents
Culture Documents
lectures_prev
lectures_prev
x31 . . . xp1
1
x1 x21
x12 x22 p
x32 . . . x2
X= ... ...
(1)
...
p
x1N x2N x3N . . . xN
0.1.2 Регресiя/Класифiкацiя
Кожен алгоритм видає якийсь результат, ми кажемо - алгоритм прогнозує
вiдгук, або цiльову змiнну. У спрощенiй постановцi задачi, ц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
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зувати
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
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.
N
X test N
X test
3
N
Xtest 2 N
X test 2
RSStest = Ŷtest,i − Ytest,i = Xtest β̂train − Ytest,i .
k=1 k=1
(X T X + λIp )β = X T Y,
де:
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 має вигяд:
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.
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) :
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
7
Тепер запишемо логарифмiчну функцiю вiрогiдностi:
N
X
l(β) = yi ln(g(xi · β)) + (1 − yi ) ln(1 − g(xi · β)) → max .
i=1
Тод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
8
Пiдставивши в якостi p1,i := yi , а в якостi q1,i = g(xi · β), отримаємо:
N
X
l(β) = − H(p·,i , q·,i ).
i=1
∂2l
2
H(β) = ∇ l(β) =
∂βj ∂βk j,k=1,p
Введемо матрицю G:
g1 0 ... 0
0 g2 ... 0
G= ,
.. .. .. ..
. . . .
0 0 ... gN
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) )),
де
| | | |
β = β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
N
X
H(β; Ỹ , X) = Hi (β; ỹi , xi ).
i=1
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.
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знавання людиною.
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}
Тут 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катора:
14
K
X
L(k, l)P {ĉ(X) = l|C = k} + L(k, D)P {ĉ(X) = D|C = k} =
l=1
Позначимо:
πk pk (x)
p(k|x) = P {C = k|X = x} = K
P
πl pl (x)
k=1
Доведення.
Маємо:
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
15
За рiвномiрної функцiї втрат (8) мiнiмiзатор має вигляд:
1 − p(1|x), . . . , 1 − p(K|x), d
Тобто, для того, щоб класиф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
{x : f (x) = x · β + β0 = 0},
G(x) = sign(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
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
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ї (16 у будь-якiй допустимiй точцi. Нам
PN
слiд максимiзувати LD за обмежень: 0 ≤ αi ≤ C та αi yi = 0. На додачу
i=1
до умов (17) потрiбнi ще умови Каруша-Куна-Такера:
де ненульов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катор має вигляд:
20
0.6.1 Використання ядер у SVM.
Розглянутi вище моделi є лiнiйними. Як i в задачах регресiї їх можна зро-
бити нелiнiйними додавши додатковi ознаки, такi як степенi початкових
даних, або сплайни. Так, для кожного xi можна розглянути функцiю:
i звичайний класифiкатор:
G(x) = sign(h(x) · β + β0 ).
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 як показано
на малюнку.
22
5
X
fˆ(X) = cm I(X1 ,X2 )∈Rm .
m=1
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
24
Оцiнку α отримують з кросс-валiдацiї, α̂ вибирають таким щоб мiнiмi-
зувати кросс-валiдовану суму квадратiв. Наше фiнальне дерево - це Tα̂ .
Класифiкацiйнi дерева
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.
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)})
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) =
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 наступним чином:
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 отримаємо:
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).
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
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нка похибки ансамблю.
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
34
Роздiл 1
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 , отримаємо що:
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
Обчислимо пох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
−1
X X
vj = λσ 2 I + ui uTi Mij ui .
i∈Ωvj i∈Ωvj
37
for j = 1, . . . , N2 обсчислити вектор vj :
−1
X X
2
vj = λσ 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
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
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
Доведення:
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ї:
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
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.
(W T x)i
ht+1
i = hti .
(W T W ht )i
Д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
t
звiдки випливає, що F (h) ≤ G(h, h ).
Мiнiмум функцiї G(h, ht ) по вiдношенню до h визначається шляхом при-
рiвняння градiєнту до нуля:
htj X x
ht+1
j = P P i t Wij .
Wjk i Wik hk
k k
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
45
46
Роздiл 2
Нейронн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}.
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 < −θ
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 < −θ
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
{α0m , αm ; m = 1, . . . , M }, M (p + 1)вагiв,
51
Для регресiї використаємо суму квадратiв похибок:
K X
X N
R(θ) = (yik − fk (xi ))2 .
k=1 i=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
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
R(θ) + λJ(θ),
де X X
2 2
J(θ) = βkm + αml ,
km ml
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в.
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в згорткових нейронних мереж.
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в!
60
4. Як представити текстов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).
62