You are on page 1of 96

Eredu sortzaileak

Aitor Soroa and Gorka Azkune


<a.soroa@ehu.eus>

Ikasketa Automatikoa eta Neurona-sareak


Gainbegiratu vs. ez
gainbegiratua
Ikasketa gainbegiratu vs. ez gainbegiratua

Ikasketa gainbegiratua
• Datuak ( x, y)
• x: datua
• y: etiketa
• Helburua: ikasi funtzio bat x → y
mapaketa ikasteko
• Adibideak: Sailkapena, erregresioa,
objektu ezagutzaileak, Entitate
Izendunen Ezagutza, etc.

2
Ikasketa gainbegiratu vs. ez gainbegiratua

Ikasketa gainbegiratua
• Datuak ( x, y)
• x: datua
• y: etiketa
• Helburua: ikasi funtzio bat x → y
mapaketa ikasteko
• Adibideak: Sailkapena,
erregresioa, objektu
ezagutzaileak, Entitate CC0 lizentzia
Izendunen Ezagutza, etc.

3
Ikasketa gainbegiratu vs. ez gainbegiratua

Ikasketa gainbegiratua
• Datuak ( x, y)
• x: datua
• y: etiketa
• Helburua: ikasi funtzio bat x → y
mapaketa ikasteko
• Adibideak: Sailkapena,
erregresioa, objektu
ezagutzaileak, Entitate
Izendunen Ezagutza, etc. CC0 lizentzia

4
Ikasketa gainbegiratu vs. ez gainbegiratua

Ikasketa gainbegiratua Ikasketa ez gainbegiratua


• Datuak ( x, y) • Datuak x
• x: datua • datuak bakarrik, etiketarik
• y: etiketa ez.
• Helburua: ikasi funtzio bat x → y • Helburua: Datuen egitura
mapaketa ikasteko. ezkutua ikastea.
• Adibideak: Sailkapena, • Adibideak: Clustering,
erregresioa, objektu ezaugarriak ikasi (feature
ezagutzaileak, Entitate learning), dentsitate estimazioa,
Izendunen Ezagutza, etc. etab.

5
Ikasketa gainbegiratu vs. ez gainbegiratua

Ikasketa ez gainbegiratua
• Datuak x
• datuak bakarrik, etiketarik
ez
• Helburua: Datuen egitura
ezkutua ikastea.
• Adibideak: Clustering,
ezaugarriak ikasi (feature
learning), dentsitate estimazioa,
etab. CC0 lizentzia

6
Ikasketa gainbegiratu vs. ez gainbegiratua

Ikasketa ez gainbegiratua
• Datuak x
• datuak bakarrik,
etiketarik ez
• Helburua: Datuen
egitura ezkutua ikastea.
• Adibideak: Clustering,
ezaugarriak ikasi (feature
learning), dentsitate
estimazioa, etab.

7
Eredu diskriminatzaile vs
sortzaileak
Eredu diskriminatzaile vs sortzaileak

• Marko probabilistikoak, ereduak


errepresentatzeko balio dutenak.
• Ereduek datuaren gainean banaketa
probabilistikoa doitzea dute helburu:
• Diskriminatzaile: p(y | x )
• Sortzaile: p( x )
• Sortzaile baldintzatua: p( x | y)
• Desberdintasun handiak daude eredu
hauen artean.

8
Eredu diskriminatzaile vs sortzaileak

Probabilitatea labur

Dentsitate-funtzioa
• Marko probabilistikoak, ereduak
• p( x ) zenbaki positiboa esleitzen dio x
errepresentatzeko balio dutenak.
bakoitzari. Zenbaki handia bada → x
• Ereduek datuaren gainean banaketa probableagoa.
probabilistikoa doitzea dute helburu: • Dentsitate-funtzioak normalizatuak
daude:
• Diskriminatzaile: p(y | x ) Z
• Sortzaile: p( x ) p( x ) dx = 1
X
• Sortzaile baldintzatua: p( x | y)
• x balio desberdinak dentsitatea
lortzeko lehian daude.

9
Eredu diskriminatzaile vs sortzaileak

• Marko probabilistikoak, ereduak


errepresentatzeko balio dutenak.

• Ereduek datuaren gainean banaketa


probabilistikoa doitzea dute helburu:
Iturri https://web.eecs.umich.edu/ jus-
• Diskriminatzaile: p(y | x ) tincj/slides/eecs498/498 FA2019 lecture19.pdf

• x balio desberdinak dentsitatea lortzeko


lehian daude.
Z
p( x | y) dx = 1
X

10
Eredu diskriminatzaile vs sortzaileak

• Marko probabilistikoak, ereduak


errepresentatzeko balio dutenak.

• Ereduek datuaren gainean banaketa


probabilistikoa doitzea dute helburu:

• Diskriminatzaile: p(y | x )
Iturri https://web.eecs.umich.edu/ jus-
tincj/slides/eecs498/498 FA2019 lecture19.pdf

• Diskriminatzaile:
• etiketak lehiatzen dira dentsitatea
eskuratzeko.
• irudien arteko lehiarik ez.

11
Eredu diskriminatzaile vs sortzaileak

• Marko probabilistikoak, ereduak


errepresentatzeko balio dutenak.

• Ereduek datuaren gainean banaketa


probabilistikoa doitzea dute helburu:
Iturri https://web.eecs.umich.edu/ jus-
• Diskriminatzaile: p(y | x ) tincj/slides/eecs498/498 FA2019 lecture19.pdf

• Diskriminatzaile:
• Sarrera “arraroak” (probabilitate
gutxikoak) detektatzeko modurik ez.
• Etiketa guztiei esleitu behar zaie
probabilitate-masa.

12
Eredu diskriminatzaile vs sortzaileak

• Marko probabilistikoak,
ereduak errepresentatzeko
balio dutenak.

• Ereduek datuaren gainean


banaketa probabilistikoa Iturria
https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf
doitzea dute helburu:
• Sortzaile:
• Sortzaile: p( x ) • Irudi guztiak lehian probabilitate-masa
lortzeko.
• Oso arazo zaila.
• Ulermen sakona eskatzen du! (ohikoagoa da
txakurra eserita egotea, edo zutik?)
• Ereduak sarrera arraroak uka ditzake (prob.
masa gutxi).

13
Eredu diskriminatzaile vs sortzaileak

• Marko probabilistikoak, ereduak


errepresentatzeko balio dutenak.

• Ereduek datuaren gainean banaketa


probabilistikoa doitzea dute helburu:

• Sortzaile baldintzatua:
p( x | y) Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf

• Sortzaile baldintzatua:
• Etiketa bakoitzak irudien arteko lehia sortzen du.
• Sailkapena: y = argmaxy P( x | y).
• P( x | y) txikia bada ∀y, ukatu x.

14
Eredu sortzaile vs. sortzaile baldintzatuak

• Eredu hauek ez dira hain desberdin.


• Bayes teorema

P(y | x )
P( x | y) = P( x )
P(y)

P( x | y) : Eredu sortzaile baldintzatuak.


P(y | x ) : Eredu diskriminatzailea.
P( x ) : Eredu sortzailea.
P(y) : Etiketen gaineko a priori probabilitateak (etiketen frek. entrenamendu
datuetan)

15
Zer egin daiteke eredu hauekin?

• Eredu diskriminatzaileak p(y | x ):


• Datuei etiketak esleitu.
• Ezaugarriak ikasi (e.g. CNNren azken geruza FF aurretik).

16
Zer egin daiteke eredu hauekin?

• Eredu diskriminatzaileak p(y | x ):


• Datuei etiketak esleitu.
• Ezaugarriak ikasi (e.g. CNNren azken geruza FF aurretik).
• Eredu sortzaileak p( x ):
• Ezohiko elementuak identifikatu.
• Ezaugarriak ikasi (etiketarik gabe).
• Datu berriak sortu, laginketa bidez.

16
Zer egin daiteke eredu hauekin?

• Eredu diskriminatzaileak p(y | x ):


• Datuei etiketak esleitu.
• Ezaugarriak ikasi (e.g. CNNren azken geruza FF aurretik).
• Eredu sortzaileak p( x ):
• Ezohiko elementuak identifikatu.
• Ezaugarriak ikasi (etiketarik gabe).
• Datu berriak sortu, laginketa bidez.
• Eredu sortzaile baldintzatuak p( x | y):
• Etiketak esleitu eta ezohiko elementuak identifikatu.
• Datu berriak sortu, etiketa izanik.

16
Eredu sortzaileen taxonomia

Iturri Ian Goodfellow tutorial on GANs, 2017

17
Eredu autoerregresiboak
Dentsitate-estimazio esplizitua

• Helburua: pθ ( x ) = f ( x, θ ) funtzio esplizitua lortu.


• x (1) , . . . , x ( N ) datuak izanda, entrenatu eredua zera eginez:

θ∗ = argmax ∏ pθ ( x (i) ) (entrenamentu-datuen prob. maximizatu, MLE)


θ i

= argmax ∑ log pθ ( x (i) ) (log trukoa)


θ i

= argmax ∑ log f ( x (i) , θ ) (galera funtzioa)


θ i

18
Dentsitate-estimazio esplizitua

• Eredu autoerregresiboak: Dentsitate-estimazio esplizitua


parametrizatzeko modu bat.
• Helburua: pθ ( x ) = f ( x, θ ) funtzio esplizitua lortu.
• Demagun x bakoitza osagaiak dituela: x = ( x1 , . . . , xn )
• Probabilitea lortu katearen erregela erabiliz:

pθ ( x ) = p ( x1 , . . . , x n )
= p ( x1 ) p ( x2 | x1 ) p ( x3 | x1 , x2 ) . . .
n
= ∏ p ( x i | x 1 , . . . , x i −1 )
i =1

• Jadanik ikusi dugu hau: Hizkuntza-ereduak RNNak erabiliz.

19
Auto-kodetzaile Bariazionala
(Variational Autoencoders)
Auto-kodetzaile Bariazionala (Variational Autoencoders)

• Eredu autoerregresiboek dentsitate-funtzioa esplizituki parametrizaten


dute (neurona-sare baten bidez)
• Egiantz Handieneko Estimazioa maximizatzeko entrenatuak:
n
pθ ( x ) = ∏ p θ ( x i | x 1 , . . . , x i −1 )
i =1

• Auto-kodetzaile Bariazionalek (Variational Autoencoders, VAE)


dentsitate-funtzio trataezina definitzen dute.
• ezin da konputatu edo optimizatu.
• Baina dentsitatearen behe bornea optimizatu daiteke.

20
Autokodetzaileak (ez bariazionalak)

• Ez dira eredu probabilistikoak.


• x datuen errepresentazioa ikasteko metodo ez gainbegiratua.
• Transferentzia-ikaskuntza:
• ikasitako ezaugarriak informazio garrantzitsua kodetzen dute.
• atazetan erabilgarriak.

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf

• Etiketik ez dagoenez, nola jakin errepresentazioa ona den edo ez?

21
Autokodetzaileak (ez bariazionalak)

• IDEA: ezaugarriak erabili sarrera-datuak berrosatzeko.


• Erabili kodetzailea ezaugarriak konputatzeko.
• Erabili dekodetzailea sarrera berrosatzeko.

f enc ( x ) = z
f dec (z) = x̂

• f funtzioak neurona-sareak (MLP +


aktibazioa, CNN, etab)
• f enc sarrera-datuak kodetzen ditu z
ezaugarri-bektorean.
• f dec dekodetzaileak x berrosatzen du
z emanda.
Iturri https://web.eecs.umich.edu/ jus-
• Galera-funtzioa: || x̂ − x ||2 tincj/slides/eecs498/498 FA2019 lecture19.pdf

• Normalean, dim(z) ≪ dim( x )

22
Autokodetzaileak (ez bariazionalak)

• Behin entrenatuta, dekodetzailea baztertu egiten da.


• Kodetzailea erabili ezaugarri-bektoreak lortzeko.
• erabili ezaugarriak sailkatzaile gainbegiratuaren sarrera gisa.

23
Autokodetzaileak (ez bariazionalak)

• Pros
• Metodo elegantea eta ez-gainbegiratua.
• Oso malgua.
• Cons
• Praktikan ez dute hain emaitza ona ematen.
• Ez dira probabilistikoak, ezin dituzte datu berriak sortu.

24
Inferentzia bariazionala (autokodetzailea ez)

• Eredu prob. z → x adibidea.


• Dado multzo bat dugu, batzuk zuzenak dira, baina beste batzuk
trukatuta daude.
• Joko bat:
1. Dado bat aukeratu (z).
2. Dadoa hainbat aldiz bota, eta zenbakiak apuntatu (x).
• Soilik x ikusita, zein dado aukeratu da?

25
Inferentzia bariazionala (autokodetzailea ez)

• Probabilitateak:
p(z) Dadoa aukeratzeko probabilitatea.
p( x | z) zenbakien probabilitatea, dadoa aukeratu eta gero.
p(z | x ) Dadoen probabilitatea, zebakiak jakinda. Hau da nahi dugun
probabilitatea.

26
Inferentzia bariazionala (autokodetzailea ez)

• Bayes erregela aplikatuz:

p( x |z) p(z) p( x |z) p(z)


p(z| x ) = = Z
p( x ) p( x |z) p(z) dz
| {z }
trataezina

• Aukera: hurbildu p(z | x ) beste q(z) banaketa erabiliz.


• q(z) banaketa ezaguna da (adib. gausiarra).
• Minimizatu bien arteko KL diberjentzia: min KL(q(z)|| p(z| x ))

27
Inferentzia bariazionala (autokodetzailea ez)

q( x )
• Gogoratu KL diberjentzia: KL( p || q) = − ∑ p( x ) log p( x)
• banaketen arteko distantzia neurtzen du.
• beti ≥ 0
• ez simetrikoa: KL( p || q) ̸= KL(q || p)

28
Inferentzia bariazionala (autokodetzailea ez)

p(z| x )
KL(q(z)|| p(z| x )) = − ∑ q(z) log
z q(z)
p( x |z) p(z) p( x, z)
p(z| x ) = =
p( x ) p( x )
p( x, z)
KL(q(z)|| p(z| x )) = − ∑ q(z) log + ∑ q(z) log p( x )
z q(z) z
| {z }
log p( x )
p( x, z)
log p( x ) = KL(q(z)|| p(z| x )) + ∑ q(z) log
| {z } | {z } z q(z)
konstantea Hau minimizatu | {z }
L

• KL minimizatu L maximizatuz
• KL ≥ 0 denez , L da log p( x )en behe-borne bariazionala.
• L-ri deitzen zaio ELBO (Evidence Lower-BOund).

29
Inferentzia bariazionala (autokodetzailea ez). ELBO.

p( x, z) p( x |z) p(z)
L = ∑ q(z) log q(z)
= ∑ q(z) log q(z)
p(z)
= ∑ q(z) log p(x|z) + ∑ q(z) q(z)
| {z }
−KL(q(z)|| p(z))
= Ez∼q(z) [log p( x |z)] − KL(q(z)|| p(z))

laburbilduz:

log p( x ) ≥ L
= Ez∼q(z) [log p( x |z)] − KL(q(z)|| p(z))
| {z } | {z }
Datuak berrosatu Prior dibergentzia

30
Autokodetzaile bariazionalak
(Kingma and Wellig, 2014)

• Autokodetzaileen bertsio probabilistiko hobetua.


1. Ikasi ezaugarri latenteak (z) datutik abiatuz.
2. Laginketa ereduaren gainean datu berriak sortzeko.
• Demagun { x (i) }iN=1 entrenamendu-datuak z aldagai latentetik sortua
dela (x (i) ∼ p( x | z)).
• x irudia da, z dira irudia sortzen duten faktore latenteak (atributuak,
orientazioa, etab).
• z ezkutua da.

test garaian, nahi dugu:


• pθ ∗ (z)-tik z sortu (laginketa).
• pθ ∗ ( x | z) prob. baldintzatutik
x sortu (laginketa).

Iturri https://web.eecs.umich.edu/ jus-


tincj/slides/eecs498/498 FA2019 lecture19.pdf
31
Autokodetzaile bariazionalak
(Kingma and Wellig, 2014)

• pθ ∗ (z)-tik z sortu.
• Suposatu p(z) jakina dela (gausiarra)

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf

32
Autokodetzaile bariazionalak
(Kingma and Wellig, 2014)

• pθ ∗ (z)-tik z sortu.
• Suposatu p(z) jakina dela (gausiarra)
• pθ ∗ ( x | z) prob. baldintzatutik x sortu
• p( x | z) neurona-sarea da.
• Sarrera z da, irteera irudien gaineko prob. banaketa da.
• Nola egin hori?

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf

32
Autokodetzaile bariazionalak
(Kingma and Wellig, 2014)

• Dekodetzaileak probabilistikoa izan behar du


• Suposatu forma parametrikoa datu-banaketarako.
• Dimentsio altuko gausiarra, x duen dimentsio berekoa (irudiko
pixelak).
• Dekodetzaileak µ x|z batezbestekoa eta Σ x|z kobariantza
(diagonala) sortzen ditu.
• Dimentsio (pixel) bakoitzeko bat.
• Σ x|z diagonala → koordnetuak (pixelak) i.i.d. (independenteak).
• x irudia sortzeko, laginketa burutu gausiar batean µ x|z batezbeste
eta Σ x|z kobariantza duena.

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf 33


VAE entrenatzen

• Nola entrenatu eredu hauek?


• Oinarrizko ideia: datuen
egiantza maximizatu p( x )
• z ezkutua da, beraz:
Z
p( x ) = p( x |z) p(z) dz
|{z}
| {z } |{z}
dekodetzailea gausiarra trataezina

Ezin da z osoan integratu.

Iturri https://web.eecs.umich.edu/ jus-


tincj/slides/eecs498/498 FA2019 lecture19.pdf

34
VAE entrenatzen

• Nola entrenatu eredu hauek?


• Oinarrizko ideia: datuen
egiantza maximizatu p( x )
• z ezkutua da, beraz:
Z
p( x ) = p( x |z) p(z) dz
|{z}
| {z } |{z}
dekodetzailea gausiarra trataezina

Ezin da z osoan integratu.


• Beste ideia: Bayes erregela
erabili Iturri https://web.eecs.umich.edu/ jus-
tincj/slides/eecs498/498 FA2019 lecture19.pdf
dekodetzailea gausiarra
z }| { z}|{
p( x |z) p(z)
p( x ) =
p(z| x )
| {z }
trataezina

34
VAE entrenatzen

• Soluzioa beste sare bat entrenatu (kodetzailea) q(z| x ) ikasten duena,


eta egin q(z| x ) ∼ p(z| x )

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf

35
VAE entrenatzen

• Soluzioa beste sare bat entrenatu (kodetzailea) q(z| x ) ikasten duena,


eta egin q(z| x ) ∼ p(z| x )
• Aldi berean entrenatu q kodetzaile eta p dekodetzaile behe-borne
bariazionala (ELBO) maximitzatzeko

log pθ ( x ) ≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))


| {z } | {z }
Data berrosatu Prior diberjentzia

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf

35
VAE entrenatzen

log pθ ( x ) ≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

1. Sarrera-datuak kodetzailetik pasa


aldagai latentearen banaketa
izateko

Iturri https://web.eecs.umich.edu/ jus-


tincj/slides/eecs498/498 FA2019 lecture19.pdf

36
VAE entrenatzen

log pθ ( x ) ≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

1. Sarrera-datuak kodetzailetik pasa


aldagai latentearen banaketa
izateko
2. Kodetzailearen irteerak p(z)
prior-ekin bat etorri behar du.

Iturri https://web.eecs.umich.edu/ jus-


tincj/slides/eecs498/498 FA2019 lecture19.pdf

37
VAE entrenatzen

log pθ ( x ) ≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

1. Sarrera-datuak kodetzailetik pasa


aldagai latentearen banaketa
izateko
2. Kodetzailearen irteerak p(z)
prior-ekin bat etorri behar du.

Iturri https://web.eecs.umich.edu/ jus-


tincj/slides/eecs498/498 FA2019 lecture19.pdf

Soluzio itxia q gausiar diagonal denean eta p gausiar unitarioa denean:


p( x )
Z
KL(q(z| x )|| p(z)) = − qϕ (z| x ) log dz =
Z qϕ (z| x )
d
1
= −
2 ∑ (1 + log((Σz|x )2i ) − (µz|x )2i − (Σz|x )2i )
i =1
37
VAE entrenatzen

log pθ ( x ) ≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

1. Sarrera-datuak kodetzailetik pasa


aldagai latentearen banaketa
izateko.
2. Kodetzailearen irteerak p(z)
prior-ekin bat etorri behar du.
3. Kodetzailearen irteeran laginketa
egin eta z lortu.
4. Erabili z dekodetzailean datuen
gaineko banaketa lortzeko.

Iturri https://web.eecs.umich.edu/ jus-


tincj/slides/eecs498/498 FA2019 lecture19.pdf
38
VAE entrenatzen

log pθ ( x ) ≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

1. Sarrera-datuak kodetzailetik pasa


aldagai latentearen banaketa
izateko.
2. Kodetzailearen irteerak p(z)
prior-ekin bat etorri behar du.
3. Kodetzailearen irteeran laginketa
egin eta z lortu.
4. Erabili z dekodetzailean datuen
gaineko banaketa lortzeko.
5. Jatorrizko sarrera-datuak
probableak izan behar dira (4)
banaketaren arabera.
Iturri https://web.eecs.umich.edu/ jus-
tincj/slides/eecs498/498 FA2019 lecture19.pdf
39
VAE entrenatzen

log pθ ( x ) ≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

1. Sarrera-datuak kodetzailetik pasa


aldagai latentearen banaketa
izateko.
2. Kodetzailearen irteerak p(z)
prior-ekin bat etorri behar du.
3. Kodetzailearen irteeran laginketa
egin eta z lortu.
4. Erabili z dekodetzailean datuen
gaineko banaketa lortzeko.
5. Jatorrizko sarrera-datuak
probableak izan behar dira (4)
banaketaren arabera.
Ez∼qϕ (z| x) [log pθ ( x |z)] =

1 ( x − µ x | z )2
− (log 2π + + 2 log Σ x|z )
2 ( Σ x | z )2 Iturri https://web.eecs.umich.edu/ jus-
40
tincj/slides/eecs498/498 FA2019 lecture19.pdf
VAE entrenatzen

• Laginketa ez da diferentziagarria
• “Reparametrization trick” (Kingma and Wellig, 2014)
ϵ ∼ N (0, I ) gainean laginketa egin.
z = µz| x + ϵΣz| x .
• µz| x eta Σz| x konputazio-grafoaren parte dira.
• ϵ grafoaren sarrera da.

41
VAE: Entrenatzeko arazoak

• VAEk dituen bi helburuetatik, KL askoz errazagoa da ikasteko.

Ez∼q(z| x) [log p( x |z)] − KL(q(z| x )|| p(z))


| {z } | {z }
Eredu sortzaile ona behar du Soilik q-ren batazbes-
te/bariantza p-koa izatea

• Hori dela eta, ereduak soilik dekodetzailea erabiltzen du, eta latenteaz
“paso” egiten du, hots, p( x |z) = p( x )
• Posterior colapse

42
1 irtenbidea: KL Divergence Annealing

• Biderkatu KL terminoa λ konstantearekin, zeroan hasita, eta poliki-poliki


1era igo.
• Ereduak z ikas dezake zigortua gertatu baino lehen.

Iturri (Bowman et al. 2017)

43
2 irtenbidea: Free bits / KL thresholding (Knigma et al. 2017)

• λ hyperparametro berria sartu


• KL galera ez da erabiltzen aldagai latenteak λ baino informazio-bit
gutxiago baditu.
• Ondoren, erabili ELBO arrunta.
• Ereduak aukera du aldagai latente bakoitzean λ bit azkar ikasteko.

∑ max[λ, KL(q(z|x)|| p(z))]


i

• Normalean λ ∈ [0.05, . . . , 0.1].

44
VAE: datuak sortzen

• Entrenatu ondoren, datu berriak sor daitezke.


• Kodetzailea baztertu.
1. z sortu p(z) ∼ N (0, I ) banaketatik laginketa eginez.
2. Erabili z dekodetzailean datuen gaineko banaketa lortzeko.
3. x berriak sortu (laginketa) x ∼ N (µ x|z , Σ x|z ).

45
VAE: datuak sortzen

(Knigma et al. 2016; Larsen et al. 2017)

46
VAE: datuak editatzen

• Eredu autoerregresiboak ez bezala, VAEk datuen errepresentazioa


ikasten dute (z aldagai latentea).
• z behartzen da egitura zehatz bat izan dezan z ∼ N (0, I )
• zko dimentsio bakoitza independentea da besteekiko
• z alda dezakegu eta sortutako datuetan duen eragina aztertu.
• Procedure:
• z aldagaiko zenbat dimentsioak aldatu eta dekodetzaileari pasa
datuak sortu ditzan.

47
VAE: datuak editatzen

48
VAE: datuak editatzen

• Entrenatu ondore, irudiak editatu daitezke


1. Datuak kodetzailetik pasa kode latenteak lortzeko.
2. Kodetzailearen irteeran laginketa z lortzeko: z ∼ N (µz| x , Σz| x )
3. z gainean zenbait dimentsio aldatu.
4. Bidali z berria dekodetzailera.
5. x datu berriak sortu laginketa bidez x ∼ N (µ x|z , Σ x|z ).

49
VAE: datuak editatzen

(Kulkarni et al. 2014)

50
VAE: Esaldiak espazio jarrian sortzen (Bowman et al. 2015)

• Entrenatu VAE hizkuntza-eredu gisa.


• Erabili VAE esaldiak sortzeko.
• z aldagai latenteen artean interpolatu.

(Bowman et al. 2014)

51
VAE: Laburbilduz

• Autokodetzaileen aldaera probabilistikoa → datuak sortu daitezke.


• Dentsitate-funtzio trataezina → behe-bornea optimizatu (bariazionala).
• PROS:
• Eredu sortzaileen modelo matematiko sendoa.
• q(z| x ) ikasten du, aldagai latenteen banaketa, datuak erabiliz;
ezaugarri errep. baliagarria beste atazetan.
• CONS:
• Hurbilketa da, datuen egiantza baino, behe-bornea maximizatzen
du.
• Irudietan: sortutako irudien kalitatea ez hain ona beste modeloekin
konparatuta (adib.GAN)
• Pil-pileko gaia ikerkuntzan
• Hurbilketa malguagoak: gausiar diagonala baino aberatsa diren
a-posteriori banaketak, adib. gaussian mixture models.
• Aldagai latenteetan egitura sartu, adib., kategoria-banaketak.

52
Sare sortzaile aurkaridunak
(Generative Adversarial
Networks, GAN)
Eredu sortzaileak, orain arte

• Eredu autoerregresiboak zuzenean maximizatu datuen egiantza:


N
pθ ( x ) = ∏ p θ ( x i | x 1 , . . . , x i −1 )
i =1

• Autokodetzaile bariazionalak (VAE) erabili z latentea, behe-bornea


maximizatu:
Z
log pθ ( x ) = pθ ( x |z) p(z) dz ≥
≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

53
Eredu sortzaileak, orain arte

• Eredu autoerregresiboak zuzenean maximizatu datuen egiantza:


N
pθ ( x ) = ∏ p θ ( x i | x 1 , . . . , x i −1 )
i =1

• Autokodetzaile bariazionalak (VAE) erabili z latentea, behe-bornea


maximizatu:
Z
log pθ ( x ) = pθ ( x |z) p(z) dz ≥
≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

• Sare sortzaile aurkaridunak: ez modelatu p( x ), baina aukera eman


p( x ) gainean laginketa egiteko.

53
GANs

• Setup:
• Suposatu { x (i) }iN=1 datuak pdata banaketatik eratorriak direla.
• pdata gainean laginketa egin nahi dugu.
• Ideia:
• Erabili z aldagai latentea, p(z) a-priori duena (adibidez, N (0, I)).
• z ∼ p(z) laginketa egin, eta pasa sortzaile batera x = G (z).
• G sortzaileak inplizituko definituko du pG .
• x datua pG gaineko laginketa bidez sortzen da. Nahi dugu
pG = pdata
• Entrenatu G Sare sortzailea zeinak z latentea x datu faltsuak
sortzen dituen, p G laginketa eginez.

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf 54


GANs

• Behar da mekanismoa bat pG behartzeko pdata antza izaten.


• Ideia:
• Bigarren sare bat erabili, D diskriminatzailea.
• Entrenatu D sailkatzeko datuak benetakoak edo faltsuak diren.
• Sortzailea entrenatu diskriminatzaileari “ziria” sartzeko.
• G eta D batera entrenatu. Zorte pixka batekin, pG banaketak pdata kin
bat egingo du.

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf

55
GANak entrenatzen: bi jokalarien jokoa

• Diskriminatzailea: saiatu bereizten benetakoa eta faltsua.


• Sortzailea: datuak errealak sortu eta saiatu diskriminatzaileari ziria
sartzen.
• Biak batera entrenatu:
• joko aurkariduna.

Iturri http://cs231n.stanford.edu/slides/2021/lecture 12.pdf

56
GANak entrenatzen: bi jokalarien jokoa

• Diskriminatzailea: saiatu bereizten benetakoa eta faltsua.


• Sortzailea: datuak errealak sortu eta saiatu diskriminatzaileari ziria
sartzen.

Entrenatu batera: minmax jokoa

min max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))]
θg θd

57
GANak entrenatzen: bi jokalarien jokoa

• Diskriminatzailea: saiatu bereizten benetakoa eta faltsua.


• Sortzailea: datuak errealak sortu eta saiatu diskriminatzaileari ziria
sartzen.

Entrenatu batera: minmax jokoa


Dikr. nahi du D ( x ) = 1 datu errealetan Diskr. nahi du D ( x ) = 0 datu faltsuetan
z }| { z }| {
min max[ Ex∼ pdata log Dθd ( x ) +Ez ∼ p ( z ) log(1 − Dθd ( Gθg (z)))]
θg θd

58
GANak entrenatzen: bi jokalarien jokoa

• Diskriminatzailea: saiatu bereizten benetakoa eta faltsua.


• Sortzailea: datuak errealak sortu eta saiatu diskriminatzaileari ziria
sartzen.

Entrenatu batera: minmax jokoa


Sortzaileak nahi du D ( x ) = 1 datu faltsuetan
z }| {
min max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z))) ]
θg θd

59
GANak entrenatzen: bi jokalarien jokoa

• Diskriminatzailea: saiatu bereizten benetakoa eta faltsua.


• Sortzailea: datuak errealak sortu eta saiatu diskriminatzaileari ziria
sartzen.

Entrenatu batera: minmax jokoa

min max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))]
θg θd

• Diskriminatzailea (θd ) → helburua maximizatu, alegia, D ( x ) ∼ 1


(datu erreal) eta D ( G (z)) ∼ 0 (datu faltsuak).
• Sortzailea (θ g ) → helburua minimizatu, alegia, D ( G (z)) ∼ 1 (diskrim.
ziria sartu).

60
GANak entrenatzen: bi jokalarien jokoa

• Helburu-funtzioa:

min max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))]
θg θd

Txandakatu:

1. Gradiente igoera diskriminatzailean:

max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))]
θd

2. Gradient jaitsiera sortzailean:

min Ez∼ p(z) log(1 − Dθd ( Gθg (z)))


θg

61
GANak entrenatzen: bi jokalarien jokoa

• Helburu-funtzioa:

min max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))] =
θg θd

min max V ( D, G )
θg θd

For t in 1 . . . , T:
∂V
1. (Update D) D = D + α D ∂D
2. (Update G) G = G − αG ∂V
∂G

• Ohartu:
• Helburu orokorra optimizatzen ari gara.
• Ez dago entrenamendu-kurba bakarra.
• G eta D bakoitzak bere galera du, eta haien arteko dependentzia
dago.
• Oro har, GAN galerek ez dute behera egiten denboran zehar.
• GAN entrenatzea zaila da.

62
GANak entrenatzen: bi jokalarien jokoa

Txandakatu:

1. Gradiente igoera diskriminatzailean:

max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))]
θd

2. Gradient jaitsiera sortzailean:

min Ez∼ p(z) log(1 − Dθd ( Gθg (z)))


θg

Arazoa

• Entrenamendu hasieran, G oso txarra da → D-ren lana oso erraza.


• Dθd ( Gθg (z)) ia zero da.
• Desagertzen diren gradienteak.

63
GANak entrenatzen: bi jokalarien jokoa

Txandakatu:

1. Gradiente igoera diskriminatzailean:


max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))]
θd

2. Gradient jaitsiera sortzailean:


min Ez∼ p(z) log(1 − Dθd ( Gθg (z)))
θg

64
GANak entrenatzen: bi jokalarien jokoa

Txandakatu:

1. Gradiente igoera diskriminatzailean:


max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))]
θd

2. Instead: Gradiente igoera sortzailean, helburu desberdina


max Ez∼ p(z) log( Dθd ( Gθg (z)))
θg

65
GANak entrenatzen: bi jokalarien jokoa

GAN entrenatzeko algoritmoa (Goodfellow et at, 2014)

Algorithm 1: Training GANs


for t = 1, . . . , T do
for k steps do
Sample minibatch of m noise samples {z(1) , . . . , z(m) } from prior p(z);
Sample minibatch of m examples {x(1) , . . . , x(m) } from data distribution pdata ;
Update discriminator D by ascending h its stochastic gradient: i
D = D + α D ∇θd m1 ∑im=1 log Dθd (x(i) ) + log(1 − Dθd ( Gθ g (z(i) )))

end
Sample minibatch of m noise samples {z(1) , . . . , z(m) } from prior p(z);
Update generator by ascending its stochastic gradient:

1 m
G = G + α G ∇θ g m ∑i=1 log Dθd ( Gθ g (z(i) )))

end

• Batzuen arabera k = 1 egonkorragoa da, bestak diote k > 1


• Aldaerak: Wasserstein GAN (Arjovsky et al., 2017) edo BEGAN
(Berthelot, et al, 2017) arazo hau arintzen dute, egonkortasun hobea 66
lortuz.
GANak entrenatzen: sortzailearen galera-funtzioa

Praktikan, galera beti minimizatzen da.

1. Gradiente jaitsiera diskriminatzailean:


min[Ex∼ pdata − log Dθd ( x ) − Ez∼ p(z) log(1 − Dθd ( Gθg (z)))]
θd

2. Gradiente jaitsiera sortzailean:


min Ez∼ p(z) − log( Dθd ( Gθg (z)))
θg

67
GAN: balio optimoa

• Froga daiteke mini-max funtzioak minimo globala duela pG = pdata


denean.

min max[Ex∼ pdata log Dθd ( x ) + Ez∼ p(z) log(1 − Dθd ( Gθg (z)))] =
θg θd

min(2 · js( pdata , pG ) − log 4)


θg

non js Jensen-Shannon diberjentzia den.


• js ≥ 0, eta 0 da soilik banaketak berdinak badira.
• Beraz, minimoa lortuko da soilik pG ( x ) = pdata ( x ) denean.
• Baina
• G eta D neurona-sareak dira, arkitektura finkoekin. Ezin jakin G
edo D optimoak adierazten duten.
• Ez digu ezer esaten soluzio optimoaren konbergentziari buruz.

68
GAN: entrenamendu ondoren

• Entrenamendu ondoren, diskriminatzailea baztertu.


• Sortzailea erabili datu berriak sortzeko.

69
GAN: emaitzak

Sortutako irudiak:

Goodfellow et at, 2014

70
GAN: irudiak sortzen

DCGAN: erabili CNN sortzaile gisa:

Radford et al. ICLR 2016

71
GAN: irudiak sortzen

DCGAN sortutako irudiak:

Radford et al. ICLR 2016

72
GAN: irudiak Interpolatzen

z espazio latentean interpolatuz sortutako irudiak.

(Radford et al. ICLR 2016)

73
GAN: bektore interpretagarriak

Bektore-aritmetika:

(Radford et al. ICLR 2016)

74
GAN: bektore interpretagarriak

Bektore-aritmetika:

(Radford et al. ICLR 2016)

74
GAN: bektore interpretagarriak

Bektore-aritmetika:

(Radford et al. ICLR 2016)

74
GAN Baldintzatuak

• Ikasi p( x |y) banaketa p( x ) ordez.


• Sortzaile zein diskriminatzaileek y etiketa ere hartzen dute sarrera gisa.
• Erabili etiketa datu berriak sortzeko.

75
GAN Baldintzatuak

Miyato et al. ICLR 2018

76
GAN baldintzatuak: batch normalizazio baldintzatuak

Batch normalizazioa

a(1) , a(2) , . . . , a( B) ⇐ d−dim.


v
1 B (i ) u1 B
u
µ= ∑a σ = t ∑ ( a(i) − µ)2 ⇐ d−dim.
B i =1 B i =1

a (i ) − µ
a (i ) = γ+β
σ
Batch normalizatu baldintzatua Dumoulin et al. ICLR 2017

Ikasi eskalatu eta desplazamendu desberdina etiketa bakoitzeko.


a(1) , a(2) , . . . , a( B) ⇐ d−dim.
v
B u1 B
u
1
µ = ∑ a(i) σ = t ∑ ( a(i) − µ)2 ⇐ d−dim.
B i =1 B i =1

a (i ) − µ y
a (i ) = γ + βy
σ
77
2017: GANen eztanda

• 2017 urtetik aurrera jendeak GAN erabiltzen ditu ia edozertako.


• Ikasketa aurkariduna ikerketa lerro handia da.
• Egun 500 baino GAN mota gehiago daude.
• The GAN ZOO

78
GAN: irudiak sortzen

Irudien kalitatea asko handitu da:

(Brock et al. 2019)

79
GAN laburbilduz

• Bi sare batera entrenatu:


• Diskriminatzailea: sailkatu datuak errealak/faltsuak.
• Sortzailea: Datuak sortu, diskriminatzaileari ziria sartzeko.

Iturri https://web.eecs.umich.edu/ justincj/slides/eecs498/498 FA2019 lecture19.pdf

• Zenbait baldintzatan, sortzailea datuen benetako banaketara


konbergitzen du.
• Aplikazio ugari, ikerketa lerro aktiboa.

80
Eredu sortzaileen taxonomia

Iturri Ian Goodfellow tutorial on GANs, 2017

81
Eredu sortzaileak laburbilduz

• Eredu autoerregresiboak zuzenean maximizatu datuen egiantza:


N
pθ ( x ) = ∏ p θ ( x i | x 1 , . . . , x i −1 )
i =1
Kalitate ona, ebaluatu daikeke (“perplexity”). Motela datuak sortzen,
trukoak behar ditu azkartzeko.
• Autokodetzaile bariazionalak (VAE) erabili z latentea, behe-bornea
maximizatu:
Z
log pθ ( x ) = pθ ( x |z) p(z) dz ≥
≥ Ez∼qϕ (≥ Ez∼qϕ (z| x) [log pθ ( x |z)] − KL(qϕ (z| x )|| p(z))

z latenteak aukera ematen du interpolazioak egiteko


(edizio-aplikazioak).
• Sare sortzaile aurkaridunak (GAN): ez modelatu p( x ), baina aukera
eman p( x ) gainean laginketa egiteko. Zaila ebaluatzeko, baina kalitate
handieneko emaitzak, gaur egun.

82

You might also like