You are on page 1of 158

Inteligent, ă artificială

Versiunea 13 ianuarie 2024

Lucian M. Sasu, Ph.D.


Cuprins

Listă de figuri 5

1 Introducere 8
1.1 Ret, ele neurale artificiale . . . . . . . . . . . . . . . . . . . . . 10
1.1.1 Bazele biologice . . . . . . . . . . . . . . . . . . . . . . 10
1.1.2 Diferent, e între ret, ele neurale artificiale s, i naturale . . 12
1.1.3 Aplicabilitate . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 Calcul evolut, ionist . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.1 Bazele biologice . . . . . . . . . . . . . . . . . . . . . . 13
1.2.2 Cromozomi . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.3 Diferent, e între cromozomii biologici s, i cei artificiali . . 14
1.2.4 Aplicabilitate . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Tipuri de învăt, are în machine learning . . . . . . . . . . . . . 14
1.3.1 Învăt, area supervizată . . . . . . . . . . . . . . . . . . 15
1.3.2 Învăt, area prin întărire . . . . . . . . . . . . . . . . . . 15
1.3.3 Învăt, area nesupervizată . . . . . . . . . . . . . . . . . 16
1.4 Auto-organizarea . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Regresia liniară 18
2.1 Exemplu s, i notat, ii . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Funct, ia de eroare . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Metoda de căutare după direct, ia gradientului . . . . . . . . . 25
2.4 Metoda ecuat, iilor normale . . . . . . . . . . . . . . . . . . . . 31

3 Regresia logistică 33
3.1 Încadrare s, i exemple . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Regresia logistică binară . . . . . . . . . . . . . . . . . . . . . 34
3.2.1 Setul de instruire . . . . . . . . . . . . . . . . . . . . . 34
3.2.2 Reprezentarea modelului . . . . . . . . . . . . . . . . . 34
3.2.3 Suprafat, a de decizie a regresiei logistice binare . . . . 37
3.2.4 Funct, ia de cost . . . . . . . . . . . . . . . . . . . . . . 38
3.2.5 Algoritmul de instruire . . . . . . . . . . . . . . . . . . 41
3.3 Regresia logistică multinomială . . . . . . . . . . . . . . . . . 43

1
3.3.1 Setul de instruire . . . . . . . . . . . . . . . . . . . . . 43
3.3.2 Funct, ia softmax . . . . . . . . . . . . . . . . . . . . . 43
3.3.3 Reprezentarea modelului . . . . . . . . . . . . . . . . . 44
3.3.4 Funct, ia de cost . . . . . . . . . . . . . . . . . . . . . . 45
3.3.5 Gradientul funct, iei de cost . . . . . . . . . . . . . . . 46
3.3.6 Algoritmul de instruire . . . . . . . . . . . . . . . . . . 47
3.4 Precizări suplimentare . . . . . . . . . . . . . . . . . . . . . . 48
3.4.1 Redundant, a parametrilor pentru regresia logistică mul-
tinomială . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4.2 Relat, ia dintre cele două tipuri de regresii logistice . . 49
3.4.3 Calculul numeric al funct, iei softmax . . . . . . . . . . 50
3.4.4 Trucul “log sum exp” . . . . . . . . . . . . . . . . . . 50

4 Regularizarea modelelor 52
4.1 Overfitting, underfitting pentru regresia liniară . . . . . . . . 52
4.2 Regularizarea L2 pentru regresia liniară . . . . . . . . . . . . 54
4.3 Regularizarea modelelor de regresie logistică . . . . . . . . . . 56
4.3.1 Regularizarea L2 pentru regresia logistică binară . . . 56
4.3.2 Regularizarea L2 pentru regresia logistică multinomială 58

5 Perceptronul liniar 60
5.1 Încadrare s, i exemplu . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 Definit, ii s, i notat, ii . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.3 Perceptronul liniar . . . . . . . . . . . . . . . . . . . . . . . . 63
5.4 Algoritmul de instruire a perceptronului . . . . . . . . . . . . 64
5.5 Exemplu numeric . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.6 Modificarea ponderilor ca algoritm de tip gradient descent . . 69
5.7 Convergent, a perceptronului . . . . . . . . . . . . . . . . . . . 70
5.8 Algoritmul lui Gallant . . . . . . . . . . . . . . . . . . . . . . 72
5.9 Comentarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

6 Perceptronii multistrat 75
6.1 Motivat, ie pentru ret, ele neurale multistrat . . . . . . . . . . . 75
6.2 Notat, ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.3 Setul de instruire . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.4 Ret, eaua neurală MLP . . . . . . . . . . . . . . . . . . . . . . 76
6.4.1 Arhitectură . . . . . . . . . . . . . . . . . . . . . . . . 76
6.4.2 Funct, ii de activare . . . . . . . . . . . . . . . . . . . . 81
6.5 Pasul de propagare înainte . . . . . . . . . . . . . . . . . . . . 85
6.6 Funct, ii de cost . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.6.1 Funct, ia de cost pentru problemă de regresie . . . . . . 88
6.6.2 Funct, ia de cost pentru discriminarea a două clase . . . 89
6.6.3 Funct, ia de cost pentru mai mult de două clase inde-
pendente . . . . . . . . . . . . . . . . . . . . . . . . . 91

2
6.6.4 Funct, ia de cost pentru clasificare cu mai mult de două
clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.7 Init, ializarea ponderilor ret, elei . . . . . . . . . . . . . . . . . . 92
6.8 Grafuri computat, ionale s, i calcul de derivate pat, iale . . . . . . 92
6.8.1 Derivarea funct, iilor compuse . . . . . . . . . . . . . . 92
6.8.2 Exemplul 1: căi unice . . . . . . . . . . . . . . . . . . 94
6.8.3 Exemplul 2: căi multiple . . . . . . . . . . . . . . . . . 96
6.9 Algoritmul backpropagation . . . . . . . . . . . . . . . . . . . 98
6.9.1 Scopul algoritmului . . . . . . . . . . . . . . . . . . . . 98
6.9.2 Variante de calcul . . . . . . . . . . . . . . . . . . . . 98
6.9.3 Calculul gradient, ilor – justificare matematică . . . . . 99
6.9.4 Algoritmul backpropagation . . . . . . . . . . . . . . . 104
6.10 Utilizarea ret, elei pentru inferent, ă . . . . . . . . . . . . . . . . 106
6.11 Discut, ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

7 Ret, ele neurale cu funct, ii de activare radială 107


7.1 Motivat, ia ret, elei: teorema lui Cover . . . . . . . . . . . . . . 107
7.2 Funct, ii cu activare radială . . . . . . . . . . . . . . . . . . . . 109
7.3 Ret, ele cu funct, ii cu activare radială . . . . . . . . . . . . . . . 111
7.4 Clustering folosind algoritmul K-means . . . . . . . . . . . . . 113
7.5 Algoritmul de init, ializare K-means++ . . . . . . . . . . . . . 115
7.6 Determinarea ponderilor pentru RBF . . . . . . . . . . . . . . 116
7.7 Algoritmul de instruire a ret, elei RBF . . . . . . . . . . . . . . 116

8 Ret, ele neurale convolut, ionale 118


8.1 Convolut, ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.1.1 Exemplificare de convolut, ie . . . . . . . . . . . . . . . 121
8.1.2 Bordarea intrării . . . . . . . . . . . . . . . . . . . . . 124
8.1.3 Pasul kernelului . . . . . . . . . . . . . . . . . . . . . . 126
8.1.4 Numărul de ponderi s, i de operat, ii pentru convolut, ie
cu intrare pe un singur canal . . . . . . . . . . . . . . 129
8.1.5 Convolut, ii pentru intrări cu mai multe canale . . . . . 129
8.2 Funct, ii de activare . . . . . . . . . . . . . . . . . . . . . . . . 133
8.3 Straturi de pooling . . . . . . . . . . . . . . . . . . . . . . . . 133
8.3.1 Max pooling . . . . . . . . . . . . . . . . . . . . . . . 133
8.3.2 Average pooling . . . . . . . . . . . . . . . . . . . . . . 133
8.3.3 Global average pooling . . . . . . . . . . . . . . . . . . 134
8.4 Straturi complet conectate . . . . . . . . . . . . . . . . . . . . 134
8.5 Funct, ii de cost, regularizare . . . . . . . . . . . . . . . . . . . 135
8.6 Ret, elele neurale de convolut, ie: solut, ie end-to-end . . . . . . . 136
8.7 Exemple de ret, ele neurale de convolut, ie . . . . . . . . . . . . 138
8.7.1 LeNet-5 . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.7.2 VGG16 . . . . . . . . . . . . . . . . . . . . . . . . . . 140

3
9 Calcul evolut, ionist 142
9.1 Taxonomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.2 Algoritmi genetici . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.3 Fundamente teoretice . . . . . . . . . . . . . . . . . . . . . . 146
9.4 Problema reprezentării datelor în algoritmii genetici . . . . . 149
9.4.1 Varianta cu penalizare . . . . . . . . . . . . . . . . . . 152
9.4.2 Varianta cu reparare . . . . . . . . . . . . . . . . . . . 152
9.4.3 Codificarea adecvată a indivizilor . . . . . . . . . . . . 153
9.5 Exemplu: problema orarului . . . . . . . . . . . . . . . . . . . 154

Bibliografie 156

4
Listă de figuri

1.1 Neuron natural . . . . . . . . . . . . . . . . . . . . . . . . . . 11


1.2 Neuron de tip Purkinje din cortexul cerebelar . . . . . . . . . 11
1.3 Schema de lucru pentru învăt, are supervizată . . . . . . . . . 15
1.4 Schema de lucru pentru învăt, are prin întărire . . . . . . . . . 16
1.5 Schema de lucru pentru învăt, are nesupervizată . . . . . . . . 17

2.1 Reprezentarea grafică a datelor de vânzare a unor apartamente 19


2.2 Model liniar de predict, ie s, i aproximarea costului unui aparta-
ment de 80 de metri pătrat, i. . . . . . . . . . . . . . . . . . . . 20
2.3 Fluxul de lucru într-un proces de instruire automată. . . . . . 21
2.4 Regresie liniară univariată . . . . . . . . . . . . . . . . . . . . 22
2.5 Funct, ia de eroare pătratică, cu θ0 = 0 s, i θ1 variabil. . . . . . 23
2.6 Funct, ia de eroare pentru model liniar univariat cu θ0 s, i θ1
variabili. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7 Curbe de contur pentru functia de eroare a unui model liniar
univariat, cu parametrii θ0 , θ1 variabili. . . . . . . . . . . . . 24
2.8 Graful de calcul pentru modelul de regresie liniară multivariată 28

3.1 Graficul sigmoidei logistice definită în ecuat, ia 3.4 . . . . . . . 35


3.2 Graf de calcul pentru regresia logistică binară . . . . . . . . . 36
3.3 Minim global s, i minim local pentru funct, ie neconvexă . . . . 39
3.4 Cele două ramuri ale funct, iei Cost din ecuat, ia (3.13) . . . . . 40

4.1 Trei polinoame pentru aproximarea pret, ului pornind de la


suprafat, ă . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.1 Mai multe drepte pentru mult, imi liniar separabile . . . . . . 61


5.2 Semiplanele pozitive s, i negative . . . . . . . . . . . . . . . . . 61
5.3 Suprafat, a de decizie S, distant, a de la punctul de coordonate
x la S, pozit, ia vectorului de ponderi w fat, ă de S . . . . . . . 63
5.4 Graful de calcul al unui perceptron liniar . . . . . . . . . . . 64
5.5 Exemplu numeric: dreapta init, ială . . . . . . . . . . . . . . . 68
5.6 Exemplu numeric: prima modificare a dreptei . . . . . . . . . 68
5.7 Exemplu numeric: Ultima modificare a dreptei . . . . . . . . 69

5
5.8 Problema neseparabilă liniar XOR . . . . . . . . . . . . . . . 73

6.1 Două clase de puncte ce nu sunt liniar separabile . . . . . . . 75


6.2 Ret, ea MLP cu 3 straturi . . . . . . . . . . . . . . . . . . . . . 79
6.3 Ret, ea MLP cu 4 straturi . . . . . . . . . . . . . . . . . . . . . 79
6.4 Legăturile între noduri din straturile l − 1 s, i l. . . . . . . . . 80
6.5 Graficul funct, iei de activare ReLU . . . . . . . . . . . . . . . 83
6.6 Graficul funct, iei de activare PReLU pentru α = 0.1 . . . . . . 84
6.7 Graficul funct, iei de activare ELU pentru α = 0.1 . . . . . . . 85
6.8 Graficul funct, iei de activare Swish pentru β ∈ {0.5, 2} . . . . 86
6.9 Functiile mean squared error, mean absolute error, Huber
(δ = 0.5) pentru cazul unidimensional . . . . . . . . . . . . . 90
6.10 Graf computat, ional pentru funct, ie multivariată compusă . . . 93
6.11 Graful computat, ional pentru calculul valorii funct, iei f (x, y, z) =
x · (y + z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.12 Graful pentru calculul derivatelor part, iale . . . . . . . . . . . 95
6.13 Graf computat, ional pentru f (x, y, z) = (x + y) · (y + z) . . . 97
6.14 Calculul gradient, ilor pentru f (x, y, z) = (x + y) · (y + z) . . . 97
6.15 Curbe de eroare pentru antrenare s, i validare . . . . . . . . . . 99
6.16 Ret, ea neurală cu un strat ascuns, folosită ca schemă pentru
determinarea fomulelor gradient, ilor. . . . . . . . . . . . . . . 101
6.17 Graf computat, ional pentru ponderile s, i valorile de bias din
ultimul strat. . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.18 Graf computat, ional pentru ponderile s, i valorile de bias din
stratul ascuns. . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7.1 Set de dete neseparabil liniar transformat în set liniar separabil108


7.2 Transformarea problemei XOR, ce nu permite separare liniară
(partea stângă) în problemă liniar separabilă . . . . . . . . . . 109
7.3 Structura unei ret, ele RBF, plecând de la funct, ia de interpolare
din ecuat, ia 7.4. . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.4 Structura unei ret, ele RBF cu centri selectat, i . . . . . . . . . . 113
7.5 Caz nefavorabil pentru K-means la alegerea centroizilor init, iali115
7.6 Alegerea optimă a centroizilor init, iali . . . . . . . . . . . . . . 116

8.1 Clasificare de imagini cu ret, ea neurală de convolut, ie . . . . . 119


8.2 Detectare de obiecte cu ret, ea neurală de convolut, ie . . . . . . 119
8.3 Segmentare semantică s, i segmentare de instant, e . . . . . . . . 119
8.4 Exemplu de cifră 5 din setul de date MNIST . . . . . . . . . 120
8.5 Imagine color, cu reprezentare numerică pe trei canale de culoare120
8.6 Exemplificare intrare, kernel s, i ies, ire . . . . . . . . . . . . . . 122
8.7 Prima convolut, ie (cu kernel răsturnat), aplicată peste intrările
marcate cu linie punctată . . . . . . . . . . . . . . . . . . . . 122
8.8 A doua convolut, ie . . . . . . . . . . . . . . . . . . . . . . . . 122

6
8.9 A treia convolut, ie . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.10 Ultima convolut, ie . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.11 Exemplu numeric pentru convolut, ie de 3 × 3 peste o intrare
de 5 × 5, fără bordare s, i cu pas 1. Preluare din [1] . . . . . . 123
8.12 O valoare centrală din intrare este de mai multe ori folosită
într-o convolut, ie . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.13 Convolut, ie validă cu pas 2 . . . . . . . . . . . . . . . . . . . . 127
8.14 Exemplu numeric pentru convolut, ie de 3 × 3 peste o intrare de
5 × 5, cu pas 2 si padding 1 (convolut, ie asemenea). Preluare
din [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.15 Filtru de convolut, ie pentru un strat de intrare cu 4 canale . . 130
8.16 Convolut, ie cu două filtre pentru un strat de intrare cu 4 canale132
8.17 Max pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.18 Average pooling . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.19 Global average pooling pe un canal, respectiv pe 3 canale . . 135
8.20 Straturi complet conectate . . . . . . . . . . . . . . . . . . . . 136
8.21 Arhitectura generică a unei ret, ele neurale convolut, ionale . . . 137
8.22 Succesiune de trăsături învăt, ate de o ret, ea neurală profundă . 137
8.23 Schit, ă a unei ret, ele de convolut, ie . . . . . . . . . . . . . . . . 139
8.24 Arhitectura ret, elei convolut, ionale LeNet5 . . . . . . . . . . . 139
8.25 Arhitectura ret, elei convolut, ionale VGG16 . . . . . . . . . . . 141

9.1 Reprezentarea unui cromozom în algoritmii genetici . . . . . . 144

7
Capitolul 1

Introducere

Inteligent, a artificială (IA) este un domeniu care combină elemente de


învăt, are automată, adaptare, evolut, ie s, i logică fuzzy pentru a rezolva pro-
bleme care, abordate tradit, ional, sunt dificil sau imposibil de abordat. Este o
ramură a inteligent, ei artificiale. Câteva subdomenii ale inteligent, ei artificiale
sunt:

• modele cu învăt, are automată (machine learning) – modele liniare,


mixturi Gaussiene, ret, ele neurale (sau “neuronale”) artificiale, Support
Vector Machines, arbori de decizie, ret, ele neurale convolut, ionale etc.;

• calcul evolut, ionist;

• mult, imi s, i logică fuzzy;

• imunitate artificială;

• inteligent, a mus, uroiului.

Fiecare din aceste subdomenii a evoluat rapid s, i s–au impus ca potent, iale
metode de rezolvare efectivă a unor probleme complexe s, i presante, pentru
care abordările uzuale sunt nefructuase. De regulă, prototipizarea unui
sistem inspirat din inteligent, a artificială este rapidă, iar pentru o problemă
se pot folosi mai multe abordări: de exemplu, optimizarea se poate face prin
algoritmi genetici sau prin algoritmi de căutare locală.
Cursul de fat, ă se axează pe primele două direct, ii.
Metodele din inteligent, a artificială sunt frecvent inspirate din biologie:
ret, elele neurale au pornit de la modelul imaginat pentru neuronul biologic,
calculul evolut, ionist este bazat pe teoria evolut, iei s, i pe genetică. Sistemele
fuzzy sunt introduse pentru a permite manipularea impreciziei, altfel decât
prin teoria probabilităt, ilor.
Este o mare diferent, ă între abordarea clasică, algoritmică a unei probleme
s, i cea dată de IA. În primul caz este pusă la bătaie toată abilitatea celui care

8
imaginează algoritmul pentru a rezolva problema; este un demers creativ,
depinzând de imaginat, ia, puterea de abstractizare s, i experient, a persoanei în
cauză; este un proces creativ, la ora actuală efectuat de cele mai multe ori
de către oameni. Tot aici, de cele mai multe ori rezultatele sunt exacte s, i se
insistă permanent pe mics, orarea complexităt, ii de calcul sau de memorie a
algoritmilor; de multe ori însă o solut, ie exactă presupune un resurse de timp
s, i memorie prohibitive.
Abordarea pentru ret, ele neurale sau algoritmi genetici este total di-
rerită: definitorie este capacitatea de adaptare s, i căutare automată sau
auto-organizare la condit, iile problemei. Este modelul inspirat din natură: un
sistem biologic preia semnale din mediu s, i printr-un proces de învăt, are se
adaptează, astfel încât să îs, i îndeplinească scopul, sau să obt, ină o mai bună
integrare în mediu. Solut, ia la care se ajunge nu este întotdeauna optimă, dar
este un răspuns “suficient de bun” pentru problema propusă. În implementa-
rea unui sistem din cadrul IA accentul cade mai mult pe abilitatea sistemului
rezultat de a se adapta, de a învăt, a, decât pe imaginat, ia s, i experient, a celui
care îl concepe.
Sistemele studiate aici sunt cu un mare grad de aplicabilitate. De exemplu,
algoritmii genetici pot fi folosit, i pentru o clasă largă de funct, ii, nedepinzând
atât de mult – precum se întâmplă în cercetările operat, ionale – de ipoteze
care în practică pot fi prea restrictive.
O definit, ie a “inteligent, ei” potrivită pentru contextul de IA este:
Definit, ia 1. Inteligent, a este abilitatea unui sistem de a–s, i adapta compor-
tamentul pentru a–s, i îndeplini scopurile în mediul său. Este o proprietatate
a tuturor entităt, ilor ce trebuie să ia decizii s, i al căror comportament este
condus de scop.
Definit, ia de mai sus a fost dată în 1995 de către David Fogel, scot, ând în
evident, ă elementul esent, ial al comportamentului inteligent s, i în particular al
subdomeniului de machine learning: adaptarea.
Ret, elele neurale artificiale reprezintă grupuri interconectate de neuroni
artificiali care au abilitatea de a învăt, a din s, i a se adapta la mediul lor,
construind un model al lumii. Ele au apărut ca răspuns la modelarea
activităt, ii creierului biologic, precum s, i ca modalitate propusă pentru a
obt, ine sisteme artificiale capabile să recunoască s, abloane. Exemple de ret, ele
neurale s, i algoritmi de instruire se găsesc în [2], [3].
Sistemele fuzzy sunt introduse pentru a putea gestiona imprecizia, not, iunile
vagi (“înalt”, “acum”) s, i aproximarea. Sunt elemente des întâlnite în mode-
larea de limbaj sau în situat, ii de cunoas, tere incompletă. Teoria mult, imilor
fuzzy permite ca un element să aibă un anumit grad de apartenent, ă (număr
între 0 s, i 1) la o mult, ime, spre deosebire de teoria clasică a mult, imilor.
Logica fuzzy permite considerarea mai multor valori de adevăr decât cele din
logica clasică, sau altfel zis, a unor grade de adevăr diferite. Este variantă de
realizare a rat, ionamentului aproximativ.

9
Calculul evolut, ionist se ocupă în special de optimizarea unor funct, ii de
cost s, i de probleme de căutare; tehnicile sunt bazate pe concepte preluate
din genetică s, i evolut, ionism. Se pleacă de la ideea evolut, iei unei populat, ii
de indivizi, fiecare din ei fiind o solut, ie potent, ială a problemei ce se vrea
rezolvată. Domeniul include algoritmii genetici, programarea evolut, ionistă,
programarea genetică s, i strategii de evolut, ie.
Sistemele rezultate prin inteligent, ă artificială pot reprezenta hibridizări
ale celor de mai sus; de exemplu, există sisteme neuro-fuzzy, iar ajustarea
parametrilor pentru un sistem adaptiv se poate face prin algoritmi genetici.
Alegerea uneltei potrivite pentru problema în cauză poate fi o provocare,
deoarece de regulă se pot folosi mai multe abordări; nu se s, tie, de regulă,
care e varianta cea mai potrivită de abordare.

1.1 Ret, ele neurale artificiale


1.1.1 Bazele biologice
Ret, eaua neurală biologică a evoluat de-a lungul timpului, ajungând la
performant, e care astăzi nu sunt accesibile calculatoarelor electronice: de
exemplu, recunoas, terea de imagini, specifică animalelor; sau interpretarea
ecoului reflectat de către obstacole sau insecte, în cazul liliecilor - chiar dacă
au creierul foarte mic, procesarea în cazul lor se face mai rapid s, i mai eficient
decât cu sistemele electronice actuale.
Studiile efectuate în ultimul secol au permis enunt, area unor prinicipii
asupra modului de funct, ionare a sistemelor neurale biologice; suntem însă
departe de a cunoas, te toate detaliile funct, ionale s, i structurale. Chiar s, i
as, a, prin implementarea modelelor obt, inute, rezultatele sunt mai mult decât
notabile.
Figura 1.1 ([4]) reprezintă cel mai comun tip de neuron natural. În scoart, a
neurală există circa 86 de miliarde de neuroni interconectat, i, fiecare putând
avea până la 104 conexiuni cu alt, i neuroni; modul de grupare a acestora s, i
interdependent, ele nu sunt pe deplin cunoscute.
Un neuron artificial are o structură asemănătoare, fiind un element de
procesare conectat cu alte elemente ce preia intrare de la nis, te neuroni s, i
produce o ies, ire ce devine intrare pentru alt, i neuroni; legăturile neurale sunt
nis, te coeficient, i numerici, iar prin algoritmi de învăt, are se obt, ine adaptarea
convenabilă a ret, elei neurale. Adaptarea (sau învăt, area) este aspectul esent, ial
al ret, elelor neurale: plecând de la seturi de date, se detectează automat
s, abloanele existente s, i se construiesc niste modele care pot fi folosite mai
departe.

10
Figura 1.1: Neuron natural, preluare din [4]

Figura 1.2: Neuron de tip Purkinje din cortexul cerebelar; sursa


http://en.wikipedia.org/wiki/Neuron

11
1.1.2 Diferent, e între ret, ele neurale artificiale s, i naturale
În mod cert însă, există diferent, e: nu sunt modelate toate tipurile cunos-
cute de neuroni; apoi, o lege biologică spune că un neuron poate să excite
sau să inhibe un neuron cu care este conectat; în modelarea de ret, ele neurale
artificiale, o pondere de legătură este fie excitatoare, fie inhibitoare, dar
forma ei este fixată după ce s–a făcut învăt, area.
O altă diferent, ă (s, i punct de critică pentru ret, elele neurale artificiale)
este faptul că modelarea semnalului făcută sub formă de valori continue este
de negăsit în ret, elele biologice; în ret, elele neurale biologice se folosesc de fapt
trenuri de impulsuri care sunt transmise către neuroni, apărând variat, ie în
frecvent, a semnalului. Acest aspect a fost abordat relativ târziu, în cadrul
ret, elelor neurale cu pulsuri.
Viteza ret, elelor neurale este iarăs, i un loc în care apar diferent, e. Se
estimează că neuronii naturali au cicli de timp între 10 s, i 100 milisecunde;
implementările de ret, ele neurale artificiale funct, ionează pe procesoare de
câtiva gigahertzi, deci cu un ciclu de mai put, in de o nanosecundă. Chiar
s, i as, a, ret, elele neurale biologice sunt cu mult mai performante decât cele
artificiale, la un consum de energie mult mai redus.
Altă diferent, ă este că neuronii naturali sunt grupat, i în cantităt, i mari,
uneori de sute de milioane de unităt, i. Se ajunge astfel la un grad de paralelism
masiv.

1.1.3 Aplicabilitate
• Clasificarea - pe baza unui set de date de forma (intrare - ies, ire asoci-
ată) se construies, te un sistem care detectează asocierile dintre datele
de intrare s, i etichetele ce le sunt asociate; etichetele - sau clasele -
sunt dintr-o mult, ime discretă, finită. Clasificarea se foloses, te pentru
recunoas, terea automată a formelor, recunoas, terea vorbirii, diagnoză
medicală s, i altele.
• Estimarea de probabilitate condit, ionată - similar cu clasificarea, dar
se produce un sistem care estimează probabilitatea ca un obiect să
apart, ină unei clase, date fiind trăsăturile de intrare; de exemplu, dat
fiind cont, inutul unui mesaj de email care este probabilitatea ca să fie
mail legitim sau spam;
• Regresie - asemănător cu clasificarea, dar ies, irile nu sunt dintr-o mult, ime
discretă s, i finită, ci valori numerice continue;
• Regăsirea de date pe baza cont, inutului, folosind memorie asociativă – se
poate regăsi o dată pe baza unei părt, i a ei. Este un mecanism diferit
de modul în care calculatoarele regăsesc informat, ia - pe baza adreselor
sau a unei căutări - dar apropiată de modul în care se face regăsirea
elementelor ret, inute de către o persoană.

12
• Grupare automată (clustering) - pe baza similarităt, ilor existente într–un
set de date, se detectează grupările de date; elementele dintr-un grup
sunt mai apropiate între ele decât de altele din alt grup;

• Detectarea automată de trăsături – a acelor elemente care fac ca procesul


de recunoas, tere a unui obiect să fie mai bun decât dacă se folosesc
cunos, tint, e specifice domeniului;

• Controlul sistemelor - folosite pentru cazul în care un proces trebuie să


fie ghidat pentru a îndeplini o anumită sarcină, cu anumite constrângeri;
utilitatea ret, elelor neurale provine din faptul că nu se presupune că
există dependent, e liniare între act, iune s, i efect.

1.2 Calcul evolut, ionist


Principalele paradigme1 ale calculului evolut, ionist sunt:

• algoritmii genetici - evolut, ia unei populat, ii de indivizi (cromozomi),


folosind select, ia, încrucis, area s, i mutat, ia;

• programarea evolut, ionistă - similar cu precedenta, dar fără a folosi


încrucis, area; este văzută ca evolut, ia de specii diferite, între care nu
există hibridizări;

• strategiile de evolut, ie - similari cu algoritmii genetici, dar se foloses, te


recombinarea în loc de încrucis, are s, i deseori alte metode de mutat, ie

• programarea genetică - metode evolutive aplicate programelor de cal-


culator.

1.2.1 Bazele biologice


Domeniile de inspirat, ie sunt genetica s, i teoria evolut, ionistă. Genetica
tratează ereditatea, adică transmiterea trăsăturilor de la părint, i la urmas, i.
Astfel, adaptarea obt, inută în generat, iile anterioare este preluată de către
urmas, i s, i continuată. Codificarea caracteristicilor este dată de cromozomi.
Not, iunile s, i mecanismele sunt preluate din teoria eredităt, ii întemeiată de
Gregor Mendel s, i teoria evolut, ionistă a lui Charles Darwin.
1
“Paradigma este o construct, ie mentală larg acceptată, care oferă unei comunităt, i sau
unei societăt, i pe perioada îndelungată o bază pentru crearea unei identităt, i de sine (a
activităt, ii de cercetare de exemplu) s, i astfel pentru rezolvarea unor probleme sau sarcini.”,
conform Wikipedia.

13
1.2.2 Cromozomi
Cromozomii sunt structuri din interiorul celulelor care ment, in informat, ia
genetică. În cazul oamenilor, sunt 46 de cromozomi, jumătate mos, tenit, i de
la tată s, i jumătate de la mamă. Cromozomii sunt alcătuit, i din gene, fiecare
fiind identificată prin locat, ia pe care o ocupă s, i prin funct, ia asociată.

1.2.3 Diferent, e între cromozomii biologici s, i cei artificiali


Cromozomii artificiali sunt reprezentări simplificate a celor biologici. În
timp ce neuronii biologici sunt secvent, e de acizi nucleici, cromozomii artificiali
sunt s, iruri de cifre binare.
Cromozomii biologici care definesc organismele vii variază în lungime,
chiar dacă de la un organism la altul din aceeas, i specie pentru un cromozom
specific lungimea este constantă. În algoritmii genetici, lungimea este fixă.
La reproducerea indivizilor dintr-o populat, ie naturală, jumătate din
informat, ia genetică este preluată de la tată s, i jumătate de la mamă. În
algoritmii genetici, procentul de combinat, ie poate să difere.

1.2.4 Aplicabilitate
Principala arie de aplicare este optimizarea, pentru situat, iile în care
căutarea solut, iei cere un timp îndelungat. Algoritmii genetici sunt folositi
ca o metodă euristică; problemele abordate sunt din cele mai diverse — op-
timizarea unui plan de lucru sau circuit, balansarea încărcării, optimizarea
ingredientelor, design automat, încărcarea containerelor, optimizarea struc-
turilor moleculare, testarea mutat, iilor, optimizarea sistemelor de compresie,
selectarea modelelor optime, găsirea defectelor hardware etc.

1.3 Tipuri de învăt, are în machine learning


Învăt, area permite unui sistem să se adapteze la mediul în care operează;
pe baza semnalelor provenite din exterior, sistemul inteligent îs, i modifică
parametrii pentru o îndeplinire cât mai bună a sarcinii propuse. Trebuie
făcută distinct, ia între “învăt, are” s, i “memorare cu regăsire exactă” – această
din urmă problemă este rezolvată de structuri s, i baze de date.
Există trei tipuri principale de învăt, are:

1. supervizată

2. nesupervizată

3. prin întărire

Există s, i variante intermediare, de exemplu învăt, area semi–supervizată


s, i cea activă.

14
1.3.1 Învăt, area supervizată
Se presupune că există un “profesor” care poate prezenta un set de date de
instruire având forma (intrare — ies, ire asociată), relevant, care este preluat
de către sistem s, i învăt, at. Se foloses, te o funct, ie de eroare, care măsoară cât
de departe este răspunsul cerut fat, ă de cel furnizat de sistem; pe baza erorii
se desfăs, oară un proces de ajustare a valorilor din sistemul computat, ional
inteligent până când eroarea scade sub un anumit prag. Rezultatul final
este obtinerea unui sistem ce poate să furnizeze o valoare de ies, ire adecvată
pentru o anumită valoare de intrare ce nu este prezentă în setul de instruire.
Exemple de sisteme ce folosesc instruirea supervizată: perceptronul,
perceptronul multistrat, Fuzzy ARTMAP, ret, elele cu activare radială, ret, elele
convolut, ionale.

Figura 1.3: Schema de lucru pentru învăt, are supervizată

1.3.2 Învăt, area prin întărire


Învăt, area prin întărire (eng: reinforcement learning) este similară cu
învăt, area supervizată, numai că în loc de a se furniza ies, irea asociată unei
intrări, se pune la dispozit, ie o indicat, ie care arată cât de bine a act, ionat
sistemul respectiv. Acesta este un sistem bazat pe critică sau aprobare, fiind
instruit în raport cu măsura în care ies, irea obt, inută de un sistem corespunde
valorii dorite (dar fără ca această valoare dorită să fie precizată sistemului!).
Rolul profesorului este luat de un critic, care precizează în ce măsură ies, irea
obt, inută se apropie de cea dorită. Pe termen lung, sistemul îs, i va modifica
propriul comportament astfel încât să se reducă criticile obt, inute.
Acest tip de învăt, are este plauzibil din punct de vedere biologic, deoarece
o fiint, ă sau un agent artificial inteligent va încerca să îs, i minimizeze starea

15
de disconfort prilejuită de comportament neadecvat. Rolul criticului este dat
aici de mediul înconjurător. Schema de lucru este dată în figura 1.4.

Figura 1.4: Schema de lucru pentru învăt, are prin întărire

1.3.3 Învăt, area nesupervizată


Spre deosebire de precedentele moduri de învăt, are, în acest caz nu se
primes, te niciun semnal de tip ies, ire sau critică asociată. Sistemului capabil
de grupare i se dau doar valori de intrare. El face o grupare automată
sau foloses, te o învăt, are de tip competititiv. Aplicatiile clasice sunt analiza
asociererilor, gruparea pe baza de similaritate si estimarea de densitate de
probabilitate.
Schema de lucru este dată în figura 1.5. Acest tip de adaptare este prezent
în modele ce efectuează clustering, analiza de asocieri, analiza componentelor
principale, detectarea de anomalii, etc.

1.4 Auto-organizarea
Auto-organizarea, alături de învăt, are, este un alt atribut important al
sistemelor cu inteligent, ă artificială. Este prezentă în sistemele naturale, de
exemplu în creierul nou născut, ilor, unde auto-organizarea se manifestă în
principal prin distrugerea legăturilor nefunct, ionale. Auto-organizarea este
definită astfel:

16
Figura 1.5: Schema de lucru pentru învăt, are nesupervizată

Definit, ia 2. Spunem că un sistem se auto-organizează dacă, după ce se


primesc intrarea s, i ies, irea unui fenomen necunoscut, sistemul se organizează
singur astfel încât să simuleze fenomenul necunoscut [5].

sau:

Definit, ia 3. Sistemele cu auto-organizare se auto-organizează pentru a


clasifica percept, iile din mediu în percept, ii ce pot fi recunoscute, sau s, abloane
[5].

Modelele neurale care posedă proprietatea de auto-organizare includ:


Self Organizing Maps2 , variantele de Neural Gas3,4,5 sau variante de ret, ele
neurale recurente6 .
2
T. Kohonen, Self-Organizing Maps, Springer, 2001.
3
T. Martinetz, S. Berkovich, K. Schulten, “Neural-gas network for vector quantization
and its application to time-series prediction”, IEEE Transactions on Neural Networks, vol.
4, no. 4, pp. 558–569, 1993.
4
B. Fritzke, “A Growing Neural Gas Network Learns Topologies”, Proceedings of the 7th
International Conference on Neural Information Processing Systems, NIPS’94, (Cambridge,
MA, USA), p. 625–632, MIT Press, 1994.
5
Y. Prudent, A. Ennaji, “An incremental growing neural gas learns topologies”, Procee-
dings. 2005 IEEE International Joint Conference on Neural Networks, 2005., vol. 2, pp.
1211–1216 vol. 2, 2005.
6
D. Han, K. Doya, J. Tani, “Self-organization of action hierarchy and compositionality
by reinforcement learning with recurrent neural networks”, Neural networks, vol. 129, pp.
149–162, 2020.

17
Capitolul 2

Regresia liniară

Regresia liniară se încadrează în învăt, area supervizată s, i e utilizată


pentru construirea unui model de regresie. Modelul construit pleacă de la
presupunerea că valoarea ce trebuie prezisă depinde în mod liniar de valorile
trăsăturilor de intrare.

2.1 Exemplu s, i notat, ii


Modelele de regresie pot invăt, a s, i prezice valori numerice dintr-o mult, ime
infinită. Ca exemplu, să presupunem că vrem să facem estimarea (predict, ia)
costului unui apartament, dată fiind suprafat, a sa. Se cunosc date anterioare
despre vânzarea unor astfel de apartamente, precum în tabelul 2.1; datele
sunt culese într–o perioadă scurtă de timp, în care pret, ul nu evoluează odată
cu timpul1 . Pentru simplitatea expunerii, să presupunem că singura trăsătură
considerată pentru un apartament este suprafat, a lui, exprimată în metri
pătrat, i.

Suprafat, a (m2 ) Pret, ul (€)


62 87.900
30 62.600
54 85.400
... ...

Tabelul 2.1: Valorile de vânzare ale unor apartamente, pentru care se s, tie
doar trăsătura “suprafat, a”.

Pe baza acestor date vom construi o funct, ie – numit mai jos s, i model de
predict, ie – care să ne permită aproximarea pret, ului (număr real) pentru alte
apartamente similare - în acelas, i interval de timp, în aceeas, i arie din care
provin datele init, iale. Reprezentarea grafică a datelor este în figura 2.1.
1
Altfel zis, pe perioada scurtă considerată timpul nu influent, ează pret, ul.

18
225

200

175

Pret, (x 1000 €)
150

125

100

75

50

25
20 40 60 80 100 120 140
Suprafat, a (m2 )

Figura 2.1: Reprezentarea grafică a datelor de vânzare a unor apartamente.


Pe abscisă este măsurată suprafat, a (în metri pătrat, i), pe ordonată este pret, ul
(în mii de euro).

Să presupunem că se dores, te estimarea valorii unui apartament de


suprafat, ă s = 80 de metri pătrat, i; neavând în exemplele setul nostru de date
o atare suprafat, ă, va trebui să “ghicim” un pret, . Se poate proceda în felul
următor: se trasează o dreaptă care să aproximeze “cât mai bine”2 norul
de puncte reprezentat. Valoarea estimată de model pentru apartamentul cu
o suprafat, ă s se află simplu: se duce verticala prin punctul de coordonate
(s, 0) s, i se găses, te punctul de intersect, ie cu dreapta dată de model; valoarea
ordonatei y(s) corespunzătoare punctului de intersect, ie este pret, ul estimat
de model - figura 2.2.
Eroarea estimării este dată de diferent, a dintre valoarea actuală (frecvent
numită în limba engleză ground truth) s, i cea prezisă de model, pentru cazurile
cunoscute.
Modelul liniar de estimare a pret, ului unui apartament luând în considerare
suprafat, a este:
pret_estimat = a · supraf ata + b
unde a s, i b sunt coeficient, i reali ce vor fi determinat, i; a se numes, te pantă
(eng: slope) iar b termen liber (eng: intercept). Desigur, se pot folosi funct, ii
polinomiale de grad mai mare decât 1, modele local liniare, ret, ele neurale
artificiale etc. Alegerea celui mai bun model pentru un set de date cunoscut
este o problemă în sine. Preferint, a pentru model liniar se motivează prin
aceea că în practică e considerat un punct de plecare bun; în plus, modelele
mai simple se recomandă a fi încercate primele3 . Nu în ultimul rând, un
model liniar este us, or de interpretat: pentru problema asta, coeficientul a
2
O formulă pentru a măsura cât de bună e aproximarea rezultată se dă în sect, iunea 2.2.
3
As, a numitul brici al lui Occam: Entia non sunt multiplicanda praeter necessitatem,
entităt, ile nu trebuie să fie multiplicate dincolo de necesar.

19
225

200

175

Pret, (x 1000 €)
150

125

100

75

50

25
20 40 60 80 100 120 140
Suprafat, a (m2 )

Figura 2.2: Model liniar de predict, ie s, i aproximarea costului unui apartament


de 80 de metri pătrat, i.

este pret, ul pe metru pătrat (exprimat în €/m2 ), b (măsurat în €) este pret, ul


de pornire – niciun apartament nu costă mai put, in de b €– iar cres, terea
valorii supraf ata cu 10m2 duce la cres, terea pret, ului total cu 10 · a €.
Avem mai sus un caz de instruire supervizată: se pornes, te de la un set
de date cu perechi formate din valoare de intrare (e.g. suprafat, a) s, i valoare
de ies, ire asociată (e.g. costul apartamentului cu acea suprafat, ă). Se cere
determinarea unui model care să fie folosit pentru prezicerea (aproximarea)
unor valori de ies, ire, date fiind valori de intrare furnizate; pentru exemplul
considerat, vrem să vedem care e costul estimat al unor suprafet, e.
Formal, într–o problemă de regresie se dau:

• m, reprezentând numărul de perechi de valori (sau cazuri, sau înregis-


trări) din setul de instruire; pentru desenul din figura 2.1 este numărul
de puncte reprezentate, adică numărul de apartamente pentru care se
s, tie pret, ul de vânzare;

• x(i) reprezentând m vectori de intrare, 1 ≤ i ≤ m; un astfel de


vector este compus de regulă din n valori numerice, numite atribute
(i) t
 
(i) (i)
sau trăsături (eng: features): x(i) = x1 , x2 , . . . , xn : suprafat, a,
(i)
numărul de camere, numărul de băi etc. Trăsăturile xj se mai numesc
s, i variabile predictive sau independente4 . Dacă nu se precizează altfel,
astfel de vectori sunt considerat, i vectori coloană. Simbolul t pus în
partea superioară reprezintă transpunerea de vector sau de matrice.

• y (i) , 1 ≤ i ≤ m – variabila de ies, ire (sau de predict, ie, sau dependentă;


4
A nu se confunda cu not, iunea de independent, a liniară din algebră, sau cu independent, a
evenimentelor s, i a variabilelor aleatoare din teoria probabilităt, ilor.

20
eng. ground truth) aferentă valorii x(i) ; în cazul exemplificat este un
număr real (pret, ul), dar în general poate fi un vector de valori reale.
 
Perechea i din setul de antrenare este x(i) , y (i) , 1 ≤ i ≤ m. Întregul
set de antrenare se scrie ca:
n  o
S = x(i) , y (i) |1 ≤ i ≤ m (2.1)

Setul de antrenare se specifică frecvent sub formă tabelară, precum în


tabelul 2.1.
Fluxul de lucru în învăt, area automată5 este dat în figura 2.3: se pornes, te
de la un set de instruire, se aplică un algoritm de învăt, are s, i se produce un
model. Din motive istorice modelul rezultat se mai numes, te s, i “ipoteză” s, i
se notează de regulă cu h. Algoritmul de instruire are ca scop determinarea
unei forme adecvate a modelului, în cazul de fat, ă a unor valori potrivite a
coeficient, ilor funct, iei h.

Set de antrenare

Algoritm de înv are

Vector de Model h Ie ire estimat


intrare x

Figura 2.3: Fluxul de lucru într-un proces de instruire automată.

După ce instruirea se termină, modelului rezultat i se furnizează o intrare


– în exemplul nostru: suprafat, a apartamentului – s, i el va calcula o valoare de
ies, ire estimată – pret, ul. În notat, ie formală avem ecuat, ia 2.2:

ŷ = h(x) (2.2)

unde notat, ia cu căciulă se foloses, te pentru valori estimate de model.


Una din întrebările esent, iale este: ce formă are modelul h? Există mai
multe variante. Mai sus am pornit cu presupunerea că pret, ul cres, te liniar cu
suprafat, a vândută, deci:

h(x) = hθ (x) = θ0 + θ1 · x = ŷ (2.3)

unde indicele lui h este vectorul coloană de coeficient, i θ = (θ0 , θ1 )t .


Acest model (ipoteză) se numes, te regresie liniară cu o variabilă, sau
regresie liniară univariată. Se poate ca pe lângă suprafat, ă – singura valoare
5
În limba engleză: machine learning.

21
de intrare considerată până acum – să se mai considere s, i alte trăsături de
intrare; în acest caz, modelul ar fi unul multivariat (mai multe valori de
intrare considerate). Coeficient, ii θ0 s, i θ1 din ecuat, ia (2.3) se mai numesc
parametri ai modelului de predict, ie s, i se determină prin pasul de învăt, are.
Modelul (2.3) se mai poate scrie astfel:

hθ (x) = θ0 · 1 + θ1 · x = θ0 · x0 + θ1 · x1 = xt · θ = ŷ (2.4)

unde: x0 e mereu 1, x1 = x, vectorul θ este (θ0 , θ1 )t ca mai sus, vectorul


x este (x0 , x1 )t . Valoarea x0 = 1 permite existent, a unui termen liber θ0 în
modelul liniar, adică pentru cazul considerat, dreapta de regresie nu trebuie
să treacă neapărat prin punctul de coordonate (0, 0).
Graful de calcul pentru modelul de regresie liniară 2.4 este reprezentat
în figura 2.4.

Figura 2.4: Graful de calcul pentru regresie liniară univariată

2.2 Funct, ia de eroare


Există o infinitate de moduri în care se poate trasa dreapta din figura
2.2; altfel zis, există o infinitate de valori pentru coeficient, ii din modelul dat
de ecuat, ia (2.3).
Se pune problema: cum alegem cât mai bine aces, ti coeficient, i? O variantă
naturală este determinarea
  acestora de as, a manieră încât valorile prezise de
model, ŷ = hθ x , să fie cât mai apropiate de valorile cunoscute y (i) ,
(i) (i)

pentru setul de antrenare S din (2.1). Pentru toate valorile din setul de
instruire, eroarea se poate măsura cu funct, ia de cost
m  m 
1 X 2 1 X 2
J(θ0 , θ1 ) = ŷ (i) − y (i) = hθ (x(i) ) − y (i) (2.5)
2m i=1 2m i=1

Funct, ia de eroare J se mai numes, te s, i funct, ie de cost a modelului (în limba


engleză: error, loss, cost function; în unele prezentări se face distinct, ie între
loss function – eroare pentru un singur caz – s, i cost function – eroarea
agregată peste mai multe valori). Se pot folosi s, i alte funct, ii de cost, de
exemplu incluzând constrângeri impuse valorilor parametrilor θ – a se vedea
capitolul 4 privind regularizarea. Funct, ia de mai sus este o alegere populară
pentru problemele de regresie, dar nu singura posibilă. Factorul m de la

22
numitor arată că vizăm calcularea unei valori medii a erorii – altfel, eroarea ar
cres, te de fiecare dată când se adaugă în setul de instruire o pereche (x(i) , y (i) )
pentru care hθ (x(i) ) ̸= y (i) , în timp ce media permite compararea erorilor
modelului pentru mult, imi cu număr diferite de elemente; numitorul 2 poate
fi omis, dar se utilizează din motive estetice pentru calculele de mai târziu.
Eroarea J din formula (2.5) este jumătate din eroarea pătratică medie (eng:
mean squared error):
m 
1 X 2
M SE(y, ŷ) = ŷ (i) − y (i) = 2 · J(θ0 , θ1 ) (2.6)
m i=1

E util să discutăm comportamentul funct, iei J pentru cazuri particulare.


De exemplu, dacă θ0 = 0, funct, ia de eroare J(0, θ1 ) este o funct, ie de gradul
doi depinzând de o singură variabilă (θ1 ) s, i având minimul mai mare sau
egal cu zero, a se vedea figura 2.5. Pentru θ0 , θ1 oarecare forma funct, iei de
eroare este dată în figura 2.6.

20000

15000
J(0, θ1 )

10000

5000

−50 0 50 100 150 200 250


θ1

Figura 2.5: Funct, ia de eroare pătratică, cu θ0 = 0 s, i θ1 variabil.

O altă variantă de reprezentare grafică a funct, iei de eroare este pe


baza curbelor de contur: reprezentarea este plană, având pe cele două axe
respectiv pe θ0 , θ1 . Pentru o valoare oarecare v se consideră mult, imea tuturor
perechilor de parametri θ0 , θ1 pentru care se obt, ine aceeasi valoare a erorii,
adică J(θ0 , θ1 ) = v. Rezultatul este dat de o mult, ime de curbe, precum cele
reprezentate în figura 2.7. Se poate arăta că pentru model de predict, ie liniar
aceste contururi sunt eliptice; pentru valori v tot mai mari avem elipse tot
mai întinse.
(min) (min)
Trebuie să găsim acele valori ale coeficient, ilor θ0 , θ1 pentru care

23
300.00
250.00

J(θ0 , θ1 )
200.00
150.00
100.00
50.00
0.00

10
5
−10 0
−5
0 −5
5
10

θ1
15 −10
20
θ0

Figura 2.6: Funct, ia de eroare pentru model liniar univariat cu θ0 s, i θ1


variabili.

Figura 2.7: Curbe de contur pentru functia de eroare a unui model liniar
univariat, cu parametrii θ0 , θ1 variabili.

24
se atinge minimul funct, iei de eroare6 :

(min) t
 
(min)
θ0 , θ1 = arg min J(θ0 , θ1 ) =
(θ0 ,θ1 )t ∈R2
m 
1 X 2
= arg min hθ (x(i) ) − y (i)
(θ0 ,θ1 )t ∈R2 2m i=1
m  2 (2.7)
= arg min hθ (x(i) ) − y (i)
X
(θ0 ,θ1 )t ∈R2
i=1
m  2
= arg min
X
ŷ (i) − y (i)
(θ0 ,θ1 )t ∈R2
i=1

(min) (min)
Coeficient, ii θ0 , θ1 pentru care valoarea erorii J e cea mai mică ne
dau modelul de regresie cel mai bun pentru setul pe care s–a facut antrenarea.
Pentru o valoare de intrare x vom face predict, ia cu modelul:
(min) (min) t (min) (min)
hθ(min) (x) = xt · θ = (x0 , x1 ) · (θ0 , θ1 ) = θ0 + θ1 · x = ŷ (2.8)

Înbtrebarea cea mai importantă acum este: cum determinăm valorile θ


pentru care se atinge minimul funct, iei de eroare J? Metodele sunt date în
cele ce urmează.

2.3 Metoda de căutare după direct, ia gradientului


În această sect, iune se va prezenta o metodă iterativă – coborârea după
direct, ia gradientului (eng: gradient descent) – prin care se face minimizarea
funct, iei de eroare J. Metoda este ierativă, adică se consideră succesiv mai
multe valori candidat pentru coeficient, ii θ0 , θ1 .
Ideea e simplă:

• se pornes, te cu valori θ0 , θ1 init, iale, setate aleator sau chiar 0;

• se modifică în mod iterativ valorile curente ale parametrilor θ0 , θ1 de


as, a manieră încât J să scadă.

Pentru ultimul punct: valorile curente ale parametrilor θ0 , θ1 se modifică


conform
∂J
θ0 = θ0 − α · (θ0 , θ1 ) (2.9)
∂θ0
∂J
θ1 = θ1 − α · (θ0 , θ1 ) (2.10)
∂θ1
6
Notat, ia “arg min X” se referă la acele argumente pentru care se obt, ine minimul pentru
X. De exemplu, pentru un vector de valori reale v = (v0 , . . . , vn−1 )t , min v este valoarea
minimă, în timp ce arg min0≤i≤n−1 v este un indice pe care se află valoarea minimă a lui v.

25
s, i (important!) atribuirile se operează în mod simultan pentru θ0 , θ1 .
Această simultaneitate e cerută din cauză că la calculele (2.9), (2.10)
trebuie să ne asigurăm că aceias, i θ0 , θ1 sunt folosit, i pentru evaluarea ambelor
derivate part, iale. Simultaneitatea se poate obt, ine astfel: se calculează
expresiile din membrii drept, i ai ecuat, iilor (2.9) s, i (2.10) s, i se asignează
(temp) (temp)
unor variabile temporare θ0 s, i respectiv θ1 ; doar după ce ambele
variabile temporare sunt calculate, valorile lor se atribuie corespunzător:
(temp) (temp)
θ0 = θ 0 s, i θ1 = θ1 . Alternativ, se poate folosi calcul vectorizat, în
care se operează concomitent peste toate componentele vectorului θ.
Aceleas, i formule se scriu în mod vectorial ca:

∂θ0 (θ0 , θ1 )
! ! !
∂J
θ0 θ0
= −α· (2.11)
∂θ1 (θ0 , θ1 )
θ1 θ1 ∂J

Dacă folosim notat, ia nabla pentru vectorul de derivate part, iale (vectorul
gradient)7 : !
∂J
∇θ J = ∂θ0
∂J (2.12)
∂θ1
atunci mai putem scrie formula de modificare a ponderilor ca:
θ = θ − α · ∇θ J(θ) (2.13)
În bibliotecile care permit calcul matricial atribuirea simultană este
implementată automat. O formă matricială pentru gradientul modelului
liniar este dată în continuare.
Coeficientul α > 0 se numes, te rată de învăt, are; poate fi o constantă sau
o cantitate care variază de–a lungul iterat, iilor. Alegerea lui α este crucială:
dacă valoarea lui e prea mică, atunci algoritmul va face foarte multe iterat, ii
până se va opri, deci am avea un cost computat, ional mare. Dacă e prea mare,
procesul poate să rateze minimul sau chiar să diveargă (valoarea lui J să
crească mereu sau să aibă alterneze perioade de scădere cu cele de cres, tere).
Dacă se constată acest al doilea fenomen, valoarea lui α trebuie scăzută.
Odată ce o valoare potrivită pentru α este găsită, nu e neapărat nevoie ca
aceasta să fie modificată de-a lungul iterat, iilor.
Metoda se poate folosi pentru reducerea valorilor unei funct, ii ce depinde
de oricâte variabile. În general, se poate ajunge într-un minim – local sau
global – sau punct de inflexiune al funct, iei căreia i se aplică.
Valorile θ0 , θ1 se init, ializează aleator cu valori mici în jurul lui 0, sau
chiar cu 0. Algoritmul de căutare după direct, ia gradientului are forma:

7
Vectorul de derivate part, iale este un vector de funct, ii; acestea se vor evalua pentru
perechea de valori θ0 , θ1 , obt, inând deci valori numerice concrete. Vectorul de derivate
part, ial este, totodată, transpusa matricei Jacobiene a funct, iei J.

26
repeta{

θj := θj − α J(θ0 , θ1 ) simultan pentru j = 0, 1 (2.14)
∂θj
} pana la convergenta
Condit, ia de convergent, ă poate fi: de la o iterat, ie la alta valoarea lui J
nu mai scade semnificativ, sau norma diferent, ei între două valori succesive
ale vectorului θ este sub un prag mic ε > 0 setat, sau se atinge un număr
maxim de iterat, ii permise etc.
Putem explicita derivatele part, iale pentru forma funct, iei de eroare consi-
derate:
m h m h
∂ 1 X 
(i)
i 1 X 
(i)
i
J(θ0 , θ1 ) = hθ (x(i) ) − y (i) · xj = ŷ (i) − y (i) · xj
∂θj m i=1 m i=1
(2.15)
s, i formula de modificare a ponderilor din (2.14) devine:
m h
1 X 
(i)
i
θj := θj − α · hθ (x(i) ) − y (i) · xj simultan pentru j = 0, 1
m i=1
(2.16)
În ce situat, ie iterat, iile din algoritmul de mai sus se opresc? Dacă funct, ia
de cost J este într-un punct de extrem (local sau global)8 , gradientul ei în
acel punct este vectorul zero (vectorul nul) s, i deci valoarea parametrilor θ nu
se va mai modifica, odată ce s–a atins o valoare de minim a lui J. Această
observat, ie explică două din condit, iile de convergent, ă.
Se recomandă a se urmări valorile lui J; dacă ele au nu o tendint, ă
descrescătoare (funct, ia J cres, te sau are scăderi urmate de cres, teri) atunci
se va încerca o valoare mai mică pentru rata de învăt, are α; dacă valoarea
funct, iei J scade foarte lent se poate mări valoarea lui α.
Valoarea optimă a lui α depinde de setul de date peste care se calculează
funct, iei de eroare J. α este un hiperparametru care influent, ează succesul s, i
viteza învăt, ării.
Extinderea la date de intrare cu mai multe trăsături (date multivariate),
(i) t
 
(i) (i)
i.e. x(i) = x1 , x2 , . . . , xn se poate trata tot prin metoda de căutare
după direct, ia gradientului, prin modificări imediate:
1. modelul de predict, ie devine

hθ (x) = θ0 + θ1 · x1 + . . . θn · xn = θ t · x = xt · θ (2.17)

unde
x = (x0 = 1, x1 , . . . , xn )t , θ = (θ0 , θ1 , . . . , θn )t (2.18)
8
Sau punct de inflexiune; dar pentru funct, ia de eroare considerată în acest curs avem
doar o valoare de minim s, i niciun punct de inflexiune.

27
(i) t
 
(i) (i)
Am făcut trecerea de la vectorul x(i) = x1 , x2 , . . . , xn de n com-
ponente la unul de n + 1 componente, prin adăugarea unei valori
x0 = 1, care se va înmult, i cu termenul liber θ0 . Se observă că valorile
trăsăturilor de intrare sunt la puterea întâi, modelul rămânând deci
liniar. Graful de calcul pentru regresia liniară multivariată 2.17 este
reprezentat în figura 2.8

Figura 2.8: Graful de calcul pentru modelul de regresie liniară multivariată.


Este o extindere a grafului reprezentat în figura 2.4.

2. funct, ia de eroare J se păstrează, dar pentru predict, ie se foloses, te


modelul hθ din (2.17);

3. ecuat, ia (2.14) din algoritmul de căutare devine:


m h
∂ 1 X 
(i)
i
θj := θj − α J(θ) = θj − α · hθ (x(i) ) − y (i) · xj (2.19)
∂θj m i=1

simultan pentru j = 0, 1, . . . , n.

Pentru modelul multivariat se recomandă ca valorile trăsăturilor de intrare


să fie în scale similare. Acest lucru se obt, ine făcând în prealabil o scalare a
datelor la un interval convenabil ales, e.g. [0, 1]. Alternativ, se poate face
standardizarea datelor: datele sunt transformate astfel încât fiecare atribut
devine cu media zero si dispersia 1. În ambele cazuri, beneficiul este un
număr mult mai mic de iterat, ii până la convergent, a algoritmului.
Rescriem în cele ce urmează funct, ia de cost (2.5) s, i formula de modificare a
ponderilor din ecuat, ia (2.19) folosind calcul matricial. Acest lucru favorizează
implementare eficientă în medii precum NumPy sau Matlab.
Pentru început, notăm cu X matricea datelor de intrare din setul de
instruire S :  
(1) (1) (1)
x1 x2 . . . xn
 (2) (2) (2) 
x x2 . . . xn 
 1
X= . .. .. ..  (2.20)

 .. . . . 
 
(m) (m) (m)
x1 x2 ... xn
unde linia i cont, ine valorile de intrare asociate vectorului x(i) , iar vectorul
coloană de indice 1 ≤ j ≤ n corespunde unei trăsături predictive. Valorile

28
de ies, ire asociate vectorilor de intrare sunt de asemenea stocate matricial,
folosind un vector coloană:
 (1) 
y
 (2) 
y 
y=
 ..  ∈ R
 m
(2.21)
 . 
y (m)
As, a cum în (2.18) am adăugat o componentă x0 = 1 pentru a permite un
termen liber în modelul liniar, vom extinde matricea de date X din ecuat, ia
(2.20) cu o primă coloană plină cu 1; pentru simplitatea notat, iilor, vom folosi
s, i în continuare litera X pentru această matrice, numită matrice de design:
 
(1) (1) (1)
1 x1 x2 ... xn
1
 (2) (2) (2) 
x1 x2 ... xn 
X = . .. .. .. ..  (2.22)
 
 .. . . . . 
 
(m) (m) (m)
1 x1 x2 ... xn
Notăm cu ŷ vectorul de valori prezise de modelul hθ pentru matricea X:
 (1) 

 (2) 
 ŷ 
ŷ = 
 ..  ∈ R
 m
(2.23)
 . 
ŷ (m)
Se verifică us, or că
ŷ = X · θ (2.24)
Funct, ia de cost J se rescrie matricial astfel:
m 
1 X 2
J(θ) = ŷ (i) − y (i)
2m i=1
1 (2.25)
= (ŷ − y)t · (ŷ − y)
2m
1
= (Xθ − y)t · (Xθ − y)
2m
Pentru calculul vectorului gradient ∇θ J(θ) vom utiliza următoarele relat, ii
cunoscute din algebra liniară s, i analiza matematică:
• transpusa unei sume de matrice este suma transpuselor:
(A + B)t = At + B t (2.26)

• transpusa unui produs de matrice este produsul transpuselor matricelor


în ordine inversă:
(A1 · A2 . . . Ap )t = Atp · Atp−1 . . . At1 (2.27)

29
• dacă a este un număr real, atunci el poate fi interpretat ca o matrice
cu o linie s, i o coloană s, i din acest motiv
at = a (2.28)

• conform excelentei lucrări pentru calcul matricial a lui Petersen si


Pedersen9 , avem  
∇θ θ t A = A (2.29)

• conform aceleias, i lucrări sect, iunea 2.4.2, ecuat, ia (81):


 
∇θ θt Aθ = (A + At ) · θ (2.30)
pentru A matrice pătratică.

 Pentru
 calculul matricial al vectorului de derivate part, iale (gradient, i)

∂θj J(θ) j=0,n dezvoltăm (2.25):
1
J(θ) = (Xθ − y)t (Xθ − y)
2m
1 n o
= (Xθ)t Xθ − (Xθ)t y − yt (Xθ) + yt y (2.31)
2m
1 n t t o
= θ X Xθ − 2θ t Xt y + yt y
2m
Ţinem cont de faptul că derivata part, ială e operator liniar, deci derivata
part, ială a unei sume de funct, ii este suma derivatelor part, iale ale lor:
1 n      o
∇θ J(θ) = ∇θ θ t Xt Xθ − 2∇θ θ t Xt y + ∇θ yt y (2.32)
2m
Considerând relat, iile (2.26–2.30) s, i observând că scalarul yt y nu depinde de
θ (s, i deci derivarea în raport cu θ produce valoarea 0), obt, inem vectorul
gradient:
1 n t o 1
∇θ J(θ) = X Xθ − Xt y = Xt (Xθ − y) (2.33)
m m
Se observă disparit, ia lui 2 de la numitor; se înt, elege acum de ce am preferat
ca funct, ia de eroare să fie jumătate din eroarea pătratică medie.
Modificările de ponderi θj din ecuat, ia (2.19) se scriu matricial pentru
vectorul θ ca:
α
θ = θ − α∇θ J(θ) = θ − Xt (Xθ − y) (2.34)
m
iar rescrierea algoritmului de instruire prin gradient descent este imediată.
Avantajele acestei scrieri matriciale sunt:
• Se poate face o implementare vectorizată, mai eficientă la execut, ie;
• Atribuirile simultane pentru θj se realizează automat pentru forma
matricială.
9
K. B. Petersen s, i M. S. Pedersen, “The matrix cookbook”, 2012, ht-
tps://www2.imm.dtu.dk/pubdb/edoc/imm3274.pdf.

30
2.4 Metoda ecuat, iilor normale
Există o metodă care dă valorile optime θ (min) pe baza unui calcul
algebric.
Valorile căutate pentru θ sunt cele care produc minimul valorii lui J:

θ (min) = arg min J(θ) (2.35)


θ∈Rn+1

Conform teoremei lui Fermat, o condit, ie necesară pentru ca θ (min) să


minimizeze pe J este ca vectorul derivatelor part, iale calculat în θ (min) să fie
vectorul nul:  
∇θ J θ (min) = 0 (2.36)
unde 0 este vectorul coloană format din n + 1 valori de zero.
Deoarece funct, ia de eroare J e s, i convexă, condit, ia de minimizare necesară
dată de (2.36) este s, i suficientă s, i deci se ajunge în unicul minim al lui J.
Înlocuind formula gradientului ∇θ J(θ) din ecuat, ia (2.33) în (2.36) obt, inem:

Xt Xθ (min) − Xt y = 0 (2.37)
ce defines, te un sistem de ecuat, ii numite “ecuat, ii normale”. Mai departe, dacă
matricea Xt X este inversabilă (nesingulară), vectorul de parametri θ (min) se
determină ca  −1
θ (min) = Xt X Xt · y (2.38)
Precizări:
−1
1. Expresia Xt X Xt se mai numes, te s, i pseudo–inversa Moore–Penrose
s, i uzual se notează cu X+ ; pentru o matrice inversabilă inversa s, i
pseudo–inversa ei coincid; pentru calculul pseudoinversei unei matrice
se poate folosi în Octave s, i Matlab funct, ia pinv, iar în Python funct, ia
numpy.linalg.pinv apelată pentru matricea X;

2. Când se foloses, te metoda ecuat, iilor normale, nu este necesar să se


facă scalarea trăsăturilor de intrare, precum se recomandă la metoda
iterativă.

Una din problemele care trebuie discutată este: cum se procedează când
matricea Xt X este singulară? Acest lucru se datorează de regulă uneia din
situat, iile de mai jos:

• există trăsături de intrare redundante, de exemplu două coloane ale lui


X sunt liniar dependente; în acest caz avem în mod clar o redundant, ă
informat, ională s, i putem elimina oricare din aceste două coloane; mai
general, una din coloane poate fi combinat, ie liniară a altor coloane s, i
dacă se s, tie care e, se poate elimina;

31
• se folosesc prea multe trăsături fat, ă de numărul de cazuri din setul de
instruire (m < n); în acest caz se poate renunt, a la câteva trăsături,
adică se elimină coloane din X, sau se foloses, te regularizarea – a se
vedea capitolul 4.

Ordinea de mai sus este cea sugerată pentru act, ionare: se elimină din
coloanele redundante, apoi dacă încă e nevoie, se foloses, te regularizarea.
Dat fiind faptul că avem două metode de determinare a lui θ (min) , se
pune problema pe care din ele să o preferăm. Iată câteva comparat, ii:

1. În timp ce pentru metoda gradient descent trebuie ca rata de învăt, are


să fie aleasă cu grijă, pentru varianta algebrică as, a ceva nu e necesar,
neavând de fapt rată de învăt, are;

2. În timp ce pentru metoda de calcul bazată pe gradient descent sunt


necesare mai multe iterat, ii, metoda algebrică necesită un singur pas;

3. Metoda bazată pe gradient descent funct, ionează bine chiar s, i pentru


valori mari ale lui m s, i n; pentru valori m sau n mari, calculul pseudo-
inversei poate fi prohibitiv din punct de vedere al memoriei s, i timpului
de calcul necesar.

32
Capitolul 3

Regresia logistică

3.1 Încadrare s, i exemple


Regresia logistică este folosită pentru estimare de probabilitate condit, ionată
s, i clasificare. Init, ial dezvoltată pentru recunoas, terea a două clase, a fost
extinsă pentru a discrimina între oricâte categorii.
Ca mod de instruire se foloses, te învăt, area supervizată. Intrările sunt
vectori numerici, iar clasele sunt fie două – pentru regresia logistică binară –
fie mai multe – pentru regresia logistică multinomială.
Exemple de probleme de clasificare cu două clase, tratate de regresia
logistică, sunt:

• clasificarea unui email ca fiind de tip spam sau legitim, dându–se


atribute ale emailului: cont, inutul lui, subiectul emailului, faptul că
expeditorul face sau nu parte din lista de contacte etc.

• clasificarea unei tumori ca fiind benignă sau malignă, date fiind rezul-
tatele de laborator;

• clasificarea unei imagini: cont, ine un câine sau o pisică (aici presupunem
că fiecare imagine are exact unul din aceste două animale); sau vrem
ca modelul să învet, e să recunoască dacă imaginea cont, ine sau nu un
anumit obiect.

Exemple de probleme pentru care există mai mult de două clase sunt:

• clasificarea unui email ca fiind de tip: s, tiri, muncă, prieteni, anunt, uri,
spam etc.;

• clasificarea unei imagini ca reprezentând măr, pară, banană, cireas, ă.

Modelul dat de regresia logistică (fie ea binară sau multinomială) construies, te


o estimare a probabilităt, ii condit, ionate, dată fiind intrarea curentă (cont, inut

33
email, imagine etc.); mai precis, se determină care este probabilitatea ca
obiectul descris de vectorul de intrare să fie dintr-o clasă anume:

P (clasa1 |vector_de_intrare), . . . , P (clasaK |vector_de_intrare) (3.1)

de exemplu probabilităt, ile ca emailul să fie de tip s, tire, respectiv muncă,


prieteni etc. Faptul că se estimează probabilităt, i, adică valori continue din
(0, 1) justifică cuvântul “regresie” din denumirile modelului.
Odată ce avem un model care produce probabillităt, i condit, ionate, cla-
sificarea se face găsind clasak pentru care probabilitatea ei din (3.1) este
maximă.

3.2 Regresia logistică binară


3.2.1 Setul de instruire
În cazul regresiei logistice binare se urmăres, te discriminarea între două
clase. Clasele sunt convenabil date ca fiind “1” – clasa pozitivă – s, i respectiv
“0”– clasa negativă1 . Setul de instruire este de forma:
n  o
S = x(i) , y (i) |1 ≤ i ≤ m (3.2)

(i) t
 
(i) (i)
unde vectorul x(i) = x0 , x1 , . . . , xn ∈ Rn+1 cont, ine valorile trăsăturilor
obiectului i, iar y (i) ∈ {0, 1} este clasa de care apart, ine obiectul i. Ca s, i până
acum, notat, ia vt reprezintă transpunerea vectorului sau a matricei v, iar m
(i)
e numărul de date din setul de instruire. Vom considera că x0 = 1 pentru
orice i, pentru a permite un termen liber în discriminatorul implementat de
regresia logistică.

3.2.2 Reprezentarea modelului


Pentru regresia logistică modelul de predict, ie trebuie să producă o valoare
reprezentând probabilitatea condit, ionată P (clasa|vector_de_intrare). Vom
folosi în acest scop o funct, ie hθ (·):
1
P (y = 1|x; θ) = hθ (x) = = ŷ (3.3)
1 + exp(−θ t · x)

unde θ = (θ0 , θ1 , . . . , θn )t ∈ Rn+1 este un vector coloană cu n + 1 coeficient, i


– sau ponderi (eng: weights) – ce vor fi determinat, i prin procesul de învăt, are.
Se arată us, or că funct, ia hθ este cu valori în intervalul (0, 1), deci putem să o
folosim pe post de probabilitate. Probabilitatea din (3.3) este o probabilitate
1
De exemplu, clasa pozitivă poate fi “mail de tip spam” sau “poză cu pisică”. Clasa
negativă este “mail legitim” s, i respectiv “poză cu câine”.

34
condit, ionată de intrarea curentă – adică vectorul x – s, i parametrizată de θ.
P (y = 1|x; θ) este gradul de încredere că obiectul descris de vectorul x face
parte din clasa 1, iar încrederea este influent, ată s, i de ponderile din vectorul
θ.
Funct, ia care stă la baza definirii modelului hθ este:
1
σ : R → (0, 1), σ(z) = (3.4)
1 + exp(−z)
s, i numită sigmoida logistică2 ; este reprezentată grafic în figura 3.1. Codo-
meniul funct, iei logistice este (0, 1), compatibil cu valorile admisibile pen-
tru funct, ie de probabilitate; extremele 0 s, i 1 care sunt permise pentru
probabilităt, i nu se ating însă de către sigmoida logistică. Avem că funct, ia
σ este derivabilă, strict crescătoare s, i limz→−∞ σ(z) = 0, limz→∞ σ(z) = 1.
Denumirea de “sigmoidă” este dată de alura graficului, amintind de litera S.

1.0

0.8

0.6
1+exp(−z)
1
σ(z) =

0.4

0.2

0.0

−10.0 −7.5 −5.0 −2.5 0.0 2.5 5.0 7.5 10.0


z

Figura 3.1: Graficul sigmoidei logistice definită în ecuat, ia 3.4

Graful de calcul implementat de regresia logistică binară este dat în figura


3.2.
Pentru funct, ia σ următoarele proprietăt, i sunt notabile:
1 − σ(z) = σ(−z) (3.5)
iar derivata lui σ se calculează us, or pe baza lui σ(z):
σ ′ (z) = σ(z)(1 − σ(z)) (3.6)
2
Eng: logistic sigmoid, expit. Sigmoida logistică este inversa unei alte funct, ii cunoscute,
p
logit: logit : (0, 1) → R, logit(p) = ln 1−p .

35
Figura 3.2: Graf de calcul pentru regresia logistică binară

Probabilitatea ca obiectul x să fie de clasă 0, sau clasă negativă, este P (y =


0|x; θ) s, i e determinată ca find complementul fat, ă de 1 al evenimentului de
a fi de clasă pozitivă3 :

P (y = 0|x; θ) = 1 − P (y = 1|x; θ) = 1 − σ(θ t x) = σ(−θ t x) (3.7)

Dorim să determinăm ponderile din vectorul θ astfel încât:


1. pentru acei vectori x(i) pentru care eticheta asociată y (i) este 1 să avem
P (y (i) = 1|x(i) ; θ) = hθ (x(i) ) cât mai aproape de 1, adică de y (i) ;

2. pentru datele de intrare x(i) cu y (i) = 0 să avem P (y (i) = 0|x(i) ; θ)


cât mai apropiată de 1; echivalent, vrem aici ca P (y (i) = 1|x(i) ; θ) =
hθ (x(i) ) să fie cât mai aproape de 0, adică de y (i) .
Pe scurt, dorim ca vectorul de ponderi θ să fie astfel încât predict, iile hθ (x(i) )
să fie cât mai apropiat de y (i) .
Ponderile din vectorul θ vor fi determinate prin învăt, are automată (eng.
machine learning).
După învăt, are, modelul probabilist dat de (3.3) este mai departe folosit
pentru a face clasificare astfel: dacă pentru un vector de intrare x avem

P (y = 1|x; θ) ≥ P (y = 0|x; θ) (3.8)

atunci se decide că obiectul descris de vectorul x este din clasa 1, pozitivă;


altfel este din clasa 0 – negativă.
Având în vedere că P (y = 0|x; θ) = 1 − P (y = 1|x; θ), decizia bazată pe
inecuat, ia (3.8) se reformulează echivalent ca: vom clasifica obiectul descris
de vectorul x ca fiind de clasă pozitivă dacă P (y = 1|x; θ) ≥ 0.5 s, i negativă
altfel.
Unii autori consideră că dacă avem o intrare x pentru care P (y = 1|x; θ) =
P (y = 0|x; θ) = 0.5, atunci modelul nu ar trebui să facă o clasificare a intrării:
este tot atât de probabil să fie de clasă pozitivă pe cât e de probabil să fie
de clasă negativă. În inecuat, ia (3.11) am considerat – în mod mai degrabă
arbitrar – că situat, ia cu egalitate să fie tratată ca un caz pozitiv.
3
Avem două evenimente complementare: un obiect e fie de clasă pozitivă, fie nega-
tivă. Sumele probabilităt, ilor acestor două evenimente este 1, conform axiomelor care
fundamentează teoria probabilităt, ilor.

36
Se poate să se folosească alt prag de discriminare pentru clase decât 0.5, de
exemplu: obiectul descris de x este de clasă pozitivă dacă P (y = 1|x; θ) ≥ 0.8
s, i de clasă negativă altfel. O astfel de setare de prag se efectuează pentru date
de instruire în care clasele pozitive s, i cele negative sunt puternic debalansate
(mult mai multe exemple de tip pozitiv decât negativ, sau invers), sau pentru
cazul în care penalizarea care se plătes, te pentru o clasificare eronată de
tip pozitiv (un fals pozitiv) este foarte mare fat, ă de penalizarea pentru
clasificarea eronată de tip negativ (fals negativ) – sau invers. Pentru ultimul
caz, un exemplu este: e mai grav dacă un mail legitim este clasificat ca
fiind de tip spam s, i scos din inbox, fat, ă de cazul în care un mail spam
este clasificat eronat ca fiind legitim: vom impune ca P (spam|email) sa fie
comparat cu un prag t mare (de exemplu 0.8, sau 0.99) pentru a decide că e
vorba într–adevăr de spam4 .
E util să ment, ionăm vectorizarea calculului: notăm cu X matricea care
are drept linii vectorii x(i)t – matricea de design întâlnită s, i la regresia liniară:
 
(1) (1) (1) (1)
x x1 x2 ... xn
 0(2) (2) (2) (2) 
x x1 x2 ... xn 
 0
X= . .. .. .. ..  (3.9)

 .. . . . . 
 
(m) (m) (m) (m)
x0 x1 x2 ... xn

atunci cele m probabilităt, i ŷ (i) = P (y (i) = 1|x(i) ; θ) = hθ (x(i) ) sunt compo-


nentele vectorului coloană
ŷ = σ(X · θ) (3.10)
cu funct, ia σ aplicată pe fiecare componentă a vectorului coloană X · θ.

3.2.3 Suprafat, a de decizie a regresiei logistice binare


În pofida caracterului neliniar al funct, iei ce defines, te modelul – dat în
ecuat, ia (3.3) – se arată us, or că suprafat, a care desparte regiunea x de clasă
pozitivă s, i cea de clasă negativă este o varietate liniară5 , dacă pragul este
0.5.
Inegalitatea (3.8) se scrie echivalent:
exp(−θ ·x) t
P (y = 1|x; θ) ≥ P (y = 0|x; θ) ⇐⇒ 1
≥ 1+exp(−θ
1+exp(−θ t ·x) t ·x)

⇐⇒ 1 ≥ exp(−θ · x)
t
(logaritmând)
⇐⇒ 0 ≥ −θ t · x
⇐⇒ θt · x ≥ 0
(3.11)
4
Invităm cititorul să verifice că pentru un prag diferit de 0.5 suprafat, a de separare este
tot formă liniară.
5
Prin abuz se foloses, te s, i denumirea “hiperplan”; în timp ce un hiperplan obligato-
riu trebuie să treacă prin origine, varietatea liniară este o formă liniară fără această
constrângere.

37
Am obt, inut deci că dacă x are proprietatea că θ t · x ≥ 0 atunci x este
clasificat ca fiind de clasă 1, altfel este de clasă 0. Separarea dintre cele două
clase se face de către varietatea liniară θ t · x = 0: dacă x e în partea pozitivă
a varietăt, ii liniare θ t · x = 0 sau chiar pe această varietate, atunci e de clasă
1, altfel e de clasă 0.
Dacă se permite ca în component, a vectorului x să intre s, i forme pătratice,
cubice etc. ale trăsăturilor originare, atunci suprafat, a de decizie poate fi
mai complicată. De exemplu, plecăm de la vectorul (x1 , x2 ) s, i să considerăm
extinderea lui cu trăsături polinomiale, x = (x0 = 1, x1 , x2 , x21 , x22 , x1 x2 )t ;
rezultă că θ ∈ R6 ; avem θ t ·x = θ0 +θ1 x1 +θ2 x2 +θ3 x21 +θ4 x22 +θ5 x1 x2 . Pentru
valorile6 θ0 = −4, θ1 = θ2 = θ5 = 0, θ3 = θ4 = 1 se obt, ine ecuat, ia suprafet, ei
de decizie x21 + x22 = 4, reprezentând un cerc; în funct, ie de pozit, ia fat, ă de
cerc (înăuntrul sau în afara lui), obiectul de coordonate (x1 , x2 )t este estimat
ca fiind de clasă negativă, respectiv pozitivă. Am arătat deci că suprafat, a de
separare poate fi neliniară, dacă se introduc trăsături suplimentare.

3.2.4 Funct, ia de cost


Funct, ia care ne permite să decidem cât de bun este un vector de ponderi
θ s, i care e totodată utilizată pentru ajustarea ponderilor în procesul de
instruire este notată tradit, ional cu J(·), J : Rn+1 → R+ . Argumentul ei
este vectorul de ponderi θ = (θ0 , θ1 , . . . , θn )t ∈ Rn+1 . Valoarea se va calcula
peste setul de instruire S din (3.2), sau peste orice mult, ime cu perechi
formate din vectori de intrare si clasă de ies, ire asociată.
Considerarea mediei numărului de clasificări corecte nu e o solut, ie:
funct, ia care calculează acuratet, ea este discretă, producând valori în mult, imea
{0, m , m . . . , 1}, s, i deci nu permite calcul de derivate part, iale.
1 2

O altă variantă este dată de utilizarea aceleias, i funct, ii de eroare din


capitolul de regresie liniară, ecuat, ia (2.25) pagina 29. Se arată însă că pentru
problema estimării de probabilitate condit, ionată, dată fiind forma funct, iei
hθ din ecuat, ia (3.3), funct, ia de cost nu mai este convexă s, i în acest caz o
căutare bazată pe gradient se poate opri într–un minim local — situat, ie
exemplificată în figura 3.3.
Vom defini J de as, a manieră încât să fie convexă, deci fără minime locale.
Pentru fiecare perechede intrare-ies, ire asociată (x(i) ), y (i) ) vom considera
termen de eroare Cost hθ (x(i) ), y (i) , iar funct, ia de cost va fi media acestor
erori: m
1 X  
J(θ) = Cost hθ (x(i) ), y (i) (3.12)
m i=1
s, i în plus funct, ia Cost(·, ·) să îndeplinească următoarele condit, ii de (di)simi-
laritate7 :
6
În mod normal, valorile lui θ se determină prin proces de instruire.
7
În cele ce urmează, pentru simplificarea notat, iilor vom renunt, a la indicele i.

38
30

25
x2 +3

20
1
f (x) = 15 + sin(x) · x +

15

10

minim local minim global

0 2 4 6 8 10 12 14
x

Figura 3.3: Minim global s, i minim local pentru funct, ia neconvexă f : [0, 15] →
R, f (x) = 15 + sin(x) · x + x21+3

1. condit, ia de apropiere: dacă hθ (x) s, i y sunt valori apropiate, atunci


valoarea lui Cost(hθ (x), y) trebuie să fie apropiată de 0, s, i reciproc;

2. condit, ia de depărtare: dacă hθ (x) s, i y sunt valori îndepărtate, atunci


valoarea lui Cost(hθ (x), y) trebuie să fie mare, s, i reciproc;

Definim convenabil funct, ia Cost(·, ·) astfel:

− ln hθ (x) dacă y = 1
(
Cost(hθ (x), y) = (3.13)
− ln(1 − hθ (x)) dacă y = 0

logaritmii fiind în baza e.


Cele două ramuri ale funct, iei Cost sunt reprezentate în figura 3.4. Drep-
tele x = 0 s, i respectiv x = 1 sunt asimptote verticale pentru cele două ramuri
ale lui Cost.
Rescriem funct, ia Cost sub forma echivalentă s, i mai compactă:

Cost(hθ (x), y) = −y · ln hθ (x) − (1 − y) · ln(1 − hθ (x)) (3.14)


= −y · ln ŷ − (1 − y) · ln(1 − ŷ) (3.15)

39
7 − log(hθ (x))
− log(1 − hθ (x))

0.0 0.2 0.4 0.6 0.8 1.0


hθ (x)

Figura 3.4: Cele două ramuri ale funct, iei Cost din ecuat, ia (3.13)

Să verificăm că se îndeplinesc cele două condit, ii cerute mai sus. Pentru


condit, ia de apropiere, vrem să verificăm că:

Cost(hθ (x), y) ≈ 0 ⇔ hθ (x) ≈ y (3.16)

Pentru cazul y = 1 avem:

Cost(hθ (x), y) ≈ 0 ⇔ − ln hθ (x) ≈ 0 ⇔ hθ (x) ≈ 1 = y ⇔ hθ (x) ≈ y

Pentru cazul y = 0, (3.16) devine:

Cost(hθ (x), y) ≈ 0 ⇔ − ln(1 − hθ (x)) ≈ 0 ⇔ hθ (x) ≈ 0 = y ⇔ hθ (x) ≈ y

deci prima condit, ie, legată apropiere de 0 a lui Cost(hθ (x), y) este îndeplinită
de definit, ia din ecuat, ia (3.15).
Pentru condit, ia de depărtare, dacă8 Cost(hθ (x), y) = M ≫ 0, atunci
obt, inem echivalent hθ (x) = exp(−M ) (pentru y = 1) respectiv hθ (x) =
1 − exp(−M ) (pentru y = 0); y este unul din capetele intervalului [0, 1], iar
dacă M este o valoare din ce în ce mai mare, atunci hθ (x) se îndreaptă spre
8
Relat, ia ≫ este “mult mai mare decât”.

40
celălalt capăt al intervalului. Rezultă deci că s, i această a doua condit, ie este
îndeplinită de definit, ia din formula (3.15).
În plus, deoarece fiecare din cele două ramuri ale funct, iei de cost din
(3.13) e convexă, rezultă că de fapt funct, ia Cost este convexă (ea e una din
cele două ramuri, în funct, ie de valoarea lui y (i) ). Mai departe, funct, ia J, ca
sumă a unui număr finit de funct, ii convexe, este ea însăs, i convexă. Ca atare,
orice punct de minim al lui J este garantat s, i minim global.
Funct, ia de eroare J se rescrie astfel:
m h
1 X       i
J(θ) = − y (i) · ln hθ x(i) + 1 − y (i) · ln 1 − hθ x(i) (3.17)
m i=1
m h
1 X    i
=− y (i) · ln ŷ (i) + 1 − y (i) · ln 1 − ŷ (i) (3.18)
m i=1

s, i acestă formă se numes, te binary cross–entropy.


 t
Dacă considerăm vectorii coloană y = y (1) , . . . , y (m) s, i vectorul ŷ din
ecuat, ia (3.10) pagina 37, funct, ia de eroare binary cross–entropy se rescrie
vectorizat ca:
1  t 
J(θ) = − y · ln ŷ + (1m − y)t · ln(1m − ŷ) (3.19)
m
unde 1m este vectorul coloană cu m componente, toate egale cu 1, iar funct, ia
logaritm se aplică punctual, pe fiecare componentă a vectorului argument.
Observăm că se folosesc produse scalare de vectori, de exemplu yt · ln ŷ, deci
J(θ) este într-adevăr un număr.

3.2.5 Algoritmul de instruire


Setul de antrenare S este utilizat pentru a deduce valori adecvate ale lui
θ, astfel încât predict, iile hθ (x(i) ) date de model pentru valorile de intrare x(i)
să fie cât mai apropiate de valorile actuale ale etichetelor corespunzătoare
y (i) . Datorită proprietăt, ilor funct, iei Cost din ecuat, ia (3.13) s, i a faptului că
J este valoarea medie a funct, iei Cost peste setul de instruire, deducem că
minimizând valoarea lui J, obt, inem (în medie) valori ŷ (i) = hθ (x(i) ) apropiate
de y (i) .
Pentru determinarea lui θ (min) care minimizează funct, ia J:

θ (min) = arg min J(θ) (3.20)


θ∈Rn+1
se foloses, te algoritmul de căutare după direct, ia gradientului (eng: gradient
descent): se pornes, te cu valori aleator setate componentelor vectorului θ –
sau chiar cu vectorul nul – s, i se modifică în mod iterativ, scăzând la fiecare
pas valoarea gradientului înmult, ită cu un coeficient pozitiv mic α, numit
rată de învăt, are.
Algoritmul de instruire are forma:

41
1. Setează componentele lui θ la valori init, iale aleatoare în jurul lui zero
sau chiar zero;
2. repeta{
∂J
θj := θj − α · (θ) simultan pentru j = 0, 1, . . . , n
∂θj
} pana la convergenta

Condit, ia de convergent, ă poate avea forma:


• valorile succesive ale funct, iei de eroare scad s, i diferent, a dintre două
valori succesive este sub un prag ε > 0 specificat a priori;
• norma diferent, ei L2 dintre două valori succesive ale vectorului θ este
sub un prag ε > 0; cu alte cuvinte, distant, a dintre doi vectori succesivi
de ponderi devine foarte mică;
• (mai rar) se atinge un număr maxim de iterat, ii, specificat a priori.
Derivatele part, iale ∂J/∂θj sunt:
m h m h
∂J 1 X   
(i)
i 1 X 
(i)
i
(θ) = hθ x (i)
−y (i)
· xj = ŷ (i) − y (i) · xj
∂θj m i=1 m i=1
(3.21)
s, i modificarea din interiorul iterat, iei devine:
m h
1 X 
(i)
i
θj := θj − α hθ (x(i) ) − y (i) · xj simultan pentru j = 0, 1, . . . , n
m i=1
Se observă că modificarea ponderilor θ0 , . . . , θn are aceeas, i formă ca la
regresia liniară. Singura diferent, ă este forma funct, iei hθ : liniară la regresie
liniară, sigmoidă logistică la regresia logistică.
Atribuirile simultane cerute pentru j = 0, 1, . . . n se fac fie prin utilizarea
unor variabile temporare θjtemp , fie prin folosirea de calcul vectorizat. Se
arată destul de us, or că gradientul lui J este:
1 t
∇θ J(θ) = X (ŷ − y) (3.22)
m
s, i deci modificarea din interiorul iterat, iilor de instruire devine:
1 t
θ =θ−α X (ŷ − y) (3.23)
m
unde vectorul ŷ e calculat ca în (3.10).
Se păstrează discut, ia legată de valorile ratei de învăt, are α (dinamica
funct, iei de eroare, valori α prea mari sau prea mici) din sect, iunea 2.3, pagina
26.
Nu există o formă analitică de determinare a coeficient, ilor, cum aveam
la regresia liniară (metoda ecuat, iilor normale).

42
3.3 Regresia logistică multinomială
Pentru cazul în care se cere discriminarea pentru K clase, K > 2, regresia
logistică se extinde să construiască K funct, ii (modele) simultan:

P (y = 1|x; Θ)
   
ŷ1
 P (y = 2|x; Θ)   ŷ2 
   
hΘ (x) =  ..  =  .  = ŷ
  .  (3.24)
.   . 


P (y = K|x; Θ) ŷK
Facem o comparat, ie între valoarea de ies, ire a acestui model multinomial
s, i ies, irea produsă de regresia logistică binară: pentru două clase e suficientă
construirea unei singure funct, ii, sigmoida logistică, producând o singură
valoare. Pentru K > 2 clase ar fi suficientă construirea a K − 1 funct, ii, dar
pentru comoditate se preferă construirea a K funct, ii, oricare din ele fiind
acceptată ca redundantă: suma celor K funct, ii fiind 1, fiecare din ele poate
fi determinată ca unu minus suma celorlalte K − 1. Detaliem acest aspect în
sect, iunile 3.4.1 s, i 3.4.2.

3.3.1 Setul de instruire


Setul de instruire suferă modificări doar pentru valorile lui y (i) , care acum
pot fi din mult, imea {1, . . . , K}. Formal, setul de instruire se scrie ca:
n  o
S = x(i) , y (i) |1 ≤ i ≤ m (3.25)

unde vectorul de intrare x(i) ∈ Rn+1 – ca s, i la regresia logistică binară – iar


y (i) ∈ {1, . . . , K}.

3.3.2 Funct, ia softmax


În cazul regresiei logistice cu două clase s–a folosit sigmoidă logistică,
producându–se valori de ies, ire ce pot fi folosite direct ca probabilităt, i condit, io-
nate. Pentru mai mult de două clase, estimarea de probabilitate condit, ionată
se face cu funct, ia softmax, care transformă un vector oarecare de K numere
într-un vector de K valori din intervalul (0, 1) s, i care însumate dau 1 – un
as, a-numit vector stohastic.
Pornind de la vectorul z = (z1 , . . . , zK )t ∈ RK , el e transformat de
funct, ia softmax astfel:

sof tmax(z) = (sof tmax(z; 1), . . . , sof tmax(z; K))t (3.26)

unde sof tmax(z; k) este:


exp(zk )
sof tmax(z; k) = K
(3.27)
exp(zl )
P
l=1

43
pentru 1 ≤ k ≤ K. Se verifică us, or că sof tmax(z; k) ∈ (0, 1) pentru orice
k, 1 ≤ k ≤ K s, i K k=1 sof tmax(z; k) = 1, adică vectorul sof tmax(z) este
P

stohastic. Vom folosim funct, ia softmax pentru producerea de estimări de


probabilităt, i condit, ionate de intrarea curentă x.

3.3.3 Reprezentarea modelului


Ponderile instruibile care definesc modelul de clasificare se grupează
într–o matrice Θ ∈ R(n+1)×K , construită ca:
 
| | | |
Θ =  θ1 θ2 · · · θK  (3.28)
 
| | | |

unde vectorul coloană θk ∈ Rn+1 cont, ine ponderile (parametrii instruibili)


pentru clasa k, 1 ≤ k ≤ K.
Modelul care cont, ine toate cele K modele, câte unul pentru fiecare clasă,
are forma:

P (y = 1|x; Θ) θ1t · x
   

 P (y = 2|x; Θ) 
 t
 θ2 · x 
  
hΘ (x) = 
 ..  = sof tmax  ..  =
   (3.29)
 .   . 
P (y = K|x; Θ) t ·x
θK
 
ŷ1
 ŷ2 
 
= sof tmax(Θ · x) = 
t
 ..  = ŷ
 (3.30)
 . 
ŷK

pentru un vector de intrare x ∈ Rn+1 . Valorile θkt · x se mai numesc s, i logit, i.


Probabilitatea ca un vector x să fie de clasă k (1 ≤ k ≤ K) este:

exp θkt · x

P (y = k|x; Θ) = K
= ŷk ∈ (0, 1) (3.31)
exp θlt

·x
P
l=1

Pentru clasificarea unui vector x dat la intrare, se calculează probabilitatea


de apartenent, ă la clasa k, P (y = k|x; Θ) pentru tot, i k între 1 s, i K s, i se
alege acel k (max) care realizează probabilitatea maximă:

k (max) = arg max P (y = k|x; Θ) = arg max ŷk (3.32)


1≤k≤K 1≤k≤K

Predict, ia făcută de model este că x apart, ine clasei k (max) . O decizie similară
era folosită s, i pentru regresia logistică binară.

44
Instruirea vizează determinarea acelei matrice Θ pentru care modelul
învat, ă să recunoască cât mai bine datele din setul de instruire (eventual
adăugându–se s, i factor de regularizare, a se vedea capitolul 4). Mai clar,
dacă un obiect x din setul de instruire S este de clasă k, atunci vrem ca
valoarea P (y = k|x; Θ) să fie cât mai aproape de 1.

3.3.4 Funct, ia de cost


Ca s, i în cazul funct, iei de cost (de eroare) pentru regresia logistică, se
va cuantifica în ce măsură diferă clasa actuală a unei intrări de predict, ia
dată de modelul hθ . Introducem funct, ia indicator I(·) care pentru o valoare
logică returnează 1 dacă argmentul este adevărat s, i 0 altfel:

1 dacă valoare_logica = adevarat


(
I(valoare_logica) = (3.33)
0 dacă valoare_logica = f als

Funct, ia de eroare pentru regresia logistică multinomială se defines, te ca:


m X K h 
1 X 
(i)
i
J(Θ) = − I y (i) = k · ln ŷk (3.34)
m i=1 k=1
m X K h 
1 X   i
=− I y (i) = k · ln P y (i) = k|x(i) ; Θ (3.35)
m i=1 k=1
 
 
1 Xm X K    exp θkt x(i)

=− I y (i) = k · ln K (3.36)
 

m i=1 k=1 
exp θl x
t

(i)
P 
l=1

s, i se numes, te cross–entropy.
Pentru reprezentarea clasei curente y (i) se foloses, te frecvent as, a–numita
codificare one-hot (unul din K), astfel: dacă y (i) = k, atunci codificarea sa
(i)
yohe este un vector coloană cu K valori, avand pe pozit, ia k valoarea 1 şi 0
în rest. Cu această codificare se rescrie funct, ia de eroare mai compact ca:
m 
1 X (i) t
  
J(Θ) = − yohe · ln ŷ(i) (3.37)
m i=1

unde logaritmul se aplică pe fiecare componentă9 a vectorului ŷ(i) .


În cazul în care se folosesc biblioteci de calcul vectorizat, se poate folosi
produsul Hadamard în locul celui algebric: dacă A s, i B sunt 2 matrice de
tip m × n, atunci produsul Hadamard (sau punctual) al lor este C de acelas, i
tip, C = A ⊙ B, cij = aij · bij , 1 ≤ i ≤ m, 1 ≤ j ≤ n. Dacă considerăm
9
Datorită valorilor apropiate de 0 pe care le pot lua componentele lui ŷ (i) , la implemen-
tare trebuie făcută o aducere a valorilor mici la nis, te praguri convenabile – clipping.

45
matricele Yohe , respectiv Ŷ de tip K × m, având fiecare coloana i vectorul
(i)
yohe , respectiv ŷ(i) , atunci putem considera matricea − m
1
·Yohe ⊙ln Ŷ pentru
care se calculează apoi suma tuturor elementelor folosind funct, ii eficiente din
bibliotecă.
Alternativ, suma elementelor unei matrice S de dimensiune m × n se
poate obt, ine cu:
m X
n
Sij = 1tm · S · 1n (3.38)
X

i=1 j=1
unde 1p este vector coloană de p elemente egale cu 1. Funct, ia de eroare din
ecuatia (3.34) se rescrie ca:
1 t  
J(Θ) = − 1m · Yohe ⊙ ln Ŷ · 1K (3.39)
m
Sect, iunea 3.4 cont, ine alte discut, ii legate de calculul funct, iei de eroare.

3.3.5 Gradientul funct, iei de cost


Determinarea lui θ (min) = arg min J(θ) se face prin căutarea după
θ∈Rm×(n+1)
direct, ia gradientului. Formula gradientului este, pentru 1 ≤ k ≤ K:
m h
1 X  i
∇θk J(Θ) = x(i) ŷ (i) − I(y (i) = k) = (3.40)
m i=1
m h
1 X  i
= x(i) P (y (i) = k|x(i) ; Θ) − I(y (i) = k) (3.41)
m i=1
pe care o demonstrăm în cele ce urmează: Având în vedere că gradientul e
operator liniar, calculăm gradientul
 pentru un termen de cost corespunzător
unei perechi de antrenare x , y , Ji (Θ):
(i) (i)

 
K   exp θlt x(i)
Ji (Θ) = − I y (i) = l · ln  = (3.42)
X
K 
exp θjt x(i)
P
l=1
j=1
K     
=− I y (i) = l · ln exp θlt x(i) + (3.43)
X

l=1
 
K   K  
+ I y (i) = l · ln  exp θjt x(i)  = (3.44)
X X

l=1 j=1
K h   i
=− I y (i) = l · θlt x(i) + (3.45)
X

l=1
  
K   K  
+ I y (i) = l · ln  exp θjt x(i)  (3.46)
X X

l=1 j=1

46
În suma din linia (3.46), termenul cu logaritm nu depinde de indicele de
însumare l, deci poate fi scos în fat,a sumei;mai departe, pentru suma rămasă,
pentru exact un indice l avem I y (i) = l = 1 s, i în rest indicatorii sunt 0,
deci suma e 1. Ji (Θ) devine:
 
K h   i K  
Ji (Θ) = − I y (i) = l · θlt x(i) + ln  exp θjt x(i)  (3.47)
X X

l=1 j=1

Aplicând gradientul, obt, inem:


 
K h   i K  
∇θk Ji (Θ) = −∇θk I y (i) = l · θlt x(i) + ∇θk ln  exp θjt x(i) 
X X

l=1 j=1
K  
∇θk exp θjt x(i)
P
j=1
 
= −I y (i) = k x(i) + K   (3.48)
exp θjt x(i)
P
j=1
 
  x(i) exp θkt x(i)
= −I y (i) = k x(i) + K   (3.49)
exp θjt x(i)
P
j=1
 
= −I y (i) = k x(i) + x(i) P (y (i) = k|x(i) ; Θ) (3.50)
  
= x(i) P (y (i) = k|x(i) ; Θ) − I y (i) = k (3.51)

sau forma mai compactă


  
∇θk Ji (Θ) = x(i) ŷ (i) − I y (i) = k . (3.52)

Calculând media celor m termeni ∇θk Ji (Θ) se obt, ine formula gradientului
total ∇θk J(Θ) din ecuat, ia (3.41).
Calculul de gradient, i pentru toată matricea θ este:
1 t
∇θ J(θ) = X · (Ŷ − Y) (3.53)
m

3.3.6 Algoritmul de instruire


Modificarea vectorului θk este:

θk = θk − α · ∇θk J(Θ) (3.54)


m h
α  i
= θk − x(i) ŷ (i) − I(y (i) = k) (3.55)
X
m i=1

47
simultan pentru tot, i 1 ≤ k ≤ K. Modificarea se face iterativ, până când
matricea Θ se stabilizează10 , funct, ia de eroare evoluează prea put, in11 , sau
se atinge un număr maxim de iterat, ii.
Algoritmul de instruire are forma:

1. Setează componentele lui Θ la valori init, iale aleatoare mici (în jurul
lui 0) sau chiar 0;

2. repeta{

m h
αX  i
θk := θk − x(i) ŷ (i) − I(y (i) = k) (3.56)
m i=1

} pana la convergenta

Matricial, algoritmul se rescrie ca:

1. Setează componentele lui Θ la valori init, iale aleatoare mici (în jurul
lui 0) sau chiar 0;

2. repeta{
1 t
Θ := Θ − α X · (Ŷ − Yohe ) (3.57)
m

} pana la convergenta

În formula (3.57) Ŷ s, i Yohe sunt cele definite la pagina 46. Spre deosebire
de regresia liniară, nu există o variantă algebrică de determinare a valorilor
din matricea Θ.

3.4 Precizări suplimentare


Elementele din această sect, iune aduc precizări asupra modelelor de re-
gresie logistică, precum s, i discut, ii legate de eficientizarea calculelor.

3.4.1 Redundant, a parametrilor pentru regresia logistică mul-


tinomială
Pentru regresia logistică cu două clase a fost suficient un singur parametru
θ. Pentru modelul de regresie logistică multinomială cu K clase se folosesc
K vectori θ — o discrepant, ă vizibilă, ne–am fi as, teptat să fie suficient, i
10
Respectiv: norma diferent, ei dintre două versiuni succesive ale matricei Θ devine mai
mică decât un prag ε dat, mic s, i pozitiv. Drept normă se alege de regulă norma Frobenius.
11
Mai clar: |J(Θt ) − J(Θt−1 )| < ε, pentru un ε dat, pozitiv s, i mic.

48
K − 1 vectori. Discut, ia care urmează arată că, într-adevăr, regresia logistică
multinomială are redundant, ă de parametri.
Pentru o dată de intrare x, modelul estimează probabilitatea condit, ionată
ca:
exp(θkt x)
P (y = k|x; Θ) = K   (3.58)
exp θjt x
P
j=1

Dacă scădem din fiecare vector θj un acelas, i vector ψ, obt, inem:

exp (θk − ψ)t x exp(−ψ t x) exp θkt x


 

K
= K   = (3.59)
exp ((θj − ψ)t x) exp(−ψ t x) exp θjt x
P P
j=1 j=1
exp(θkt x)
= K   = P (y = k|x; Θ) (3.60)
exp θjt x
P
j=1

deci predict, iile vor fi aceleas, i ca la setul de parametri originar; mai mult,
dacă avem vectorii θ1 , . . . , θK care minimizează funct, ia de cost J, atunci
aceeas, i valoare minimă poate fi atinsă cu θ1 − ψ, . . . , θK − ψ pentru orice
vector ψ. Dacă pe post de ψ se ia oricare din vectorii θ k , de exemplu θ K ,
atunci vectorul de parametri devine neredundant, θ1 − θK , θ2 − θK , . . . , 0 cu
acelas, i comportament ca mai înainte. Sunt deci suficient, i K − 1 vectori de
ponderi. Acceptăm însă redundant, a, pentru simplitatea s, i simetria formulelor
rezultate. Redundant, a este demonstrată s, i mai jos pentru cazul particular
K = 2, când se regăses, te regresia logistică binară.
O observat, ie interesantă e: chiar s, i în cazul cu redundant, ă funct, ia de
eroare J rămâne încă funct, ie convexă, cu o infinitate de valori minime s, i
egale între ele. Chiar s, i as, a, funct, ia de eroare nu are minime locale mai mari
decât minimul global, deci situat, ia din figura 3.3 nu apare.

3.4.2 Relat, ia dintre cele două tipuri de regresii logistice


Pentru regresia logistică multinomială, e de as, teptat ca să regăsim regresia
logistică binară pentru cazul K = 2. Într-adevăr, ecuat, ia (3.30) devine:

1
!
exp(θ1t x)
hΘ (x) = (3.61)
exp(θ1 x) + exp(θ2 x) exp(θ2t x)
t t

1 exp(θ1t x) exp(θ1t x)
!
= (3.62)
exp(θ1t x) + exp(θ2t x) exp(θ1t x) exp(θ2t x)
1
!
exp((θ1 − θ1 )t x)
= (3.63)
exp ((θ1 − θ1 ) x) + exp ((θ2 − θ1 ) x) exp((θ2 − θ1 )t x)
t t

49
Notând θ = θ1 − θ2 , avem:

1
!
1
hΘ (x) = (3.64)
1 + exp (−θ · x) exp −θ t · x

t

1
!
1+exp(−θ t ·x)
= (3.65)
1 1
− 1+exp(−θ t ·x)
!
P (y = 1|x; θ)
= (3.66)
1 − P (y = 1|x; θ)

Tot pentru K = 2, se verifică us, or că funct, ia de eroare (3.36) devine cea


din (3.18).

3.4.3 Calculul numeric al funct, iei softmax


La implementarea directă a funct, ie softmax se poate întâmpla ca valoarea
funct, iei exponent, iale să depăs, ească posibilităt, ile de reprezentare numerică,
pentru valori zl pozitive mari. Un truc de calcul frecvent aplicat în practică
este următorul: în loc de a se calcula funct, ia softmax precum în ecuat, ia (3.27),
se calculează prima dată valoarea maximă din (z1 , . . . , zK )t , fie ea M , apoi
se calculează softmax pentru vectorul de valori z′ = (z1 − M, . . . , zK − M )t .
Avem că:
exp(zl − M ) exp(zl )/ exp(M )
sof tmax(z′ ; l) = K
= K
=
exp(zk − M ) [exp(zk )/ exp(M )]
P P
k=1 k=1
exp(zl )
= K
= sof tmax(z; l) (3.67)
exp(zk )
P
k=1

Rezultatul e acelas, i, dar calculul se face cu exponent, i mai mici, dacă M > 0
(de unde rezultă zl − M < zl ). Se evită astfel depăs, irea de reprezentare
(overflow) dacă vectorul z are componente pozitive foarte mari.

3.4.4 Trucul “log sum exp”


Funct, ia de eroare pentru regresia logistică multinomială are forma:
 
 
1  m K   exp θkt x(i) 
J(Θ) = −  I y = k · ln K (3.68)
X X (i) 

m i=1 k=1  
exp θjt x(i)
 P 
j=1

50
Termenul cu logaritm permite simplificări de calcule:
 
exp θkt x(i)
 
   K  
ln  = ln exp θk x − ln  exp θjt x(i)  (3.69)
X
t (i)
K 
exp θjt x(i) j=1
P
j=1
 
K  
= θkt x(i) − ln  exp θjt x(i)  (3.70)
X

j=1

Pentru al doilea termen din (3.70) se foloses, te un truc asemănător celui


din subsect, iunea precedentă, pentru a evita calcul de funct, ie exponent, ială
cu exponent mare. Trucul “log sum exp” se bazează pe identitatea:
   
K K
ln  exp(zi ) = a + ln  exp(zi − a) (3.71)
X X

j=1 j=1

pentru un a oarecare, demonstrată în cele ce urmează:


   
K K
ln  exp(zi ) = ln  (exp(zi ) exp(a) exp(−a)) = (3.72)
X X

j=1 j=1
 
K
= ln exp(a) · (exp(zi ) exp(−a)) = (3.73)
X

j=1
 
K
= ln exp(a) + ln  exp(zi − a) = (3.74)
X

j=1
 
K
= a + ln  exp(zi − a) (3.75)
X

j=1

Pentru a reduce din magnitudinea exponent, ilor considerăm, în mod conve-


nabil, a = maxi zi s, i reducem riscul de depăs, ire de reprezentare numerică
(overflow).
Trucurile din sect, iunea curentă s, i cea precedentă explică s, i de ce în unele
implementări de biblioteci pentru machine learning, pentru funct, ia de eroare
se cer valorile vectorului z (eng: logits) s, i nu valorile calculate de sof tmax.

51
Capitolul 4

Regularizarea modelelor

4.1 Overfitting, underfitting pentru regresia liniară


Pentru problema estimării pret, ului unei proprietăt, i, să presupunem că
există 5 perechi de valori în setul de instruire, o pereche fiind constituită din
variabila predictivă supraf ata – notată mai jos cu x – s, i variabila de ies, ire
pret; punctele sunt reprezentate în figura 4.1. Să considerăm 3 modele de
predict, ie:

1. polinom de gradul întâi: pret, ul estimat este de forma:

pret = θ0 + θ1 x (4.1)

2. polinom de gradul al doilea:

pret = θ0 + θ1 x + θ2 x2 (4.2)

3. polinom de gradul 4:

pret = θ0 + θ1 x + θ2 x2 + θ3 x3 + θ4 x4 (4.3)

unde pentru fiecare caz x este suprafat, a; spunem că am introdus noi trăsături
pe baza celor existente, corespunzătoare mai sus cantităt, ilor x2 , x3 , x4 .
Primul model este cel liniar discutat până acum, iar celelalte două sunt
modele polonomiale (de grad 2, respectiv 4). Ca s, i mai înainte, se pune
problema determinării coeficient, ilor θ0 , θ1 , . . . . Modelul este determinat tot
prin regresie liniară, pe baza datelor multivariate.
Graficele celor trei forme polinomiale sunt date în figura 4.1 [6].
Intuitiv, polinomul de gradul întâi nu reus, este să facă o aproximare prea
bună a evolut, iei pret, ului în funct, ie de suprafat, ă. Spunem că modelul dat de
primul polinom suferă de “underfitting”1 , fiind prea simplu pentru problema
1
Aproximativ, în limba română: incapacitate de reprezentare; simplism.

52
Figura 4.1: Trei polinoame pentru aproximarea pret, ului pornind de la
suprafat, ă, notată x [6].

în cauză. Se mai spune despre un asemenea model că are “high bias”2 ,


deoarece face o presupunere simplistă pentru problema tratată.
Pentru polinomul de grad 4, dacă nu se găsesc două pret, uri pe aceeas, i
verticală (adică nu avem două suprafet, e egale vândute cu pret, uri diferite),
se pot determina coeficient, ii θ0 , . . . , θ4 astfel încât curba să treacă prin
toate cele 5 puncte (interpolare polinomială, vezi de exemplu polinoamele
Lagrange). Remarcăm însă forma nemonotonă, cu variat, ii mari a predict, iei,
fiind cazuri în care valoarea estimată scade în raport cu suprafat, a. Aici
modelul suferă de “overfitting”3 , fiind prea fidel construit pe datele din setul
de instruire; dacă aceste date cont, in zgomot, atunci modelul va învăt, a perfect
zgomotul din setul de date. Des, i reprezentarea pe datele de instruire este
perfectă, polinomul de gradul 4 dând chiar pret, urile cunoscute, în rest nu
face o predict, ie prea credibilă (remarcăm scăderea pret, ului intre al treilea
s, i al patrulea punct din grafic). Se mai spune că modelul are variant, ă
(variabilitate) mare4 , datorită faptului că e prea complex pentru problema
tratată. Complexitatea crescută e dată de numărul de mare de coeficient, i θ,
rezultat, i din gradul mare al polinomului de aproximare.
Intuitiv, pentru problema dată polinomul de gradul 2 prezintă cea mai
credibilă formă, chiar dacă nu reprezintă exact cele 5 perechi de valori din
setul de instruire. Este un compromis între capacitatea de a reproduce setul
de instruire s, i capacitatea de generalizare, aceasta din urmă fiind abilitatea
de a prezice valori de ies, ire pentru cazuri care nu fac parte din setul de date
de instruire.
Pe scurt, un model care suferă de “underfitting” este incapabil de a
reprezenta setul de antrenare, cât s, i de a face estimări pentru alte valori. Un
model care suferă de “overfitting” poate învăt, a foarte bine datele din setul de
instruire, dar nu reus, es, te să facă estimări prea bune în afara lui; în ambele
cazuri spunem că nu generalizează bine, generalizarea fiind capacitatea unui
model de a estima cât mai aproape de adevăr în afara cazurilor cu care a fost
instruit. Pentru modele de predict, ie, în final, ne interesează cât de bine pot fi
2
Înclinare prea pronunt, ată spre un model cu performant, ă predictivă slabă.
3
Supraspecializare
4
Eng: high variance.

53
estimate situat, iile din afara setului de instruire, i.e. generalizarea modelului.
Exemplificarea s–a făcut plecând de la o variabilă predictivă x reprezen-
tând suprafat, a, care produce alte atribute: x2 , x3 , x4 . Mai general, putem să
presupunem că avem trăsături de intrare definite în domeniul problemei; în
cazul nostru, poate fi distant, a dintre suprafat, a respectivă s, i utilităt, i, gradul
de poluare al zonei etc. Trebuie însă să fim capabili să detectăm cazurile de
overfitting s, i underfitting s, i să le tratăm.
O modalitate de evitare a overfitting–ului este reducerea numărului de
trăsături: pentru problema noastră se evită folosirea variabilelor x3 , x4 . O
altă variantă este alegerea judicioasă a modelului de predict, ie. O altă opt, iune
populară – s, i discutată aici – este regularizarea: se păstrează variabilele
predictive, dar se impun constrângeri asupra parametrilor modelului — în
cazul nostru asupra coeficient, ilor θi .

4.2 Regularizarea L2 pentru regresia liniară


Să considerăm că predict, ia se formează pe baza funct, iei polinomiale

hθ (x) = θ0 + θ1 x + θ2 x2 + θ3 x3 + θ4 x4 (4.4)

Intuitiv, vrem ca în funct, ia de eroare să includem o constrângere asupra


coeficient, ilor θ3 , θ4 ; ei se înmult, esc cu cantităt, ile x3 , respectiv x4 care deter-
mină o variat, ie rapidă a funct, iei h; altfel zis, o modificare mică a cantităt, ii x
duce la o modificări majore ale lui hθ (x). Constrângerea pe care o impunem
este deci ca valorile absolute ale lui θ3 s, i θ4 să fie cât mai apropiate de zero.
Pentru aceasta, vom include în expresia funct, iei de eroare J(·) s, i pătratele
lui θ3 s, i θ4 :
m 
1 X
( )
2
J(θ) = hθ (x(i) ) − y (i) + 100 · θ32 + 100 · θ42 (4.5)
2m i=1

Minimizarea lui J din ec. (4.5) va urmări simultan mics, orarea diferent, ei
dintre valorile estimate de model s, i cele reale, dar s, i reducerea valorilor
absolute ale lui θ3 , θ4 . Exemplul de mai sus este gândit pentru a aduce
funct, ia polinomială de grad patru la una mai apropiată de gradul al doilea,
pentru care agreăm ideea că generalizează mai bine.
În general, nu s, tim care dintre coeficient, ii care se înmult, esc cu puteri
ale lui x ar trebui să aibă valori absolute mici. Intuitiv, ne dăm seama că
valoarea lui θ0 nu ar fi necesar a fi supusă unei constrângeri (nu se înmult, este
cu nicio variabilă predictivă; dacă avem overfit, nu e din cauza lui); vom
impune deci constrângeri doar asupra lui θ1 , θ2 , . . . – să aibă valori absolute
mici; echivalent, pătratele lor să fie mici, deci suma pătratelor lor să nu
fie prea mare. Scopul final este de a evita overfitting–ul. Principiul se

54
aplică s, i dacă se pleacă de la variabile de intrare independente, nu neapărat
supraf ata, supraf ata2 , . . . . Ca atare, ec. (4.5) se rescrie mai general ca:
m  n
1 X
" #
2 λX
J(θ) = hθ (x(i) ) − y (i) + θ2 (4.6)
2m i=1 2 j=1 j
| {z } | {z }
eroarea de calitate termen de regularizare

unde λ > 0 e coeficientul termenului de regularizare. Cu cât λ e mai mare,


cu atât constrângerea impusă coeficient, ilor θ1 , . . . , θn e mai pronunt, ată. La
extrem, dacă λ → ∞ atunci se ajunge la θ1 = · · · = θn = 0, deci hθ (x) = θ0 ,
ceea ce aproape sigur înseamnă underfitting (model de aproximare simplist):
modelul returnează mereu θ0 , indiferent de intrare.
În formă matricială, funct, ia de eroare incluzând termenul de regularizare
se scrie ca:
1 λ
J(θ) = (Xθ − y)t (Xθ − y) + ∥θ[1 :]∥2 (4.7)
2m 2
unde ∥ · ∥ este norma L2 (Euclidiană) a vectorului argument. Se observă
omiterea termenului liber din calculul de normă de vector. Folosirea normei
Euclidiene dă denumirea regularizării: regularizare L2 .
Algoritmul de căutare după direct, ia gradientului devine (considerăm că
avem coeficient, ii θ0 , . . . , θn init, ializat, i aleator sau chiar cu vectorul nul):

repeta{
m 
1 X
" #

(i)
θ0 := θ0 − α hθ (x(i) ) − y (i) · x0 (4.8)
m i=1

m 
1 X
" #

(i)
θj := θj − α hθ (x(i) ) − y (i) · xj + λ · θj , j = 1, . . . , n (4.9)
m i=1

} pana la convergenta

unde atribuirile se efectuează în mod simultan. În formă vectorială scriem:


1 t
 
θ = θ − α∇θ J(θ) = θ − α X (Xθ − y) + λ[0, θ1 , . . . , θn ]t (4.10)
m

unde vectorul [0, θ1 , . . . , θn ]t se formează din vectorul de ponderi θ punând


pe prima pozit, ie valoarea 0.
Rescriem modificarea lui θj din (4.9):
m 
1 X
" #

(i)
θj := θj (1 − αλ) − α hθ (x(i) ) − y (i) · xj (4.11)
m i=1

55
Observăm mai sus o dublă modificare a ponderilor θj : pe de o parte se scade
gradientul termenului de calitate a predict, iei înmult, it cu rata de învăt, are
(gradient descent), dar se s, i scalează ponderea θj cu un termen multiplicativ
1 − αλ care de regulă e subunitar; spunem că în acest al doilea caz avem
un efect de decădere a ponderilor – eng: weight decay. Pentru metoda
stochastic gradient descent (fără termen momentum) regularizarea L2 este
deci echivalentă cu weight decay. Pentru alte metode de optimizare afirmat, ia
nu mai este valabilă [7].
Pentru metoda ecuat, iilor normale se poate arăta că regularizarea produce
următoarea valoare pentru θ:
 −1

0 0 0 ... 0 
  

 
 0 1 0 ... 0 
  
θ = X X + λ ·  0 0 1 ... 0 (4.12)
 t  
 · Xy
 .. .. .. . . .. 
 
. . . . . 
 

0 0 0 ... 1 
 

 | {z 
}
(n+1)×(n+1)

unde matricea care se înmult, es, te cu λ se obt, ine din matricea unitate de
ordinul n+1, modificând primul element în 0 (din acelas, i motiv ca până acum:
termenul θ0 nu se regularizează). Se poate arăta că pentru λ > 0 termenul
din ecuat, ia (4.12) pentru care se cere inversa este o matrice nesingulară,
indiferent de valorile din matricea X.

4.3 Regularizarea modelelor de regresie logistică


4.3.1 Regularizarea L2 pentru regresia logistică binară
Pentru regresia logistică binară formula modelului este:
1
P (y = 1|x; θ) = (4.13)
1 + exp(−θ t x)
cu vectorul de ponderi θ = (θ0 , θ1 , . . . , θn ).
Dacă se permite ca valorile parametrilor5 θ1 , . . . , θn să fie lăsate necon-
strânse, atunci valorile lor absolute pot cres, te s, i influent, a negativ performant, a
de generalizare a modelului: pentru variat, ii mici ale datelor de intrare vom
avea variat, ii mari ale valorilor funct, iei model; mai mult, dacă luăm în consi-
derare trăsături de intrare de forma xi · xj , xi · xj · xk etc. modelul poate
ajunge să aproximeze foarte bine perechile din setul de instruire, dar fără a
avea o performant, ă bună pe datele din set de testare6 . Ca atare, se preferă
5
Se remarcă lipsa termenului liber θ0 ; el nu este regularizat.
6
Alfel zis: cres, tem numărul de trăsături din setul de antrenare, dar numărul de exemplare
din acest set rămâne acelas, i: m.

56
impunerea unor constrângeri parametrilor θ1 , . . . , θn astfel încât aces, tia să
fie cât mai mici în valoare absolută.
Pentru regularizare se modifică forma funct, iei de eroare astfel:
m h
1 X i
J(θ) = − y (i) · ln hθ (x(i) ) + (1 − y (i) ) · ln(1 − hθ (x(i) )) (4.14)
m i=1
| {z }
Funct, ia de eroare din ecuat, ia (3.17) pagina 41
n
λ
+ (4.15)
X
θj2
2 j=1
| {z }
termenul de regularizare
m h
1 X i
=− (i)
y · ln ŷ
(i)
+ (1 − y (i) ) · ln(1 − ŷ (i) ) (4.16)
m i=1
| {z }
Funct, ia de eroare (3.18) pagina 41
n
λ
+ (4.17)
X
θj2
2 j=1
| {z }
termenul de regularizare

Vectorizat se scrie astfel:


1  t  λ
J(θ) = − y · ln ŷ + (1m − y)t · ln(1m − ŷ) + ∥θ[1 :]∥22 (4.18)
m 2
unde θ[1 :] este vectorul format din toate componentele lui θ mai put, in
prima, iar ∥v∥2 este norma L2 (sau Euclidiană) a vectorului v:
sX
∥v∥2 = vi2
i

Modificarea adusă algoritmului de instruire este simplă: mai trebuie


inclusă s, i derivata part, ială a lui θj2 în raport cu θj :

repeta{
m
1 X (i)
θ0 := θ0 − α (hθ (x(i) ) − y (i) ) · x0 (4.19)
m i=1
m 
1 X
" #

(i)
θj := θj − α hθ (x(i) ) − y (i) · xj + λθj (4.20)
m i=1

} pana la convergenta

unde atribuirile se fac simultan pentru indicii 0, 1, . . . , n ai componentelor


vectorului θ – se folosesc variabile tempoare sau calcul vectorizat.

57
Forma vectorizată pentru algoritmul de instruire cu funct, ia de eroare
incluzând regularizare L2 se scrie ca:
1 t
 
θ =θ−α X (ŷ − y) + λ(0, θ1 , . . . , θn )t (4.21)
m
unde (0, θ1 , . . . , θn )t este obt, inut vectorul θ punând prima componentă 0.
Discut, ia din sect, iunea de regualizare L2 a regresiei liniare legată de
echivalent, a regularizării L2 s, i weight decay în algoritmul de gradient descent
este valabilă s, i aici.

4.3.2 Regularizarea L2 pentru regresia logistică multinomială


În practică se preferă penalizarea valorilor absolute mari ale parametrilor
θik (1 ≤ i ≤ n, 1 ≤ k ≤ K); nu se penalizează ponderile de termeni liberi
θ0k (1 ≤ k ≤ K). Se adaugă penalizări pentru pătratele valorilor ponderilor
rămase s, i funct, ia de eroare devine:

m X K h  n X K
1 X 
(i)
i λX
J(Θ) = − I y (i) = k · ln ŷk + θ2 (4.22)
m i=1 k=1 2 i=1 k=1 ki
| {z } | {z }
eroare de calitate termen de regularizare
1 t   λ
=− 1m · Yohe ⊙ ln Ŷ · 1K + ∥Θ[1 :, :]∥2F (4.23)
m 2
unde ∥A∥F e norma Frobenius a matricei Am×n :
v
n
um X
uX
∥A∥F = t |aij |2 (4.24)
i=1 j=1

Coeficientul λ este un hiperparametru care arată cât de mult contează


regularizarea în cadrul funct, iei de eroare; evident, pentru λ = 0 nu avem
regularizare, iar dacă λ se alege foarte mare, atunci funct, ia de eroare cross–
entropy este neglijată în favoarea mics, orării valorii coeficient, ilor θli , fără a
da vreo important, ă prea mare nepotrivirilor între clasele estimate s, i cele
reale. Evident, trebuie realizat un echilibru între aceste două extreme.
Formula gradientului folosit în căutarea de tip gradient descent este:
m h
1 X  i
∇θk J(Θ) = − x(j) I(y (j) = k) − ŷ (i) + λ · [0, Θk,1: ]t (4.25)
m j=1

unde [0, Θk,1: ]t este vectorul coloană care are pe prima pozit, ie 0 (termenii
liberi nu se regularizează) s, i pe următoarele n pozit, ii valorile Θk1 , . . . , Θkn .
Formula matricială pentru tot, i gradient, ii, pentru tot setul de date este:
1 t
∇Θ J(Θ) = − X · (Yohe − Ŷ) + λΘ0 (4.26)
m

58
unde Θ0 este matricea Θ cu prima linie umplută cu 0.
Valoarea hiperparametrului λ se determină prin încercări repetate, k fold
cross-validation, căutare aleatoare, optimizare Bayesiană, algoritmi genetici
sau alte euristici de căutare.

59
Capitolul 5

Perceptronul liniar

5.1 Încadrare s, i exemplu


Un perceptron liniar este cel mai simplu tip de neuron, capabil să învet, e
să separe două clase de puncte care sunt liniar separabile. Instruirea este
supervizată.
Pentru exemplificare, să presupunem că avem următoarele s, ase puncte în
plan Cartezian: (−4, 2), (−4, 6), (−2, 4), (3, −2), (5, −2), (4, 4). Primele trei
puncte sunt de clasă negativă (i.e. -1) s, i restul de clasă pozitivă (i.e. +1).
Reprezentarea lor este dată în figura 5.1. Observăm că pentru exemplul
considerat putem găsi măcar o dreaptă – de exemplu dreapta d1 de ecuat, ie
4x − 3y + 12 = 0 care are de o parte a ei doar cele 3 puncte de clasă pozitivă
s, i de cealaltă parte a ei celelalte 3 de clasă negativă. Spunem că cele clase –
pozitivă s, i negativă – sunt liniar separabile. De fapt, se poate să existe mai
mult de o dreaptă de care să le separe: de exemplu, avem dreapta d2 de
ecuat, ie 3x + y − 12 = 0. Se poate arăta că dacă există măcar o dreaptă de
separare, atunci există o infinitate de drepte care separă aceleas, i mult, imi de
puncte.
Din geometria analitică, pentru un spat, iu bidimensional, s, tim că o dreaptă
de forma ax + by + c = 0 împarte un plan în două seminplane. Pentru toate
punctele de coordonate (xp , yp ) aflate de o acees, i parte a dreptei, expresia
axp + byp + c este mereu strict mai mare (sau pentru partea cealaltă a dreptei:
strict mai mică) decât zero. De exemplu, pentru punctele figurate cu “+” în
figura 5.2 toate valorile sunt strict pozitive, iar cele figurate cu “-” produc
valori strict negative. Spunem că semiplanele rezultate sunt pozitve, respectiv
negative.
Exemplul a fost dat pentru puncte din spat, iul bidimensional pentru a
putea face reprezentarea grafică. Considerente similare sunt valabile în spat, ii
Euclidiene multidimensionale.

60
Clasa − 1
20 Clasa + 1

15

10 d1 : 4x − 3y + 12 = 0

−5
d2 : 3x + y − 12 = 0

−10

−4 −2 0 2 4 6

Figura 5.1: Pentru două mult, imi de puncte liniar separabile pot exista mai
multe suprafet, e de separare. În cazul dat, ambele drepte d1 s, i d2 separă
punctele de clasă pozitive de cele de clasă negativă.

12
10 d1 : 4x − 3y + 12 = 0

8 Semiplan negativ

6
Semiplan pozitiv
4
2
0
−2

−4 −2 0 2 4 6

Figura 5.2: Orice dreaptă împarte un plan în două semiplane. Pentru o


dreaptă de ecuat, ie d(x, y) = 0 si pentru un semiplan fixat, orice punct de
coordonate (xp , yp ) din acel semiplan produce acelas, i semn pentru d(xp , yp ).
Semnul rezultat dă natura semiplanului: pozitiv sau negativ.

61
5.2 Definit, ii s, i notat, ii
Definit, ia 4. (Clase liniar separabile) Mult, imile C1 s, i C2 din spat, iul Rn se
numesc liniar separabile dacă există o funct, ie y : Rn → R de forma:
n
y(x) = wi · x i + b (5.1)
X

i=1

astfel încât:
y(x) > 0 pentru x ∈ C1
(
(5.2)
y(x) < 0 pentru x ∈ C2
În condit, iile de mai sus, numim clasa C1 clasă pozitivă, iar C2 clasă
negativă.
Plecând de la un set de instruire format din mult, imile C1 , C2 despre care
se s, tie că sunt liniar separabile – dar pentru care funct, ia y(·) nu se cunoas, te
– perceptronul liniar determină ponderile (coeficient, ii) b, w1 , . . . , wn pentru
care condit, iile din (5.2) sunt îndeplinite. Determinarea ponderilor se face
prin învăt, are.
Ecuat, ia y(x) = 0, precum s, i mult, imile C1 , C2 pe care y le separă au
interpretări geometrice simple. Punctele x ∈ Rn pentru care y(x) = 0
formează o varietate liniară – notată cu S – de dimensiune n − 1; dacă b = 0
atunci y(x) = 0 este un hiperplan (subspat, iu afin de dimensiune n − 1 s, i
deci trecând prin origine); prin abuz de limbaj, în literatură se foloses, te tot
denumirea de hiperplan pentru suprafat, a y(x) = 0, chiar dacă b ̸= 0.
Suprafat, a liniară y(x) = 0 separă planul în două submult, imi – în cazul
n = 2, în două semiplane. Oricum am alege un punct x dintr-o submult, ime
(semiplan) oarecare, semnul lui y(x) este mereu acelas, i, iar la trecerea în
cealaltă submult, ime semnul se schimbă. Pentru n = 2 vorbim de semiplan
pozitiv s, i semiplan negativ.
Dacă x1 s, i x2 sunt două puncte de pe varietatea liniară S dată de
y(x) = 0, atunci:
y(x1 ) = 0 ⇔ wt · x1 + b = 0 (5.3)
y(x2 ) = 0 ⇔ w · x2 + b = 0
t
(5.4)
Scăzând (5.4) din (5.3) obt, inem wt · (x1 − x2 ) = 0, sau, echivalent, vectorul
w este perpendicular pe varietatea liniară y(x) = 0, a se vedea figura 5.3.
Distant, a dintre un punct de coordonate x s, i suprafat, a S este:
|y(x)|
z= (5.5)
∥w∥
unde wq= (w1 , . . . , wn )t iar ∥w∥ este norma Euclidiană1 a vectorului w,
∥w∥ = w12 + . . . wn2 .
1
Peste tot în cursul de azi considerăm norma Euclidiană.

62
+
-

Figura 5.3: Suprafat, a de decizie S, distant, a de la punctul de coordonate x


la S, pozit, ia vectorului de ponderi w fat, ă de S

Putem renota termenul liber b din (5.1) cu w0 , putem considera că


vectorul x mai are o componentă x0 = 1; dacă notăm tot cu w vectorul de
ponderi extins w = (w0 , w1 , . . . , wn )t s, i x = (x0 , x1 , . . . , xn )t , cu x0 = 1 s, i
w0 = b, atunci funct, ia de separare y din (5.1) se rescrie ca:

y(x) = wt · x (5.6)

5.3 Perceptronul liniar


Setul de instruire este
n  o
S = x(i) , y (i) |x(i) ∈ Rn+1 , y (i) ∈ {−1, 1}, 1 ≤ i ≤ m (5.7)

unde y (i) este eticheta vectorului de intrare x(i) . Putem partit, iona vectorii
de intrare x(i) în submult, imile:

• C1 - clasa pozitivă, acei x(i) ∈ Rn+1 pentru care y (i) = +1,

• C2 - clasa negativă, acei x(i) ∈ Rn+1 pentru care y (i) = −1.

Setul S este astfel dat încât mult, imile C1 s, i C2 sunt liniar separabile –
aceasta fiind condit, ia în care perceptronul poate învăt, a să construiască o
suprafat, ă de separare.
Graful de calcul pentru un perceptron este dat în figura 5.4.
Valoarea de stare a perceptronului este z = wt · x = ni=0 wi · xi . Valoarea
P

de ies, ire (numită s, i activare) a perceptronului se calculează cu funct, ia de

63
Figura 5.4: Graful de calcul al unui perceptron liniar

activare “treaptă”:

+1, dacă z > 0


f (z) = −1, dacă z < 0 (5.8)

nedefinit,

dacă z = 0

Valoarea produsă pentru ponderile w s, i intrarea x este:

ŷ = f (wt · x) (5.9)

La inferent, ă făcută cu ponderile w pentru un vector x:

• dacă wt · x > 0, atunci f (wt · x) = 1 s, i spunem că perceptronul indică


x ca fiind de clasă pozitivă

• dacă wt · x < 0, atunci f (wt · x) = −1 s, i spunem că perceptronul indică


x ca fiind de clasă negativă

Valoarea funct, iei f este deliberat nedefinită în 0: dacă wt · x = 0 atunci


punctul x se află pe suprafat, a de separare s, i pentru un atare caz nu se poate
spune despre el că ar fi de clasă pozitivă sau negativă.

5.4 Algoritmul de instruire a perceptronului


Scopul algoritmului este ca, plecând de la setul de instruire S definit în
(5.7), să obt, inem ponderile w = (w0 , w1 , . . . , wn )t astfel încât:

pentru x(i) ∈ C1 să avem wt · x(i) > 0


(
(5.10)
pentru x(i) ∈ C2 să avem wt · x(i) < 0
adică să obt, inem o suprafat, ă liniară ce separă clasele C1 s, i C2 .
Com demonstra – vezi sect, iunea 5.7 – că dacă mult, imile C1 s, i C2 sunt
liniar separabile, atunci algoritmul de instruire poate să determine o funct, ie
de separare liniară.

64
Instruirea pornes, te de la ponderi aleatoare pentru valorile w0 , w1 , . . . , wn ;
acestea pot fi luate chiar s, i 0. Notăm acest vector init, ial cu w(1). Printr-un
proces iterativ vom obt, ine vectorii de ponderi w(2), . . . , w(k), . . . . Vectorii
de ponderi se vor stabiliza la un moment dat: w(l) = w(l + 1) = . . . .
Învăt, area (adaptarea) ponderilor w se face prin adăugarea succesivă a
unor vectori de diferent, e:
+∆w(1) +∆w(2) +∆w(k)
w(1) −−−−−→ w(2) −−−−−→ w(3) . . . w(k) −−−−−→ w(k + 1) . . . (5.11)

 s, i eticheta
Pentru un vector de ponderi curente w(k), intrarea curentă x(i) 
asociată y , estimarea produsă de perceptron este ŷ = f w(k)t x(i) .
(i) (i)

Dacă pentru un vector de ponderi w(k) avem ŷ (i) = y (i) pentru tot setul de
instruire, atunci perceptronul recunoas, te corect clasele datelor din S . Altfel,
este necesar să se opereze modificări pentru vectorul de ponderi curent w(k),
detaliile fiind date în cele ce urmează.
 Să considerăm
 ponderile de la momentul k, w(k). Dacă pentru o pereche
(i)
x ,y (i) ∈ S avem că ŷ (i) = y (i) , atunci pentru acest caz vectorul de
ponderi w(k) nu trebuie modificat: perceptronul clasifică corect intrarea x(i) .
Dacă ŷ (i) ̸= y (i) , atunci avem unul din următoarele două cazuri:

1. x(i) e de clasă pozitivă, dar e clasificat momentan ca negativ: y (i) = +1


s, i ŷ (i) = −1

2. x(i) e de clasă negativă, dar e clasificat momentan ca pozitiv: y (i) = −1


s, i ŷ (i) = +1

Pentru cazul 1 avem că w(k)t · x(i) < 0 dar ar trebui ca produsul să fie
pozitiv. Trebuie deci modificat vectorul w(k) astfel încât, pentru noul vector
w(k + 1) valoarea produsului scalar cu x(i) să crească: w(k + 1)t · x(i) >
w(k)t · x(i) , în sperant, a că asta va duce la w(k + 1)t · x(i) > 0 s, i deci la
ŷ (i) = f (w(k + 1)t · x(i) ) = +1 = y (i) . Modificarea propusă ∆w(k) este:

∆w(k) = α · x(i) (5.12)

unde α este un coeficient strict pozitiv. Noul vector de ponderi va fi:

w(k + 1) = w(k) + ∆w(k) = w(k) + α · x(i) (5.13)

Verificăm că vectorul w(k + 1) duce la cres, terea valorii produsului scalar


dintre ponderi s, i vectorul de intrare.
Avem:
 t  t
w(k + 1)t · x(i) = w(k) + α · x(i) · x(i) = w(k)t · x(i) + α · x(i) · x(i) =
2
= w(k)t · x + x(i) ≥ w(k)t · x(i) (5.14)

65
(i)
cu inegalitate strictă pentru x(i) ̸= 0 (s, i intrucât x0 = 1, avem că norma
lui x(i) e strict pozitivă, deci inegalitatea (5.14) e de fapt strictă). Prin
urmare, obt, inem cres, terea produsului scalar dintre ponderi s, i vectorul de
intrare, as, a cum ne-am propus.
Pentru cazul 2, facem modificarea ponderilor astfel:

∆w(k) = −α · x(i) (5.15)

deci
w(k + 1) = w(k) + ∆w(k) = w(k) − α · x(i) (5.16)
cu aceeas, i condit, ie pentru α. Se verifică, similar ca în (5.14) că w(k +1)t ·x <
w(k)t · x.
Sintetizând:

0n+1 ,

 dacă y (i) = ŷ (i)
∆w(k) = α · x(i) , dacă y (i) = +1 s, i ŷ (i) = −1 (5.17)

−α · x(i) , dacă y (i) = −1 s, i ŷ (i) = +1

dacă y (i) = ŷ (i)


(
0n+1 ,
= (5.18)
αy (i) x(i) , dacă y (i) ̸= ŷ (i)

Putem scrie modificările din ecuat, ia (5.18), astfel:


α (i)
∆w(k) = (y − ŷ (i) ) · x(i) (5.19)
2
E posibil ca o singură modificare a ponderilor să nu fie suficientă pentru
ca tot setul de instruire S să ajungă să fie clasificat corect. Dacă în decursul
unei epoci de instruire – epocă înseamnă parcurge în întregime a setului
de instruire S – apare măcar o modificare, se va efectua o nouă epocă.
Procesul se încheie când ponderile se stabilizează, deci setul de instruire S e
învăt, at. Teorema 1 ne asigură că instruirea se termină după un număr finit
de modificări de ponderi.
Algoritmul de instruire a perceptronului este:

1. Init, ializează w(1) cu componente aleatoare sau cu vectorul nul; setează


k=1

2. Repetă{

(a) corectClasif icat = adevarat


(b) pentru i = 1, m
 
i. calculează ŷ (i) = f w(k)t · x(i)
ii. dacă ŷ (i) ̸= y (i) atunci:
A. corectClasif icat = f als

66
B. w(k + 1) = w(k) + αy (i) x(i)
C. k = k + 1

}până când corectClasif icat = adevarat

3. Vectorul w(k) este vectorul final de ponderi pentru perceptron, iar k


este numărul total de setări ale vectorului de ponderi w.

Des, i algoritmul modifică instantaneu ponderile pentru fiecare caz în care


ies, irea furnizată de perceptron nu coincide cu eticheta cunoscută, algoritmul
nu este incremental în sensul dat în sect, iunea ??, având de regulă nevoie de
mai multe epoci de instruire.
Faptul că algoritmul se opres, te după un număr finit de pas, i este demon-
strat în sect, iunea 5.7.
După ce algoritmul de instruire se opres, te, clasificarea unui vector ca
fiind de clasă pozitivă sau negativă se face ca în sect, iunea 5.3.

5.5 Exemplu numeric


Considerăm setul de instruire:

S = {((−4, 2), −1), ((−4, 6), −1), ((−2, 4), −1), ((3, −2), 1), ((5, −2), 1), ((4, 4), 1)}
(5.20)
unde un element de forma ((x, y), c) se interpretează ca: punctul de coordo-
nate (x, y) este de clasă c. Plecăm cu dreapta init, ială d : −5x − 10y + 1 = 0,
deci w = (1, −5, −10)t . Punctele s, i dreapta sunt reprezentate în figura
5.5. Observăm că dreapta d nu separă clasele. În algoritmul de instruire
considerăm α = 2.
Se itereează pe rând punctele, în ordinea dată în S . La punctul de
coordonate (−4, 2) valoarea ŷ este 1. Se face modificarea dictată de algoritm
s, i vectorul de ponderi w devine w = (−1, 3, −14)t , cu reprezentarea din
figura 5.6. Observăm că nici această dreaptă nu separă corect clasele, deci e
de as, teptat să se modifice vectorul de ponderi.
Punctele de coordonate (−4, 6), (−2, 4), (3, −2), (5, −2) sunt corect
clasificate de dreapta curentă. Punctul de coordonate (4, 4) este incorect
clasificat ca fiind negativ, deci se face modificare asupra ponderilor s, i se
obt, ine w = (1, 11, −6), deci dreapta va fi d : 11x−6y+1 = 0, cu reprezentarea
în figura 5.7. Algoritmul mai face o epocă de instruire; deoarece nu mai e
nevoie să se facă modificări asupra ponderilor w, algoritmul se opres, te la
finalul celei de a doua epoci.

67
Dreapta initiala d: −5 ⋅ x − 10 ⋅ y + 1 = 0
6 Clasa − 1
Clasa + 1

−2

−4 −2 0 2 4 6

Figura 5.5: Se pleacă cu dreapta d : −5x − 10y + 1 = 0.

k=1, d: 3 ⋅ x − 14 ⋅ y − 1 = 0
6 Clasa − 1
Clasa + 1
5

−1

−2
−4 −2 0 2 4 6

Figura 5.6: La prima eroare de clasificare dreapta se schimbă în d : 3x −


14y − 1 = 0.

68
k=2, d: 11 ⋅ x − 6 ⋅ y + 1 = 0
Clasa − 1
10.0 Clasa + 1

7.5

5.0

2.5

0.0

−2.5

−5.0

−7.5

−10.0
−4 −2 0 2 4 6

Figura 5.7: Dreapta este schimbată în algoritmul de instruire la d : 11x −


6y + 1 = 0.

5.6 Modificarea ponderilor ca algoritm de tip gra-


dient descent
Algoritmii de instruire pentru regresia liniară s, i cea logistică au folosit
gradient, ii unor funct, ii de eroare. Putem da s, i pentru perceptron o regulă
de instruire cu gradient, i, considerând funct, ia de eroare pentru tot setul de
instruire:
J(w) = (5.21)
X
ŷ (i) wt · x(i)
i:ŷ (i) ̸=y (i)

unde mult, imea peste care se face însumarea este mult, imea acelor cazuri din
S pentru care perceptronul are erori de clasificare.
În mod evident:

• atunci când perceptronul face clasificare corectă pentru tot setul de


instruire, funct, ia J are valoarea 0, deoarece suma se calculează peste o
mult, ime vidă;

• pentru un caz ŷ (i) ̸= y (i) avem că ŷ (i) wt · x(i) > 0 conform justificărilor
din cele două cazuri tratate la pagina 65.

Pentru un caz ŷ (i) ̸= y (i) oarecare, gradientul lui ŷ (i) wt · x(i) în raport cu
w este: h i h i
∇w ŷ (i) wt · x(i) = ŷ (i) ∇w wt · x(i) = ŷ (i) x(i) (5.22)

69
pentru ultimul pas a se vedea lucrarea [6] sect, iunea 2.4.1, ecuat, ia (69); s-a
mai folosit această proprietate s, i în capitolul de regresie liniară, ecuat, ia (2.29)
pagina 30.
Dacă aplicăm algoritmul gradient descent pentru h intrarea i curentă, în-
seamnă că modificăm ponderile actuale cu −α·∇w ŷ w · x
2 (i) t (i) = α(−ŷ (i) )x(i) =
αy (i) x(i) s, i recunoas, tem termenul de modificare a ponderilor din algoritmul
de instruire a perceptronului.
Se poate remarca o deosebire între algoritmul perceptronului s, i cei de
la regresia liniară sau logistică: la aces, tia din urmă funct, ia de eroare este
calculată pe tot setul de instruire, pe când în algoritmul perceptronului se
calculează eroarea s, i se aplică gradientul ei pentru fiecare caz de clasificare
gres, ită. Modificarea algoritmului perceptronului pentru a folosi funct, ia
agregată (5.21) s, i gradient, ii aferent, i este imediată. Am preferat algoritmul
de la pagina 66, fiind clasic.

5.7 Convergent, a perceptronului


Vom demonstra că algoritmul de instruire a perceptronului se termină în
număr finit de pas, i, dacă setul de instruire S este compus din două mult, imi
C1 , C2 liniar separabile.
Condit, ia de liniar separabilitate ne permite să spunem că există un vector
w∗ ∈ Rn+1 cu:

pentru x(i) ∈ C1 să avem w∗t · x(i) > 0


(
(5.23)
pentru x(i) ∈ C2 să avem w∗t · x(i) < 0

(a se revedea condit, iile 5.10), sau, mai pe scurt,

y (i) · w∗t · x(i) > 0 pentru orice i, 1 ≤ i ≤ m (5.24)

Putem presupune că vectorul w∗ este de normă 1; în caz contrar se poate


face normarea lui3 , iar inegalitatea din (5.24) rămâne adevărată.
Întrucât numărul de elemente din setul de instruire este finit, putem găsi
γ > 0 astfel încât:

y (i) · w∗t · x(i) > γ pentru orice i, 1 ≤ i ≤ m (5.25)

de exemplu
1 n o
γ= · min y (i) · w∗t · x(i) > 0 (5.26)
2 1≤i≤m
2
Ca s, i până acum, α > 0 este rata de învăt, are.
3
Un vector nenul împărt, it la norma lui produce un vector de normă 1. Se observă că
norma lui w∗ nu poate fi 0: dacă ar fi, atunci tot vectorul ar fi 0, iar inecuat, ia 5.24 nu ar
mai putea fi îndeplinită pentru niciun i.

70
Deoarece vectorul w∗ nu este cunoscut (s, tim însă că există, pentru că C1
s, i C2 sunt liniar separabile), cantitatea γ e s, i ea necunoscută. Considerarea
ei e totus, i utilă pentru demonstrarea convergent, ei algoritmului de instruire
a perceptronului.
Tot datorită faptului că mult, imea de instruire e finită, avem că există un
R > 0 astfel încât ∥x(i) ∥ ≤ R: tot, i vectorii de intrare din setul de instruire
sunt cuprins, i în interiorul unei hiper–sfere centrate în origine s, i de rază R
suficient de mare. Putem, de exemplu, să luăm
n o
R = max ∥x(i) ∥ (5.27)
1≤i≤m

Două presupuneri care simplifică partea de demonstrat, ie pentru teorema


ce urmează sunt:
1. α = 1; valoarea lui α nu are important, ă în algoritm, atâta timp cât e
mai mare ca zero;

2. init, ial vectorul w(1) are toate elementele 0.


Teorema 1. (Teorema de convergent, ă a perceptronului) Algoritmul de instru-
ire a perceptronului efectuează mai put, in de R2 /γ 2 modificări ale ponderilor,
după care returnează un hiperplan de separare.

Demonstraţie. Pentru k ≥ 1, fie un x(i) clasificat gres, it de perceptron, adică


f (w(k)t x(i) ) ̸= y (i) , sau, echivalent:

f (w(k)t x(i) ) ̸= y (i) ⇔ y (i) · w(k)t x(i) < 0 (5.28)

Pentru această situat, ie de clasificare gres, ită a unui vector din setul de
instruire, algoritmul efectuează modificare a lui w(k) conform ecuat, iei (5.18).
Avem:

w(k + 1)t · w∗ = (w(k) + y (i) x(i) )t · w∗ (5.29)


= w(k) · w∗ + y (x ) · w∗
t (i) (i) t
(5.30)
| {z }
>γ cf. (5.26)

> w(k) · w∗ + γ
t
(5.31)

Prin induct, ie matematică s, i t, inând cont că w(1) = 0, se arată că:

w(k + 1)t · w∗ > kγ (5.32)

Folosim inegalitatea Cauchy—Schwartz (|at · b| ≤ ∥a∥ · ∥b∥), faptul că


pentru orice număr real z avem că z ≤ |z| s, i obt, inem:

w(k + 1)t · w∗ ≤ |w(k + 1)t · w∗ | ≤ ∥w(k + 1)∥ · ∥w∗ ∥ = ∥w(k + 1)∥(5.33)


| {z }
=1

71
s, i din (5.32) s, i (5.33) avem:

∥w(k + 1)∥ > kγ (5.34)

Pe de altă parte, avem că:

∥w(k + 1)∥2 = ∥w(k) + y (i) x(i) ∥2 (5.35)


= (w(k) + y x ) · (w(k) + y x )
(i) (i) t (i) (i)
(5.36)
= ∥w(k)∥ + ∥y x ∥ + 2w(k) · x
2 (i) (i) 2 t (i)
·y (i)
(5.37)
= ∥w(k)∥ + |y | · ∥x ∥ + 2w(k) · x
2 (i) 2 (i) 2 t (i)
·y (i)
(5.38)
| {z } | {z } | {z }
=1 ≤R2 <0 cf. (5.28)

< ∥w(k)∥ + R 2 2
(5.39)

Ţinând cont că w(1) = 0n+1 , prin induct, ie matematică se arată că:

∥w(k + 1)∥2 < kR2 (5.40)

Din inecuat, iile (5.34) s, i (5.40) rezultă că:

k 2 γ 2 < ∥w(k + 1)∥2 ≤ kR2 (5.41)

s, i deci k < R2 /γ 2 .

Am obt, inut deci că indicele k pentru care se fac modificare de ponderi nu


poate fi oricât de mare, deci algoritmul se termină în timp finit. Finalizarea
lui înseamnă totodată obt, inerea unui set de ponderi pentru forma de separare
liniară care să clasifice corect cazurile din setul de instruire.
Comentariu: Deoarece valoarea lui γ nu e cunoscută, rezultatul de mai
sus nu ne spune care e numărul maxim de pas, i necesari. Totus, i, s-a găsit
o dovadă că algoritmul nu rulează la infinit. Din criteriul de terminare a
algoritmului deducem că la final avem un perceptron care separă C1 de C2 .

5.8 Algoritmul lui Gallant


Algoritmul lui Gallant – sau algoritmul “buzunarului” – tratează cazul
în care setul de instruire nu este liniar separabil. Ideea algoritmului este de
a ment, ine vectorul w de ponderi care face cele mai put, ine erori de clasificare
pentru date succesive. La finalul unei epoci se contorizează câte cazuri
din setul de instruire sunt corect clasificate de vectorul curent de ponderi.
Dacă numărul de clasificări corecte este mai mare decât pentru vectorul
ment, inut până până acum într-un “buzunar” (la început: vectorul w(1) cu
număr de clasificări corecte produse de el), atunci se actualizează cont, inutul
“buzunarului”: vectorul curent de ponderi s, i numărul de clasificări corecte.
Procesul se repetă de un număr de ori specificat. La final se returnează
vectorul de ponderi din “buzunar”.

72
5.9 Comentarii
Spre deosebire de regresia logistică, perceptronul liniar nu produce o
valoare care să exprime în ce măsură modelul consideră că un vector de intrare
apart, ine clasei pozitive, P (C1 |x). Totus, i, vine cu demonstrat, ie matematică
pentru convergent, ă, dacă o varietate liniară desparte clasa pozitivă de cea
negativă.
La momentul aparit, iei, perceptronul liniar a fost privit ca un motiv clar
pentru care problemele cele mai complexe sunt rezolvabile prin perceptroni.
Cartea Perceptrons 4 a lui Minsky si Papert, din 1969, arată însă că percep-
tronul nu poate rezolva probleme care sunt neseparabile liniar, de exemplu
problema XOR. Conjectura lor că utilizarea de mai mult, i perceptroni nu
poate să ducă la rezolvarea de probleme neseparabile liniar a devenit extrem
de populară, motiv pentru care cercetările în domeniul ret, elelor neurale
artificiale au fost descurajate. Revenirea s–a produs în 1986, când Rume-
lhart, Hinton s, i Williams5 au propus o procedură de învăt, are pentru ret, ele
cu mai multe straturi de neuroni neliniari care permitea abordarea claselor
neseparabile liniar.
Setul de instruire pentru problema XOR este următorul:
n o
((0, 0)t , 0), ((1, 1)t , 0), ((1, 0)t , 1), ((0, 1)t , 1)

unde fiecare din cele 4 tuple contine o pereche de valori de intrare din {0, 1}2
împreună cu eticheta de clasă asociată, 0 sau 1. Reprezentarea este dată în
figura 5.8.
y
1

1 x
Figura 5.8: Problema XOR. Clasele sunt marcate cu forme diferite. Se poate
demonstra că nu există o dreaptă în plan care să aibă de o parte a ei doar
puncte din clasa “0” s, i de cealaltă parte doar puncte de clasă “1”.

Demonstrăm algebric că nu există un vector de 3 ponderi (w0 , w1 , w2 )t ∈


R3 pentru care:
sgn(w0 · 1 + w1 · 0 + w2 · 0) = sgn(w0 · 1 + w1 · 1 + w2 · 1) = 1 (5.42)
4
Marvin Minsky s, i Seymour Papert, Perceptrons: an introduction to computational
geometry, MIT Press, 1969.
5
David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams, Learning representations
by back-propagating errors, Nature, volume 323, issue 6088, pp. 533-536, 1986.

73
iar

sgn(w0 · 1 + w1 · 0 + w2 · 1) = sgn(w0 · 1 + w1 · 1 + w2 · 0) = −1 (5.43)

Incompatibilitatea sistemului de ecuat, ii (5.42, 5.43) se arată us, or: să


presupunem că ar exista w0 , w1 , w2 care să satisfacă (5.42, 5.43), pe care le
rescriem echivalent:

w0 · 1 + w1 · 0 + w2 · 0 > 0 (5.44a)
w0 · 1 + w1 · 1 + w2 · 1 > 0 (5.44b)
w0 · 1 + w1 · 0 + w2 · 1 < 0 (5.44c)
w0 · 1 + w1 · 1 + w2 · 0 < 0 (5.44d)

Grupând primele s, i ultimele două inecuat, ii s, i adunând, obt, inem:

2 · w0 + w1 + w2 > 0 (5.45a)
2 · w0 + w1 + w2 < 0 (5.45b)

Pentru problema n–dimensională, clasa de ies, ire pentru vectorul binar


x ∈ {0, 1}n este 1 dacă numărul de componente 1 este impar, altfel 0. Se
poate arăta că s, i pentru cazul n dimensional problema nu e rezolvabilă
printr–un separator liniar.

74
Capitolul 6

Perceptronii multistrat

Ret, elele neurale multistrat — sau perceptronii multistrat, multilayer


perceptrons (MLP) — sunt folosite pentru probleme de regresie, de clasificare
s, i de estimare de probabilităt, i condit, ionate. Instruirea este supervizată. Sunt
cea mai populară variantă de ret, ele neurale artificiale s, i fac parte din familia
ret, elelor cu propagare înainte.

6.1 Motivat, ie pentru ret, ele neurale multistrat


Conform celor din cursul precedent, un perceptron liniar este capabil să
găsească un hiperplan de separare pentru două mult, imi, dacă – s, i numai
dacă – ele sunt liniar separabile. Există însă exemple de clase de puncte care
nu sunt liniar separabile — s, i deci nerezolvabile de către perceptronul liniar
— dar pentru care separare se poate, totus, i, face. În plus, dorim să rezolvăm
s, i altfel de probleme decât de clasificare binară: regresie (estimare de valoare
de ies, ire de tip continuu), estimare de probabilitate condit, ionată, clasificarea
oricâtor clase. Cursul de fat, ă descrie un model bazat pe straturi de neuroni
cu funct, ii de activare neliniare, împreună cu algoritmul de învăt, are asociat,
în care se pot rezolva toate aceste tipuri de probleme.
În capitolul anterior s–a dat un exemplu clasic de două mult, imi care nu
sunt liniar separabile s, i deci, un perceptron liniar nu le poate discrimina. Un
alt exemplu este dat în figura 6.1.

Figura 6.1: Două clase de puncte ce nu sunt liniar separabile

75
Intuim că un singur neuron e prea put, in pentru probleme complexe
de separare. Totodată, concatenarea mai multor neuroni cu funct, ie de
activare liniară este echivalentă cu produsul dintre vectorul de intrare si
o matrice rezultată din înmult, irea unei succesiuni de matrice de ponderi.
Datorită faptului că înmult, irea de matrice produce tot o matrice, operat, ia
este echivalentă cu înmult, irea unei matrice cu vectorul de intrare. Obt, inem
de aici că succesiunea de neuroni cu funct, ie de activare liniară este echivalentă
cu un singur strat de neuroni cu funct, ie de activare liniară.
Vom folosi deci mai mult, i neuroni, iar funct, iile lor de activare vor fi
neliniare.

6.2 Notat, ii
Tabelul 6.1 cont, ine notat, iile care se folosesc în acest curs.

6.3 Setul de instruire


Ret, elele din acest capitol sunt pentru instruire de tip supervizat. Setul
de instruire este:
n     o
S = x(1) , y(1) , x(2) , y(2) , . . . , x(p) , y(p) (6.1)

unde x(i) ∈ Rn iar y(i) este eticheta asociată intrării i (eng: ground truth),
după caz:

• pentru o problemă de regresie: vector din Rm ;

• pentru o problemă de clasificare sau estimare de probabilităt, i pentru m


clase: vectori de forma (1, 0, . . . , 0)t , (0, 1, 0, . . . , 0)t , . . . , (0, 0, . . . , 0, 1)t
cu m valori binare, din care cea de pe pozit, ia aferentă clasei curente
este unu iar restul sunt zero1 .

6.4 Ret, eaua neurală MLP


6.4.1 Arhitectură
Există mai multe modalităt, i de dispunere a neuronilor artificiali într–o
ret, ea neurală; noi vom folosi o arhitectură de tip multistrat, feedforward, nu-
mită perceptron multistrat – chiar dacă neuronii folosit, i nu sunt perceptroni,
ci neuroni cu funct, ie de activare neliniară. O ret, ea multistrat se compune
din minim trei straturi:
1
As, a–numita codificare one–hot sau 1-din-m.

76
Not, iune sau notat, ie Explicat, ie
p numărul de perechi din setul de instruire
x(i) vector de intrare din setul de instruire,
(i) t
 
(i)
x(i) = x1 , . . . , xn , 1 ≤ i ≤ p
y(i) ies, irea asociată intrării x(i) , din setul de instruire,
(i) t
 
(i)
y(i) = y1 , . . . , ym , 1 ≤ i ≤ p
L numărul de straturi din ret, eaua neurală, inclusiv
straturile de intrare s, i de ies, ire
nod neuron – dacă apare în stratul 1, 2, . . . , L − 1 – sau
nod de intrare – dacă apare în primul strat (de indice 0)
nl numărul de noduri din stratul l, 0 ≤ l ≤ L − 1; n0 = n, nL−1 = m
[l]
zi starea neuronului i din stratul l, 1 ≤ l ≤ L − 1, 0 ≤ i ≤ nl
z[l] vectorul cont, inând stările neuronilor
[l] t
 
[l]
din stratul l, z[l] = z1 , . . . , znl , 1 ≤ l ≤ L − 1
[l]
ai activarea, valoarea de ies, ire a celui de al i–lea nod din stratul l,
0 ≤ l ≤ L − 1, 1 ≤ i ≤ nl
a[l] vectorul cu activările nodurilor din stratul l,
[l] t
 
[l]
0 ≤ l ≤ L − 1, a[l] = a1 , . . . , anl
[l]
wij ponderea legăturii între neuronul i de pe stratul l
s, i nodul j de pe stratul l − 1, 1 ≤ l ≤ L − 1,
1 ≤ i ≤ nl , 1 ≤ j ≤ nl−1
W[l] matricea de ponderi dintre straturile l − 1 s, i l,
[l] [l]
1 ≤ l ≤ L − 1, Wij = wij , 1 ≤ i ≤ nl , 1 ≤ j ≤ nl−1
[l]
Wi linia i a matricei W[l] , 1 ≤ l ≤ L − 1, 1 ≤ i ≤ nl
[l]
bi ponderea de bias pentru neuronul i din stratul l,
1 ≤ l ≤ L − 1, 1 ≤ i ≤ nl
b[l] vectorul ponderilor de bias către stratul l,
[l] t
 
[l]
b[l] = b1 , . . . , bnl , 1 ≤ l ≤ L − 1
f [l] funct, ie de activare a neuronilor din stratul l, 1 ≤ l ≤ L − 1
W secvent, a de matrice de ponderi (W1 , W2 , . . . , WL−1 )
b  secvent, a de vectori de ponderi de bias (b , b, . . . , b
1 2 L−1 )

J W, b; x(i) , y(i) eroarea pentru perechea de vectori x(i) , y(i)


J (W, b) eroare empirică medie pentru set de vectori cu etichete cunoscute
ŷ(i) vector coloană de ies, ire corespunzător intrării x(i) ,
calculat de ret, ea
δl vectorul cu semnalul de eroare pentru stratul l, 1 ≤ l ≤ L − 1
⊙ produs Hadamard

Tabelul 6.1: Notat, ii folosite pentru MLP

77
• strat de intrare ce preia valorile de intrare; nu are rol computat, ional,
nu este format din neuroni2 ;

• măcar un strat ascuns, compus din neuroni;

• strat de ies, ire, de asemenea compus din neuroni, produce valori estimate
care sunt apoi comparate cu ies, irile dorite.

Începem numerotarea straturilor de la 0. Neuronii din straturile ascunse


produc trăsături noi pe baza vectorilor de intrare s, i a funct, iilor de activare
neliniare, trăsături care sunt mai apoi necesare ret, elei neurale pentru produ-
cerea unei estimări. Este posibil ca o ret, ea să aibă mai mult de un neuron în
stratul de ies, ire, as, a cum se vede în figura 6.3.
Instruirea e mai eficientă dacă pe lângă valorile de intrare s, i pe lângă
valorile calculate de un strat de neuroni se mai furnizează o valoare constantă,
de regulă +1, înmult, ită cu o pondere de bias 3 . Ponderile dintre straturi
precum s, i aceste ponderi de bias sunt instruibile, adică se vor modifica prin
procesul de învăt, are4 .
O reprezentare de ret, ea neurală cu trei straturi s, i o ies, ire este dată în
figura 6.2; o ret, ea cu 4 straturi s, i două ies, iri este reprezentată în figura 6.3.
Nu există o relat, ie anume între numărul de straturi ascunse, numărul de
neuroni de pe aceste straturi s, i numărul de noduri de intrare s, i ies, ire.
Vom considera că avem L ≥ 3 straturi s, i în fiecare strat ascuns l (1 ≤
l ≤ L − 1) un număr de nl noduri. Stratul de intrare are n0 = n noduri,
numărul de neuroni din stratul de ies, ire este nL−1 = m dat de: numărul
de clase pentru care se face recunoas, terea (la problemă de clasificare sau
estimare de probabilitate condit, ionată) respectiv numărul de ies, iri care se
doresc a fi aproximate (la regresie).
Pentru oricare dintre figurile 6.2 s, i 6.3:

• valorile x1 , x2 , x3 sunt componentele vectorului de intrare x = (x1 , x2 , x3 )t ;


se mai consideră încă o intrare cu valoarea constantă +1, aferentă coe-
ficientului de bias;
[l]
• valoarea ai este ies, irea (activare) nodului i din stratul l, 0 ≤ l ≤ L − 1,
1 ≤ i ≤ nl . Pentru stratul de intrare activările sunt chiar intrările, i.e.
[0]
ai = xi ;
2
Motiv pentru care unii autori nu îl consideră un strat propriu–zis; frecvent se foloses, te
exprimarea că o ret, ea are “k” straturi ascunse, cele de intrare s, i ies, ire existând oricum. În
cele ce urmează considerăm intrarea ca formând un strat.
3
Unii autori consideră valoarea constantă -1 în loc de +1; nu e esent, ial, deoarece
ponderile sunt sunt determinate prin instruire s, i pot avea orice semn.
4
O discut, ie asupra necesităt, ii considerării bias–ului este la ht-
tps://web.archive.org/web/20210207195343/ftp://ftp.sas.com/pub/neural/FAQ2.html

78
• valoarea hW,b (x) este ies, irea calculată de către ret, ea pentru vectorul
curent de intrare x; hW,b (x) ∈ R pentru figura 6.2; hW,b (x) ∈ R2 pen-
tru figura 6.3. Ret, eaua din figura 6.2 poate fi folosită pentru estimarea
unei valori continue (problemă de regresie) sau pentru estimare de
probabilitate condit, ionată pentru două clase. Ret, eaua din figura 6.3
se poate folosi pentru estimarea a două valori de ies, ire, numere reale –
problemă de regresie.

+1

+1

Figura 6.2: Ret, ea MLP cu 3 straturi. Poate fi folosită pentru estimarea unei
valori continue (problemă de regresie) sau pentru discriminare/estimare de
probabilitate condit, ionată pentru două clase.

+1 +1

+1

Figura 6.3: Ret, ea MLP cu 4 straturi ce se poate folosi pentru estimarea a


două valori de ies, ire.

Perechea (W, b) este formată din matricele ponderilor s, i a coeficient, ilor


de bias din în ret, ea. Folosim următoarele notat, ii:
• ponderile dintre stratul de intrare s, i stratul ascuns sunt cont, inute în
[1]
matricea W[1] : wij este ponderea legăturii dintre neuronul i al stratului

79
(a) Ponderile dintre nodul j din (b) Valoarea de bias s, i ponderile
stratul l − 1 s, i nodurile din stratul dintre stratul l − 1 s, i nodul i din
l. stratul l.

Figura 6.4: Legăturile între noduri din straturile l − 1 s, i l.

al doilea (de indice 1) s, i nodul j din stratul de intrare; se remarcă


ordinea indicilor inferiori, utilă mai departe pentru operat, iile folosite;
[l]
• în general, notăm cu wij ponderea legăturii dintre al i–lea neuron din
stratul de indice l s, i al j–lea nod (neuron sau nod de intrare) din stratul
l − 1 (1 ≤ l ≤ L − 1); a se vedea figurile 6.4a, 6.4b. Ele formează
matricea de ponderi:
 [l] [l] 
w11 ... w1nl−1
 . .. .. 
W[l]  ..
= . .  (6.2)

[l] [l]
wnl 1 . . . wnl nl−1

cu nl × nl−1 ponderi;

• valoarea ponderii de bias dintre intrarea constantă +1 din stratul de


[1]
intrare s, i neuronul i din primul strat ascuns este bi , 1 ≤ i ≤ n2 ;

• în general, ponderea de bias provenind din stratul l − 1 (1 ≤ l ≤ L − 1)


[l]
s, i pentru neuronul i din stratul l este notată cu bi , 1 ≤ i ≤ nl , — figura
[l]
6.4b. Coeficient, ii bi formează vectorul coloană b[l] cu nl coeficient, i.

Datorită faptului că avem legături între oricare doi neuroni aflati pe


straturi succesive, ret, elele MLP se mai numesc s, i dens conectate (eng: fully
connected networks). Există alte tipuri de ret, ele (de exemplu cele de tip
convolut, ional, capitolul 8) care folosesc legături mai rare.

80
6.4.2 Funct, ii de activare
Fiecare neuron agregă valorile din nodurile din stratul anterior – incluzând
s, i termenul constant +1 înmult, it cu coeficientul de bias. Neuronul de indice
i din stratul l ≥ 1 are starea calculată ca:
[l] [l] [l−1] [l] [l−1] [l] [l]
zi = wi1 · a1 + wi2 · a2 + · · · + wi,nl−1 · a[l−1]
nl−1 + bi (6.3)
[l] [l]
= Wi · a[l−1] + bi , 1 ≤ i ≤ nl (6.4)
[l] [l−1]
unde: Wi este linia i a matricei W[l] , ai este, după caz: valoarea de ies, ire
a neuronului i din stratul l − 1 (dacă l ≥ 1) sau valoarea xi din vectorul de
[l] [l]
intrare curent (dacă l = 0); evident, vectorul a[l] este (a1 , . . . , anl )t . Notând
[l] t
 
[l] [l]
cu z[l] vectorul coloană z1 , z2 , . . . , znl , putem scrie matricial:

z[l] = W[l] · a[l−1] + b[l] , 1 ≤ l ≤ L − 1 (6.5)


[l]
Pe baza stării zi a neuronului i din stratul l se calculează ies, irea (activa-
rea) – sa folosind funct, ia de activare f [l] :
 
[l] [l]
ai = f [l] zi (6.6)
 
def
pentru 1 ≤ l ≤ L−1, 1 ≤ i ≤ nl . Dacă folosim notat, ia f [l] (z1 , z2 , . . . , zk )t =
 t
f [l] (z1 ), f [l] (z2 ), . . . , f [l] (zk ) – adică se aplică funct, ia f [l] pe fiecare valoare
din vectorul argument – atunci putem scrie mai compact ecuat, ia (6.6) sub
forma:  
a[l] = f [l] z[l] (6.7)

Funct, ia de activare f [l] (·) este necesară în pasul de propagare înainte;


pentru pasul de propagare înapoi a erorii este folosită derivata ei. Alegeri
populare pentru funct, ia de activare sunt:
1. funct, ia logistică sigmoidă:
1
f = σ : R → (0, 1), f (z) = σ(z) = (6.8)
1 + exp(−z)
Derivata acestei funct, ii este:
σ ′ (z) = σ(z) · (1 − σ(z)) (6.9)

2. funct, ia tangentă hiperbolică:


f = tanh : R → (−1, 1),
exp(z) − exp(−z)
f (z) = tanh(z) = (6.10)
exp(z) + exp(−z)
2
= −1 (6.11)
1 + exp(−2z)

81
a cărei derivată este:
tanh′ (z) = 1 − tanh2 (z) (6.12)
Se arată us, or că între cele două funct, ii de activare tanh s, i σ există
relat, ia:
tanh(z) = 2 · σ(2z) − 1 (6.13)
În practică funct, ia tanh dă rezultate mai bune decât sigmoida logistică.
O explicat, ie teoretică se găses, te în [7]; rezultate empirice sunt în [8].
Atât sigmoida logistică, cât s, i tangenta hiperbolică au problema gradient, ilor
mici (eng. vanishing gradients): pentru acei z pentru care σ(z) ≈ 0,
σ(z) ≈ 1, tanh(z) ≈ −1, tanh(z) ≈ 1 avem că derivatele lor sunt
apropiate de zero. Întrucât derivatele sunt mai departe folosite prin
înmult, ire, modificările ponderilor vor fi nesemnificative s, i învăt, area va
stagna.
3. funct, ia liniară:
f (z) = a · z + b (6.14)
cu derivata f ′ (z) = a; frecvent se iau a = 1, b = 0 (funct, ie identitate,
f (z) = z). Este utilizată dacă se dores, te ca la ies, ire valorile să fie
în afara intervalelor (0, 1) s, i (−1, 1), cum se întâmplă la funct, iile de
activare de mai sus.
4. funct, ia softmax:
exp(zi )
sof tmax(z; i) = P
m (6.15)
exp(zj )
j=1

unde i este indicele neuronului, iar m este numărul total de valori din
vectorul z. Funct, ia softmax a mai fost folosită la regresia logistică
pentru cazul a mai mult de două clase; z este vector cu valori de stare
a neuronilor, z = (z1 , . . . , zm )t .
Funct, ia softmax este utilă pentru a transforma un vector de valori oa-
recare în distribut, ie de probabilitate: se arată us, or că sof tmax(z; c) ∈
(0, 1) ∀c s, i m
c=1 sof tmax(z; c) = 1. De regulă, sof tmax se foloses, te
P

pentru stratul de ies, ire s, i valorile furnizate se interpretează convenabil


drept probabilitatea ca intrarea curentă să fie de clasă c, 1 ≤ c ≤ m; cla-
sificarea se face găsind acel indice 1 ≤ c ≤ m pentru care sof tmax(z; c)
este maxim. Se utilizează în stratul de ies, ire a ret, elei neurale de
clasificare sau estimare de probabilitate.
Derivatele part, iale ale funct, iei softmax sunt:
sof tmax(z; i) · (1 − sof tmax(z; i)) dacă i = j
(
∂sof tmax(z; i)
=
∂zj −sof tmax(z; i) · sof tmax(z; j) dacă i =
̸ j
(6.16)

82
Putem folosi funct, ia delta al lui Kronecker: δij = 1 dacă i = j s, i 0
altfel s, i rescriem (6.16) ca:

∂sof tmax(z; i)
= sof tmax(z; i) · (δij − sof tmax(z; j)) (6.17)
∂zj

5. funct, ia Rectified Linear Unit (ReLU):

0 dacă z ≤ 0
(
ReLU (z) = max(0, z) = (6.18)
z dacă z > 0

Derivatele pe subintervale sunt us, or de calculat s, i cu evaluare rapidă.


În plus, spre deosebire de sigmoida logistică s, i de tangenta hiperbolică,
ele nu saturează.
Reprezentarea grafică e dată în figura 6.5.

10

6
ReLU(x)

0
10.0 7.5 5.0 2.5 0.0 2.5 5.0 7.5 10.0
x

Figura 6.5: Graficul funct, iei de activare ReLU

Chiar dacă funct, ia este liniară pe port, iuni, ea este neliniară în ansamblu.
Faptul că doar într–un punct nu e derivabilă nu deranjează în practică.
Derivata funct, iei ReLU în origine se ia în mod convenabil5 1. Avem
deci:
0 dacă z ≤ 0
(

ReLU (z) = (6.19)
1 dacă z > 0

Teoretic, există posibilitatea ca o mare parte din neuronii care folosesc


ReLU să producă activare 0; asta se poate întâmpla, de exemplu, dacă
valorile de bias sunt negative s, i foarte mici. E foarte probabil ca un
5
Convine mai mult să considerăm derivata în 0 ca fiind 1: gradient egal cu 0 ar însemna
că nu se face modificarea ponderilor.

83
astfel de neuron să devină insensibil la orice intrare s, i să producă mereu
0; spunem despre el că e un ReLU mort (eng. dying ReLU). Dacă toate
activările sunt 0, ret, eaua va produce o valoare constantă indiferent de
intrare. Chiar s, i la învăt, are avem problemă, căci gradientul pentru un
ReLU mort este 0, deci ponderile neuronului lui nu se modifică.

6. funct, ia Parametric ReLU (PReLU), reprezentând o us, oară gene-


ralizare a funct, iei ReLU:

dacă z ≤ 0
(
αz
P ReLU (z) = (6.20)
z dacă z > 0

cu α > 0. Graficul funct, iei pentru α = 0.1 este dat în figura 6.6.
Derivatele pe subintervale sunt:

dacă z ≤ 0
(
α
P ReLU ′ (z) = (6.21)
1 dacă z > 0

Pentru α = 0.01 se obt, ine un caz particular vehiculat în literatură,


Leaky ReLU.
PRelu rezolvă problema “dying ReLU”, deoarece permite modificarea
ponderilor, chiar dacă starea neuronului este negativă.

10

6
PReLU(x)

10.0 7.5 5.0 2.5 0.0 2.5 5.0 7.5 10.0


x

Figura 6.6: Graficul funct, iei de activare PReLU pentru α = 0.1

7. funct, ia Exponential Linear Units (ELU) este definită ca:

α(ez − 1) dacă z ≤ 0
(
f (z) = max(α(e − 1), z) = z
(6.22)
z dacă z > 0

84
cu 0 < α ≪ 1. Graficul este dat în figura 6.7. Derivata lui ELU este:

dacă z ≤ 0
(
′ α · ez
f (z) = (6.23)
1 dacă z > 0

2.0

1.5

1.0
ELU(x)

0.5

0.0

2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0


x

Figura 6.7: Graficul funct, iei de activare ELU pentru α = 0.1

8. funct, ia Swish:
z
Swish(z) = z · σ(βz) = (6.24)
1 + exp(−βz)
unde σ este logistica sigmoidă, β este parametru constant sau antrenabil.
Se arată6 că pentru ret, ele cu multe straturi Swish funct, ionează mai
bine decât ReLU. Reprezentarea ei este dată în figura 6.8. Derivata ei
este:
Swish′ (z) = σ(βz)(1 + βz − βzσ(βz))) (6.25)

Lista funct, iilor de activare de mai sus nu e deschisă. Este admis ca


funct, ia de activare să difere de la strat la strat sau de la neuron la neuron.
În practică se preferă folosirea aceleias, i funct, ii de activare în toată ret, eaua,
exceptând eventual ultimul strat.

6.5 Pasul de propagare înainte


Odată ce arhitectura ret, elei e fixată – numărul de straturi ascunse s, i
numărul de neuroni în fiecare strat, precum s, i funct, iile de activare – se poate
trece la instruirea s, i apoi utilizarea ei. Pasul de propagare înainte preia un
6
Prajit Ramachandran, Barret Zoph, Quoc V. Le, “Searching for Activation Functions”,
https://arxiv.org/abs/1710.05941

85
Figura 6.8: Graficul funct, iei de activare Swish pentru β ∈ {0.5, 2}

vector de intrare x = (x1 , . . . , xn )t s, i produce modificări în starea neuronilor


ret, elei pornind de la intrare, act, ionând succesiv asupra straturilor 1, . . . , L−1.
Aceasta dă s, i numele familiei din care face parte ret, eaua: “cu propagare
înainte” – eng. “feedforward”. Ies, irile din ultimul strat sunt folosite pentru
predict, ie – regresie, estimare de probabilitate condit, ionată sau clasificare.
După cum s–a mai afirmat, stratul de intrare nu are rol computat, ional;
valoare sa de ies, ire este chiar vectorul de intrare – considerat ca vector
coloană – x furnizat ret, elei:
a[0] = x (6.26)
Dacă se cunosc valorile de ies, ire ale nodurilor din stratul l − 1 se pot calcula
stările neuronilor din stratul l s, i apoi valorile lor de ies, ire, astfel:

z[l] = W[l] · a[l−1] + b[l] (6.27)


a[l] = f [l] (z[l] ) (6.28)

pentru l = 1, . . . L − 1, cu f [l] (·) funct, ie de activare. Vom nota cu ŷ vectorul


de m valori de ies, ire produs de către ret, ea:

ŷ = a[L−1] (6.29)

Pentru cazul în care se lucrează pe un set de date format din pe-


rechi vectori intrare–ies, ire, vectorii coloană de date de intrare se pot con-
catena
n pe orizontală
 într–o
 matrice
 X.o De exemplu, pentru mult, imea
(1)
x ,y (1) (2)
, x ,y (2) (k)
,..., x ,y (k) , matricea X se formează ca:
 
| ... |
X = x(1) ... x(k)  (6.30)
 
| ... |

86
În cele ce urmează, se poate să avem X ca fiind matricea formată cu
toate datele x(1) , . . . , x(p) din setul de instruire, sau doar cu un es, antion al
acestora de k vectori (eng. mini-batch). În particular, acest minibatch poate
fi format dintr-un singur vector de date, x(i) .
Propagarea înainte presupune că la intrare este furnizat un set de date X
de k coloane. Intrarea dată este propagată înainte prin ret, ea s, i transformată
succesiv:

Z[1] = W[1] · X + b[1] = W[1] · A[0] + b[1] (6.31)


 
A[1] = f [1] Z[1] (6.32)
Z[2] = W[2] · A[1] + b[2] (6.33)
 
A [2]
=f [2]
Z [2]
(6.34)
...
Z[L−1] = W[L−1] · A[L−2] + b[L−1] (6.35)
 
A[L−1] = f [L−1] Z[L−1] (6.36)

Z[l] s, i A[l] sunt matrice cu nl linii s, i k coloane. Pentru adunările din (6.31,
6.33, 6.35) se consideră că se aplică mecanismul de “broadcasting”: vectorii
coloană b[l] produc prin copiere matrice cu k coloane.
Matricea A[L−1] cont, ine k coloane cu predict, ii, corespunzătoare celor k
vectori de intrare din X.
În practică, se recomandă ca operat, iile date mai sus să fie implementate
folosind biblioteci optimizate de algebră liniară, ce permit înmult, irea eficientă
de matrice s, i calcul pe CPU sau GPU — Octave, Matlab, NumPy, PyTorch,
Tensorflow, CuPy etc.

6.6 Funct, ii de cost


O pereche (x ∈ Rn , y ∈ Rm ) va produce o valoare de eroare astfel: se
furnizează vectorul x ca intrare în ret, ea s, i se calculează un vector de ies, ire
ŷ, reprezentând estimarea produsă de ret, ea pentru intrarea furnizată; se
foloses, te o funct, ie de cost, sau de eroare, J (W, b; x, y) care se dores, te a fi cu
atât mai mică cu cât vectorul ŷ e mai apropiat de y, s, i cu atât mai mare cu
cât cei doi vectori sunt mai depărtat, i. În plus, se mai consideră un termen de
regularizare care împiedică ponderile să devină prea mari în valoare absolută,
caz asociat de regulă cu un comportament instabil al ret, elei: variat, ii mici
ale intrării duc la salturi mari în straturile ascunse s, i la ies, ire.
Să considerăm că avem un set de date pentru care dorim să calculăm
funct, ia de eroare (de cost). Vectorii de intrare sunt organizat, i în batch ca în
ecuat, ia (6.30), unde pentru fiecare vector coloană x(i) avem o etichetă y(i)
asociată.

87
Forma generală a funct, iei de eroare calculată pentru setul de date etiche-
tate X cu k date etichetate este:
eroare empirică pentru(x(i) ,y(i) )
 
k
1 X z  }| { 
J(W, b) =  J W, b; x(i) , y(i)
 

k 
i=1

| {z }
Eroarea empirică medie pe setul X
L−1 nl nX
l−1 
λ [l] 2

+ (6.37)
XX
wij
2 l=1 i=1 j=1
| {z }
Termen de regularizare Jreg

unde λ > 0 este coeficientul de regularizare. Factorul de regularizare este


aici regularizarea L2 , o sumă de pătrate de norme Frobenius ale matricelor
W[1] , . . . , W[L−1] :
nl nX
l−1 
2 defX [l] 2

W[l] = wij (6.38)
F
i=1 j=1

Regularizarea impune o presiune asupra ponderilor – ele sunt direct, ionate


spre 0. O subliniere importantă este că ponderile de bias nu sunt regularizate;
de aceea vectorii b[1] , . . . , b[L−1] nu apar în termenul de regularizare; la fel
s-a întâmplat s, i la modelele studiate anterior.
Cu norma Frobenius, termenul de regularizare Jreg din (6.37) se scrie
succint:
λ L−1 2
Jreg (W) = (6.39)
X
W[l]
2 l=1 F

6.6.1 Funct, ia de cost pentru problemă de regresie


În cazul unei probleme de regresie, cea mai utilizată funct, ie de eroare
J (W, b; x, y) ce măsoară calitatea unei predict, ii pentru perechea (x, y) este
jumătate din eroarea L2 pătratică:
1
J (W, b; x, y) = · ∥y − ŷ∥22 (6.40)
2
unde ŷ ∈ Rm este vectorul de ies, ire din ret, eaua neurală corespunzând intrării
x, iar ∥v∥2 este norma L2 (Euclidiană) a vectorului v = (v1 , . . . , vq )t :
v
u q
∥v∥2 = t vi2
uX

i=1

În acest caz funct, ia de eroare pentru un set de date X cu k perechi

88
 
x(i) , y(i) s, i incluzând termen de regularizare devine:

k
1 X λ L−1
" #
2 2
J(W, b) = + (6.41)
X
y(i) − ŷ(i) W[l]
2k i=1 2 2 l=1 F
| {z } | {z }
Eroarea empirică medie pe setul X Termen de regularizare

k 2
Termenul 1
y(i) − ŷ(i) se numes, te eroare pătratică medie (mean
P
k 2
i=1
squared error, MSE). Des, i larg folosită pentru probleme de regresie, la o
analiză mai atentă se observă ca dă mai multă important, ă erorilor mai mari.
De exemplu, dă aceeas, i important, ă unei norme de diferent, ă ∥y − ŷ∥2 = 10
ca la 100 de cazuri pentru care ∥y − ŷ∥2 = 1. Se tinde deci a se preocupa de
cazuri ce produc erori mari, dar put, ine, în detrimentul unor cazuri frecvente
cu erori mai mici. Funct, ia de eroare este dominată de valorile de eroare
extreme.
O altă funct, ie de eroare empirică frecvent folosită este eroarea absolută
medie (mean absolute error, MAE; eroarea L1 ), definită ca (excludem pentru
moment eroarea de regularizare):
k
1 1X
J (W, b; x, y) = ∥y − ŷ∥1 = |yi − ŷi | (6.42)
k k i=1

MAE are avantajul că nu e atât de afectată de erorile mari comparativ cu


MSE; pentru acelas, i exemplu: o eroare de 10 este echivalentă cu doar 10
erori de 1. Dezavantajul ei este că nu e derivabilă peste tot.
O variantă care combină diferent, iabilitatea lui MSE s, i mai mica senzitivi-
tate la erori extreme a lui MAE este funct, ia de eroare a lui Huber, exprimată
în continuare pentru perechea (y, ŷ):

 1 ∥y − ŷ∥2 dacă ∥y − ŷ∥2 ≤ δ
2
HL(y, ŷ) = 2   (6.43)
δ ∥y − ŷ∥ − δ
1 2 dacă ∥y − ŷ∥2 > δ

unde δ este un hiper–parametru care stabiles, te zona de trecere de la o funct, ie


la alta; valoarea adecvată a lui δ poate fi determinată prin încercări repetate.
Indiferent de δ, funct, ia de eroare a lui Huber este diferent, iabilă.
Reprezentările MAE, MSE si Huber pentru o diferent, ă ∥y − ŷ∥2 fixată
sunt date în figura 6.9.

6.6.2 Funct, ia de cost pentru discriminarea a două clase


Dacă problema este de discriminare a două clase, atunci stratul de ies, ire
cont, ine un singur neuron, cu funct, ia de activare sigmoidă logistică – idee
preluată de la regresia logistică binară. Funct, ia de eroare pentru o singură

89
25

20

15
MSE
Loss

MAE
Huber
10

−4 −2 0 2 4
x

Figura 6.9: Functiile mean squared error, mean absolute error, Huber (δ =
0.5) pentru cazul unidimensional

pereche (x, y) este7 :

J(W, b; x, y) = −y ln ŷ − (1 − y) ln (1 − ŷ) (6.44)

deci funct, ia de eroare medie pentru setul de date X, incluzând termenul de


regularizare va fi:
k h
1X    i
J(W, b) = − y (i) ln ŷ (i) + 1 − y (i) ln 1 − ŷ (i) +
k i=1
| {z }
Eroarea empirică medie pe setul X

λ L−1 2
+ (6.45)
X
W[l]
2 l=1 F
| {z }
Termen de regularizare

Pentru forma vectorizată a erorii empirice medii (prima sumă din ecuat, ia de
mai sus) a se vedea ecuat, ia (4.18), pagina 57.
7
Pentru probleme de clasificare binară eticheta de clasă este y ∈ {0, 1}. Ies, irea ŷ este
un număr in intervalul (0, 1).

90
6.6.3 Funct, ia de cost pentru mai mult de două clase indepen-
dente
Pentru anumite probleme se poate cere să se determine dacă intrarea
curentă cont, ine sau face parte din nis, te clase independente. De exemplu,
pentru o imagine se cere să se determine dacă cont, ine obiecte de clasă 1,
clasă 2, . . . , clasă m. Se va crea o ret, ea neurală cu m neuroni de ies, ire,
neuronul k dând estimarea ca intrarea să cont, ină element/să fie de clasă k.
Funct, ia de eroare pentru o singură pereche (x, y) este:
m
J(W, b; x, y) = − [yj ln ŷj + (1 − yj ) ln (1 − ŷj )] (6.46)
X

j=1

unde vectorul y = (y1 , y2 , . . . , ym )t cont, ine valori 0 s, i 1. Funct, ia de eroare


totală J(W, b) calculată pentru setul de date X s, i incluzând termenul de
regularizare devine:
k X m h
1X (i) (i)

(i)
 
(i)
i
J(W, b) = − yj ln ŷj + 1 − yj ln 1 − ŷj +
k i=1 j=1
| {z }
Eroarea empirică medie pe setul X

λ L−1 2
+ (6.47)
X
W[l]
2 l=1 F
| {z }
Termen de regularizare

6.6.4 Funct, ia de cost pentru clasificare cu mai mult de două


clase
Pentru probleme de clasificare se preferă utilizarea funct, iei de eroare cross–
entropy iar în stratul de ies, ire funct, ia de activare să fie softmax. Funct, ia de
eroare pentru o singură pereche (x, y) este:
m
J(W, b; x, y) = − yj log ŷj (6.48)
X

j=1

unde folosim, ca mai sus, codificarea one–hot. Eroarea pentru setul de date
X s, i cu termen de regularizare este:
k X m
1X (i) (i) λ L−1 2
J(W, b) = yj log ŷj + (6.49)
X
− W[l]
k i=1 j=1 2 l=1 F
| {z } | {z }
Eroarea empirică medie pe setul X Termen de regularizare

Pentru forma vectorizată a erorii empirice se poate vedea ecuat, ia (3.39),


pagina 46.

91
6.7 Init, ializarea ponderilor ret, elei
Valorile init, iale ale ponderilor W s, i b sunt setate aleator, în jurul lui
zero. Este necesar ca valorile ponderilor să nu fie toate egale; dacă ar fi
toate egale, fiecare neuron dintr-un strat ar avea exact aceeas, i stare ca s, i
ceilalt, i din stratul lui, deoarece fiecare neuron e legat la exact aceleas, i intrări
ca s, i ceilat, i din stratul lui; mai departe, ponderile cu care se înmult, esc
intrările fiind egale, valoarea de activare a fiecărui neuron de pe acel strat
e aceeas, i (ponderea constantă folosită se dă factor comun); argumentul e
valabil începând cu primul strat ascuns. Am ajunge deci ca neuronii de pe
acelas, i strat să calculeze exact aceleas, i valori, ceea ce e redundant s, i inutil,
iar pentru stratul de ies, ire s–ar prezice valori egale pe tot, i neuronii de ies, ire.
Efectul de simetrie obt, inut cu ponderi egale în W se elimină prin init, ializare
cu numere aleatoare. În ce prives, te ponderile de bias – din b – ele se pot
init, ializa cu 0; init, ializarea aleatoare a ponderilor W este suficientă pentru
“spargerea simetriei”.
Strategii rafinate de int, ializare pentru ponderile sunt cele propuse de
Xavier Glorot et al.8 s, i He et al.9 .
Pentru arhitecturile de tip deep learning se preferă o preantrenare nesu-
pervizată a ponderilor [7] sau preluarea unor ponderi care au fost antrenate
pentru un set de date similar cu cel curent – transfer de învăt, are (transfer
learning).

6.8 Grafuri computat, ionale s, i calcul de derivate


pat, iale
6.8.1 Derivarea funct, iilor compuse
Pentru algoritmul backpropagation avem nevoie de calcul de derivate
part, iale de funct, ii compuse.
Reamintim definit, ia derivatei unei funct, ii f : R → R:

f (x + δ) − f (x)
f ′ (x) = lim
δ→0 δ
ceea ce ne permite ca pentru δ valori mici (în jurul lui 0) să folosim aproxi-
marea:
f (x + δ) ≈ f (x) + δf ′ (x)
8
Glorot, Xavier and Yoshua Bengio. “Understanding the difficulty of training deep
feedforward neural networks.” International Conference on Artificial Intelligence and
Statistics (2010).
9
K. He, X. Zhang, S. Ren and J. Sun, "Delving Deep into Rectifiers: Surpassing Human-
Level Performance on ImageNet Classification," 2015 IEEE International Conference on
Computer Vision (ICCV), 2015, pp. 1026-1034, doi: 10.1109/ICCV.2015.123.

92
Aproximarea permite sa ne dăm seama că o modificare cu δ a lui x face ca
valoarea lui f (x) să se modifice cu δf ′ (x).
Reamintim formula de derivare a funct, iilor compuse: dacă avem f : B →
C, g : A → B s, i notăm h(x) = f (g(x)), h : A → C, atunci derivata lui h în
raport cu x se calculează ca10 :
∂h ∂f ∂g
= · (6.50)
∂x ∂g ∂x

Pentru funct, ii multivariate f : Rm → R, gi , h : Rn → R de forma11 :

h(x1 , . . . , xn ) = f (g1 (x1 , . . . , xn ), . . . , gm (x1 , . . . , xn )) (6.51)

derivatele part, iale se calculează astfel:


m
∂h ∂f ∂g1 ∂f ∂g2 ∂f ∂gm ∂f ∂gj
= + + ··· + = (6.52)
X
· · · ·
∂xi ∂g1 ∂xi ∂g2 ∂xi ∂gm ∂xi j=1
∂gj ∂xi

În mod clar, formula (6.52) generalizează (6.50).


Exemplificăm (6.51, 6.52): plecăm de la g1 , g2 : R → R, f : R2 → R
diferent, iabile. Pentru simplitate, notăm cu h funct, ia definită prin h(x) =
f (g1 (x), g2 (x)). Graful computat, ional este dat în figura 6.10.

Figura 6.10: Graf computat, ional pentru funct, ie multivariată s, i compusă.


Variabila x influent, ează funct, ia h prin două căi, exemplificând necesitatea
folosirii formulei (6.52).

Vrem să calculăm ∂h/∂x. Vom da o motivare intuitivă a egalităt, ii


∂h ∂f ∂g1 ∂f ∂g2
= · + · (6.53)
∂x ∂g1 ∂x ∂g2 ∂x
care e un caz particular al (6.52).
Folosind defint, ia derivatei, avem următoarele aproximări pentru δ apro-
piat de 0:
∂g1
g1 (x + δ) ≈ g1 (x) + δ (x) (6.54)
∂x
10
Chiar s, i pentru funct, ii de o singură variabilă vom folosi notat, ia de derivare ∂, pentru
omogenitatea notat, iilor.
11
m s, i n din definit, iile f, gi , h nu au nicio legătură cu dimensiunile vectorilor de intrare
s, i ies, ire din setul de instruire.

93
∂g2
g2 (x + δ) ≈ g2 (x) + δ (x) (6.55)
∂x
iar pentru δ1 , δ2 apropiat, i de 0:

f (g1 (x) + δ1 , g2 (x) + δ2 ) ≈ f (g1 (x), g2 (x)) + (6.56)


∂f
+ δ1 (g1 (x), g2 (x)) + (6.57)
∂g1
∂f
+ δ2 (g1 (x), g2 (x)) (6.58)
∂g2
Avem deci că

h(x + δ) = f (g1 (x + δ), g2 (x + δ)) (6.59)


∂g1 ∂g2
 
≈ f g1 (x) + δ (x), g2 (x) + δ (x) (6.60)
∂x ∂x

s, i folosind (6.56) obt, inem:

∂g1 ∂f
h(x + δ) ≈ h(x) + δ (x) (g1 (x), g2 (x))
∂x ∂g1
∂g2 ∂f
+ δ (x) (g1 (x), g2 (x)) (6.61)
∂x ∂g2
ce se transcrie ca
∂h h(x + δ) − h(x)
(x) ≈
∂x δ
∂g1 ∂f
≈ (x) · (g1 (x), g2 (x)) +
∂x ∂g1
∂g2 ∂f
+ (x) · (g1 (x), g2 (x)) (6.62)
∂x ∂g2

ceea ce e apropiat de (6.53). Există, desigur, o demonstrat, ie riguroasă pentru


(6.52).
Formula (6.52) este utilă pentru cazul în care de la o variabilă – x în cazul
nostru – la rezultat – h(x) – există mai mult de o cale în graful computat, ional
– via g1 s, i g2 în cazul dat. Pentru o ret, ea neurală cu măcar un strat ascuns,
[k]
orice pondere wij de dinainte de ultimul strat ascuns intervine în calculul
ies, irii ret, elei – s, i deci al funct, iei de eroare, pentru care se calculează gradient, ii
– prin intermediul tuturor căilor de la neuronul i din stratul k la stratul de
ies, ire. Pentru un exemplu, a se vedea sect, iunea 6.8.3.

6.8.2 Exemplul 1: căi unice


Exemplificăm s, i figurăm în cele ce urmează calculul de derivate part, iale,
as, a cum o efecturază metoda backpropagation pentru funct, ia f : R3 → R,

94
Figura 6.11: Graful computat, ional pentru calculul valorii funct, iei f (x, y, z) =
x · (y + z) = x · q(y, z) pentru x = 3, y = 4, z = 5. Valorile q(y, z) s, i f (x, y, z)
se calculează de la stânga spre dreapta, prin propagare înainte.

f (x, y, z) = x · (y + z). Notăm cu q funct, ia q(y, z) = y + z, deci f (x, y, z) =


x · q(y, z). Graful computat, ional pentru calculul valorii lui f este în figura
6.11. Dorim să calculăm derivatele part, iale ale lui f în raport cu x, y, z.
Fixăm x = 3, y = 4, z = 5. Calculul valorilor q, f este dat în graful
computat, ional din figura 6.11. Valorile lui q s, i f se calculează de la stânga
spre dreapta, prin propagare înainte, în sensul dat de săget, ile negre.
Derivatele part, iale se calculează de la dreapta spre stânga (propagare
inversă, eng. backropagation) s, i este calculul este arătat în figura 6.12. .

Figura 6.12: Graful computat, ional pentru calculul derivatelor part, iale ∂f /∂x,
∂f /∂y, ∂f /∂h, pentru x = 3, y = 4, z = 5. Derivatele part, iale se calculează
de la dreapta spre stânga. Utilizarea repetată a derivatelor part, iale “din
amonte” este arătată prin linie punctată.

Astfel, calculăm începând de la ies, irea grafului computat, ional către


variabilele de intrare, în ordine:

1. Un calcul imediat, dar util pentru a asigura omogenitatea implementării


calculelor ce urmează:
∂f
=1 (6.63)
∂f

95
2. Calculăm derivata part, ială ∂f /∂q, făcând înmult, ind derivata “din
amonte” ∂f /∂f cu derivata locală ∂f /∂q. Derivatele locale sunt de-
rivatele funct, iei reprezentate de nodul curent în raport cu fiecare din
intrările sale. Una din derivatele locale este:
∂f ∂(x · q)
= =x=3 (6.64)
∂q ∂q
Avem deci
∂f ∂f ∂f
= · =1·3=3 (6.65)
∂q ∂f ∂q

3. Pentru calculul derivatei part, iale ∂f /∂y, folosind regula derivării


funct, iilor compuse, avem: ∂f /∂y = ∂f /∂q · ∂q/∂y, deci păstrăm prin-
cipiul: se înmult, es, te derivata part, ială din amonte – s, i deja calculată la
pasul anterior, ∂f /∂q – cu derivata locală ∂q/∂y:

∂f ∂f ∂q ∂(y + z)
= · =3· =3·1=3 (6.66)
∂y ∂q ∂y ∂y

4. Similar, pentru calculul derivatei part, iale ∂f /∂z avem:

∂f ∂f ∂q
= · =3·1=3 (6.67)
∂z ∂q ∂z

5. Pentru calculul lui ∂f /∂x avem:

∂f ∂f ∂f ∂(x · q)
= · =1· =q=9 (6.68)
∂x ∂f ∂x ∂x

Sumarizând, calculăm derivatele part, iale de la ies, ire către intrare s, i


folosim derivatele calculate până la acel pas pentru a determina derivatele
aflate din ce în ce mai aproape de intrarea în graful computat, ional. Principiul
din figura 6.12 stă la baza unor algoritmi de calcul automat al gradient, ilor –
bibliotecile de tip autograd.

6.8.3 Exemplul 2: căi multiple


Considerăm funct, ia f : R3 → R, f (x, y, z) = (x + y) · (y + z). Notăm
expresiile intermediare: p(x, y) = x + y, q(y, z) = y + z s, i deci f (x, y, z) =
p(x, y) · q(y, z). Fixăm x = −1, y = 3 s, i z = 5. Graful computat, ional e dat
în figura 6.13.
Se observă că y contribuie la rezultatul final prin două căi - via p s, i q,
deci vom folosi rezultatul din ecuat, ia (6.52).
Vrem să calculăm derivatele part, iale ∂f /∂x, ∂f /∂y, ∂f /∂z. Calculăm
derivatele locale:

96
Figura 6.13: Graf computat, ional pentru f (x, y, z) = (x + y) · (y + z), x = −1,
y = 3, z = 5. Se fac calcule intermediare dec către nodurile p s, i q.

∂f ∂(p · q) ∂f ∂(p · q) ∂p ∂(x + y)


= =q=8 = =p=2 = =1
∂p ∂p ∂q ∂q ∂x ∂x
∂p ∂(x + y) ∂q ∂(y + z) ∂q ∂(y + z)
= =1 = =1 = =1
∂y ∂y ∂y ∂y ∂z ∂z
Gradient, ii lui f se calculează de la dreapta spre stânga. Se începe cu
evidentul ∂f /∂f = 1, iar restul de calcule e dat în figura 6.14. Derivata
part, ială ∂f /∂y este deosebită de celelalte: pentru că y dă valoarea ei atât
lui p cât s, i lui q, ea primes, te “din amonte” gradient, i, via nodurile p s, i q, pe
care îi însumează. Însumarea e necesară conform formulei (6.52):

∂f ∂f ∂p ∂f ∂q
= · + · = 8 + 2 = 10 (6.69)
∂y ∂p ∂y ∂q ∂y

Figura 6.14: Calculul gradient, ilor pentru f (x, y, z) = (x + y) · (y + z) folosind


gradient, ii “din amonte” s, i gradient, ii locali. Variabila y influent, ează valoarea
funct, iei f prin două căi.

97
6.9 Algoritmul backpropagation
6.9.1 Scopul algoritmului
Se dores, te modificarea ponderilor din matricele W[l] s, i a coeficient, ilor de
bias b[l] astfel încât valoarea funct, iei de eroare J(W, b) să scadă; numim
modificările ponderilor învăt, are. Se va folosi algoritmul de căutare după
[l]
direct, ia gradientului (gradient descent), în care modificarea unei ponderi wij
se efectuează astfel:
[l] [l] ∂J
wij = wij − α [l] (W, b) (6.70)
∂wij
[l]
Ponderile de bias bij se modifică similar:

[l] [l] ∂J
bi = bi − α [l]
(W, b) (6.71)
∂bi

deci este esent, ială calcularea gradient, ilor [l] (W, b),
∂J
[l] (W, b).
∂J
Ca s, i
∂wij ∂bi
până acum, α > 0 este rata de învăt, are.

6.9.2 Variante de calcul


Avem trei variante de calcul pentru modificarea ponderilor:
1. stochastic  descent: pentru fiecare pereche
 gradient  din setul de

instruire x(k) , y(k) se calculează valoarea erorii J W, b; x(k) , y(k) ,
se calculează gradient, ii s, i se aplică modificările pentru toate ponderile
[l] [l]
wij s, i bi ; următoarea pereche de instruire foloses, te valorile de ponderi
modificate la acest pas;

2. off–line sau batch gradient descent: se calculează gradient, ii pentru


[l] [l]
ponderile wij s, i bias–urile bi pentru fiecare pereche de vectori din
setul de instruire; la final se calculează media lor s, i se actualizează
[l] [l]
fiecare pondere wij s, i bi , scăzându–se din ea media înmult, ită cu rata
de învăt, are α.

3. minibatch gradient descent: se împarte setul de instruire S în


subseturi
 disjuncte
 (mini–batches), de exemplu de câte 100 de perechi
(k)
x ,y (k) . Pentru fiecare minibatch se calculează media gradient, ilor;
[l] [l]
se modifică toate ponderile wij s, i bi folosind media înmult, ită cu rata
de învăt, are, apoi se trece la următorul minibatch. Este o variantă
intermediară între stochastic gradient descent – unde modificarea se
face imediat după fiecare pereche din S – s, i cea batch – în care
modificarea ponderilor se face doar după ce se procesează tot setul S ;
în practică este cea mai folosită strategie.

98
În toate cazurile de mai sus: o trecere completă peste setul de instruire
se numes, te epocă, iar trecerea peste un subset – fie el s, i dintr-un singur
exemplar de instruire – se numes, te iterat, ie. Se execută mai multe epoci de
instruire. Condit, ia de oprire a învăt, ării poate fi:

• numărul de epoci parcurse este egal cu un număr dat a priori, de


exemplu 100;

• se urmăres, te valoarea funct, iei de eroare peste un set de validare, un


set disjunct fat, ă de setul de instruire S . Dacă se constată că eroarea
pe setul de validare începe să crească în timp ce eroarea pe setul de
instruire continuă să scadă, atunci se opres, te instruirea – figura 6.15;

• se urmăres, te evolut, ia normelor gradient, ilor: dacă suma acestor norme


e aproape de zero, înseamnă că s–a ajuns într-un punct de minim (local
sau global) sau într–un punct de inflexiune s, i ponderile nu vor mai fi
modificate semnificativ;

• valoarea funct, iei de eroare scade sub un anumit prag; etc.


Func ia de eroare

Eroare
pe setul de validare

Eroare
pe setul de antrenare

Numrul de epoci
Epoc la care instruirea
trebuie oprit

Figura 6.15: Exemplu de evolut, ie a valorilor funct, iei de eroare pentru setul
de antrenare, respectiv cel de validare. Dacă se continuă antrenarea, eroare
pe setul de antrenare scade, dar pentru setul de testare începe să crească de
la o anumită epocă. Se recomandă oprirea instruirii dacă eroarea pe setul de
validare începe să crească.

6.9.3 Calculul gradient, ilor – justificare matematică


Vom prezenta varianta de instruire batch, întrucât poate fi us, or adaptată
la minibatch sau stochastic gradient descent. Trecerea la cazul în care se

99
face antrenarea pe minibatch-uri este imediată: media gradient, ilor pentru p
termeni din setul de instruire se substituie cu media gradient, ilor calculat, i
pe datele din acel minibatch. Evident, pentru stochastic gradient descent,
media este chiar gradientul calculat pentru exemplarul de instruire curent.
 Reamintim  forma funct, iei de eroare pentru un set de date X de p perechi
(k)
x ,y (k) :

eroare empirică pentru(x(k) ,y(k) )


 
p
1 X z  }| { 
J(W, b) =  J W, b; x(k) , y(k)
 

p 
k=1

| {z }
Eroarea empirică medie pe setul X
L−1 nl nXl−1 
λ [l] 2

+ (6.72)
XX
wij
2 l=1 i=1 j=1
| {z }
Termen de regularizare

Ne folosim de faptul că funct, ia de eroare este o sumă de termeni s, i


derivata unei sume de funct, ii este suma derivatelor funct, iilor12 s, i rezultă:
p
∂J 1 X ∂J  
[l]
[l]
(W, b) = W, b; x (k)
, y (k)
+ λwij (6.73)
∂wij p k=1 ∂w[l]
ij

respectiv pentru ponderile de bias:


p
∂J 1 X ∂J  
[l]
(W, b) = W, b; x (k)
, y (k)
(6.74)
∂bi p k=1 ∂b[l]
i

În (6.73) am inclus derivatele part, iale pentru termenul de regularizare (6.39)


[l]
în raport cu wij , al căror calcul e imediat:
nl nX
λ L−1 λ ∂ L−1
! l−1 
∂ 2 [l] 2

[l]
= = λ · wij (6.75)
X XX
· W[l] w
∂wij
[l] 2 l=1 F 2 ∂w[l] l=1 a=1 b=1 ab
ij

[l]
iar pentru derivata part, ială a termenului de regularizare în raport cu bi
reamintim că termenul de regularizare nu cont, ine ponderile de bias, deci
gradientul său în raport cu bias–urile este 0.
Rămâne deci să calculăm derivatele part, iale pentru o singură pereche
de instruire (x, y), adică ∂J[l] (W, b; x, y) s, i ∂J[l] (W, b; x, y). Algoritmul
∂wij ∂bi
backpropagation arată care e ordinea de calcul a derivatelor part, iale, bazat
pe teoria din sect, iunea 6.8. Odată derivatele part, iale calculate, ele pot fi
folosite pentru modificarea ponderilor, proces pe care îl numin învăt, are.
12
Sau pe scurt: derivarea este operator liniar.

100
Algoritmul a fost popularizat de articolul “Learning representations by
back-propagating errors”13 .
[k] [k]
Arătăm modul de calcul pentru derivatele part, iale ∂J/∂wij s, i ∂J/∂bi ,
cu exemplificare pe o ret, ea neurală pentru regresie s, i cu un singur strat
ascuns, a se vedea figura 6.16. Fiind problemă de regresie, funct, ia de eroare
empirică (de calitate) e jumătate din mean squared error, ecuat, ia (6.40)
pagina 88. Pentru problemă de clasificare se adaptează funct, ia de activare
f [2] a ultimului strat. Vom explicita doar gradient, ii termenului de eroare de
calitate, deoarece am văzut că gradient, ii termenului de regularizare L2 se
calculează simplu. Prezentăm calculul pentru o singură pereche de instruire
(x, y) ∈ Rn × Rm .

Figura 6.16: Ret, ea neurală cu un strat ascuns, folosită ca schemă pentru


determinarea fomulelor gradient, ilor.

Gradient, ii pentru stratul de ies, ire


[2] [2]
Pentru ponderile instruibile ale ultimului strat, wij s, i bi unde 1 ≤ i ≤ m,
avem graful computat, ional din figura 6.17.

Figura 6.17: Graf computat, ional pentru ponderile s, i valorile de bias din
ultimul strat.
13
Rumelhart, D., Hinton, G. & Williams, R., Learning representations by back-propagating
errors, Nature 323, 533–536 (1986). https://doi.org/10.1038/323533a0

101
[2] [2]
Deoarece J nu depinde direct de wij , ci via zi , folosim formula de
derivare de funct, ii compuse (6.50) s, i obt, inem:
[2]
∂J ∂J ∂zi
[2]
= [2]
· [2]
(6.76)
∂wij ∂zi ∂wij

Pentru a doua derivată part, ială t, inem cont că:


n1
[2] [2] [2] [1]
zi = bi + (6.77)
X
wik ak
k=1

de unde
[2]
∂zi [1]
[2]
= aj (6.78)
∂wij
s, i deci
∂J ∂J [1]
[2]
= [2]
· aj (6.79)
∂wij ∂zi
[2]
Similar, pentru derivata part, ială a lui J în raport cu bi :
n
 
[2] [2] [1]
+
P
[2] ∂ bi wik aik
∂J ∂J ∂zi ∂J k=1 ∂J
[2]
= [2]
· [2]
= [2]
· [2]
= [2]
(6.80)
∂bi ∂zi ∂bi ∂zi ∂bi ∂zi
[2]
Observăm că avem termenul ∂J/∂zi în ambele derivate part, iale; îl
[2] [2]
notăm cu δi s, i îl calculăm.
 T, inem cont că J depinde de zi doar prin

[2] [2]
intermediul lui ai = f [2] zi s, i folosim din nou formula de derivare de
funct, ii compuse:
[2]
[2] ∂J ∂J ∂ai
δi = [2]
= [2]
· [2]
(6.81)
∂zi ∂ai ∂zi
m
∂ 1X
!
[2] ∂f [2]  [2] 
= (a − yk )2
· zi (6.82)
∂ai 2 k=1
[2] k [2]
∂zi

   
[2] [2]
= ai − yi · f [2] zi (6.83)

de unde, vectorial:

   
δ [2] = a[2] − y ⊙ f [2] z[2] (6.84)
cu ⊙ reprezentând produsul Hadamard:

(a1 , . . . ap )t ⊙ (b1 , . . . bp )t = (a1 · b1 , . . . ap · bp )t

Componentele vectorului δ [2] sunt folosite pentru calculul derivatelor


part, iale de ponderi instruibile, conform (6.79) s, i (6.80).

102
Gradient, ii pentru stratul ascuns
Pentru calcul de derivate part, iale de ponderi s, i valori de bias ale stratului
[1] [1] [1] [1]
ascuns, ∂J/∂wij s, i respectiv ∂J/∂bi t, inem cont că wij s, i bi contribuie la
funct, ia de eroare prin mai multe căi, conform grafului computat, ional din
figura 6.18; indicii sunt 1 ≤ i ≤ n1 , 1 ≤ j ≤ n.

Figura 6.18: Graf computat, ional pentru ponderile s, i valorile de bias din
[1] [1]
stratul ascuns. Ponderile instruibile wij s, i bi contribuie la valoarea funct, iei
[2] [2]
de eroare prin mai multe căi, via z1 , . . . , zm . Situat, ia e similară cu cea din
figura 6.10.

[1]
Ca atare, pentru ∂J/∂wij vom utiliza formula generală de derivare a
funct, iilor compuse (6.52).
Avem:
[1]
∂J ∂J ∂zi
[1]
= [1]
· [1]
(6.85)
∂wij ∂zi ∂wij
Explicităm cele două derivate part, iale de sub suma de mai sus. Deoarece
n1
[1] [1] [1] [0]
= + (6.86)
X
zi bi wik ak
k=1

obt, inem imediat


[1]
∂zi [0]
[1]
= aj (6.87)
∂wij
s, i înlocuind înapoi în (6.85):
∂J ∂J [0]
[1]
= [1]
· aj (6.88)
∂wij ∂zi

Similar, pentru derivata part, ială în raport cu termenul de bias:


n1 P
n1
 
[1] [1] [0]
+
P
∂ bi wik ak
∂J ∂J k=1 k=1 ∂J
[1]
= [1]
· [1]
= [1]
(6.89)
∂bi ∂zi ∂bi ∂zi

103
[1]
Cantitatea ∂J
[1] apare atât în (6.89) cât s, i în (6.88); o vom nota cu δi s, i
∂zi
cele două formule devin:
∂J [1] [0]
[1]
= δ i · aj (6.90)
∂wij
∂J [1]
[1]
= δi (6.91)
∂bi
[1] [1]
Rămâne deci să calculăm δi = ∂J
[1] . Deoarece zi influent, ează funct, ia J
∂zi
[2] [2]
prin intermediul variabilelor z1 , . . . , z m – vezi figura 6.18 – folosim formula
(6.52) s, i obt, inem:
m [2]
[1] ∂J ∂J ∂zj
= = (6.92)
X
δi [1] [2]
· [1]
∂zi j=1 ∂zj ∂zi
[2]
[2] ∂zj
Dar ∂J
[2] este chiar δj , calculat anterior în (6.84). Explicităm [1] ,1≤i≤
∂zj ∂zi
n1 , s, i pentru înt, elegerea necesităt, ii însumării a se revedea figura 6.4b:
[2] n1
!
∂zj ∂ [2]

[1]

=
X
[1] [1]
wjl · f [1] zl
∂zi ∂zi l=1
[1]′
 
[2] [1]
= wji ·f zi (6.93)

Înlocuind în (6.92) obt, inem:


m 

 
[1] [2] [2] [1]
δi = (6.94)
X
δj · wji · f [1] zi
j=1

sau pentru tot vectorul δ [1] :



   
δ [1] = W[2]t · δ [2] ⊙ f [1] z [1] (6.95)

Valorile din vectorul δ [1] sunt folosite pentru calculul de derivatelor


part, iale din ecuat, iile (6.90) s, i respectiv (6.91).
Extinderea la o ret, ea MLP cu mai multe straturi ascunse este us, or de
făcut, fiind foarte similară cu ceea ce s–a arătat mai sus.

6.9.4 Algoritmul backpropagation


Algoritmul backpropagation detaliat – varianta batch – este:
1. Init, ializează ∆W[l] , ∆b[l] cu 0, pentru l = 1, . . . , L − 1:

∆W[l] = 0nl ×nl−1 (6.96)


∆b = 0nl , vector coloană
[l]
(6.97)

104
2. Pentru fiecare din cele p perechi (x, y) din batch calculează corect, ia
pentru ponderi s, i ponderile de bias14 :

2.1. Efectuează pasul de propagare înainte, conform sect, iunii 6.5, s, i


obt, ine ies, irea estimată ŷ;
2.2. Pentru fiecare strat l = L − 1, . . . , 1 se calculează semnalul de
eroare: la ultimul strat semnalul de eroare este

 
δ [L−1] = (a[L−1] − y) ⊙ f [L−1] z[L−1] (6.98)

iar la restul de straturi


 t 

 
δ [l] = W[l+1] · δ [l+1] ⊙ f [l] z[l] (6.99)

Am presupus mai sus că derivatele funct, iilor de activare se calcu-


lează punctual peste vectorii de stări.
Putem acum calcula derivatele part, iale pentru ponderi s, i derivatele
part, iale:
∂J  t
(W, b; x, y) = δ [l]
· a [l−1]
(6.100)
∂W[l]

∂J
(W, b; x, y) = δ [l] (6.101)
∂b[l]
2.3. Acumulează semnalul de corect, ie15 , pentru l = L − 1, . . . , 1:
∂J
∆W[l] = ∆W[l] + (W, b; x, y) (6.102)
∂W[l]
 t
= ∆W[l] + δ [l] · a[l−1] (6.103)

∂J
∆b[l] = ∆b[l] + (W, b; x, y) (6.104)
∂b[l]
= ∆b[l] + δ [l] (6.105)

3. După ce toate perechile de instruire din batch au fost considerate,


modifică valorile ponderilor s, i coeficient, ii de bias, pentru l = 1, . . . L−1:
1
  
W[l] = W[l] − α ∆W[l] + λW[l] (6.106)
p
1
 
b =b −α
[l]
∆b[l] [l]
(6.107)
p
14
Respectiv: se iterează peste datele din minibatch. Alternativ, se poate face calcul în
paralel peste datele din minibatchul curent.
15
Evident, acumularea se poate face imediat după calculul derivatelor part, iale de pe
stratul curent.

105
4. Ciclare: se repetă de la pasul 1 până când se îndeplines, te una din
condit, iile de oprire de la pagina 99.

Pentru cazul în care se foloses, te clasificare s, i funct, ia de activare din


ultimul strat este softmax, iar funct, ia de eroare este cross-entropy, se arată
că pentru perechea (x, y):

δ [L−1] = a[L−1] − y (6.108)

substituind formula de calcul (6.98). Utilizarea funct, iei de eroare cross


entropy duce la o viteză mai mare de învăt, are pentru probleme de clasificare
decât dacă se foloses, te eroarea pătratică [8].

6.10 Utilizarea ret, elei pentru inferent, ă


După ce se face antrenarea ret, elei, ea se poate folosi n pentru a face o predict, ii
(inferent, e) pentru date din setul de testare T = x |1 ≤ j ≤ q . Fiecare
(j)

vector din T este trecut prin ret, ea, conform pasului de propagare înainte s, i
se obt, in valori de ies, ire estimate (predict, ii) ŷ(1) , . . . , ŷ(q) , toate din Rm .
Dacă valorile de ies, ire sunt văzute ca probabilităt, i condit, ionate, adică:

ŷi = P (clasa i|x) , 1 ≤ i ≤ m (6.109)

atunci clasificarea se face găsind acel indice i pentru care ŷi e maxim s, i acesta
este indicele clasei prezise de ret, eaua MLP.

6.11 Discut, ii
• problema minimelor locale s, i a punctelor de inflexiune

• arhitectura ret, elei: număr de straturi ascunse, număr de neuroni pe


strat

• dependent, a de ordinea de prezentare a datelor în etapa de învăt, are

• alt, i algoritmi de optimizare decât vanilla gradient descent

• learning rate scheduling

• capacitatea de aproximare universală

106
Capitolul 7

Ret, ele neurale cu funct, ii de


activare radială

Ret, elele neurale cu funct, ii de activare radială (eng: radial basis function
networks, RBF networks) se folosesc pentru probleme de clasificare, estimare
de probabilitate condit, ionată s, i regresie. Instruirea este nesupervizată (gru-
pare, eng. clustering) pentru determinarea centrilor neuronilor din stratul
ascuns s, i supervizată pentru învăt, area ponderilor dintre stratul ascuns s, i cel
de ies, ire.
O ret, ea RBF stochează în stratul ascuns vectori prototip, determinat, i
prin învăt, are. Inferent, a pentru un vector de intrare se face pe baza distant, elor
dintre el s, i prototipuri.

7.1 Motivat, ia ret, elei: teorema lui Cover


Pentru cazul vectorilor ce nu pot fi separat, i liniar, perceptronul multistrat
poate determina o suprafat, ă de separare. Există s, i o altă variantă de rezolva
problema discernerii între clase ce nu se pot separa liniar, folosind însă un
separator liniar, ce lucrează în doi pas, i:
1. mult, imea de instruire dată în spat, iul originar este transformată într–un
alt spat, iu, în care, în anumite condit, ii, liniar separabilitatea poate
apărea cu probabilitate mare; fundamentul matematic este dat de
teorema lui Cover (vedet, i mai jos);
2. prin utilizarea unui model de separare liniară (perceptron liniar, SVM
liniar, regresie logistică etc.) se separă clasele în cel de-al doilea spat, iu.
Intuitiv, situat, ia este prezentată în figura 7.1. În partea stângă avem
două clase care nu sunt separabile liniar; punctele sunt cu coordonate în
două dimensiuni. Printr–o funct, ie convenabil aleasă se trece într–un spat, iu
cu trei dimensiuni în care un plan poate separa clasa punctelor ros, ii de cele
albastre.

107
x1

Figura 7.1: Transformarea unui set de date cu clase neseparabile liniar, într-
un spat, iu cu două dimensiuni, într-o mult, ime cu două clase liniar separabile
în spat, iu cu 3 dimensiuni.

Rezultatul se poate materializa printr–o ret, ea cu funct, ii de activare


radială, formată din 3 straturi:
• strat de intrare în care se furnizează vector de valori pentru care se
face inferent, ă;
• strat de neuroni ascuns, i ce aplică transformări neliniare pe datele din
spat, iul de intrare. Neuronii din acest strat sunt antrenat, i prin instruire
nesupervizată;
• strat de ies, ire ce produce o transformare liniară, iar ponderile dintre
stratul ascuns s, i stratul de ies, ire sunt obt, inute prin instruire supervizată.
Acest ultim strat furnizează valoarea inferată pentru vectorul de intrare
curent.
Următoarea teoremă arată motivul pentru care se face o transformare a
datelor originare în alte date dintr-un spat, iu cu mai multe dimensiuni decât
cel originar:
Teorema 2 (Cover, 1965). Printr–o transformare neliniară a unui set de
date de intrare dintr-un spat, iu A într-un spat, iu B cu dimensiune mai mare,
cres, te probabilitatea de a obt, ine clase liniar separabile, dacă A nu este dens
populat.
Rezultatul este util, deoarece pentru cazuri liniar separabile, un percep-
tron discret poate să obt, ină un hiperplan de separare în timp finit; se pot
folosi si alte modele de clasificatori liniari - regresie logistică, Support Vector
Machines etc. Pentru a se obt, ine o asemenea transformare, se pleacă de la
spat, iul A cu n dimensiuni în care se găsesc nis, te vectori x(1) , . . . , x(p) s, i se
ajunge la un spat, iu m dimensional (m ≥ n) prin funct, ia:
ϕ
x → ϕ(x) = (φ1 (x), . . . , φm (x))t ∈ Rm (7.1)
unde φi : Rn → R, i = 1, m sunt funct, ii neliniare; în ret, eaua neurală RBF
funct, ia φi e calculată de neuronul i din stratul ascuns.

108
Vector de intrare φ1 (xi ) φ2 (xi )
x1 = (1, 1)t 1 0.1353
x2 = (0, 0)t 0.1353 1
x3 = (0, 1)t 0.3678 0.3678
x4 = (1, 0)t 0.3678 0.3678

Tabelul 7.1: Valorile aproximative ale funct, iilor φi pentru punctele problemei
XOR.

Exemplu: considerăm problema XOR, în care 4 puncte sunt asignate la


două clase, astfel: vectorii x1 = (1, 1)t s, i x2 = (0, 0)t apart, in unei clase, iar
x3 = (0, 1)t s, i x4 = (1, 0)t apart, in celeilalte clase. S–a arătat în sect, iunea
5.9 că nu există o dreaptă în plan care să separe cele două clase de puncte.
Considerăm funct, iile φ1 , φ2 : R2 → R:

φ1 (x) = exp (−∥x − x1 ∥)

φ2 (x) = exp (−∥x − x2 ∥)


unde x ∈ R2 iar ∥ · ∥ este norma Euclidiană în R2 . Pornind de la un vector de
intrare x ∈ R2 se ajunge la un vector tot din R2 dat de (φ1 (x), φ2 (x)). Valorile
rezultate pentru funct, iile φ1,2 calculate în cele 4 puncte ale problemei XOR
sunt date în tabelul 7.1. Figura 7.2 dă reprezentarea punctelor tranformate
prin aplicarea celor două funct, ii. Se observă că problema devine una liniar
separabilă, folosind modificări neliniare ale datelor init, iale; mai mult, nu a
fost nevoie în acest caz să se mărească dimensiunea spat, iului de ies, ire.

Figura 7.2: Transformarea problemei XOR, ce nu permite separare liniară


(partea stângă) în problemă liniar separabilă

7.2 Funct, ii cu activare radială


Teorema lui Cover afirmă că pentru o problemă ce nu e liniar separabilă,
prin transformare adecvată cresc s, ansele de a se transforma într–una care e

109
liniar separabilă. Să considerăm o ret, ea neurală de tip feedforward cu un
strat de intrare cu n noduri, un singur strat ascuns s, i un strat de ies, ire cu un
singur nod1 . Această ret, ea produce o funct, ie de la un spat, iu n–dimensional
la unul unidimensional:
F : Rn → R (7.2)
Funct, ia F poate fi văzută ca o hipersuprafat, ă Γ ⊂ Rn+1 ; hipersuprafat, a Γ
este necunoscută s, i se determină pe baza setului de instruire.
Se lucrează în două etape: una de instruire s, i alta de inferent, ă. În
etapa de instruire se foloses, te o procedură oarecare prin care se determină
hipersuprafat, a Γ, plecând de la setul de date de antrenare, adică se obt, ine
funct, ia F . În etapa de inferent, ă se foloses, te un procedeu de interpolare
pentru a determina valori de ies, ire corespunzătoare unor vectori din spat, iul
de intrare Rn .
Plecăm de la o problemă de interpolare enunt, ată astfel:
Dându–se un set de instruire de p perechi
n  o
S = x(i) , y (i) |x(i) ∈ Rn , y (i) ∈ R, i = 1, p

se cere să se determine o funct, ie F : Rn → R care satisface proprietatea de


interpolare:  
F x(i) = y (i) , i = 1, p (7.3)
Tehnica funct, iilor cu activare radială (Radial Basis Functions, RBF)
consideră că F are forma:
p  
F (x) = (7.4)
X
wi φ i x − x(i)
i=1

unde φi sunt funct, ii neliniare, cunoscute ca funct, ii cu activare radială. Punc-


tele x(i) sunt “centrele” (parametri ai) funct, iilor RBF. Pentru un vector
x ∈ Rn , valoarea returnată de funct, ia φi se bazează pe distant, a dintre x s, i
x(i) , adică pe ∥x − x(i) ∥.
Impunând condit, ia (7.3) asupra formei (7.4), avem următorul sistem
liniar în care necunoscutele sunt wi , i = 1, p:

y (1)
     
φ11 φ12 · · · φ1p w1

φ21 φ22 · · · φ2p  
w2  
y (2) 
= (7.5)
     
 .. .. .. .. · .. .. 
. . . . . .
     
     
φp1 φp2 · · · φpp wp y (p)
unde  
φij = φi x(j) − x(i) , i, j = 1, p (7.6)
1
În cele ce urmează în acest capitol, ies, irea unică este pentru simplificarea prezentării.
Pentru cazul în care ies, irea este din spat, iul Rm sau dacă avem o problemă de clasificare cu
m clase, stratul de ies, ire va avea m neuroni.

110
 t
Notăm y = y (1) , y (2) , . . . , y (p) , w = (w1 , w2 , . . . , wp )t , Φ = (φij )i,j=1,p .
Numim Φ matricea de interpolare. Se poate rescrie (7.5) sub forma:

Φ·w=y (7.7)

Dacă matricea Φ este nesingulară, atunci ponderile sunt w = Φ−1 y. Pentru


discut, ia asupra caracterului nesingular al matricei Φ, considerăm teorema
lui Michelli:
Teorema 3 (Michelli, 1986). Fie {xi }i=1,p un set de puncte distincte din
Rn . Atunci matricea de interpolare Φ este inversabilă dacă funct, iile φi au
una din formele:
1. funct, ie multipătratică:
q
φi (ri ) = ri2 + c2 , c > 0 (7.8)

2. funct, ie inversă de multipătratică:


1
φi (ri ) = q , c>0 (7.9)
ri2 + c2

3. funct, ie Gaussiană:
!
r2
φi (ri ) = exp − i 2 , σ>0 (7.10)

unde în toate cele trei cazuri ri este distant, a Euclidiană dintre vectorii x s, i
x(i) — echivalent: norma diferent, ei dintre x s, i x(i) , x − x(i) .

7.3 Ret, ele cu funct, ii cu activare radială


O ret, ea cu funct, ii cu activare radială este ilustrată în figura 7.3; ea constă
din trei straturi:
1. stratul de intrare, care constă din n noduri, unde n este dimensiunea
spat, iului de intrare.
2. stratul ascuns, care e format din acelas, i număr de neuroni ca numărul
de date din setul de antrenare,
 p; fiecare neuron i, i = 1, p are funct, ie
cu activare radială φi x − x(i) , unde φi e funct, ie cu una din formele
enunt, ate în Teorema 3;
3. stratul de ies, ire, care în cazul exemplificat este format dintr-un singur
neuron. Stratul de ies, ire poate avea m neuroni, pentru a trata proble-
mele de clasificare sau de estimare de probabilitate condit, ionată pentru
m clase, sau pentru probleme de regresie cu m ies, iri.

111
Pentru funct, iile φi vom considera în continuare funct, iile Gaussiene:

1
!
  2
φi x−x (i)
= exp − 2 x − x(i) , i = 1, p (7.11)
2σi

cu σi > 0 este parametru al funct, ie Gaussiene φi centrate în x(i) . De regulă


tuturor Gaussienelor li se asigneaza aceeas, i lăt, ime σ; diferent, a dintre funct, ii
este dată în acest caz de centrele x(i) .

Figura 7.3: Structura unei ret, ele RBF, plecând de la funct, ia de interpolare
din ecuat, ia 7.4.

Din punct de vedere practic se evită folosirea tuturor datelor din setul de
instruiren
pentru crearea
 de funct
o , ii de activare de tip radial. Un motiv ar fi
că setul x , y
(i) (i) |i = 1, p poate prezenta zgomot, de exemplu datorită
erorilor de măsurare. Folosirea unui procedeu de aproximare plecând de la
un set de date cu zgomot duce la model de predict, ie slab. Alt motiv e că
numărul de neuroni din stratul ascuns ar putea să fie prohibitiv. Ca atare,
în practică numărul de noduri din stratul ascuns este mult mai mic decât
numărul de date din setul de instruire. Funct, ia F se transformă într-o funct, ie
de aproximare de forma:
k
F (x) = wi φi (∥x − µ̂i ∥) (7.12)
X

i=1

unde dimensiunea vectorului de intrare x este aceeas, i ca s, i cea de până acum,


k < p iar punctele µ̂i pot proveni dintr–un proces de grupare automată
(clustering). Interpretarea ca ret, ea neurală este dată în figura 7.4. Diferent, ele
fat, ă de figura 7.3 sunt că stratul ascuns are k neuroni în loc de p, iar funct, iile

112
Figura 7.4: Structura unei ret, ele RBF, folosind mai put, ine noduri decât în
figura 7.3. Centrii µ̂i , i = 1, k se obt, in printr-un procedeu de clustering.

de activare radială sunt centrate în vectori µ̂k în locul datelor din setul de
instruire, x(i) .
Pentru determinarea celor k centri µ̂i , i = 1, k ale centrilor din stratul
ascuns se poate utiliza o metodă oarecare de grupare automată pe baza
similarităt, ilor (clustering), dar care să producă centroizi2 . Vom prezenta în
cele ce urmează metoda K-means clustering.

7.4 Clustering folosind algoritmul K-means


Clustering-ul este o formă de învăt, are nesupervizată în care un set de
vectori este partit, ionat în grupuri. Se urmăres, te minimizarea unei funct, ii de
cost definită convenabil, care cuantifică disimilaritatea totală a vectorilor.
Clusterele ar trebui obt, inute de as, a manieră încât vectorii similari să fie
grupat, i în acelas, i cluster, iar doi vectori nesimilari să fie dispus, i în clustere
diferite. n o
Considerăm un set de p puncte, x(i) ce urmează să fie partit, ionat
i=1,p
în k clustere3 ; de regulă, k ≪ p. Fie C(i) indicele de cluster de care
 apart, ine

vectorul x , i = 1, p. Evident, 1 ≤ C(i) ≤ k. Considerăm d x(i) , x(j)
(i)

o măsură a similarităt, ii4 – dintre perechile de vectori x(i) s, i x(j) . Pentru


2
Excludem deci algoritmi de clustering precum DBSCAN sau OPTICS.
3
Cel mai frecvent, valoarea lui k este furnizată de utilizator.
4
Ne putem folosi aici de orice funct, ie care măsoară distant, a dintre doi vectori; dacă
distant, a este mică, atunci similaritatea dintre vectori este mare – s, i invers.

113
clustering se cere minimizarea funct, iei:
k
1X  
J(C) = (7.13)
X X
d x(i) , x(j)
2 l=1 i:C(i)=l j:C(j)=l

unde C este partit, ionarea dată de cele k clustere:


n o
C = {i|1 ≤ i ≤ p, C(i) = l}|l = 1, k

În algoritmul K-means drept măsură de similaritate se foloses, te, de regulă,


pătratul distant, ei Euclidiene:
  2
d x(i) , x(j) = x(i) − x(j) (7.14)

În urma procesului de clustering vor rezulta k centroizi – centri de clustere –


notat, i µ̂l ∈ Rn , l = 1, k.
Modificăm forma funct, iei de eroare J astfel încât să se ia în considerare
pătratul distant, elor dintre vectorii x(i) s, i centroizii µ̂l ai clusterelor de care
apart, in:
k
1X 2
J(C) = (7.15)
X
x(i) − µ̂l
2 l=1 i:C(i)=l

Cum se pozit, ionează centroizii? Algoritmul K-means determină nis, te


valori pentru µ̂l printr-un proces iterativ, astfel încât J(C) să scadă. Este
un algoritm euristic, nu garantează faptul că se ajunge la minimul global al
lui J(C).
(1)
Algoritmul alege aleator k centroizi init, iali µ̂l , l = 1, k, init, ializându–i
cu valori fie din setul de instruire, sau setate la întâmplare cu valori din spat, iul
de intrare, sau conform algoritmului K–means++, a se vedea sect, iunea 7.5.
Avem apoi o succesiune de iterat, ii cu pas, ii:
• Pasul de asignare: Calculează pentru orice l, l = 1 . . . k:
 
(t) (t) 2 (t) 2
Sl = x (i)
: x (i)
− µ̂l ≤ x (i)
− µ̂j ,j = 1, k, j ̸= l, i = 1, p

adică pentru fiecare punct x(i) se determină care este cel mai apropiat
(t)
centroid de care apart, ine; Sl este mult, imea vectorilor din setul de
(t)
instruire ce sunt cel mai apropiate de centroidul µ̂l , la iterat, ia t.

• Modificarea centroizilor:
(t+1) 1
= x(i) , pentru l = 1, k
X
µ̂l (t)
·
Sl (t)
x(i) ∈Sl

(t) (t)
unde Sl este numărul de elemente ale mult, imii Sl .

114
Algoritmul K-means se opres, te atunci când pasul de asignare nu mai
(t)
modifică mult, imile Sl .
În general, algoritmul nu converge către minimul global al funct, iei J;
fiind însă rapid în practică – adică necesitând put, ini pas, i până la oprire – se
(1)
poate reporni cu alte valori ale centroizilor init, iali µ̂l , l = 1, k. Situat, ia
(centroizii) pentru care J(C) are valoarea cea mai mică în aceste încercări
este ret, inută.

7.5 Algoritmul de init, ializare K-means++


(1)
Se poate consideră că init, ializarea centroizilor init, iali µ̂l , l = 1, k nu
ar trebui lăsată la voia întâmplării s, i că se poate îmbunătăt, i considerabil
performant, a algoritmului printr–o alegere îngrijită a lor. Un caz nefavorabil
este dat în figura 7.5. Să considerăm un dreptunghi cu laturile de lungime
L ≫ l, având în cele patru vârfuri câte un punct x(i) ∈ R2 , i = 1, 4. Dacă
considerăm k = 2 s, i centroizii sunt ales, i init, ial la jumătatea laturilor de
lungime mai mare, atunci algoritmul se opres, te după o iterat, ie cu J(C) =
 2 2
1
2 · 4 L2 = L2 (punctele x(1) s, i x(3) apart, in clusterului de centroid µ̂1 , iar
celelalte două celui de al doilea cluster). Dacă alegerea punctelor se face
2
ca în figura 7.6, atunci se obt, ine valoarea J(C) = l2 – s, i se poate arăta că
aceasta este s, i valoarea minimă a lui J. Având în vedere că L poate fi luat
oricât de mare fat, ă de l, rezultă că o alegere neinspirată a centroizilor poate
să ducă la o valoare oricât de depărtată fat, ă de optim pentru funct, ia J.

x1
111
000
000
111
µ̂1
11
00
00
11 x3

11
00 11
00
x2
00
11 00
11 x4
µ̂2

Figura 7.5: Caz nefavorabil pentru K-means la alegerea centroizilor init, iali

Ca atare, s–a dezvoltat algoritmul K-means++ care are ca scop determi-


narea unor centroizi init, iali ales, i mai potrivit. Alegerea celor K centroizi se
face după următorii pas, i [9]:
1. Alege primul centroid aleator din setul de antrenare;
2. Pentru
 fiecare punct ce nu a fost încă ales drept centroid x calculează
(i)

D x(i) (1 ≤ i ≤ p), distant, a de la el până la cel mai apropiat din


centroizii determinat, i până la pasul curent;

115
111
000 11
00
x1 000
111 00
11 x3

µ̂1 µ̂2

111
000 11
00
x2 000
111 00
11 x4

Figura 7.6: Alegerea optimă a centroizilor init, iali

3. Alege aleator un nou punct din setul de antrenare, folosind o probabili-


tate de alegere o funct, ie crescătoare cu distant, a dată de vectorul de
distant, e D;

4. Repetă pas, ii 2 s, i 3 până când s–au ales tot, i cei k centroizi;

Se aplică apoi algoritmul K-means pentru centroizii astfel determinat, i.


Costul suplimentar indus de determinarea celor k centroizi ca mai sus
este neglijabil fat, ă de efectele benefice asupra rezultatului final. Motivat, iile
teoretice pentru K-means++ se găsesc în [9].

7.6 Determinarea ponderilor pentru RBF


Determinarea ponderilor legăturilor dintre stratul ascuns s, i cel de ies, ire
este ultimul pas. Problema este una de determinare a ponderilor pentru o
problemă de regresie liniară s, i se tratează cu tehnicile din sect, iunile 2.3 s, i
2.4.
Pentru cazul în care problema este una de regresie în care vectorii de
ies, ire sunt din Rm , fiecare neuron de ies, ire îs, i poate ajusta setul de ponderi
independent de ponderile celorlalte ies, iri; se aplică una din cele două metode
de mai sus.

7.7 Algoritmul de instruire a ret, elei RBF


Sintetizăm pe baza expunerii de până acum procedura de instruire a
unei ret, ele RBF. Stratul de intrare este fix, având numărul de noduri dat de
dimensiunea intrării. Stratul ascuns se obt, ine rulând algoritm de clustering
(e.g. K-means precedat de K-means++) peste setul de antrenare s, i rezultând
k centroizi µ̂j , j = 1, k. Aces, ti centri de clustere devin centrii unor funct, ii
Gaussiene asignate nodurilor ascunse. Pentru fiecare astfel de Gaussiană
este asignată o aceeas, i lăt, ime σ, calculată ca:

dmax
σ=√ (7.16)
2·k

116
unde dmax este distant, a maximă dintre perechile de centroizi. În stratul de
ies, ire sunt tot atâtea noduri cât este dimensiunea spat, iului de ies, ire. Ponderile
legăturilor dintre stratul ascuns s, i stratul de ies, ire se calculează ca pentru o
problemă de regresie sau clasificare, definind o funct, ie de eroare s, i minimizând–
o printr-un procedeu adecvat (gradient descent, metoda pseudoinversei etc.)

117
Capitolul 8

Ret, ele neurale convolut, ionale

Ret, elele neurale convolut, ionale (eng. convolutional neural networks,


CNNs) sunt modele instruibile care s–au dovedit eficiente în învăt, area de
date perceptuale — imagini s, i secvent, e de imagini, sunete, serii de timp etc.
Domeniile de utilizare ale ret, elelor neurale de convolut, ie includ clasificare,
detectare de obiecte, segmentare de imagini – figurile 8.1–8.3.
În problemele tratate de modelel de până acum, intrarea era dată de
trăsături selectate sau create de un expert în domeniu. De exemplu, pentru
predict, ia pret, ului de vânzare al unui apartament se consideră relevante
anumite trăsături (suprafat, a, numărul de camere, numărul de băi, etajul,
locat, ia etc.); pentru alte probleme se pot folosi metode de feature engineering
care să producă acele trăsături care sunt folosite mai departe într-un proces
de învăt, are (de exemplu, pentru un medic e mai important indicele de masă
corporală decât greutatea s, i înălt, imea separate; la procesarea de sunet se
face trecerea în spectrul de frecvet, e prin transformata Fourier; etc.). În
deep learning formarea de trăsături este efectuată direct de ret, eaua neurală
care face s, i restul muncii (clasificare, segmentare etc.). Efectivitatea acestei
abordări a fost clar demonstrată în 2012, când o ret, ea convolut, ională a
câs, tigat competit, ia ImageNet Large Scale Visual Recognition Challenge cu
o diferent, ă mai mare de 10% fat, ă de locul următor. Succesul a fost dat s, i de
utilizarea de hardware eficient pentru instruirea ret, elei.
Datele abordate de ret, elele neurale convolut, ionale sunt organizate ca
tablouri uni- sau multi-dimensionale; spre exemplu, o imagine în tonuri de
gri este o matrice de pixeli (0 s, i 255 codifică negru, respectiv alb) – figura 8.4
– iar o imagine color este un tablou tridimensional de date – figura 8.5. De
asemenea, ponderile instruibile sunt structurate ca tablouri. Tablourile se
mai numesc s, i tensori; tensorii de date sunt populat, i cu valori provenite din
măsurătorile obiectelor sau fenomenelor (de exemplu, intensitatea luminoasă
a unui pixel). Un scalar este un tensor de dimensiune 0, un vector este un
tensor de dimensiune 1, o matrice este un tensor de dimensiune 2, o imagine
RGB ca în figura 8.5 este un tensor de dimensiune 3, o secvent, ă video color

118
Figura 8.1: Clasificare de imagini cu ret, ea neurală de convolut, ie

Figura 8.2: Detectare de obiecte cu ret, ea neurală de convolut, ie

Figura 8.3: Segmentare semantică s, i segmentare de instant, e

119
e un tensor de dimensiune 4 etc.

Figura 8.4: Exemplu de cifră 5 din setul de date MNIST. Port, iunea de
imagine încadrată este văzută ca matrice de de valori întregi

Figura 8.5: Imagine color separată pe canale ros, u, verde, albastru; fiecare
pixel este o colect, ie de 3 valori, pentru canalele de culoare ros, u, verde,
respectiv albastru

Pe lângă înmult, irile matriciale prezente în ret, elele de tip perceptron


multistrat, aceste ret, ele folosesc s, i operat, ii de convolut, ie. Mai sunt utilizate
straturi de pooling s, i cu conexiuni complete (eng. fully connected), acestea
din urmă fiind deja cunoscute din modelele de regresie liniară s, i logistică s, i
din ret, elele de tip perceptron multistrat.

8.1 Convolut, ie
Operat, ia de convolut, ie este des întâlnită în procesarea de semnale audio
sau de imagini. În cazul procesării de imagini, unde intrarea este văzută ca o
(stivă de) matrice de valori, prin convolut, ie discretă se generează pixeli noi:
pentru fiecare pixel de intrare se consideră o vecinătate convenabil aleasă,
peste care se calculează o medie ponderată; ponderile sunt preluate dintr–o
matrice de valori, ce formează nucleul (eng. kernel) de convolut, ie. Mai clar,

120
un pixel y[m, n] rezultat prin aplicarea convolut, iei cu un kernel k peste o
matrice de intrare x are valoarea:
∞ ∞
y[m, n] = (8.1)
X X
x[i, j] · k[m − i, n − j]
i=−∞ j=−∞

În formula de mai sus, centrul matricei kernelului k are coordonatele (0, 0),
deci indicii pentru matricea k pot fi pozitivi s, i negativi. În practică, indicii
de sumare din (8.1) au valori finite: kernelul este o matrice cu dimensiuni
finite, deci i s, i j sunt mărginite.

8.1.1 Exemplificare de convolut, ie


Un kernel bidimensional este o matrice de valori (fixe sau determinate
prin instruire); este deci este caracterizat de numărul de linii s, i coloane
(forma sa), se deplasează cu un anumit pas (eng. stride); intrarea peste care
se aplică poate să fie sau nu bordată (eng. padding). Pasul dă numărul de
pixeli cu care kernelul se mută fat, ă de aplicarea precedentă. Bordarea arată
câte rânduri de pixeli sunt adăugat, i la marginea matricei de intrare, pentru
a produce o dimensiune convenabilă la ies, ire. În figurile 8.7—8.10 sunt date
formulele de calcul pentru convolut, ia unei matrice de intrare de 4 × 4 cu un
kernel de dimensiune 3 × 3, kernelul este deplasat la fiecare pas cu o pozit, ie
(stride de 1), intrarea este fără bordare (padding 0). Dimensiunea ies, irii
este 2 × 2, fiind dată în funct, ie de dimensiunea intrării, mărimea kernelului,
padding s, i stride.
Tehnic, formulele din figurile 8.7—8.10 calculează corelarea încrucis, ată
(eng. cross–correlation), sau convolut, ie cu kernel răsturnat (eng. flipped
kernel). Umărind formula 8.1, valoarea de convolut, ie din figura 8.7 ar fi de
fapt (a11 w33 + a12 w32 + a13 w31 ) + (a21 w23 + a22 w22 + a23 w21 ) + (a31 w13 +
a32 w12 + a33 w11 ) în loc de (a11 w11 + a12 w12 + a13 w13 ) + (a21 w21 + a22 w22 +
a23 w23 ) + (a31 w31 + a32 w32 + a33 w33 ). Se ajunge de la o formulă la alta
făcând inversarea ordinii liniilor s, i apoi a ordinii coloanelor din matricea
kernel. În cele ce urmează vom folosi termenul de convolut, ie, chiar dacă
formula de calcul este cu adică corelat, ie încrucis, ată.
Un exemplu numeric, preluat din excelenta sinteză a lui Dumoulin s, i
Visin [1] este dat în figura 8.11.
În funct, ie de configurat, ia stratului de convolut, ie, la sumă se mai poate
adăuga un termen liber – coeficient de bias, b – deci de exemplu prima
convolut, ie (figura 8.7) va produce valoarea: (a11 w11 + a12 w12 + a13 w13 ) +
(a21 w21 + a22 w22 + a23 w23 ) + (a31 w31 + a32 w32 + a33 w33 ) + b. În figurile
8.7—8.11 nu s–a folosit coeficient de bias.
Se observă că acelas, i kernel se “plimbă” peste matricea de intrare. Kerne-
lul se comportă ca o lupă care scanează toată imaginea, încercând să găsească
o trăsătură anume undeva în intrare, oriunde ar fi ea situată. Trăsătura

121
Figura 8.6: O intrare de 4 × 4 cu o convolut, ie de 3 × 3, stride 1 si padding 0
(fără bordare) produce o ies, ire de 2 × 2. Cele 4 valori de ies, ire se calculează
prin aplicarea repetată a kernelului de convolut, ie pe fiecare sub–matrice de
3 × 3 din matricea de intrare.

Figura 8.7: Prima convolut, ie (cu kernel răsturnat), aplicată peste intrările
marcate cu linie punctată

Figura 8.8: A doua convolut, ie

Figura 8.9: A treia convolut, ie

Figura 8.10: Ultima convolut, ie

122
30 31 22 1 0 3 30 21 12 0 3 3 20 11 02
02 02 10 3 1 12.0 12.0 17.0 0 02 12 30 1 12.0 12.0 17.0 0 0 12 32 10 12.0 12.0 17.0

30 11 22 2 3 10.0 17.0 19.0 3 10 21 22 3 10.0 17.0 19.0 3 1 20 21 32 10.0 17.0 19.0

2 0 0 2 2 9.0 6.0 14.0 2 0 0 2 2 9.0 6.0 14.0 2 0 0 2 2 9.0 6.0 14.0

2 0 0 0 1 2 0 0 0 1 2 0 0 0 1

3 3 2 1 0 3 3 2 1 0 3 3 2 1 0
00 01 12 3 1 12.0 12.0 17.0 0 00 11 32 1 12.0 12.0 17.0 0 0 10 31 12 12.0 12.0 17.0

32 12 20 2 3 10.0 17.0 19.0 3 12 22 20 3 10.0 17.0 19.0 3 1 22 22 30 10.0 17.0 19.0

20 01 02 2 2 9.0 6.0 14.0 2 00 01 22 2 9.0 6.0 14.0 2 0 00 21 22 9.0 6.0 14.0

2 0 0 0 1 2 0 0 0 1 2 0 0 0 1

3 3 2 1 0 3 3 2 1 0 3 3 2 1 0
0 0 1 3 1 12.0 12.0 17.0 0 0 1 3 1 12.0 12.0 17.0 0 0 1 3 1 12.0 12.0 17.0

30 11 22 2 3 10.0 17.0 19.0 3 10 21 22 3 10.0 17.0 19.0 3 1 20 21 32 10.0 17.0 19.0

22 02 00 2 2 9.0 6.0 14.0 2 02 02 20 2 9.0 6.0 14.0 2 0 02 22 20 9.0 6.0 14.0

20 01 02 0 1 2 00 01 02 1 2 0 00 01 12

Figura 8.11: Exemplu numeric pentru convolut, ie de 3 × 3 peste o intrare de


5 × 5, fără bordare s, i cu pas 1. Preluare din [1]

căutată este dependentă de coeficient, ii numerici din kernel. Plimbarea ker-


nelului se face peste toate datele din tensorul (mai sus: matricea de intrare),
eventual considerând s, i valorile date de bordare (padding).
Un exemplu numeric concret este arătat mai jos pentru detectarea de
muchii verticale. Matricea de kernel este anume aleasă pentru a depista
tranzit, ia de la o zonă mai luminată la una mai întunecată. Dacă valorile
din matricea de ies, ire se compară cu o valoare de prag, atunci va rezulta o
muchie verticală.

10 10 10 0 0 0
 

10 10 10 0 0 0 
 
0 30 30 0
 
10 10 10 0 0 0 1 0 −1
  
 0 30 30 0
10 10 10 0 0 0 ∗ 1 0 −1 =  (8.2)
    
0 30 30 0
 
10 10 10 0 0 0 1 0 −1

0 30 30 0
10 10 10 0 0 0
  | {z }
Kernel | {z }
10 10 10 0 0 0 Ies, ire
| {z }
Intrare

O diferent, ă între kernelele populare în procesarea de imagini s, i cele din


ret, elele de convolut, ie este că acestea din urmă îs, i ajustează ponderile în
etapa de învăt, are; în particular, prin învăt, are se poate ajunge la coeficient, ii
din kernelele din procesarea de imagini. Scopul este ca învăt, area automată
să determine kernelele potrivite pentru sarcina vizată, de exemplu pentru
clasificarea de imagini.

123
Comentăm efectul folosirii aceluias, i kernel peste toată intrarea conside-
rând numărul de parametri: pentru intrarea de dimensiune 4 × 4 s, i kernelul
de 3×3 exemplificate în figurile 8.6–8.10, avem 3×3 = 9 coeficient, i instruibili
– cei din kernel – la care se mai adaugă eventual ponderea de bias, deci 10
ponderi instruibile. Dacă am folosi precum în ret, elele de tip MLP, câte o
legătură (s, i deci câte o pondere) de la fiecare din cele 16 valori din matricea
de intrare la fiecare valoare din matricea de ies, ire (4 valori), la care adăugăm
s, i ponderile de bias, obt, inem 16 × 4 + 4 = 68 de ponderi instruibile, mai multe
decât cele 10 de la convolut, ie. Pe lângă reducerea numărului de ponderi – s, i
deci: a memoriei necesare modelului, a numărului de calcule necesare – avem
s, i o scădere a probabilităt, ii de overfitting, deoarece sunt mai put, ini parame-
tri. Un kernel produce deci interact, iuni rare (eng. sparse interactions): el
angrenează un număr limitat de intrări în calcul, fat, ă de straturile complet
conectate din MLP, unde valoarea de intrare într–un neuron e calculată cu
activările tuturor nodurilor din stratul anterior.
De asemenea, un kernel promovează partajarea ponderilor (eng. parame-
ter sharing): exact aceleas, i ponderi sunt folosite când kernelul este deplasat
peste intrare. Prin contrast, ponderea unei legături dintre doi neuroni dintr-o
ret, ea MLP nu este reutilizată, fiind specifică acelei perechi de neuroni.
Mai sus s–a considerat mereu că nu se face bordarea matricei de intrare,
adică valoarea de padding este p = 0; aceasta se mai numes, te si o convolut, ie
validă: kernelul se plimbă peste matricea de intrare, fără a depăs, i marginile
ei. Pentru o intrare de dimensiuni w × h s, i un kernel de dimensiune k × l s, i
pas (stride) 1, ies, irea rezultată pentru convolut, ie validă va avea dimensiunea:

w′ × h′ = (w − k + 1) × (h − l + 1) (8.3)

Se observă că aplicarea unui kernel, în aceste condit, ii, duce la reducerea


dimensiunilor matricei de ies, ire. Aplicarea în mod repetat duce la mics, orarea
succesivă a intrării. Uneori, acest lucru nu e de dorit.

8.1.2 Bordarea intrării


Dacă se ia coeficientul de padding p > 0, atunci matricea de intrare se va
borda cu p linii s, i coloane setate cu o valoare constantă, de regulă 0, de fiecare
parte a intrării1 ; peste această matrice de dimensiune (w + 2 · p) × (h + 2 · p)
se va aplica kernelul de convolut, ie de k × l cu stride 1, rezultând o ies, ire de
dimensiune

w′ × h′ = (w + 2 · p − k + 1) × (h + 2 · p − l + 1) (8.4)

Putem justifica bordarea astfel:


1
Se poate face o bordare cu număr diferit de coloane la stânga s, i la dreapta, respectiv
număr aparte de linii deasupra s, i dedesubtul intrării.

124
1. În lipsa bordării, valorile din colt, urile matricelor sunt folosite fiecare o
singură dată în producerea unei valori rezultat; valorile ce nu sunt la
marginea matricei sunt folosite de mai multe ori, deoarece kernelul se
plimbă peste matricea de intrare; pentru pasul de deplasare 1, o valoare
de intrare care nu e pe laturile matricei de intrare este acoperită de mai
multe ori de kernel. Acest efect se arată în figura 8.12, pentru un kernel
de dimensiune 3 × 3: în timp ce valoarea a22 este folosită de patru
ori în calcularea diverselor valori din matricea de ies, ire, valoarea a11
este folosită o singură dată, doar în prima convolut, ie figurată. Similar,
valorile de pe marginile matricei sunt de mai put, ine ori folosite în
aplicarea de kernel decât valorile care nu sunt pe margini.

Figura 8.12: O valoare centrală a intrării va fi folosită de mai multe ori în


aplicarea kernelului. În exemplul arătat, valoarea a22 este folosită de 4 ori la
aplicarea kernelului. În schimb, o valoare dintr-un colt, – de exemplu a11 –
este folosită o singură dată.

2. Vrem să evităm mics, orarea dimensiunilor matricei de ies, ire după


convolut, ie; putem cere ca după aplicarea convolut, iei, dimensiunile
matricei de ies, ire să fie aceleas, i ca la matricea de intrare. Spre exem-
plu, pentru un kernel de k × l = 3 × 3, aplicarea lui peste o ma-
trice de dimensiune w × h ar duce la obt, inerea unei ies, iri de forma
(w − k + 1) × (h − l + 1) = (w − 2) × (h − 2). Dacă bordăm pe fiecare
latură cu un rând de valori 0 (p = 1), atunci obt, inem dimensiunile
(w + 2 · p − k + 1) × (h + 2 · p − l + 1) = w × h.

125
Bordarea de as, a manieră ca dimensiunea intrării să coincidă cu cea a
intrării se numes, te convolut, ie asemenea (eng. same convolution). Exemplu:
plecăm de la matricea de intrare
0 1 2 3
 
4 5 6 7
I= (8.5)
 
8 9 10 11

12 13 14 15
s, i kernelul de 3 × 3  
−4 −3 −2
K = −1 0 1 (8.6)
 
2 3 4
Convolut, ia validă dintre I s, i K produce ies, irea
" #
78 78
I ∗K = (8.7)
78 78

Pentru convolut, ie asemenea facem bordarea cu câte o linie s, i coloană pline


cu 0, adică p = 1 s, i obt, inem intrarea
0 0 0 0 0 0
 
0 0 1 2 3 0
 
0 4 5 6 7 0

I = (8.8)
 
0 8 9 10 11 0

0 12 13 14 15 0
 

0 0 0 0 0 0
Făcând convolut, ia lui I ′ cu K obt, inem:
33 49 58 31
 
 63 78 78 30 
I′ ∗ K =  (8.9)
 
 75 78 78 18 

−29 −77 −86 −87


s, i observăm că ies, irea are aceeas, i dimensiune ca s, i intrarea init, ială I.

8.1.3 Pasul kernelului


În cele de mai sus s–a considerat că kernelul de convolut, ie se mută cu câte
o pozit, ie mai la dreapta sau mai jos. Se poate seta ca pasul de deplasare2
să fie s > 1. Figura 8.13 arată o convolut, ie validă cu pas 2. Se observă
că dimensiunea ies, irii este influent, ată de pasul de deplasare: deoarece se
face salt peste valori s, i kernelul se aplică de mai put, ine ori decât anterior,
matricea de ies, ire are dimensiuni mai mici fat, ă de cazul în care pasul este 1.
2
Deplasarea se poate face cu pas diferit pe orizontală fat, ă de verticală. În cele ce
urmează vom folosi pas identic pe cele două direct, ii.

126
(a) Prima convolut, ie

(b) A doua convolut, ie. Se observă că s–a mutat kernelul cu două pozit, ii mai la
dreapta

(c) A treia convolut, ie – s–a sarit de la prima la a treia linie

(d) Ultima convolut, ie

Figura 8.13: Convolut, ie validă cu pas 2

127
Se obt, ine astfel un efect de subes, antionare; un proces similar are loc la
folosirea straturilor de pooling (sect, iunea 8.3), doar că la convolut, ii cu stride
> 1 subes, antionarea este învăt, ată, s, i nu o strategie fixă. Subes, antionarea
este utilă deoarece se reduce din redundant, a semnalului – de exemplu, într–o
imagine, pixelii alăturat, i sunt foarte similari s, i se referă frecvent la acelas, i
obiect.
Dăm mai jos formula de calcul pentru dimensiunea ies, irii, în funct, ie de:
• dimensiunea intrării w × h

• dimensiunea kernelului, k × l

• padding, p ≥ 0

• stride, s ≥ 1
Ies, irea va fi de dimensiune:
w + 2p − k h + 2p − l
     
′ ′
w ×h = +1 × +1 (8.10)
s s
unde [x] este partea întreagă a lui x. Evident, această formulă generalizează
variantele date mai sus.
Un exemplu numeric de convolut, ie cu pas 2 s, i padding 1, similar cu 8.11
este dat in figura 8.14 [1].

00 01 02 0 0 0 0 0 0 00 01 02 0 0 0 0 0 0 00 01 02
02 32 30 2 1 0 0 0 3 32 22 10 0 0 0 3 3 2 12 02 00
00 01 02 1 3 1 0 6.0 17.0 3.0 0 0 00 11 32 1 0 6.0 17.0 3.0 0 0 0 1 30 11 02 6.0 17.0 3.0

0 3 1 2 2 3 0 8.0 17.0 13.0 0 3 1 2 2 3 0 8.0 17.0 13.0 0 3 1 2 2 3 0 8.0 17.0 13.0

0 2 0 0 2 2 0 6.0 4.0 4.0 0 2 0 0 2 2 0 6.0 4.0 4.0 0 2 0 0 2 2 0 6.0 4.0 4.0

0 2 0 0 0 1 0 0 2 0 0 0 1 0 0 2 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 3 2 1 0 0 0 3 3 2 1 0 0 0 3 3 2 1 0 0
00 01 02 1 3 1 0 6.0 17.0 3.0 0 0 00 11 32 1 0 6.0 17.0 3.0 0 0 0 1 30 11 02 6.0 17.0 3.0

02 32 10 2 2 3 0 8.0 17.0 13.0 0 3 12 22 20 3 0 8.0 17.0 13.0 0 3 1 2 22 32 00 8.0 17.0 13.0

00 21 02 0 2 2 0 6.0 4.0 4.0 0 2 00 01 22 2 0 6.0 4.0 4.0 0 2 0 0 20 21 02 6.0 4.0 4.0

0 2 0 0 0 1 0 0 2 0 0 0 1 0 0 2 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 3 2 1 0 0 0 3 3 2 1 0 0 0 3 3 2 1 0 0
0 0 0 1 3 1 0 6.0 17.0 3.0 0 0 0 1 3 1 0 6.0 17.0 3.0 0 0 0 1 3 1 0 6.0 17.0 3.0

0 3 1 2 2 3 0 8.0 17.0 13.0 0 3 1 2 2 3 0 8.0 17.0 13.0 0 3 1 2 2 3 0 8.0 17.0 13.0

00 21 02 0 2 2 0 6.0 4.0 4.0 0 2 00 01 22 2 0 6.0 4.0 4.0 0 2 0 0 20 21 02 6.0 4.0 4.0

02 22 00 0 0 1 0 0 2 02 02 00 1 0 0 2 0 0 02 12 00
00 01 02 0 0 0 0 0 0 00 01 02 0 0 0 0 0 0 00 01 02

Figura 8.14: Exemplu numeric pentru convolut, ie de 3 × 3 peste o intrare de


5 × 5, cu pas 2 si padding 1 (convolut, ie asemenea). Preluare din [1]

128
8.1.4 Numărul de ponderi s, i de operat, ii pentru convolut, ie
cu intrare pe un singur canal
Este important să precizăm numărul de ponderi instruibile s, i operat, ii
efectuate pentru convolut, iile discutate până acum. Să presupunem că lucrăm
cu un kernel de convolut, ie de dimensiune k × l. Pentru calculul unei singure
valori din matricea de ies, ire trebuie să facem k × l inmult, iri de doi termeni
(unul e pondere din kernel, altul e valoare din matricea de intrare); fiecare din
cele k ×l valori este acumulată la o variabilă setată init, ial la 0 pentru a obt, ine
termenul final, obt, inând deci k × l înmult, iri s, i acumulări (eng. multiply–
accumulate operations, MAC). Acest lucru se repetă pentru calculul fiecărui
termen din matricea de ies, ire.
Sintetizând: dacă la o matrice de intrare de forma w × h aplicăm un
kernel de convolut, ie de dimensiune k × l, cu stride s s, i padding p, atunci:

• numărul de ponderi instruibile din kernel este:

nponderi = k × l (8.11)

• dimensiunea ies, irii w′ × h′ este cea din ecuat, ia 8.10;

• numărul de înmult, iri s, i acumulări este

M AC = (w′ × h′ ) × (k × l) (8.12)

Dacă considerăm s, i bias, atunci va fi un unic coeficient de bias pentru tot


kernelul, s, i formulele de mai sus trebuie ajustate corespunzător: nponderi =
k × l + 1, M AC = (w′ × h′ ) × (k × l + 1).

8.1.5 Convolut, ii pentru intrări cu mai multe canale


În exemplificările anterioare s-a considerat mereu intrarea ca matrice,
adică un tensor bidimensional. În general, putem avea ca intrare pentru
operat, ia de convolut, ie un tensor cu mai mult de două dimensiuni, deoarece:

1. semnalul de intrare init, ial poate fi cu mai multe canale, de exemplu


imagine codificată RGB – a se vedea figura 8.5;

2. putem decide ca pe o intrare oarecare să se detecteze mai multe trăsături,


rezultând mai multe hărt, i de trăsături corespunzătoare. Aceste multiple
hărt, i vor produce următoarea intrare, care va fi deci cu mai multe
canale.

Un filtru de convolut, ie este o colect, ie de kernele de convolut, ie, câte un


kernel pentru fiecare canal de intrare. În figura 8.15 este reprezentat un filtru
de convolut, ie aplicat peste o intrare cu c = 4 canale, fiecare canal de intrare
fiind câte o matrice de 6 × 6; forma intrării este deci w × h × c = 6 × 6 × 4.

129
Pentru exemplul dat filtrul are forma k × l × c = 3 × 3 × 4; se foloses, te
aici convolut, ie validă cu pas 1. Rezultatul aplicării filtrului este o matrice
de forma 4 × 4. Lungimea s, i lăt, imea ies, irii sunt calculate conform ecuat, iei
8.10. Pentru întreg filtrul de convolut, ie se poate adăuga un coeficient de bias.
Pentru exemplul din figura 8.15 numărul de parametri instruibil este dat de
câte valori sunt în filtru – 3 · 3 · 4 = 36 – la care se mai adaugă eventual un
coeficient de bias.

Figura 8.15: Convolut, ie validă pentru o intrare cu 4 canale, cu stride 1:


intrarea are forma w × h × c dată de lăt, imea s, i înălt, imea intrării (6 × 6) s, i
numărul de canale de intrare, adică 4; filtrul de convolut, ie este un tensor
tridimensional, cu mărimea fiecărui kernel 3 × 3, iar a treia dimensiune e
numărul de canale de intrare. Rezultatul este un tensor de forma 4 × 4.

Pentru calculul unei singure valori din matricea de ies, ire, aces, ti 36 de
coeficient, i se înmult, esc cu tot atâtea valori din tensorul de intrare (3 × 3
valori din matricea din plan apropiat; alte 3 × 3 valori din matricea din planul
următor; la fel până la matricea de intrare din plan îndepărtat), deci 36 de
înmult, iri; fiecare din aces, ti termeni este acumulat la o variabilă setată init, ial
la 0 pentru a obt, ine termenul final, obt, inând deci 36 de înmult, iri s, i acumulări
(operat, ii MAC). Formal, prima valoare din matricea de iesire o se calculează
astfel (tensorul tridimensional a este matrice de intrare, cu a1,1..6,1..6 matricea
din plan apropiat s, i a4,1..6,1..6 matricea de valori din plan indepărtat; similar
pentru ponderile w din tensorul tridimensional al filtrului):

130
convolut, ia cu primul kernel din filtru: 9 MACs

o[1, 1] = a111 w111 + a112 w112 + a113 w113 + · · · + a131 w131 + a132 w132 + a133 w133 +
z }| {

convolut, ia cu al doilea kernel din filtru: 9 MACs

+ a211 w211 + a212 w212 + a213 w213 + · · · + a231 w231 + a232 w232 + a233 w233 +
z }| {

convolut, ia cu al treilea kernel din filtru: 9 MACs

+ a311 w311 + a312 w312 + a313 w313 + · · · + a331 w331 + a332 w332 + a333 w333 +
z }| {

convolut, ia cu ultimul kernel din filtru: 9 MACs

+ a411 w411 + a412 w412 + a413 w413 + · · · + a431 w431 + a432 w432 + a433 w433
z }| {

(8.13)

Similar se procedează pentru a calcula restul de valori din matricea de


ies, ire, obt, inând în total 4 × 4 × 36 = 576 MACs.
Mai general, dacă pornim de la o intrare de forma w × h × nin s, i facem o
convolut, ie cu un singur filtru de forma k × l × nin , cu stride s s, i padding p,
atunci:

1. numărul de ponderi din filtru este

nponderi = k × l × nin (8.14)

2. ies, irea este o matrice de dimensiune w′ × h′ cu dimensiunile date ca în


formula 8.10;

3. numărul total de adunări s, i acumulări pentru matricea de ies, ire este

M AC = (w′ × h′ ) × nponderi = (w′ × h′ ) × (k × l × nin ) (8.15)

Dacă se dores, te s, i includere de bias, atunci va fi un unic coeficient de


bias pentru tot filtrul s, i cele două formule de mai sus trebuie actualizate
corespunzător: nponderi = k × l × nin + 1, M AC = (w′ × h′ ) × (k × l × nin + 1).
Faptul că în exemplul 8.15 ies, irea este un tensor cu două dimensiuni
(o matrice) se explică prin aceea că s–a aplicat un singur filtru. Folosirea
de nout filtre pentru intrarea din figura 8.15 produce un tensor de forma
4 × 4 × nout . Fiecare filtru trebuie să fie de forma 3 × 3 × 4, ultima valoare
(4) fiind numărul de canale de intrare. Cazul convolut, iei cu două filtre este
reprezentat în figura 8.16.
Folosirea mai multor filtre este justificată de faptul că fiecare produce o
vedere proprie pornind de la aceeas, i intrare. De exemplu, un filtru poate fi
specializat pentru detectarea de muchii orizontale, altul pentru detectarea
de muchii verticale. Combinarea detect, iilor în straturile următoare poate
ajuta în sarcina propusă – clasificare, segmentare, detectare de obiecte etc.
În final, trăsăturile detectate prin filtrare succesivă sunt date unor straturi
complet conectate, care fac clasificarea finală.

131
Figura 8.16: Convolut, ie validă pentru un strat de intrare cu 4 canale, 2 filtre,
padding 0 s, i stride 1: intrarea are forma w × h × c = 6 × 6 × 4; fiecare filtru
este un tensor 3 × 3 × 4. Rezultatul este un tensor de forma 4 × 4 × 2.

În general, dacă pe o intrare de forma w × h × nin – adică: nin canale de


intrare, fiecare canal fiind o matrice de dimensiune w × h – se aplica nout
filtre, toate cu padding p s, i stride s, atunci:
1. fiecare filtru trebuie să traverseze toate cele nin canale de intrare, fiind
deci compus din nin kernele;
2. un filtru are forma k×l×nin (8.14); numărul total de ponderi instruibile
din toate filtrele este

nponderi = k × l × nin × nout (8.16)

3. ies, irea va fi un tensor de forma


w + 2p − k h + 2p − l
     
′ ′
w × h × nout = +1 × + 1 × nout
s s
(8.17)
unde w s, i h sunt calculate ca în ecuat, ia 8.10;
′ ′

4. numărul de operat, ii de adunare s, i acumulare este:

M AC = (w′ × h′ × nout ) × (k × l × nin ) (8.18)

formula fiind obt, inută pornind de la 8.15 s, i considerând s, i numărul de


filtre – acelas, i cu numărul de canale de ies, ire – nout .
Dacă se foloses, te bias, atunci fiecare filtru de bias va avea propriul său
coeficient de bias, ca mai sus; se actualizează us, or numărul de ponderi s, i
de operat, ii. De exemplu, numărul de ponderi calculat în (8.16) devine
nponderi = (k × l × nin + 1) × nout .

132
8.2 Funct, ii de activare
Dacă urmărim calculele din imaginile 8.7–8.10, observăm că operat, ia de
convolut, ie e o operat, ie liniară; a se vedea s, i [1] sect, iunea 4.1 pentru argu-
mentare riguroasă a liniarităt, ii convolut, iei. Ca atare, se impune utilizarea
de funct, ii de activare neliniare, de forma celor folosite la ret, elele de tip per-
ceptron multistrat, sect, iunea 6.4.2 pagina 81. În arhitecturile deep learning
actuale sunt populare funct, iile de activare ReLU, PReLU, ELU. Funct, iile de
activare se aplică punctual, adică peste fiecare valoare din rezultatul dat de
convolut, ie.
Tensorii rezultat, i după aplicarea funct, iei de activare se numesc hărt, i de
trăsături (eng. feature maps).

8.3 Straturi de pooling


Un strat de pooling este un filtru bidimensional care se aplică peste
fiecare canal din harta de trăsături. Prin pooling se produc sumarizări locale
ale valorilor din feature maps s, i totodată se reduce dimensiunea acestora
(subes, antionare). Suplimentar, deoarece valoarea agregată prin pooling nu
depinde de pozit, iile pe care se află valorile folosite (în cadrul vecinătăt, ii), se
obt, ine o invariant, ă la mici translat, ii.
Un strat de pooling este caracterizat de: dimensiunea lui (lăt, ime, înălt, ime),
pas (stride) s, i forma de agregare a valorilor; nu se practică bordarea intrării.
Filtrele se pot aplica pe regiuni adiacente sau cu suprapuneri. Tensorii
rezultat, i au mărimea conform ecuat, iei 8.10. Deoarece folosesc agregări de
valori (maxim, medie), straturile de pooling nu au ponderi instruibile.

8.3.1 Max pooling


Filtrul max pooling calculează valoarea maximă peste fiecare regiune
aleasă. Un exemplu este dat în figura 8.17, pentru un filtru de tip max
pooling de dimensiune 2 × 2, cu pasul 2, aplicat pe o intrare cu un singur
canal. Dacă sunt mai multe canale, se va aplica operat, ia de pooling pe fiecare
canal în parte, în mod independent.

8.3.2 Average pooling


Un filtru de tip average pooling foloses, te calculul de medie ca formă de
agregare. Restul detaliilor de la filtrul max pooling sunt valabile s, i aici. Un
exemplu numeric este dat în figura 8.18, pentru un filtru de tip max pooling
de dimensiune 2 × 2, cu pasul 2, un singur canal de intrare. Dacă intrarea
este pe mai multe canale, atunci se face aplică filtrul de average pooling în
mod independent, pe fiecare canal.

133
Figura 8.17: Max pooling aplicat peste un canal al unei hărt, i de trăsături de
dimensiune 4 × 4

Figura 8.18: Average pooling aplicat peste un canal al unei hărt, i de trăsături
de dimensiune 4 × 4

Sunt mai put, in folosite decât max pooling, pentru că se consideră că e


mai util a se procesa prezent, a maximală a unei trăsături dintr–o hartă decât
valoarea medie a trăsăturilor.

8.3.3 Global average pooling


Un filtru de global average pooling (GAP) reduce fiecare canal din harta
de trăsături peste care se aplică la o singură valoare, media de pe acel canal.
Este echivalent cu a aplica un filtru de average pooling de dimensiunea
intrării. Astfel, se reduce o hartă de trăsături de forma w × h × nin la un
tensor de forma 1 × 1 × nin , indiferent de valorile lui w s, i h.
Două exemple sunt date în figura 8.19.

8.4 Straturi complet conectate


Pentru ret, elele neurale de convolut, ie folosite pentru estimare de probabi-
litate condit, ionată, clasificare sau regresie se folosesc în finalul ret, elei straturi
complet conectate (eng. fully connected layers), exact ca într-o ret, ea neurală
perceptron multistrat. Se act, ionează pe principiul: filtrele de convolut, ie s, i
straturile de pooling fac filtrări succesive, plecând de la intrarea originară
(e.g. imagine RGB) s, i obt, inând trăsături din ce în ce mai rafinate; acestea

134
(a) Filtru de global average pooling (b) Filtru de global average pooling
pe o hartă de trăsături cu un canal de aplicat pe o hartă de trăsături de
forma 4 × 4 forma 4 × 4 × 3

Figura 8.19: Global average pooling pe un canal, respectiv pe 3 canale

devin intrare pentru o arhitectură de tip MLP – parte a ret, elei convolut, ionale
– s, i aici se face efectiv clasificarea, regresia sau estimarea de probabilitate
condit, ionată.
Înainte de primul strat complet conectat se face o aplatizare, adică se
dispun tot, i neuronii într–un s, ir – a se vedea figura 8.20. De la stratul
aplatizat urmează unul sau mai multe straturi complet conectate, care
efectuează operat, ie de înmult, ire matricială, urmate imediat de funct, ii de
activare neliniare. De exemplu, pentru problemă de clasificare sau de estimare
de probabilitate condit, ionată se foloses, te după ultimul strat complet conectat
funct, ia softmax, definită în sect, iunea 3.3.2 pagina 43.
Numărul de neuroni din stratul de ies, ire este dat de numărul de ies, iri
cerute de problemă – de exemplu, pentru o problemă de clasificare este
numărul de clase, pentru fiecare producându–se o valoare de probabilitate
condit, ionată. Numărul de neuroni din celelalte straturi complet conectate
t, ine de decizie arhitecturală a ret, elei neurale convolut, ionale din care fac
parte straturile complet conectate.
În figura 8.20 este arătată o succesiune de straturi complet conectate,
plecând de la o hartă de trăsături (sau rezultatul aplicării unui filtru de
pooling peste o hartă de trăsături) ce se aplatizează.

8.5 Funct, ii de cost, regularizare


Pentru modificare ponderilor se foloses, te o funct, ie de cost, care măsoară
discrepant, a între ies, ire produsă de ret, ea s, i valoarea cunoscută pentru intrarea
curentă. Funct, ia de cost trebuie să fie diferent, iabilă, pentru a permite calcul
de gradient, i ce vor fi folosit, i pentru modificarea ponderilor ret, elei. Se pot
folosi funct, iile de cost din sect, iunea 6.6, pagina 87. În literatura de deep
learning există s, i alte propuneri, influent, ate de problema ce trebuie rezolvată.
Se recomandă utilizarea unei forme de regularizare precum penalizare
L1 , L2 sau utilizarea unor forme aparte de regularizare, dezvoltate specific

135
Figura 8.20: Straturi complet conectate la final de ret, ea neurală de convolut, ie

pentru ret, ele de tip deep learning, precum Dropout3 , Stochastic Depth4 .
Se utilizează algoritmi de modificare a parametrilor ret, elei folosind
gradient, ii, de exemplu gradient descent, ADAM5 , Adagrad6 , RMSProp7 .

8.6 Ret, elele neurale de convolut, ie: solut, ie end-to-


end
O ret, ea neurală de convolut, ie are o arhitectură schit, ată în figura 8.21.
În succesiunea convolut, ie - neliniaritate - pooling pleacă de la o intrare
(imagine RGB, de exemplu) care este bogată în detalii, dar cu semantică
put, ină. Pe măsură ce se extrag succesiv trăsături, se pierd detalii (considerate
redundante) s, i se câs, tigă în plan semantic. Figura 8.228 arată acest lucru.
3
Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhut-
dinov. 2014. Dropout: a simple way to prevent neural networks from overfitting. J. Mach.
Learn. Res. 15, 1 (January 2014), 1929–1958.
4
Huang, G., Sun, Y., Liu, Z., Sedra, D., Weinberger, K.Q. (2016). Deep Networks with
Stochastic Depth. In: Leibe, B., Matas, J., Sebe, N., Welling, M. (eds) Computer Vision –
ECCV 2016. ECCV 2016. Lecture Notes in Computer Scienc, vol 9908. Springer, Cham.
https://doi.org/10.1007/978-3-319-46493-0_39
5
Kingma, D. P., Ba, J. (2014). Adam: A Method for Stochastic Optimization (cite
arxiv:1412.6980Comment: Published as a conference paper at the 3rd International Confe-
rence for Learning Representations, San Diego, 2015)
6
Duchi, J., Hazan, E., Singer, Y. (2011). Adaptive subgradient methods for online
learning and stochastic optimization. Journal of machine learning research, 12(7).
7
Tieleman, T. and Hinton, G. (2012). Lecture 6.5 - RMSProp, COURSERA: Neural
Networks for Machine Learning. Technical report.
8
Preluare din Honglak Lee, Roger Grosse, Rajesh Ranganath, and Andrew Y.
Ng. 2011. Unsupervised learning of hierarchical representations with convolutio-
nal deep belief networks. Commun. ACM 54, 10 (October 2011), 95–103. ht-
tps://doi.org/10.1145/2001269.2001295

136
Figura 8.21: Arhitectura generică a unei ret, ele neurale convolut, ionale folosită
pentru clasificare de imagini. Secvent, a convolut, ie + neliniaritate + pooling
se poate repeta. La final se află straturile complet conectate. Aici, ultimul
strat produce probabilităt, i condit, ionate

Figura 8.22: Trăsături învăt, ate de o ret, ea neurală profundă. Primele trăsături
de intrare sunt chiar pixelii, detaliat, i, dar nu de mare ajutor în clasificarea
dorită. Pe măsură ce se avansează cu filtrarea, se obt, in trăsături din ce în ce
mai rafinate – segmente cu diferite orientări, elemente de trăsături faciale,
părt, i mai mari din fat, ă etc. Fiecare trăsătură poate fi văzută ca un filtru,
care caută în imagine o anumită trăsătura – de exemplu, un nas. Dacă
trăsătura este găsită, valoarea de activare corespunzătoare este mare. În
straturile următoare se combină trăsăturile detectate. Clasificarea din final
este sarcină rezolvată de straturile complet conectate.

137
8.7 Exemple de ret, ele neurale de convolut, ie
Punând cap la cap elementele arhitecturale (convolut, ie, funct, ie de activare,
strat de pooling, straturi complet conectate), rezultă că, schematic, o ret, ea
neurală de convolut, ie ar arăta precum în figura 8.23. Blocul format din
succesiunea convolut, ie → neliniaritate → pooling se poate repeta de mai
multe ori, înainte de a trece la straturile complet conectate.

138
Figura 8.23: Schit, ă a unei ret, ele de convolut, ie folosită pentru clasificare

139
Figura 8.24: Arhitectura ret, elei convolut, ionale LeNet5
În cele ce urmează prezentăm două arhitecturi clasice de ret, ele de
convolut, ie.

8.7.1 LeNet-5
Ret, eaua LeNet-5 a fost introdusă de Yann LeCun9 pentru recunoas, terea
de cifre scrise de mână. Ret, eaua constă din 3 straturi convolut, ionale, 2
straturi de pooling s, i 2 straturi complet conectate. Arhitectura ret, elei este
desenată în figura 8.24 s, i detaliată în tabelul 8.1.

Strat Nr. filtre Dim. Pas Dim. hartă Activare


/neuroni kernel de trăsături
Intrare - - - 32 × 32 × 1 -
Conv 1 6 5×5 1 28 × 28 × 6 tanh
Pool 2 - 2×2 2 14 × 14 × 6 -
Conv 3 16 5×5 1 10 × 10 × 16 tanh
Pool 4 - 2×2 2 5 × 5 × 16 -
Conv 5 120 5×5 1 1 × 1 × 120 tanh
Fully connected 6 - - - 84 tanh
Fully connected 7 - - - 10 softmax

Tabelul 8.1: Detalii arhitecturale pentru ret, eaua LeNet5.

8.7.2 VGG16
Ret, eaua VGG16 este o ret, ea de tip convolut, ional introdusă in articolul
“Very Deep Convolutional Networks for Large-Scale Image Recognition”10 .
Modelele VGG au plecat de la idea de a folosi succesiuni de convolut, ii
cu kernel de 3 × 3 în locul kernelelor de convolut, ie de dimensiuni mai
mari – 5 × 5, 7 × 7 – intens folosite în modelele anterioare; astfel, numărul
de ponderi instruibile scade. Ret, elele VGG au fost folosite cu succes la
clasificarea de imagini (fiind antrenate pe setul de date ImageNet, care are
1000 de clase), detectare de obiecte s, i calcul de reprezentări numerice (eng.
embeddings). VGG16 este una din variantele propuse de autori s, i cu cele
mai bune rezultatele empirice.
O reprezentare grafică a arhitecturii este în figura 8.25. Intrarea este
dată de imagini de dimensiune 224 × 224 pe 3 canale (RGB); se face o
preprocesare a imaginilor astfel încât fiecare canal să fie cu valoarea medie
9
Lecun, Y.; Bottou, L.; Bengio, Y.; Haffner, P. (1998). “Gradient-based lear-
ning applied to document recognition”, Proceedings of the IEEE. 86 (11): 2278–2324.
doi:10.1109/5.726791, link
10
K. Simonyan i A. Zisserman, “Very deep convolutional networks for large-scale image
recognition”, in ICLR, 2015, link

140
0 s, i deviat, ia standard 1 (standardizare). Imaginea este trecută printr–o
secvent, ă de straturi de convolut, ie cu kernel de dimensiune 3 × 3. Fiecare
strat are 64 de filtre de convolut, ie. Convolut, ia e de tip asemenea (bordare
cu un rând de valori 0) s, i pas 1. Ultima hartă de trăsături este trecută
printr–un filtru de tip max pooling de dimensiune 2 × 2 cu pas 2. La finalul
acestui bloc se ajunge la tensori de forma 112 × 112 × 64.
Urmează un bloc similar, cu 128 de filtre de convolut, ie, urmate de
max pooling cu aceias, i parametri ca mai sus. Rezultă un tensor de forma
56 × 56 × 128. Al treilea bloc are trei straturi convolut, ionale de câte 256 de
filtre (convolut, ie asemenea, bordare s, i pas de 1) urmate de un max pooling
ca mai sus. Rezultă un tensor de forma 28 × 28 × 256. Urmează două blocuri
de câte 3 straturi de convolut, ie, fiecare cu 512 filtre + max pooling. Se
ajunge aici la tensor de forma 7 × 7 × 512. În final se pun 3 straturi complet
conectate, două cu 4096 de neuroni s, i ultimul cu 1000 de neuroni (numărul
de clase).
Ultimul strat foloses, te funct, ie de activare softmax. Celelalte straturi
complet conectate sau de convolut, ie sunt urmate de funct, ie de activare ReLU.

Figura 8.25: Arhitectura ret, elei convolut, ionale VGG16

141
Capitolul 9

Calcul evolut, ionist

Calculul evolut, ionist este inspirat din teoria evolut, iei dezvoltate de către
Charles Darwin s, i de genetică – s, tiint, a eredităt, ii, având ca părinte pe Gregor
Mendel. Au în comun faptul că folosesc populat, ii de elemente care sunt
folosite pentru căutarea solut, iei unei probleme, spre deosebire de alte abordări
care încearcă îmbunătăt, irea printr-un proces iterativ a unei singure valori.

9.1 Taxonomie
Calculul evolut, ionist se împarte în:

1. algoritmi genetici;

2. programare evolut, ionistă;

3. strategii de evolut, ie;

4. programare genetică.

Domeniile enumerate au concepte comune; dintre toate, cele mai multe


rezultate sunt în domeniului algoritmilor genetici, dar la ora actuală există
hibridizări ale acestor 4 arii.
Cel care este creditat ca fiind pionierul domeniului algoritmilor genetici
este John T. Holland de la Universitatea din Michigan. El a introdus
conceptul de populat, ie de indivizi care participă la căutarea unei solut, ii; de
asemenea, a dat teorema schemelor. El a fost cel care a stabilit operat, iile
care trebuie să se aplice unei populat, ii genetice - select, ia, încrucis, area s, i
mutat, ia.
Programarea evolut, ionistă (avându–l ca pionier pe Larry J. Fogel) foloses, te
ca operatori select, ia celui mai potrivit individ s, i mutat, ia, dar nu s, i încrucis, area.
În timp ce algoritmii genetici văd procesul evolutiv ca fiind aplicat pe o
populat, ie de indivizi din aceeas, i specie, programarea evolut, ionistă vede

142
evolut, ia ca aplicându–se unei populat, ii de specii. Fiecare element din
populat, ie este interpretat ca o specie întreagă.
Strategiile de evolut, ie au fost dezvoltate de Ingo Rechenberg s, i Hans-
Paul Schwefel, care au experimentat diferite variante de mutat, ie pentru
optimizarea de suprafet, e aflate în contact cu un fluid. Mutat, iile reprezentau
perturbări ale unor suprafet, e, efectuând o căutare locală. Multiplele variante
de perturbare au construit un întreg domeniu.
Programarea genetică (Richard Friedberg) a pornit cu coduri program
de lungime fixă. Prin modificări efectuate în mod automat asupra acestor
programe se dorea obt, inerea unor variante de cod optimizate. Esent, iale sunt
aici modul de reprezentare a acestor programe s, i funct, iile de măsurare a
calităt, ii codului.
De cele mai multe ori, pentru o abordare dintr-unul din cele patru domenii
se urmează pas, ii:
1. Init, ializează populat, ia
2. Calculează performant, a fiecărui individ din populat, ie
3. Aplică un pas de select, ie
4. Aplică operat, ii precum încrucis, area sau mutat, ia
5. Reia de la pasul 2 până când se îndeplines, te o anumită condit, ie.
Diferent, a între domenii constă în detaliile fiecărui pas. Pas, ii sunt bazat, i
pe alegeri de valori aleatoare, ceea ce înseamnă că rulări diferite pot duce
la rezultate diferite. Totodată, algoritmii nu garantează descoperirea unei
valori optime. De cele mai multe ori, însă, nu este nevoie să se cunoască exact
optimul, ci o valoare suficient de bună. În practică, calculul evolut, ionist dă
rezultate bune într–un timp rezonabil.
În cele ce urmează vom prezenta algoritmii genetici.

9.2 Algoritmi genetici


Rolul mediului ca factor modelator în teoria evolut, ionistă este preluat în
algoritmii genetici de către o funct, ie scop (sau funct, ie obiectiv). Vom detalia
algoritmul pentru maximizarea unei funct, ii f : [a, b] → R∗+ .
Constrângerea ca funct, ia f să fie strict pozitivă poate fi asigurată prin
adunarea unei cantităt, i convenabile la funct, ia init, ială, dacă are s, i port, iuni
negative, sau considerarea funct, iei g(x) = max(ε, f (x)), unde ε este o con-
stantă strict pozitivă s, i mică; sau aplicăm o transformare inversabilă cu
codomeniu strict pozitiv de forma exp f (x) etc. Alegerea de a maximiza
funct, ia obiectiv este convenabilă pentru descrierea care urmează. Dacă se
dores, te minimizare de funct, ie, se poate t, ine cont de relat, ia:
min f (x) = − max [−f (x)] (9.1)
x∈D x∈D

143
Indivizii care alcătuiesc populat, ia se numesc cromozomi s, i sunt alcătuit, i
din gene, reprezentat, i ca bit, i.

Figura 9.1: Reprezentarea unui cromozom în algoritmii genetici. Cromzomo-


mul se transformă în final într-o valoare din intervalul [a, b]

Se pornes, te cu o populat, ie init, ială, care este supusă apoi unei secvent, e
de procese de tipul:

1. select, ie: indivizii care sunt cei mai buni (considerând valoarea funct, iei
f ce se vrea maximizată) sunt favorizat, i să apară de mai multe ori
într-o populat, ie nouă fat, ă de indivizii mai put, in performant, i;

2. încrucis, are: are loc un schimb de gene între perechi de părint, i, formându-
se copii; aces, tia se presupune că mos, tenesc s, i combină performant, ele
părint, ilor.

3. mutat, ie: se efectuează nis, te modificări minore asupra materialului


genetic existent.

Pas 1. Crearea unei populat, ii init, iale de cromozomi. Se consideră mai


multe valori pentru variabila x ∈ [a, b]. Numărul acestor valori – numit
dimensiunea populat, iei – este dat ca parametrul al algoritmului, n,
dependent de problemă. Toate valorile sunt cuantificate prin cromo-
zomi care sunt s, iruri de k bit, i; un bit reprezintă în acest caz o genă a
cromozomului, iar k e un alt parametru de intrare.
Generarea celor n cromozomi se face aleator, prin setarea fiecărei gene
la valoarea 0 sau 1, la întâmplare. Se obt, ine astfel o populat, ie init, ială
formată din cromozomii c1 , . . . , cn .
Fiecare cromozom c – s, ir de k bit, i – va produce un număr x(c) din
intervalul [a, b] (figura 9.1), astfel: dacă valoarea în baza 10 a cromo-
zomului este v(c) (unde, evident, avem v(c) ∈ {0, . . . , 2k − 1}) atunci
valoarea asociată din intervalul [a, b] este:
b−a b−a b−a
 
x(c) = a + v(c) · k ∈ a, a + k ,a + 2 · k ,...,b (9.2)
2 −1 2 −1 2 −1

Pas 2. Evolut, ia populat, iei. În acest pas se obt, in generat, ii succesive ple-
când de la populat, ia init, ială; populat, ia de la generat, ia g +1 se obt, ine pe
baza populat, iei de la generat, ia g. Operatorii sunt select, ia, împerecherea
(crossover, încrucis, area) s, i mutat, ia.

144
Pas 2.1. Select, ia. Pentru fiecare cromozom ci din populatie se calcu-
lează funct, ia obiectiv yi = f (x(ci )), 1 ≤ i ≤ n. Apoi se însumează
valorile funct, iilor obiectiv obt, inute pentru fiecare cromozom în
parte:
n
S= (9.3)
X
yi
i=1
Pentru fiecare din cei n cromozomi se calculează probabilitatea
de select, ie:
yi
pi = , 1 ≤ i ≤ n (9.4)
S
Se observă că 0 < pi < 1, 1 ≤ i ≤ n s, i ni=1 pi = 1.
P

Pentru fiecare cromozom se calculează probabilitatea cumulativă


de select, ie:
j
qj = pi , 1 ≤ j ≤ n (9.5)
X

i=1
Remarcăm că se obt, ine 0 < p1 = q1 < q2 < · · · < qn = 1. Cu cât
cromozomul ci determină o valoare mai mare pentru funct, ia f
(i.e. cu cât valoarea f (x(ci )) este mai mare), cu atât diferent, a
dintre qi s, i qi−1 – adică lungimea intervalului (qi−1 , qi ] – este mai
mare1 .
Se selectează n numere aleatoare uniform distribuite în (0, 1].
Pentru fiecare număr, dacă el se găses, te în intervalul (0, q1 ] atunci
cromozomul c1 este ales s, i depus într-o populat, ie nouă; dacă acest
număr se află în intervalul (qi , qi+1 ] atunci se alege cromozomul
ci+1 . Remarcăm ca numărul de cromozomi prezent, i în noua
populat, ie este tot n. Cu cât valoarea y = f (x(c)) asociată unui
cromozom c este mai mare, cu atât cresc s, ansele lui spre a fi
selectat s, i depus în noua populat, ie. Este foarte probabil ca un
astfel de cromozom valoros să apară de mai multe ori in populat, ia
nouă; de asemenea, este foarte probabil ca un cromozom cu o
valoare mică pentru funct, ia f să nu apară deloc.
Pas 2.2. Încrucis, area (împerecherea, crossover) Pentru fiecare cro-
mozom care a rezultat la pasul anterior se alege o valoare aleatoare,
uniform distribuită în intervalul (0, 1]. Dacă această valoare este
mai mică decât un parametru pc (parametru al aplicat, iei, e.g. 0.1),
atunci cromozomul este ales pentru incrucis, are. Se procedează
astfel încât să se obt, ină un număr par de cromozomi (de exemplu
se renunt, ă la ultimul dacă numărul lor este impar).
Cromozomii ales, i se încrucis, ează astfel: primul selectat cu al
doilea selectat, al 3-lea cu al 4-lea etc. Pentru fiecare pereche,
încrucis, area decurge astfel:
1
Putem considera conveabil că q0 = 0.

145
• se alege un număr aleator t intre 1 s, i k − 1;
• se obt, in 2 cromozomi copii astfel: primul va cont, ine primele
t gene ale primului părinte s, i ultimele k − t gene ale celui
de–al doilea părinte; al doilea copil cont, ine primele t gene ale
celui de–al doilea părinte s, i ultimele k − t gene ale primului
părinte;
• cei doi cromozomi copii îi vor înlocui în populat, ie pe părint, ii
din care provin.
Subliniem că punctul de tăiere poate diferi de la o pereche la alta.
Pas 2.3. Mutat, ia. Populat, iei obt, inute i se aplică operator de mutat, ie,
astfel: pentru fiecare genă a fiecărui cromozom se alege o valoare
aleatoare, uniform distribuită în (0, 1]; dacă acest număr este mai
mic decât o probabilitate de mutat, ie pm (parametru al aplicat, iei,
valoare mică, e.g. pm = 0.01), atunci se modifică valoarea curentă
a genei cu complementul său fat, ă de 1.

Populat, ia obt, inută în pasul 2 reia ciclul de evolut, ie. După ce se obt, in
câteva astfel de generat, ii (sau se epuizează un timp alocat procesului, sau se
observă că media populat, iei nu se îmbunătăt, es, te în ultimele iterat, ii efectuate),
se raportează valoarea celui mai bun cromozom din ultima generat, ie2 .
Avantajul primar al algoritmilor genetici constă în schimbul de informat, ie
dintre indivizi realizat la etapa de încrucis, are, adică schimbarea de blocuri de
date care au evoluat. O utilizare eficientă a algoritmilor genetici presupune
crearea unor structuri de date pentru gene s, i a unor operatori adecvat, i
problemei ce trebuie rezolvată3 – a se vedea sect, iunea 9.4.

9.3 Fundamente teoretice


Studiul comportamentului algoritmilor genetici se face pe baza unor
scheme (sau s, abloane) care descriu colect, ii de cromozomi. O schemă se
reprezintă ca un s, ir de caractere construit cu simbolurile “0”, “1” s, i “*”,
unde “*” poate fi substituit cu orice bit; simbolul “*” poate apărea de oricâte
ori, inclusiv niciodată. De exemplu, schema (∗0101) se potrives, te cu doi
cromozomi4 : (00101) s, i (10101). Dacă o schemă are l simboluri “*”, atunci
ea poate să fie reprezentată de 2l cromozomi, iar un cromozom de lungime k
poate fi descris de Ck0 + Ck1 + · · · + Ckk = 2k scheme.
Pentru o schemă S definim ordinul ei (s, i îl notăm cu o(S)) numărul de
pozit, ii pe care se află valorile 0 sau 1, adică numărul de pozit, ii fixate. De
2
În practică se preferă strategia elitistă: se returnează cel mai bun individ al tuturor
generat, iilor.
3
S-a stabilit “ecuat, ia” Genetic Algorithms + Data Structures = Evolution Programs,
[12].
4
În acest caz spunem că schema este reprezentată de cei doi cromozomi.

146
exemplu, pentru schema S = (∗ 0 ∗ 1 1 0), o(S) = 4. Ordinul unei scheme dă
gradul de specializare a ei s, i este utilă mai departe în calcularea probabilităt, ii
de supraviet, uire a sa în cadrul mutat, iilor.
Lungimea unei scheme S, notată cu δ(S), este distant, a dintre prima
s, i ultima pozit, ie fixată. Pentru schema dată mai sus, δ(S) = 6 − 2 = 4
(sau δ(S) = 5 − 1 = 4, după cum indicierea începe de la 1 sau de la 0).
Not, iunea de lungime a unei scheme este utilă pentru calculul probabilităt, ii
de supraviet, uire a unei scheme în cadrul operat, iilor de încrucis, are.
Pentru o populat, ie de indivizi aflată la momentul t al evolut, iei, vom nota
cu n(S, t) numărul de cromozomi din populat, ie care reprezintă (se potrivesc
cu) schema S. De asemenea, vom considera valoarea medie a schemei din
populat, ia de la un timp t, notată cu f (S, t) s, i definită ca suma valorilor
cromozomilor din populat, ie care reprezintă schema S împărt, ită la numărul
acestor cromozomi, n(S, t).
La pasul de select, ie, un cromozom A este copiat în populat, ia următoare
cu probabilitatea:
f (A)
P (A) = P (9.6)
f (c)
c

unde însumarea se face după tot, i cromozomii c ai populat, iei curente. Rea-
mintind că n este numărul de cromozomi din populat, ie, avem:

f (S, t)
n(S, t + 1) = n(S, t) · (9.7)
1
f (c)
P
n
c

Cantitatea f (t) = c f (c)/n este chiar valoarea medie a populat, iei de la


P

momentul t, deci avem:

f (S, t)
n(S, t + 1) = n(S, t) · (9.8)
f (t)

Interpretarea ecuat, iei de mai sus este următoarea: numărul de reprezentant, i


ai schemei S care vor exista la momentul t + 1 este dependent de valoarea
schemei în populat, ia de la momentul t. De exemplu, o schemă S care
produce o valoare relativ mare a lui f (S, t) fat, ă de f (t) va impune cres, terea
numărului de reprezentant, i ai săi. Dacă presupunem de exemplu că f (S, t) =
f (t) + ε · f (t) = f (t)(1 + ε), ∀t > 0 (unde ε > 0) atunci se arată prin induct, ie
că:
n(S, t) = n(S, 0)(1 + ε)t , ∀t ∈ {1, 2, . . . } (9.9)
adică pentru scheme care au valoare medie desupra valorii medii a populat, iei
numărul de reprezentant, i va cres, te exponent, ial în timp – respectiv dacă
valoarea schemei este sub medie, numărul de reprezentant, i obt, inuti prin
select, ie scade exponent, ial.

147
În ceea ce prives, te încrucis, area, să presupunem că cromozomul cu 7 gene
c = (1010100) este selectat pentru reproducere; există 27 scheme care îl au
pe c drept reprezentant, de exemplu:

S1 = (∗01 ∗ ∗ ∗ ∗) (9.10)

s, i
S2 = (1 ∗ ∗ ∗ ∗0∗) (9.11)
Să presupunem că în procesul de încrucis, are tăietura se face după a patra
genă:
c = (1 0 1 0 | 1 0 0)
S1 = (∗ 0 1 ∗ | ∗ ∗ ∗) (9.12)
S2 = (0 ∗ ∗ ∗ | ∗ 0 ∗)
Se observă că pentru exemplul considerat schema S1 sigur se va regăsi într–un
descendent (deci schema supraviet, uies, te), deoarece valorile 0 s, i 1 se regăsesc
pe pozit, iile init, iale, în timp ce S2 are s, anse de a fi distrusă5 . Intuitiv, este
clar faptul că lungimea mică a schemei S1 măres, te s, ansa de supraviet, uire,
fat, ă de S2 care poate fi us, or “spartă” în cromozomii copii. Desigur, contează
pozit, ia tăieturii.
Tăietura poate să apară uniform aleator (echiprobabil) în k − 1 pozit, ii.
Probabilitatea de distrugere a unei scheme este:
δ(S)
Pd (S) = (9.13)
k−1
s, i evident probabilitatea evenimentului contrar, reprezentând supraviet, uirea
schemei este
δ(S)
Ps (S) = 1 − Pd (S) = 1 − (9.14)
k−1
Conform strategiei de alegere a cromozomilor ce se supun împerecherii,
probabilitatea ca un cromozom să participe la încrucis, are este pc , deci
probabilitatea de supraviet, uire a unei scheme S este:
δ(S)
Ps (S) = 1 − pc · (9.15)
k−1
Se mai poate lua în considerare faptul că o schemă S poate totus, i să
supraviet, uiască, dacă cromozomii care se încrucis, ează au pe pozit, iile fixe
ale schemei chiar valorile din S. As, a ceva este posibil s, i trebuie conside-
rat ca mărind s, ansele de supraviet, uire a unei scheme. Ca atare, s, ansa de
supraviet, uire este de fapt dată printr–o inegalitate:
δ(S)
Ps (S) ≥ 1 − pc · (9.16)
k−1
5
În exemplul dat, schema S2 nu e distrusă dacă al doilea cromozom care participă la
încrucis, are vine cu aceleas, i gene pe pozit, iile fixe din S2 .

148
deci schemele de lungime mică au s, anse crescute de supraviet, uire.
Combinând rezultatele obt, inute pentru partea de select, ie s, i încrucis, are,
obt, inem:
f (S, t) δ(S)
 
n(S, t + 1) ≥ n(S, t) · · 1 − pc · (9.17)
f (t) k−1
Mutat, ia schimbă aleator bit, i din cromozom cu complementul lor. Este
clar că pentru ca o schemă să supraviet, uiască, pozit, iile sale fixe nu trebuie să
fie alese pentru mutat, ie. Probabilitatea ca un bit oarecare să nu fie modificat
este (1 − pm ). Alegerile bit, ilor care să sufere mutat, ie sunt evenimente
independente, deci probabilitatea ca cei o(S) bit, i fics, i ai unei scheme să se
ment, ină (s, i deci ca întreaga schemă să se ment, ină) este:

Ps (S) = (1 − pm )o(S) (9.18)

Pentru că pm ≪ 1, putem aproxima (1 − pm )o(S) cu 1 − pm o(S). Am obt, inut


că schemele cu ordinul mic au s, anse crescute de supraviet, uire.
Efectul combinat al operat, iilor de select, ie, încrucis, are, mutat, ie este deci:
f (S, t) δ(S)
 
n(S, t + 1) ≥ n(S, t) · · 1 − pc · − pm · o(S) (9.19)
f (t) k−1
Se poate da acum enunt, ul teoremei schemelor, teorema fundamentală a
algoritmilor genetici datorată lui Holland (1975):
Teorema 4 (Teorema schemelor). Schemele scurte, de ordin mic, cu valoare
peste medie cresc ca număr de reprezentant, i în decursul generat, iilor.
S–a formulat următoarea ipoteză:
Ipoteza blocurilor de construct, ie, [12]. Un algoritm genetic execută
un proces de căutare prin suprapunerea unor scheme scurte, de ordin mic s, i
de valoare mare, numite blocuri de construct, ie. Se poate arăta că pentru
o populat, ie de n cromozomi, numărul de scheme efectiv procesate este în
ordinul lui n3 , ceea ce dă caracter de paralelism implicit al algoritmilor
genetici: se procesează nu doar o singură schemă, ci mai multe.

9.4 Problema reprezentării datelor în algoritmii


genetici
Reprezentarea indivizilor ca s, iruri de bit, i este nenaturală pentru multe
probleme practice. Să presupunem, de exemplu, problema comis-voiajorului:
fiind date n oras, e s, i distant, ele dintre ele, să se determine un tur al lor, astfel
încât fiecare oras, să fie vizitat exact o singură dată, să se revină la oras, ul de
plecare iar costul total al drumului să fie minim6 . O solut, ie este dată ca o
permutare a mult, imii {1, . . . , n}.
6
În termeni de grafuri: se cere determinarea unui ciclu Hamiltonian de cost minim.

149
Pentru cazul n = 20, dacă folosim reprezentarea binară, putem vedea că
cinci bit, i sunt suficient, i pentru a reprezenta orice număr de la 1 la 20, deci
ar trebui să folosim 20 · 5 = 100 de bit, i pentru reprezentarea unei solut, ii
potent, iale. Să presupunem că la un moment dat avem grupul de 5 bit, i 01101
reprezentând oras, ul cu numărul 13; prin aplicarea mutat, iei este posibil să se
ajungă la valoarea binară 11101, adică în zecimal 29, un oras, care nu există.
S-ar obt, ine deci o valoare invalidă datorată unei reprezentări neadecvate
a elementelor din problemă sau a unor operatori care nu sunt adaptat, i
corespunzător. La fel de bine, se poate ca prin mutat, ie sau încrucis, are să se
obt, ină valori de oras, e repetate, deci un ciclu prematur.
Pentru cei 100 de bit, i asociat, i problemei, spat, iul de căutare realizat
este 2100 ≃ 1030 , în timp ce mult, imea tuturor ciclurilor hamiltoniene este –
considerând primul oras, ca fiind fixat si neconsiderând solut, iile simetrice de
forma A → B → C → A ≡ A → C → B → A – mult, imea permutărilor cu
19!/2 < 1017 elemente. În situat, ia dată deducem că utilizarea unei codificări
binare conduce la un spat, iu de căutare mărit artificial, existând zone mari
din spat, iul binar care nu corespund unor solut, ii viabile.
Alte exemple de probleme aflate în aceeas, i situat, ie pot fi încă date;
se ajunge la concluzia că varianta naivă de reprezentare a valorilor s, i a
operatorilor genetici nu se potrives, te neapărat la orice problemă de căutare.
Modelarea unui individ s, i a operatorilor asociat, i trebuie să se facă t, inând cont
de domeniu s, i de particularităt, ile problemei. Vor fi exemplificate codificări
adecvate pentru câteva probleme clasice.
O altă problemă care trebuie tratată este: cum procedăm când există
constrângeri? De exemplu, dacă vrem să maximizăm funct, ia:

f (x, y) = x2 − y 3 + 2 · x · sin(y) (9.20)

cu condit, ia ca variabilele x s, i y să satisfacă constrângerea:

1 ≤ x3 − cos(y) + y 2 ≤ 5 (9.21)

cum încorporăm restrict, ia în algoritmul genetic? Dacă folosim varianta


clasică de codificare a unui individ, împreună cu operatorii de încrucis, are s, i
de mutat, ie prezentat, i, cum asigurăm faptul că operatorii dat, i nu duc indivizii
în zone în care constrângerea (9.21) nu este îndeplinită?
Pentru această din urmă problemă s–au dat următoarele variante:

1. impunerea de penalizări pentru indivizii care încalcă constrângerile;

2. implementarea unei metode de “reparare” a indivizilor care nu satisfac


constrângerile;

3. implementarea unor tipuri de date particularizate pentru reprezentarea


de indivizi s, i a unor operatori de încrucis, are s, i de mutat, ie care produce
indivizi valizi.

150
Pe marginea fiecăreia din cele trei variante există multiple versiuni:

• pentru penalizări, valoarea acestora poate fi constantă, sau să varieze


cu gradul în care se încalcă constrângerile date; această ultimă variantă
poate fi codificată sub forma unei funct, ii logaritmice, liniare, pătratice
etc. O formă extremă de penalizare este eliminarea indivizilor care
încalcă restrict, iile, dar trebuie dat răspuns la întrebarea: cu ce se
umple locul lăsat gol prin eliminare? sau cumva se permit populat, ii de
dimensiune variabilă? cei mai mult, i autori afirmă că această eliminare
este prea dură, în timp ce ment, inerea unor indivizi penalizat, i oferă
variabilitate populat, iei – se pot produce descendent, i valizi, chiar s, i din
cei care nu respectă constrângerile.

• pentru algoritmii de reparare – este posibil să se integreze cunos, tint, e


din domeniu în metodele de corect, ie; trebuie zis însă că elaborarea
unui algoritm de corect, ie poate uneori să fie o problemă la fel de grea
ca s, i rezolvarea problemei de la care s–a plecat.

• pentru ultima variantă – este cunoscut deja că orice tip de date trebuie
să vină cu un set de operatori dedicat, i care să permită prelucrarea
tipurilor; o codificare potrivită a problemei împreună operatorii asociat, i
trebuie să favorizeze (ideal: să garanteze) generarea de indivizi valizi.
Aici se intervine cu cunos, tint, e despre problema care trebuie rezolvată,
cunos, tint, e care, prin implementare, favorizează obt, inerea de indivizi
care nu încalcă (prea mult, sau deloc) restrict, iile;

Pentru fiecare din abordări s–au studiat variante s, i comportamente;


studiul s–a făcut în mare măsură empiric, pe probleme concrete; la ora
actuală, un rezultat precum teorema schemei este inexistent pentru alte
codificări decât cea binară. Desigur, se poate folosi s, i o combinat, ie a celor
trei variante de mai sus.
Pentru numeroase probleme practice s–a constatat experimental că re-
prezentarea adecvată a indivizilor, împreună cu definirea unor operatori
particularizat, i dau rezultate mai bune decât aplicarea ad literam a algorit-
mului genetic peste o formă binarizată a problemei.
Vom exemplifica pentru problema discretă a rucsacului: se dă un rucsac
de capacitate C, un set de m obiecte având greutăt, ile Gi > 0 s, i valorile
asociate Vi > 0, 1 ≤ i ≤ m. Un obiect poate fi luat doar în întregime în
rucsac; problema este: care sunt obiectele care trebuie încărcate, astfel încât
greutatea totală să nu depăs, ească C iar valoarea cumulată să fie maximă?
Problema este NP-completă, deci la ora actuală nu cunoas, tem un algoritm
de complexitate polinomială care să o rezolve. Multe probleme pot fi reduse
la aceasta, de aici interesul acordat.
O reprezentare naturală a unui individ – respectiv încărcare de rucsac
– este un vector x cu elementele xi , 1 ≤ i ≤ m, xi ∈ {0, 1}, valoarea 0

151
însemnând că obiectul nu este luat, iar 1 - că e adăugat în rucsac. Se impune,
evident, condit, ia de viabilitate a unui vector x:
m
X
x i · Gi ≤ C
i=1

iar funct, ia de maximizat – numită s, i profit în acest caz – este:


m
P (x) =
X
xi · V i
i=1

9.4.1 Varianta cu penalizare


Pentru fiecare individ x se va considera valoarea sa f (x):
m
f (x) =
X
xi · Vi − P en(x)
i=1

unde P en(·) este funct, ia de penalizare:


(
= 0, dacă x este viabil
P en(x)
> 0, dacă x nu este viabil

Dacă valoarea funct, iei de penalizare depinde de gradul în care se face încălca-
rea restrict, iilor – gradul de încălcare poate fi de exemplu de diferent, a dintre
i=1 xi · Gi s, i C – atunci se poate folosi o funct, ie de tip logaritmic, liniar,
Pm

pătratic, exponent, ial etc. Efectele alegerii unei asemenea funct, ii au fost
analizate pe diferite situat, ii; a se vedea [12] pentru rezultate experimentale
s, i interpretarea lor.

9.4.2 Varianta cu reparare


Putem folosi aici tot codificarea binară. Algoritmul de corectare este
simplu: dacă setul de obiecte ales depăs, es, te ca greutate totală capacitatea C,
atunci se scot obiecte până când greutatea celor rămase devine acceptabilă
(cel mult G). Vom transforma deci vectorul x în x′ = (x′1 , . . . , x′m ) astfel
încât m ′
i=1 xi Gi ≤ C.
P

Algoritmul de reparare a unui individ este:

Listing 9.1: Repararea unui vector invalid


function r e p a r a r e ( x , G , C ) r e t u r n s a v e c t o r
begin
r u c s a c −s u p r a i n c a r c a t := f a l s e
x′ := x
Pm ′
if i=1 xi · Gi > C
then r u c s a c −s u p r a i n c a r c a t := true

152
end i f
while r u c s a c −s u p r a i n c a r c t = true
i := s e l e c t e a z a un o b i e c t d i n r u c s a c (#)
s c o a t e o b i e c t u l i d i n r u c s a c : x′i := 0
Pm ′
if i=1 xi · Gi ≤ C
then r u c s a c −s u p r a i n c a r c a t := f a l s e
end i f
end while
r e t u r n x′
end
În ce prives, te metoda de selectare a lui i din linia marcată cu (#), avem
variantele:
• (reparare aleatoare) valoarea i se alege aleator din setul indicilor obiec-
telor care se găsesc în rucsac;
• (reparare greedy) se alege obiectul cel mai us, or, sau cel care are raportul
Pi /Gi cel mai mic.

9.4.3 Codificarea adecvată a indivizilor


Vom prezenta o strategie de codificare a indivizilor, diferită de cea binară
utilizată până acum, numită reprezentarea ordinală. Codificarea este larg
utilizată s, i în alte probleme care presupun manipularea unor secvent, e de
valori, de exemplu în problema comis-voiajorului. Vectorul x este cu cele m
componente în baza 10, fiecare element xi având proprietatea că 1 ≤ xi ≤
m − i + 1, ∀i ∈ {1, . . . , m}. De exemplu, pentru vectorul x = (3, 3, 4, 1, 1, 1)
asociat listei de obiecte L = (1, 2, 3, 4, 5, 6), decodificarea se obt, ine astfel:
se scoate elementul de indice x1 = 3 din lista L, adică obiectul 3 s, i îl
adăugăm în rucsac; L devine (1, 2, 4, 5, 6); apoi se scoate elementul de indice
x2 = 3 (adică obiectul 4) din L s, i îl adăugăm în rucsac, L devine (1, 2, 5, 6);
se scoate elementul de indice x3 = 4 din L, adică obiectul 6, L devine
(1, 2, 5) etc. Obt, inem astfel ordinea de depunere în rucsac: 3, 4, 6, 1, 2, 5.
Fiecare cromozom codifică astfel o ordine de adăugare a obiectelor în rucsac.
Adăugarea obiectului în rucsac se face numai dacă nu duce la depăs, irea
capacităt, ii C.
Se poate vedea că operat, ie de încrucis, are va duce întotdeauna la copii
valizi, adică pentru un copil z = (z1 , . . . , zm ) avem că 1 ≤ zi ≤ m − i + 1
dacă s, i părint, ii au aceeasi proprietate. Mutat, ia este similară cu cea de la
cazul binar: o componentă aleasă pentru mutat, ie, fie ea xi este modificată
cu o valoare aleatoare uniform distribuită în mult, imea {1, . . . , m − i + 1}
diferită de xi .
Listing 9.2: Utilizarea codificării ordinale
procedure d e c o d i f i c a r e ( x )

153
begin
c o n s t r u i e s t e o l i s t a L de o b i e c t e
g r e u t a t e T o t a l a := 0
p r o f i t T o t a l := 0
f o r i = 1, m
j := xi
o := Lj
s t e r g e e l e m e n t u l a l j −l e a d i n l i s t a L
i f g r e u t a t e T o t a l a + Go ≤ C
then begin
g r e u t a t e T o t a l a := g r e u t a t e T o t a l a + Go
p r o f i t T o t a l := p r o f i t T o t a l + Po
end
end i f
end f o r
end
Lista L se poate crea într–o ordine aleatoare, ca o permutare a mult, imii
{1, . . . , n}. Indivizii rezultat, i — adică cei care realizează populat, ia init, ială —
vor fi deci generat, i aleatori.
Rezultate experimentale pentru cele trei variante de rezolvare sunt date în
[12]. Concluziile experimentelor însă nu pot fi generalizate la orice problemă
care vine cu impunere de restrict, ii. Se exemplifică însă că diferent, ele de
performant, ă pot fi mari pentru aceste abordări.

9.5 Exemplu: problema orarului


Problema orarului este o altă situat, ia practică care se abordează prin
intermediul algoritmilor genetici. Problema este NP-completă. Are diferite
enunt, uri, vom prezenta varianta dată în [12].
Se dau următoarele:
• o mult, ime de profesori {T1 , . . . , Tm }
• o listă de intervale de timp (ore) {H1 , . . . , Hn }
• o listă de săli de clasă {C1 , . . . , Ck }
Orarul trebuie să respecte următoarele cerint, e:
• există un număr predefinit de ore pentru fiecare profesor s, i clasă;
• la un moment dat, la o clasă predă un singur profesor;
• un profesor nu poate preda la mai multe clase simultan;
• la fiecare clasă programată la o anumită oră trebuie să existe exact un
profesor

154
Mai avem s, i constrângeri care ar trebui respectate; acestea sunt legate
de:

• nicio “fereastră” în orarul elevilor, cât mai put, ine în cel al profesorilor;

• preferint, e exprimate de profesori sau elevi: ore doar într–o anumită


parte a zilei sau săptămânii;

• împărt, ire cât mai echilibrată a orelor;

• număr maxim de ore pe zi pentru elevi/profesori

Codificarea binară pentru această problemă, cu toate că este posibilă, poate


apărea drept nenaturală; mai mult decât atât, există riscul ca spat, iul de
căutare să se mărească artificial, precum la problema comis voiajorului.
Putem să codificăm un orar (un individ) ca fiind o matrice O cu m linii s, i n
coloane, unde liniile corespund profesorilor iar coloanele – orelor disponibile.
Fiecare celulă este fie liberă, fie cont, ine o clasă Ci , 1 ≤ i ≤ k.
Pentru reprezentarea dată, operatorii genetici ar putea fi7 :

• mutat, ia de ordin k: se iau 2 secvent, e adiacente formate din p elemente


s, i se interschimbă

• mutat, ia de zile: se iau două zile s, i se interschimbă între ele

• încrucis, are: se pornes, te de la două orare părinte O1 s, i O2 , se efectuează


tăietură pe orizontală sau pe verticală s, i se face interschimbarea de
port, iuni, întocmai ca la cromozomii binari

Este posibil ca să fie nevoie să se intervină cu algoritmi de corect, ie după


aplicarea unor astfel de operatori. Din punct de vedere practic, abordarea
prin algoritmi genetici este confirmată ca o metodă funct, ională de către mai
mult, i autori.

7
Dar nimic nu ne împiedică să concepem alt, i operatori.

155
Bibliografie

[1] V. Dumoulin and F. Visin, “A guide to convolution arithmetic for deep


learning,” 2016.

[2] S. S. Haykin, Neural networks and learning machines. Upper Saddle


River, NJ: Pearson Education, third ed., 2009.

[3] R. Andonie and A. Cat, aron, Inteligenţă computaţională. Universitatea


Transilvania din Braşov, 2002. https://www.cwu.edu/faculty/sites/
cts.cwu.edu.faculty/files//users/142/documents/Cursul%
20de%20IA%20Brasov.pdf.

[4] A. P. Engelbrecht, Computational Intelligence: An Introduction. Wiley,


2002.

[5] R. C. Eberhart and Y. Shi, Computational intelligence - concepts to


implementations. Elsevier, 2007.

[6] “Stanford Machine Learning, curs online Coursera.” https://www.


coursera.org/specializations/machine-learning-introduction,
2023. Accesat: 2023-10-18.

[7] I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning. MIT Press,


2016. http://www.deeplearningbook.org.

[8] M. A. Nielsen, Neural Networks and Deep Learning. Determination


Press, 2018. https://neuralnetworksanddeeplearning.com.

[9] D. Arthur and S. Vassilvitskii, “k-means++: the advantages of careful


seeding,” in SODA ’07: Proceedings of the eighteenth annual ACM-
SIAM symposium on Discrete algorithms, (Philadelphia, PA, USA),
pp. 1027–1035, Society for Industrial and Applied Mathematics, 2007.

[10] G. A. Carpenter and S. Grossberg, “The art of adaptive pattern recog-


nition by a self-organizing neural network,” Computer, vol. 21, no. 3,
pp. 77–88, 1988.

156
[11] G. A. Carpenter, S. Grossberg, N. Markuzon, J. H. Reynolds, and D. B.
Rosen, “Fuzzy artmap: A neural network architecture for incremental su-
pervised learning of analog multidimensional maps,” IEEE transactions
on neural networks, vol. 3 5, pp. 698–713, 1992.

[12] Z. Michalewicz, Genetic Algorithms + Data Structures = Evolution


Programs. Berlin, Heidelberg: Springer-Verlag, third ed., 1996.

157

You might also like