Professional Documents
Culture Documents
Inteligenta Artificiala
Inteligenta Artificiala
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
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
5
5.8 Problema neseparabilă liniar XOR . . . . . . . . . . . . . . . 73
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
7
Capitolul 1
Introducere
• imunitate artificială;
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.
10
Figura 1.1: Neuron natural, preluare din [4]
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;
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.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. supervizată
2. nesupervizată
3. prin întărire
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.
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.
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ă
sau:
17
Capitolul 2
Regresia liniară
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 )
19
225
200
175
Pret, (x 1000 €)
150
125
100
75
50
25
20 40 60 80 100 120 140
Suprafat, a (m2 )
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)
Set de antrenare
ŷ = h(x) (2.2)
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)
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
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
20000
15000
J(0, θ1 )
10000
5000
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.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)
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
simultan pentru j = 0, 1, . . . , n.
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)
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)
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:
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;
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:
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:
32
Capitolul 3
Regresia logistică
• 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.;
33
email, imagine etc.); mai precis, se determină care este probabilitatea ca
obiectul descris de vectorul de intrare să fie dintr-o clasă anume:
(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ă.
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
35
Figura 3.2: Graf de calcul pentru regresia logistică binară
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
⇐⇒ 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.
38
30
25
x2 +3
20
1
f (x) = 15 + sin(x) · x +
15
10
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
− ln hθ (x) dacă y = 1
(
Cost(hθ (x), y) = (3.13)
− ln(1 − hθ (x)) dacă y = 0
39
7 − log(hθ (x))
− log(1 − hθ (x))
Figura 3.4: Cele două ramuri ale funct, iei Cost din ecuat, ia (3.13)
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
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
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.
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
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
exp θkt · x
P (y = k|x; Θ) = K
= ŷk ∈ (0, 1) (3.31)
exp θlt
·x
P
l=1
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.
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
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.
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
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)
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
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
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 Θ.
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
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.
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; θ)
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.
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
j=1 j=1
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
51
Capitolul 4
Regularizarea modelelor
pret = θ0 + θ1 x (4.1)
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].
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 .
hθ (x) = θ0 + θ1 x + θ2 x2 + θ3 x3 + θ4 x4 (4.4)
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
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
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.
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
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
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.
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
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
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
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
+
-
y(x) = wt · x (5.6)
unde y (i) este eticheta vectorului de intrare x(i) . Putem partit, iona vectorii
de intrare x(i) în submult, imile:
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
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
ŷ = f (wt · x) (5.9)
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:
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:
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:
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
2. Repetă{
66
B. w(k + 1) = w(k) + αy (i) x(i)
C. k = k + 1
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
k=1, d: 3 ⋅ x − 14 ⋅ y − 1 = 0
6 Clasa − 1
Clasa + 1
5
−1
−2
−4 −2 0 2 4 6
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
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:
• 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.
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
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) · w∗ + γ
t
(5.31)
71
s, i din (5.32) s, i (5.33) avem:
< ∥w(k)∥ + R 2 2
(5.39)
s, i deci k < R2 /γ 2 .
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”.
73
iar
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)
2 · w0 + w1 + w2 > 0 (5.45a)
2 · w0 + w1 + w2 < 0 (5.45b)
74
Capitolul 6
Perceptronii multistrat
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.
unde x(i) ∈ Rn iar y(i) este eticheta asociată intrării i (eng: ground truth),
după caz:
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 )
77
• strat de intrare ce preia valorile de intrare; nu are rol computat, ional,
nu este format din neuroni2 ;
• strat de ies, ire, de asemenea compus din neuroni, produce valori estimate
care sunt apoi comparate cu ies, irile dorite.
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
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.
cu nl × nl−1 ponderi;
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:
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
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
0 dacă z ≤ 0
(
ReLU (z) = max(0, z) = (6.18)
z dacă z > 0
10
6
ReLU(x)
0
10.0 7.5 5.0 2.5 0.0 2.5 5.0 7.5 10.0
x
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
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ă.
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
10
6
PReLU(x)
α(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
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)
85
Figura 6.8: Graficul funct, iei de activare Swish pentru β ∈ {0.5, 2}
ŷ = a[L−1] (6.29)
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[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.
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
i=1
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
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
λ 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
λ L−1 2
+ (6.47)
X
W[l]
2 l=1 F
| {z }
Termen de regularizare
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
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).
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
93
∂g2
g2 (x + δ) ≈ g2 (x) + δ (x) (6.55)
∂x
iar pentru δ1 , δ2 apropiat, i de 0:
∂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
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.
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ă.
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
∂f ∂f ∂q ∂(y + z)
= · =3· =3·1=3 (6.66)
∂y ∂q ∂y ∂y
∂f ∂f ∂q
= · =3·1=3 (6.67)
∂z ∂q ∂z
∂f ∂f ∂f ∂(x · q)
= · =1· =q=9 (6.68)
∂x ∂f ∂x ∂x
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 ∂f ∂p ∂f ∂q
= · + · = 8 + 2 = 10 (6.69)
∂y ∂p ∂y ∂q ∂y
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.
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:
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ă.
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) :
| {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
[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.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
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:
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
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)
104
2. Pentru fiecare din cele p perechi (x, y) din batch calculează corect, ia
pentru ponderi s, i ponderile de bias14 :
∂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)
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.
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ă:
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
106
Capitolul 7
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.
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.
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.
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
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)
3. funct, ie Gaussiană:
!
r2
φi (ri ) = exp − i 2 , σ>0 (7.10)
2σ
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) .
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
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
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.
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
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ă.
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
115
111
000 11
00
x1 000
111 00
11 x3
µ̂1 µ̂2
111
000 11
00
x2 000
111 00
11 x4
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
118
Figura 8.1: Clasificare de imagini cu ret, ea neurală de convolut, ie
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
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.
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ă
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
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
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
20 01 02 0 1 2 00 01 02 1 2 0 00 01 12
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
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)
w′ × h′ = (w + 2 · p − k + 1) × (h + 2 · p − l + 1) (8.4)
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.
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
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
126
(a) Prima convolut, ie
(b) A doua convolut, ie. Se observă că s–a mutat kernelul cu două pozit, ii mai la
dreapta
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 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
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
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
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:
nponderi = k × l (8.11)
M AC = (w′ × h′ ) × (k × l) (8.12)
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.
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 }| {
+ a211 w211 + a212 w212 + a213 w213 + · · · + a231 w231 + a232 w232 + a233 w233 +
z }| {
+ a311 w311 + a312 w312 + a313 w313 + · · · + a331 w331 + a332 w332 + a333 w333 +
z }| {
+ a411 w411 + a412 w412 + a413 w413 + · · · + a431 w431 + a432 w432 + a433 w433
z }| {
(8.13)
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.
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).
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
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
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ă.
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 .
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.
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.
141
Capitolul 9
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;
4. programare genetică.
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.
143
Indivizii care alcătuiesc populat, ia se numesc cromozomi s, i sunt alcătuit, i
din gene, reprezentat, i ca bit, i.
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.
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
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.
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
f (S, t)
n(S, t + 1) = n(S, t) · (9.8)
f (t)
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:
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:
1 ≤ x3 − cos(y) + y 2 ≤ 5 (9.21)
150
Pe marginea fiecăreia din cele trei variante există multiple versiuni:
• 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;
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
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.
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.
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.
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;
7
Dar nimic nu ne împiedică să concepem alt, i operatori.
155
Bibliografie
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.
157