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

Hizkuntzaren Prozesamendua

Gardenkien iturria (ANLP, David Bamman, UC Berkeley)


Sare neuronalak
Geruza anitzeko pertzeptroia
.

https://www.forbes.com/sites/kevinmurnane/2016/04/01/what-is-deep-learning-and-how-is-it-useful
HPren historia
• Hasiera 1940/1950

• Bi hurbilpen (erregelak/estokastikoa), 1957-1970

• Lau paradigma (estokastikoa, logikan oinarritua, NLU,


diskurtsoaren modelatzea), 1970-1983

• Enpirismoa eta egoera finituko makinak (1983-1993)

• Hurbilpenak batzen (1994-1999)

• Ikasketa automatikoa (2000–gaur egun)

• Sare neuronalak (~2014–gaur egun)


Sare neuronalak HPn
• Hizkuntza-ereduak [Mikolov et al. 2010]

• Testu-sailkapena [Kim 2014; Iyyer et al. 2015]

• Sintaxi-analisia [Chen and Manning 2014, Dyer et al. 2015, Andor et al.
2016]

• CCG etiketatzea [Lewis and Steedman 2014]

• Itzulpen automatikoa [Cho et al. 2014, Sustkever et al. 2014]

• Dialogo agenteak [Sordoni et al. 2015, Vinyals and Lee 2015, Ji et al. 2016]

• (errepasorako, Goldberg 2017, 1.3.1)


Sare neuronalak
• Ikasketa automatikoan iragarpenak egiten ikasten
zen aurrez etiketatutako datuetan oinarrituta.
Ikasketa sakonean iragartzeaz gain, datuak modu
egokian errepresentatzen ere ikasten da.

• Sarrera eta irteeren mapatze kantitate handi


batekin, sare neuronalak elikatzen dira zeinak
hainbat transformazio egiten dituen azken
transformazio batean, irteera iragartzen duen arte.
Transformazioak ikasten dira sarrera-irteera
mapatzetatik.
Sare neuronalak


Sarrerako ezaugarrien elkarrekintza ez-
linealak egiten ditu


Egitura hierarkikoa antzemateko, geruza
anitz ditu
Problema ez-linealak

Nola hobetu eredua problema ez


Eredu lineala
linealak ebazteko? Geruza ezkutuak
(+ zerbait gehiago... )
Nodo horien
Sarreren batura
Irteera batura Irteera ponderatua
ponderatua
Sarreren
Geruza batura
Sarrera ponderatua
ezkutua

Sarrerako Sarrera
atributuak

Sarrerako
atributuak
Eredua lineala da?

Bi ezkutuko
geruza:
Batura
ponderatuen beste
geruza bat

Bai Bai
Emaitza sarreren Emaitza transformazio
konbinazio lineala da linealean sekuentzia
bat da eta hori
konbinazio lineala da.
Problema ez linealak
ebazten ditu?

Ez linealtasuna nola sartu?

Ezkutuko geruzako nodo bakoitzari
funtzio ez-lineal bat sartu.

Funtzio ez-lineala: aktibazio-funtzioa

Normalean transformazio
ez-linealak ez dira
Marrazten
Transformazio ez
Geruza bakoitzak,
aktibazio-funtzio
linealeko geruza:
ezberdina izan dezake aktibazio-funtzioa

Oraindik ez
Sare neuronaletarako
liburutegiak
Erregresio logistikoa
x β

not 1 -0.5

bad 1 -1.7

movie 0 0.3
Gradiente jaitsiera

Gradiente jaitsiera: entrenamenduko datuekin pisuen galera-
funtzioaren gradientea (deribatua) kalkulatu eta iterazio
bakoitzean pisuak eguneratu hurrengoan ez hain gaizki
egiteko


Gradiente jaitsiera estokastikoa (SGD-Stochastic Gradient
Descend), iterazio bakoitzeko, batch bakoitzeko, adibide bat.


Atzeranzko barreiaketa (backpropagation): sare neuronaletan
gradiente jaitsiera egiteko algoritmoa (aurrerago).
Erregresio logistikoa
x β
x1 β1

not 1 -0.5
β2
x2 y

bad 1 -1.7
x3 β3

movie 0 0.3
Sarrera: Irteera:
ezaugarri- probabilitatea
bektorea {0,1}
Geruza anitzeko pertzeptroia
(MLP edo Feed Forward (FFNN))
W V

x1 W1,1

W1,2 h1 V1

W2,1
y
x2 W2,2
V2
W3,1 h2
*Sinplifikatzeko BIAS-a ez
dugu kontuan hartu baina
W3,2
x3 geruza gehienek badutela
suposatuko dugu.
Wi,j: i-tik j-ra pisua

Sarrera: “Geruza Irteera:


Ezaugarri-bektorea ezkutua” probabilitatea
(3 neurona) (2 neurona) {0,1}
(neurona 1)
W V

1 x1 -0.5
1.3 h1 4.1
0.4
y 1
1
x2
0.08 -0.9
h2
1.7

0 x3 3.1

x W V y

not 1 -0.5 1.3 4.1 1

bad 1 0.4 0.08 -0.9

movie 0 1.7 3.1


W V

x1
h1

y
x2
h2

x3

Geruza ezkutuen balioa


guztiz zehazten dute
sarrerek eta pisuek
W V

x1
h1

y
x2
h2

x3

h1=f(x1 w1,1+ x2 w2,1+ x3 w3,1 + BIAS1)


h2=f(x1 w1,2+ x2 w2,2+ x3 w3,2 + BIAS2)
Aktibazio-funtzioak
Funtzio batzuk (ReLU, sigmoideoa etab.) aurreko
sarrera guztietako batura ponderatuak (pisuekin
biderkatuak) jaso eta emaitza-balio bat sortzen du
(normalean ez-lineala). Balio hori hurrengo
geruzara pasatzen da.
Aktibazio-funtzioa:
sigmoideoa
Erregresio logistikoa

x1 β1

β2
x2 y

x3 β3

Erregresio logistikoa, ezkutuko geruzarik


gabeko sare neuronal bat dela pentsa
dezakegu
Aktibazio-funtzioa:
Tanh – tangente hiperbolikoa
Aktibazio-funtzioa:
ReLU

ReLU eta tanh oso maiz erabiltzen dira gaur egungo
sistemetan.

Sigmoidea erabilgarria da azken geruzan, irteera 0
eta 1 artean eskalatzeko, baina ez da ohikoa
tarteko geruzetan erabiltzea.
Sigmoidea vs softmax

Biak dira aktibazio-funtzioak

Biek hartzen dituzte X balioak eta [0,1] tarteko
balioak sortzen dituzte. Sortutako balioak X-k klase
batekoa izateko duen probabilitatea adierazten du.

Egilea: Gabriel Furnieles


Sigmoidea vs softmax

DIFERENTZIA:
– Sigmoidea sailkapen bitarrean erabiltzen da
– Softmax klase anitzeko arazoekin erabiltzen da
(sigmoidearen hedapena).
Bi kasuetan azken baturak 1 eman behar du.

Egilea: Gabriel Furnieles


W (pisuak) V (pisuak)

x1
h1

y
x2
h2

x3

Gogoratu:
σ aktibazio-funtzioa da
W V

x1
h1

y
x2
h2

x3

y errepresenta dezakegu, x sarreraren eta W eta V pisuen funtzio


moduan soilik
Atzeranzko barreiaketa (backpropagation):
<x,y> pareen entrenamendurako adibideak
izanik, gradiente jaitsiera estokastikoa
erabil dezakegu galera minimizatuko duten
W eta V pisuen balioak topatzeko.
Atzeranzko barreiaketa
(Backpropagation)

Gradienteen kalkulurako algoritmoa.

Sare neuronala entrenatzeko kate-erregela metodoa
erabiltzen da.

Ideia: sarean aurreranzko pase bat egin ondoren,
atzeranzko barreiaketan (backpropagation)
atzeranzko pase bat egiten da ereduko parametroak
(pisuak eta BIASak) doitzeko.

Geruza ezkutuko neuronek atzeranzko barreiaketan
errorearen seinale zati bat soilik jasotzen dute, haiek
azken emaitzan egin duten ekarpenaren araberakoa.
Atzeranzko barreiaketa
(Backpropagation)
Aurrerantz: E errorea kalkulatzen da, une horretako parametroekin (pisuak eta BIAS)

W V
x1
h1

y
x2
h2

x3

Atzerantz: E errorea barreiatu parametroak birkalkulatuz eta galera jaitsiaz


Gradientea: errorearen deribatua pisu bakoitzekiko
W V
x1
h1

y
x2
h2

x3

Errepika <x,y> pare bakoitzeko


1) Kalkulatu sarearen irteera, ŷ
2) Konparatu y balio errealarekin eta errorea kalkulatu (E)
3) Errorearen deribatu partzialak kalkulatu V-ko pisuekiko
Nola aldatzen da errorea pisu bakoitzeko?
4) Errorearen deribatu partzialak kalkulatu W-ko pisuekiko Ikasketa-tasa

5) Neurona bakoitzean pisuak doitu errorea murrizteko


λ
Bukatu arte

https://developers-dot-devsite-v2-prod.appspot.com/machine-learning/crash-course/backprop-scroll/
W V

x1
h1

y
x2
h2

x3

Sare neuronalak, elkarri


kateatutako funtzio serieak
dira

Galera, gaineko aldean


kateatutako beste funtzio
bat da
Maiz pertzeptroietan galera kalkulatzeko cross-entropy edo log-loss erabiltzen da.
Irteera moduan 1 eta 0 arteko probabilitate bat ematen duten
sailkatzaileen galera neurtzeko. Kasu honetan lehen E (errorea) deitu duguna.
Katearen erregela

Funtzio konposatuen deribatuak
y=f(u) u=g(x)

dy dy du
=
dx du dx

Sare neuronalak funtzioen serieak direla esan dugu
Katearen erregela
Gradientea= Errorearen
deribatua V pisuekiko

Erroreari zenbat aportatzen


E diote pisu horiek?

σ (xW)=h
Katearen erregela

A:
d logx = 1
dx x

B: sigmoidearen
deribatua

dσ = σ (1-σ )
dz Aktibazio-funtzioa sigmoidea
denean, V-n errorea kalkulatu
Zertarako? Pisuak eguneratzeko

λ
Sare neuronalak

• Izugarrizko malgutasuna diseinu aukeretan


(ezaugarrien ingeniaritzaren ordez, eredu
ingeniaritza)

• Erabaki ereduaren egitura (geruza


kopurua+bakoitzean neurona kopurua) eta
katearen erregela erabili parametroen
(pisuen + BIASen) eguneratzeak lortzeko.
Sare neuronalen
egiturak
x1
h1

y 1
x2
h2

x3

Irteeran balio erreal bat


Sare neuronalen
egiturak
y 0
x1
h1

y 1
x2
h2

x3
y 0

Klase anitzekoa: irteeran 3


balio eta entrenamendurako
datuetan 1-eko bakarra
Sare neuronalen
egiturak
y 1
x1
h1

y 1
x2
h2

x3
y 0

irteeran 3 balio eta


entrenamendurako datuetan
hainbat 1eko
Erregularizazioa

• Parametro kopurua handituta, gaindoitzerako


(overfitting) aukera handitzen da.
Erregularizazioa
• L2 erregularizazio: W eta V penalizatzen
ditu/ditzake oso altuak izateagatik.

• Dropout: <x,y> -rekin entrenatzean, ausaz


nodo eta pisu batzuk ezabatu.

• Geratze goiztiarra (early stopping):


atzeranzko barreiaketa (backpropagation)
geratu entrenamendurako errorea txikiegia
izan aurretik.
Dropout

“Dropout: a simple way to prevent neural networks from overfitting”, JMLR 2014


Sare sakonagoak
W1 W2 V

x1
h1

h2
x2
h2 y

h2
x3
h2

x3
Pytorch
_init_ -ek ereduaren
parametro nagusiak
zehazten ditu

forward-ek transformazio
batzuk egiten ditu zeintzuk
sarrera irteeran bihurtzen
duten softmax azken
eragiketa baino lehen (azken
hau galera funtzioko
CrossEntropyLoss galera-
funtzioan egiten da)


Erregresio logistikoak sarreraren (xT β) transformazio lineal bat du
eta irteeran softmax eragiketa bat (softmax-ak irteerako klase
posible guztien gaineko normalizazioa egiten du probabilitate
distribuzio batetik abiatuta).
Pytorch

Aukeratu optimizatzaile bat

CrossEntropyLoss-en barruan
egiten da ereduaren irteeraren
gaineko softmax-a. Gainera,
CrossEntropyLoss funtzioan
irteerako distribuzioaren (n
klasetarako n iragarritako
probabilitate) eta irteerako
benetako distribuzioaren (urre-
patroieko etiketa errealen)
arteko galera kalkulatzen du.

Amaierako loss honek,


backward duenak, ereduko
parametroak eguneratzen ditu
(backpropagation)
Laborategia

• Aztertu erregresio logistikoa eta aurreranzko


barreiaketa egiten duen sare neuronala (feed
forward) pytorch erabilita

• Jarri martxan FFNN emandako datuekin eta azter


ezazu nola diseinu aukerek- ezkutuko geruzen
kopuruak, ezkutuko geruzen tamainak, aktibazio-
funtzio edo ez-linealtasunen aukeraketek eta
dropout balioek zein eragin duten.

You might also like