T abajo de Fin de G ado en Ingenie
´
ıa In o m´
a ica
Facul ad de In o m´
a ica
Uni e sidad Complu ense de Mad id
E aluaci´on de endimien o de a qui ec u as
pa alelas y de p op´osi o espec´ı ico pa a el
ap endizaje po e ue zo en juegos
Pe o mance e alua ion o pa allel and
speci ic-pu pose a chi ec u es o
ein o cemen lea ning in games
Au o :
Ja ie Guzm´
an Mu˜
noz
P o eso di ec o :
F ancisco Igual Pe˜
na
P o eso codi ec o :
Luis MªCos e o Vale o
Doble G ado en Ingenie
´
ıa In o m´
a ica - Ma em´
a icas
Cu so 2020-2021
2
3
Resumen
Las aplicaciones de ap endizaje po e ue zo se usan en la ac ualidad pa a esol e p oblemas de
odo ipo en campos muy di e sos. Sin emba go, una de las p incipales des en ajas que p esen an es
el ele ado cos e compu acional del en enamien o de los modelos necesa ios. Con es e abajo de in
de g ado se p e ende mejo a es e p oceso median e la pa alelizaci´on de los algo i mos empleados y el
uso de dis in as a qui ec u as ha dwa e que a ia ´an los iempos eque idos. Los modelos en enados
pueden aplica se pa a ob ene la mejo secuencia de acciones que podemos ealiza sob e un en o no
y mejo a la ecompensa ob enida. Es e p oceso, que se denomina in e encia, aunque iene meno
complejidad compu acional, se ealiza muchas m´as eces, po lo que se han desa ollado p ocesado es
de p op´osi o espec´ı ico pa a lle a a cabo es a a ea. Po ello, ambi´en es con enien e e alua su
endimien o en es os sopo es y compa a los con o as unidades de p ocesamien o m´as gene ales. T as
de ini el escena io en el que nos amos a mo e y los ecu sos necesa ios pa a ello, se p oponen
una se ie de expe imen os de los p ocesos de en enamien o e in e encia que nos pe mi i ´an e alua
el endimien o en ´e minos del iempo empleado, de la u ilizaci´on de los ecu sos disponibles y del
consumo de ene g´ıa de dis in as a qui ec u as ha dwa e, iendo cu´al es m´as con enien e usa en cada
caso.
Palab as cla e
Ap endizaje po e ue zo, algo i mo PPO, ed neu onal de con oluci´on, Ray RLlib, en o nos Gym,
TPU Google Co al, acele ado es ha dwa e.
Abs ac
Nowadays, ein o cemen lea ning applica ions a e used o sol e all kinds o p oblems in a wide
a ie y o ields. Howe e , one o hei main disad an ages is he high compu a ional cos o aining he
necessa y models. This Bachelo ’s hesis aims a imp o ing his p ocess by pa allelizing he in ol ed
algo i hms and by using di e en ha dwa e a chi ec u es, which will di e in he amoun o ime used.
We can un p e iously ained models o ob ain he bes sequence o ac ions o in e ac wi h he
en i onmen in o de o imp o e he ewa d ob ained. Al hough his p ocess, called in e ence, has a
lowe compu a ional complexi y, i is usually epea ed many imes and equi es a as esponse. In
o de o execu e in e ence in an e icien way, speci ic-pu pose p ocesso s ha e been de eloped, so i is
con enien o e alua e i s pe o mance on hese de ices and compa e hem wi h mo e gene al p ocessing
uni s. A e de ining he scena io and he esou ces needed, we p opose a se ies o expe imen s o es
he aining and in e ence p ocesses, e alua ing he pe o mance in e ms o he ime spen , he esou ce
usage and he powe consump ion when using di e en a chi ec u es, analyzing which is he bes op ion
in each case.
Keywo ds
Rein o cemen lea ning, PPO algo i hm, con olu ional neu al ne wo k, Ray RLlib,Gym en i on-
men s, Google Co al TPU, ha dwa e accele a o s.
4
´
Indice gene al
1. In oducci´on 7
2. Fundamen os 15
2.1. Ap endizajepo e ue zo.................................... 15
2.1.1. Pol´ı icas en el ap endizaje po e ue zo . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2. Algo i mo de Op imizaci´on de Pol´ı ica P ´oxima (PPO) . . . . . . . . . . . . . . . . . . 17
2.2.1. Algo i mos de g adien e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2. Algo i mos de egi´on de con ianza . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3. Fundamen os del algo i mo PPO . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Redes Neu onales de Con oluci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1. Redes de con oluci´on y ap endizaje po e ue zo . . . . . . . . . . . . . . . . . . 24
2.4. Tenso low............................................ 24
2.4.1. Ke as .......................................... 25
2.4.2. Tenso lowLi e..................................... 25
2.5. RayyRLlib........................................... 25
2.5.1. RLlib .......................................... 26
2.5.2. Algo i mo PPO en RLlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6. En o nosGym ......................................... 28
2.7. TPUyGoogleCo al...................................... 30
2.8. Cuan izaci´ondemodelos.................................... 32
3. Implemen aci´on 35
3.1. Desc ipci´on de los en o nos de p uebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2. Desc ipci´on de los modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.1. Desc ipci´on del en o no del agen e . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.2. Modelo de Tenso low Ke as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.3. Modelosp opues os .................................. 39
3.2.4. Modelosseleccionados ................................. 40
3.3. An´alisisdel endimien o .................................... 41
3.3.1. Implemen aci´on de los expe imen os de en enamien o . . . . . . . . . . . . . . . 41
3.3.2. Implemen aci´on de los expe imen os de in e encia . . . . . . . . . . . . . . . . . . 44
4. Resul ados 51
4.1. Resul ados del p oceso de en enamien o . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.1.1. Uso de los ecu sos disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.1.2. Tiemposempleados .................................. 57
4.1.3. An´alisis del uso que se hace de las dis in as CPUs . . . . . . . . . . . . . . . . . 66
4.1.4. Conclusiones ex a´ıdas de los expe imen os de en enamien o . . . . . . . . . . . 68
5
6´
INDICE GENERAL
4.2. Resul ados de la in e encia de modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2.1. In e enciaenRLlib................................... 68
4.2.2. In e encia sob e el acele ado Google Co al . . . . . . . . . . . . . . . . . . . . . 70
5. Conclusiones 73
A. Funcionamien o de los sc ip s de Py hon 79
A.1.Sc ip deen enamien o .................................... 79
A.2. Sc ip de in e encia en RLlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.3. Sc ip s de expo aci´on y cuan izaci´on de modelos pa a la TPU . . . . . . . . . . . . . . 82
A.3.1. Sc ip de expo aci´on de modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
A.3.2. Sc ip de c eaci´on de modelos de Tenso low Li e . . . . . . . . . . . . . . . . . . 83
A.3.3. Sc ip de c eaci´on de da ase s pa a la cuan izaci´on . . . . . . . . . . . . . . . . . 83
A.3.4. Sc ip de cuan izaci´on de modelos de Tenso low Li e . . . . . . . . . . . . . . . . 83
A.4. Sc ip s de in e encia de modelos de Tenso low Li e . . . . . . . . . . . . . . . . . . . . . 84
Bibliog a ´ıa 88
Cap´ı ulo 1
In oducci´on
Hoy en d´ıa, el ap endizaje au om´a ico omachine lea ning es ´a p esen e en p ´ac icamen e odos
los campos del conocimien o (ingenie ´ıa, inanzas, medicina, . . . ). Es a ama de la compu aci´on a a
de emula la mane a en la que el ce eb o humano ap ende a pa i de la in o maci´on que le llega de su
en o no. Son m´ul iples los pa adigmas que exis en den o de es e campo. En es e abajo nos amos
a cen a en uno de ellos, el ap endizaje po e ue zo. Su idea undamen al es lle a a cabo el
ap endizaje po medio de la in e acci´on con inua y el in e cambio de in o maci´on en e un agen e y
un en o no con el que desea ap ende a in e acciona . El agen e ecibe obse aciones del en o no
y, bas´andose en ellas, en ena una pol´ı ica que de e mina ´a una acci´on que ealiza ´a en el en o no
y po la que ob end ´a una ecompensa. El obje i o inal se ´a desa olla un modelo que maximice
las ecompensas ob enidas, es o es, que dada una obse aci´on del en o no sepa cual es la mejo acci´on
que nos lle a ´a a op imiza la ecompensa inal acumulada.
Pa a ob ene un modelo de ap endizaje au om´a ico hay que ealiza un p oceso de en ena-
mien o, en el que se con igu a el p opio modelo a a ´es de in e acciones sucesi as con el en o no en
el que a mejo ando su oma de decisiones. Una ez concluya es e p oceso ya podemos usa nues o
modelo pa a ealiza in e encias, es o es, in e acciones con el en o no en las que en cada momen o se
escoja la mejo acci´on de acue do con la pol´ı ica que hemos en enado. Exis en di e sos modelos (al-
go i mos) que se pueden usa en p oblemas de ap endizaje. Uno de ellos son las edes neu onales de
con oluci´on, que eciben im´agenes y son capaces de cap u a dependencias espaciales y empo ales
en ellas.
El escena io de ap endizaje po e ue zo puede aplica se a odo ipo de p oblemas de ap endizaje. En
es e abajo se adap a ´a el p oblema pa a el caso en el que que emos ap ende a juga a ideojuegos
sencillos a pa i de las obse aciones de la pan alla y de las pun uaciones ob enidas.
Pa a modela el en o no del p oblema nos ayuda emos de la biblio eca Gym1, que p opo ciona
en o nos sob e los que podemos desa olla escena ios de ap endizaje po e ue zo. Los en o nos que
oma emos nos suminis a ´an da os en o ma de im´agenes como obse aciones del en o no, lo que
p opicia ´a ambi´en el uso de edes neu onales de con oluci´on.
El sopo e ha dwa e sob e el que se pueden desa olla es os p ocesos es muy a iado: desde
p ocesado es gen´e icos (CPUs) has a o os de p op´osi o espec´ı ico pa a a eas conc e as (como po
ejemplo la in e encia), pasando po acele ado es g ´a icos como GPUs (G aphics P ocessing Uni s).
1h ps://gym.openai.com/
7
8CAP´
ITULO 1. INTRODUCCI ´
ON
Mo i aciones
Uno de los p incipales p oblemas que p esen a el desa ollo de modelos de ap endizaje po e ue zo
es el ele ado cos e compu acional de los algo i mos empleados pa a el p oceso de en enamien o.
Pa a ello, se a an de acele a los c´alculos implicados con el uso de GPUs. Adem´as, la es uc u a de
muchos de los algo i mos de en enamien o habi uales en es e ipo de p oblemas a a pe mi i una
pa alelizaci´on que mejo e ambi´en su endimien o.
Sin emba go, es necesa io adap a el p oceso de en enamien o pa a que sea posible su co ec a
ejecuci´on en es e sopo e y la pa alelizaci´on de los algo i mos, que en muchos casos no se ´a a ea
sencilla. Y aqu´ı es donde apa ece la biblio eca RLlib2de Ray, que elimina es as di icul ades.
Po o o lado, in oduci ecu sos como las GPUs inc emen a no ablemen e el consumo de po en-
cia de nues o sis ema, po lo que es un ac o ambi´en a ene en cuen a cuando con igu emos el
en enamien o.
En cuan o al p oceso de in e encia, aunque una in e encia indi idual enga un cos e mucho meno
que una i e aci´on de en enamien o, las in e encias se ealizan un n´ume o muy ele ado de eces, po
lo que, en conjun o, el cos e de las in e encias suele se mayo que el del en enamien o (al in y al
cabo, el en enamien o lo ealizamos una ez pe o las in e encias siemp e que que amos usa nues o
modelo pa a esol e el p oblema de ap endizaje). Po ello, es impo an e ealiza las in e encias en
disposi i os en los que el cos e de cada in e encia indi idual sea muy bajo, pa a que una di e encia
de cos e casi impe cep ible no se con ie a en un p oblema al e se mul iplicada cuando ealizamos
g an can idad de pasos de in e encia. As´ı, cabe la posibilidad de que a iando el ha dwa e sob e el
que se ejecu e se mejo e su endimien o en es e aspec o, al igual que en el en enamien o. Y es que
exis e ha dwa e espec´ı ico pa a ealiza es e p oceso, como la TPU de Google Co al3, ideada como
un p ocesado de ma ices que esul a id´oneo pa a ejecu a in e encias sob e modelos de ap endizaje
au om´a ico. Adem´as, o a de las en ajas que o ece es el aho o en consumo de ene g´ıa espec o
a las CPUs y GPUs. El uso de es e disposi i o a˜nade la di icul ad de que es necesa io adap a los
modelos pa a que podamos ejecu a in e encias en ´el, y es e p oceso pod ´ıa en muchos casos no se
i ial.
Obje i os
Mo i ados po lo expues o an e io men e, el obje i o p incipal del p esen e abajo de in de
g ado es e alua el endimien o de los p ocesos de ap endizaje e in e encia en el escena io
del ap endizaje po e ue zo en di e en es a qui ec u as ha dwa e, analizando las en ajas e
incon enien es de cada una de ellas. As´ı, end emos in o maci´on ´u il a la ho a de en ena o de aplica
modelos de ap endizaje po e ue zo que nos pe mi i ´a op imiza el iempo, la u ilizaci´on de ecu sos
o el consumo de ene g´ıa en cada caso conc e o. Lis amos a con inuaci´on algunos de los obje i os
espec´ı icos en los que podemos desglosa es e obje i o p incipal:
1. Modela co ec amen e el escena io de ap endizaje haciendo uso de las biblio ecas RLlib yGym.
2. Ejecu a un mismo p oceso de en enamien o sob e di e en es a qui ec u as ha dwa e haciendo
uso de las u ilidades de Ray.
3. E alua el endimien o a iando los pa ´ame os p opios de los modelos que se conside an.
4. Analiza y ex ae conclusiones sob e el p oceso de en enamien o, que pe mi an de e mina las
en ajas e incon enien es en ´e minos de iempo de ap endizaje y u ilizaci´on de los ecu sos de
cada uno de los escena ios e aluados.
2h ps://docs. ay.io/en/mas e / llib.h ml
3h ps://co al.ai/p oduc s/
9
5. Ejecu a p ocesos de in e encia haciendo uso de las u ilidades de Ray, a iando los ecu sos
ha dwa e empleados pa a ello.
6. Se capaces de ejecu a in e encias en el acele ado Google Co al sob e modelos p e iamen e
en enados con RLlib y pos e io men e cuan izados.
7. Ex ae conclusiones espec o a la in e encia de modelos y analiza las en ajas e incon enien es
que supone el uso de acele ado es de p op´osi o espec´ı ico.
Me odolog´ıa
Pa a pode log a es os obje i os a a emos de mane a sepa ada los p ocesos de en enamien o
e in e encia. Elegi emos una se ie de modelos (dados como edes neu onales de con oluci´on) que se
dis ingan en e s´ı undamen almen e po el ama˜no de las en adas que eciben. Una ez elegidos
los modelos, p opond emos una se ie de expe imen os que pe mi an e alua el endimien o de los
p ocesos de en enamien o e in e encia a iando los ecu sos ha dwa e empleados, desa ollando el
c´odigo Py hon necesa io pa a ello. Pos e io men e, ans o mamos algunos de los modelos ob enidos
como esul ado de los expe imen os de en enamien o pa a que puedan se ejecu ados sob e la TPU
Google Co al, p oceso que, como e emos, no es i ial. En odo momen o, nos p eocupa emos ambi´en
de ene en cuen a qu´e aspec os amos a medi (m´e icas) en cada uno de los p ocesos y c´omo
ob end emos es a in o maci´on.
T as plan ea los expe imen os se p ocede a su ejecuci´on en se ido es emo os del Depa -
amen o de A qui ec u a de Compu ado es y Au om´a ica, almacenando los da os ob enidos como
esul ado de es as ejecuciones.
Seguidamen e, debemos o ganiza los da os pa a p ocede a su an´alisis. Se elabo an una se ie de
sc ip s de Py hon que ag upan los da os y gene an g ´a icas y iche os abula es de los mismos,
compa ando los esul ados de los dis in os expe imen os y acili ando as´ı la ex acci´on de conclu-
siones. Pa a ello, se hace uso de biblio ecas espec´ı icas de Py hon pa a el a amien o y la in o maci´on
de da os, como Pandas yMa plo lib.
Es uc u a del abajo
Es e abajo de in de g ado es a compues o po la p esen e memo ia y po el c´odigo empleado
pa a la ealizaci´on de los dis in os expe imen os an es mencionados y la ob enci´on de esul ados, que
se encuen a en un eposi o io de Gi hub del usua io ja igm98 y al que se puede accede median e
la siguien e URL: h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico.
La memo ia se o ganiza en cinco cap´ı ulos. Es a in oducci´on, en la que se p esen a el ema y
los obje i os que se p e enden consegui , cons i uye el p ime o de los cap´ı ulos.
En el segundo de ellos se p esen an los undamen os de muchos de los concep os con los que
amos a abaja . As´ı, comenzamos de iniendo de mane a e´o ica el pa adigma del ap endizaje po
e ue zo y el algo i mo PPO que usa emos du an e el en enamien o. Tambi´en, se explica en qu´e
consis en las edes neu onales de con oluci´on y c´omo las usa emos pa a p ocesa obse aciones
en nues o escena io de ap endizaje po e ue zo. Adem´as, se in oducen los amewo ks y biblio ecas
de Py hon que se u iliza ´an pa a la implemen aci´on del abajo: Tenso low,Ray,RLlib yGym.
Po ´ul imo, se desc ibe en qu´e consis e el p oceso de cuan izaci´on de modelos, que se ´a necesa io
pa a pode ejecu a in e encias sob e el acele ado TPU de Google Co al, cuyas ca ac e ´ıs icas y las
en ajas que o ece se de allan en una ´ul ima secci´on.
En el e ce cap´ı ulo exponemos los de alles de implemen aci´on enidos en cuen a pa a la
consecuci´on de los obje i os del abajo. T as de alla los sis emas de los que disponemos pa a la
16 CAP´
ITULO 2. FUNDAMENTOS
en o no en ese momen o) y ealiza una acci´on en la que in e acciona con dicho en o no. Como conse-
cuencia de es a acci´on, el agen e ecibe del en o no una ecompensa espec´ı ica pa a la acci´on ealizada
y una nue a obse aci´on con el es ado del en o no as ealiza se la in e acci´on del agen e. El agen e
ap ende as sucesi os in en os, desde una obse aci´on inicial has a un es ado inal del en o no, que
bien puede se de ´exi o o de acaso en la a ea a ealiza . El obje i o del agen e es a a de maximi-
za las ecompensas ob enidas y se capaz de de e mina qu´e acciones oma en cada momen o pa a
alcanza ese obje i o.
Desde el pun o de is a e´o ico, podemos modela el p oblema de ap endizaje po e ue zo como
un p oceso de decisi´on de Ma ko (MDP, del ingl´es Ma ko Decision P ocess) con los siguien es
elemen os:
Un conjun o de es ados S, que puede se in ini o.
Un conjun o de acciones Aque puede ealiza el agen e, que puede se ambi´en in ini o.
P obabilidad de ansici´on (en iempo ) del es ado sal es ado s0 omando la acci´on a, que
deno a emos po Pa(s, s0) = P[s +1 =s0|s =s, a =a].
Recompensa ob enida al pasa del es ado sas0 as oma la acci´on a. Lo deno amos po
Ra(s, s0).
s s +1 s +2
a / +1 a +1/ +2
Figu a 2.2: Repe esen aci´on de las ansiciones en e es ados s∈Sen un p oceso de decisi´on de
Ma ko , donde en cada es ado omamos una acci´on ai∈Ay ecibimos una ecompensa i∈R.
2.1.1. Pol´ı icas en el ap endizaje po e ue zo
El p incipal p oblema que debe esol e un agen e de de ap endizaje po e ue zo es de e mina
qu´e acci´on oma en cada es ado. Pa a ello, in oducimos el concep o de pol´ı ica que nos se i ´a pa a
decidi la acci´on que se oma en cada momen o.
De inici´on 2.1 (Pol´ı ica).Dado un p oblema de ap endizaje po e ue zo, una pol´ı ica es una unci´on
π:S→∆(A), donde ∆(A) es un conjun o de dis ibuciones de p obabilidad sob e el conjun o A, es o
es, unciones A→[0,1]. Pa a un es ado sy una acci´on a,π(s)(a) = P[a|s] deno a la p obabilidad de
oma la acci´on asi nos encon amos en el es ado s.
El agen e, a a ´es de sucesi as in e acciones con el en o no, en ena ´a una pol´ı ica que se ´a
capaz de de e mina las acciones que end ´an que oma los agen es pa a maximiza la ecompensa
acumulada.
Aunque los agen es s´olo eciben po pa e del en o no la ecompensa inmedia a pa a una acci´on
omada, la pol´ı ica debe de e mina la secuencia de acciones a oma as cada obse aci´on pa a que
la ecompensa inal al comple a un episodio se maximice.
El agen e se en en a ´a al dilema de elegi en e explo aci´on yexplo aci´on, es o es, explo a
es ados desconocidos pa a el agen e pa a a a de gana m´as in o maci´on sob e el en o no y las
ecompensas o cen a se en explo a la in o maci´on de la que ya dispone de pasos an e io es pa a
maximiza las ecompensas. No malmen e los algo i mos empleados p opicia ´an que los agen es ayan
al e nando ambas opciones.
2.2. ALGORITMO DE OPTIMIZACI ´
ON DE POL´
ITICA PR ´
OXIMA (PPO) 17
Pa a los p oblemas de ap endizaje po e ue zo que a a emos se ´a necesa io de ini una pol´ı ica
no es aciona ia, dada po una sucesi´on de unciones pol´ı ica π :S→∆(A), haciendo e e encia a
la pol´ı ica igen e en cada ins an e del p oblema. Es a pol´ı ica se i ´a modi icando du an e el p oceso
de en enamien o, ac ualiz´andose con los esul ados que ob enemos as in e acciona con el en o no
siguiendo la pol´ı ica ´alida en ese momen o.
El obje i o del agen e de un p oblema de ap endizaje po e ue zo se ´a encon a una pol´ı ica que
maximice la ecompensa espe ada, es o es, no s´olo la ecompensa de la p ´oxima acci´on sino la
suma de es as a la go plazo, pues al inal ´es e es el obje i o del ap endizaje po e ue zo. As´ı, en cada
es ado spodemos de inimos el alo de la pol´ı ica πen ese es ado, Vπ(s) como el alo espe ado
pa a la ecompensa o al ob enida desde el es ado s. Fo malmen e:
Vπ(s) = E
a ∼π(s )"∞
X
=0
γ a (s , s +1)|s0=s#
En is a de es a exp esi´on, obse amos que el alo de la pol´ı ica iene dado po el alo de la espe anza
de la ecompensa o al as una se ie de pasos comenzando desde el es ado s, es o es la ecompensa que
espe amos ob ene seleccionando las acciones de acue do con la dis ibuci´on dada po la pol´ı ica pa a
cada es ado. Adem´as, mul iplicamos la ecompensa en cada paso po γ , donde γ∈[0,1) se denomina
ac o de descuen o y es un alo cons an e que se emplea pa a da m´as peso a las ecompensas
m´as inmedia as.
Los agen es en cada es ado sbusca ´an una pol´ı ica πcon el mayo alo posible de Vπ(s). As´ı,
di emos que una pol´ı ica π∗es ´op ima si su alo es maximal pa a odo es ado s∈S, es o es, pa a
cualquie o a pol´ı ica πy cualquie es ado s∈Sse iene que
Vπ∗(s)≥Vπ(s).
De hecho, se puede p oba que, si los conjun os de es ados y acciones del p oblema de decisi´on de
Ma ko con el que modelamos nues o p oblema de ap endizaje po e ue zo son ini os, exis e una
pol´ı ica que pa a cualquie es ado inicial ses ´op ima. Adem´as, se p ueba ambi´en la exis encia en esas
condiciones de una pol´ı ica ´op ima de e minis a, es o es, que pa a cualquie es ado sexis e una
acci´on a al que π(s)(a) = 1. Es a pol´ı ica nos indica ´ıa la secuencia exac a de acciones a oma que
maximiza ´ıan la ecompensa o al del p oblema.
La siguien e cues i´on en la que nos cen a emos se ´a elabo a un algo i mo que aya cons uyendo
es a pol´ı ica ´op ima du an e el p oceso de ap endizaje. Los agen es i ´an in e accionando con el en o no
siguiendo una pol´ı ica de e minada y ob eniendo los alo es pa a las ecompensas as cada acci´on,
usando es a in o maci´on pa a mejo a es a pol´ı ica. Dise˜na emos un algo i mo i e a i o que pa a
de una pol´ı ica inicial que de e mine las acciones a ealiza sob e el en o no y que “ap enda” con la
in o maci´on ecolec ada pa a i mejo ando su alo .
2.2. Algo i mo de Op imizaci´on de Pol´ı ica P ´oxima (PPO)
P esen amos a con inuaci´on uno de los algo i mos m´as e icien es pa a op imiza la pol´ı ica en el
ap endizaje po e ue zo: el algo i mo de Op imizaci´on de Pol´ı ica P ´oxima, PPO (del ingl´es
P oximal Policy Op imiza ion). Ve emos algunos undamen os e´o icos del mismo y ambi´en la mane a
en la que se implemen a en RLlib. El algo i mo PPO apa ece po p ime a ez en 2017 en el a ´ıculo
[12]. De es a uen e y o os a ´ıculos ([3], [15]) se ex ae la in o maci´on que p esen amos a con inuaci´on.
El algo i mo PPO se encuad a den o de lo que denominamos como m´e odos de g adien e. En
lo que sigue, deno a emos la pol´ı ica que usa nues o agen e en cada momen o po πθ, donde θhace
e e encia a los pa ´ame os que de inen la p opia unci´on de la pol´ı ica y que se i ´an ac ualizando pa a
op imiza la.
18 CAP´
ITULO 2. FUNDAMENTOS
Los algo i mos con los que ob end emos la pol´ı ica ´op ima pa a nues o p oblema de ap endizaje
son en ealidad algo i mos de op imizaci´on. Podemos clasi ica los en dos subclases: los algo i mos
de g adien e y los algo i mos de egi´on de con ianza.
2.2.1. Algo i mos de g adien e
Es os algo i mos se basan en elegi siemp e la di ecci´on en la que se p oduzca un mayo descenso
en el alo del g adien e de la unci´on obje i o a op imiza , en es e caso la pol´ı ica, y se a anza en
esa di ecci´on. Es o hace, en muchos casos, que lleguemos de mane a ´apida a la soluci´on ´op ima, pe o
en ocasiones podemos acaba en es ados peo es que de los que pa ´ıamos. Po ejemplo, imaginemos
que es amos escalando una mon a˜na y en cada e apa enemos que a anza un n´ume o ijo de pasos.
Si elegimos ascende en la di ecci´on con mayo pendien e siemp e, la l´ogica nos in i a a pensa que
llega emos ´apidamen e a la cima. Pe o, sin emba go, si elegimos una di ecci´on po se la de mayo
pendien e y a anzamos un n´ume o de pasos excesi o en esa di ecci´on, pod emos cae y apa ece en
un ni el incluso m´as bajo del que pa ´ıamos. Desde el pun o de is a e´o ico, es os m´e odos se basan
en calcula un es imado del g adien e de la pol´ı ica y usa lo en un algo i mo de descenso de
g adien e [1]. El es imado que m´as se usa en la p ´ac ica es el siguien e:
ˆg=ˆ
E h∇θlog πθ(a |s )ˆ
A i,
donde πθes la pol´ı ica, ˆ
A es un es imado del alo de la unci´on de en aja en el paso yˆ
E [. . . ]
deno a el alo de la media emp´ı ica sob e un conjun o de alo es en dis in os pasos . La unci´on de
en aja mide c´omo de buena o mala es la decisi´on de oma una acci´on en un de e minado es ado,
es o es, qu´e en aja ob enemos al oma es a acci´on. Puede exp esa se como
A(s, a) = E" a(s0, s1) +
∞
X
=1
γ (s , a )|s0=s, a0=a#−E"∞
X
=0
γ a (s , s +1)#,
es o es, la en aja pa a un es ado sy una acci´on amide la di e encia en e la ecompensa o al
espe ada empezando en el es ado ssi la p ime a acci´on que omamos es ay la ecompensa o al
espe ada pa iendo del es ado ssin indica cual es esa p ime a acci´on.
En es e con ex o, se de ine la unci´on obje i o LP G(θ) = ˆ
E hlog πθ(a |s )ˆ
A i, cuyo g adien e
coincide con el alo de ˆgque p esen ´abamos an es, y se op imiza su alo median e uno de es os
algo i mos.
2.2.2. Algo i mos de egi´on de con ianza
Es os algo i mos, en luga de busca op imiza el alo de la unci´on obje i o de mane a lineal,
de inen una egi´on de con ianza a la que es ingimos las soluciones, y se busca op imiza la soluci´on
en ese subconjun o. Se i e a de iniendo nue as egiones de con ianza (de dis in os ama˜nos) has a
con e ge a una soluci´on ´op ima. La p incipal di e encia en e a los algo i mos de g adien e es, que en
es e caso, el a ance no es lineal y que la “dis ancia”que se a anza en cada i e aci´on no es ´a ijada de
an emano, sino que depende de la egi´on de con ianza conside ada en cada momen o. As´ı, el ama˜no
de la egi´on de con ianza a conside a se eajus a din´amicamen e en cada i e aci´on, haci´endose m´as
peque˜no si emos que se p oducen a iaciones conside ables en la pol´ı ica. En es e ipo de algo i mos
debemos limi a de alguna mane a cu´an o puede a ia la pol´ı ica en cada i e aci´on espec o a la
an e io . Pa a ello, in oducimos el concep o de di e gencia-KL, que mide la di e encia exis en e
en e dos dis ibuciones de p obabilidad PyQy que se de ine como sigue:
KL(P, Q) = E
xlog P(x)
Q(x).
2.2. ALGORITMO DE OPTIMIZACI ´
ON DE POL´
ITICA PR ´
OXIMA (PPO) 19
Los algo i mos de egi´on de con ianza aplicados pa a encon a la pol´ı ica ´op ima en p oblemas de
ap endizaje po e ue zo impond ´an es icciones en el alo de la di e gencia-KL pa a e i a a iacio-
nes excesi as de la pol´ı ica en cada i e aci´on.
El algo i mo TRPO (T us Region Policy Op imiza ion) [13] se basa en es e m´e odo y a a de
esol e el siguien e p oblema de op imizaci´on, compues o po una unci´on obje i o y una es icci´on
que imponemos al alo de la di e gencia-KL:
m´ax
θ
ˆ
E πθ(a |s )
πθold (a |s )ˆ
A
s. a.: ˆ
E [KL(πθold (·|s ), πθ(·|s ))] ≤δ,
donde θold ep esen a el ec o de pa ´ame os que de in´ıan la pol´ı ica an es de ac ualiza la en cada
i e aci´on. Se p ueba que podemos ob ene una soluci´on ap oximada e icien e pa a es e p oblema usando
un algo i mo de g adien e conjugado despu´es de ap oxima linealmen e la unci´on obje i o y median e
una unci´on cuad ´a ica la es icci´on. Adem´as, cuando se p esen a es e algo i mo, se sugie e modeliza
el p oblema a˜nadiendo una penalizaci´on a la unci´on obje i o en luga de la es icci´on que en´ıamos,
dando luga al p oblema de op imizaci´on sin es icciones siguien e:
m´ax
θ
ˆ
E πθ(a |s )
πθold (a |s )ˆ
A −βKL(πθold (·|s ), πθ(·|s )),(2.1)
pa a alg´un coe icien e β. Sin emba go, TRPO usa la e si´on con la es icci´on en luga de es a ´ul ima
con la penalizaci´on po la di icul ad que supone elegi un alo de βque uncione bien pa a odos los
p oblemas conc e os.
2.2.3. Fundamen os del algo i mo PPO
Pa a ealiza las ap oximaciones que hemos mencionado an es y que esol ´ıan el p oblema de
op imizaci´on del algo i mo TRPO dando una soluci´on ap oximada del p oblema usamos el desa ollo
de Taylo de o den dos an o de la unci´on obje i o como de la es icci´on. Adem´as, dado que el
´e mino de o den dos de la unci´on obje i o a a se mucho m´as peque˜no que el de la di e gencia-
KL, podemos igno a lo. Sin emba go, esol e es e p oblema implica ´ıa calcula la de i ada de segundo
o den de la unci´on di e gencia-KL e in e i la ma iz esul an e, lo cual es un c´alculo bas an e cos oso
desde el pun o de is a compu acional. Es e p oblema se a a de abo da de dos mane as:
Ap oxima los c´alculos que impliquen a la segunda de i ada y su in e sa pa a educi la comple-
jidad.
Hace que la soluci´on ap oximada implique s´olo el c´alculo de de i adas de p ime o den (como
el descenso de g adien e) a˜nadiendo es icciones al p oblema.
En el algo i mo TRPO se oma la p ime a soluci´on, mien as que la no edad de PPO es que su
ap oximaci´on se pa ece m´as la segunda idea expues a. As´ı, aplica emos m´e odos que s´olo impliquen
la p ime a de i ada como el descenso de g adien e, pe o a˜nadiendo es icciones que ue cen a que la
op imizaci´on siga ealiz´andose den o de una egi´on de con ianza de e minada.
PPO con penalizaci´on KL adap ada
En es a ap oximaci´on esol e emos el p oblema del algo i mo TRPO pe o sus i uyendo la es icci´on
del p oblema de op imizaci´on po una penalizaci´on en la unci´on obje i o, al y como en´ıamos en la
exp esi´on (2.1). El alo de βcon ola la penalizaci´on que in oducimos al alo de la unci´on obje i o
20 CAP´
ITULO 2. FUNDAMENTOS
y que i emos ajus ando din´amicamen e. As´ı, si el alo de la di e gencia-KL en e la nue a pol´ı ica πθ
y la pol´ı ica an igua πθold aumen a en exceso ( ijamos un alo δque ma que el alo m´aximo de la
di e gencia-KL que ole amos) disminuimos el alo de β. Simpli icando mucho las cosas, un esquema
de cada i e aci´on de ac ualizaci´on de la pol´ı ica en un algo i mo PPO con penalizaci´on KL se ´ıa el
siguien e:
1. Compu a a ias e apas del algo i mo miniba ch SGD op imiza la unci´on obje i o con penali-
zaci´on KL:
LKLP EN (θ) = ˆ
E πθ(a |s )
πθold (a |s )ˆ
A −βKL(πθold (·|s ), πθ(·|s ))(2.2)
2. Calcula d=ˆ
E [KL(πθold (·|s ), πθ(·|s ))]. Aho a ajus amos el alo de βdependiendo del alo
de d:
Si d < δ
1.5,β←β/2
Si d > 1.5×δ,β←2×β.
El alo de βac ualizado se usa pa a la siguien e i e aci´on. Los alo es 1.5 y 2 se eligen heu ´ıs icamen e
y aunque el alo de βinicial es un hipe pa ´ame o del algo i mo es e no se e a ec ado po una mala
elecci´on del mismo, pues ´apidamen e se ajus a su alo .
PPO con obje i o sus i u o eco ado (clipped su oga e objec i e)
Pa a un ins an e de iempo en el que nos encon amos en un es ado s y pa a una de e minada
acci´on a deno amos po (θ) = πθ(a |s )
πθold (a |s ). Obse amos que (θold) = 1. Con es a no aci´on, la unci´on
obje i o del p oblema de op imizaci´on del algo i mo TRPO se puede exp esa como:
L(θ) = ˆ
E [ (θ)ˆ
A ] (2.3)
Sin impone ninguna es icci´on, la maximizaci´on de es a unci´on L(θ) pod ´ıa da luga a inc emen os
muy g andes de la pol´ı ica en e i e aciones. Pa a e i a es o, en es a ap oximaci´on lo que se a a hace
es penaliza los cambios en la pol´ı ica que hagan que el alo de (θ) se aleje de 1. As´ı, se p opone la
unci´on obje i o
LCLIP (θ) = ˆ
E hm´ın{ (θ)ˆ
A ,clip( (θ),1−ε, 1 + ε)ˆ
A }i,(2.4)
donde εes un hipe pa ´ame o del algo i mo (habi ualmen e ε= 0.2). La unci´on clip( (θ),1−ε, 1+ε)
hace que el alo de (θ) se man enga siemp e en el in e alo [1 −ε, 1 + ε], es o es,
clip( (θ),1−ε, 1 + ε) =
1−εsi (θ)≤1−ε
1 + εsi (θ)≥1 + ε
(θ) en o o caso
Lo que hacemos, es selecciona el m´ınimo en e el esul ado de aplica la unci´on clip al adio de p oba-
bilidades en e la pol´ı ica nue a y la an igua y el alo de ese adio. Es o p o oca un compo amien o
en el alo de la unci´on obje i o como el mos ado en la igu a 2.3. As´ı, el algo i mo se basa en ma-
ximiza el alo de es a unci´on obje i o, a ea que se puede lle a a cabo con algo i mos de descenso
de g adien e de mane a sencilla.
F en e a o os algo i mos que se pueden aplica pa a la op imizaci´on de la pol´ı ica en el ap endizaje
po e ue zo, PPO o ece simplicidad y e iciencia, en un algo i mo con el que, en la mayo ´ıa de los casos,
se ob ienen muy buenos esul ados. Cuando m´as adelan e desc ibamos las u ilidades de la biblio eca
de ap endizaje po e ue zo RLlib de alla emos algunos aspec os m´as ´ecnicos de su implemen aci´on y
c´omo se puede op imiza su endimien o pa alelizando pa es de su ejecuci´on.
2.3. REDES NEURONALES DE CONVOLUCI ´
ON 21
Figu a 2.3: Valo es de la unci´on obje i o pa a dis in os alo es del adio de p obabilidades en un
ins an e conc e o. Obs´e ese el e ec o de la unci´on clip en los casos en los que el es imado de
en aja es posi i o o nega i o. Es a imagen se ob iene del pape en el que se p esen a el algo i mo
PPO [12].
2.3. Redes Neu onales de Con oluci´on
Las edes neu onales de con oluci´on (CNN, del ingl´es Con olu ional Neu al Ne wo k) son un
algo i mo de ap endizaje p o undo que oma im´agenes como da os de en ada, ex ae in o maci´on de
ellas y es capaz de di e encia unas de o as pa a ealiza p edicciones. Desc ibi emos de mane a b e e
c´omo y po qu´e uncionan, siguiendo en pa e lo expues o en [8], y ambi´en como las in eg a emos en
nues o escena io de ap endizaje po e ue zo.
Una ed neu onal es ´a o mada po una se ie de capas, cada una con un n´ume o de e minado
de neu onas, que eciben da os, los mul iplican po una se ie de pesos y pasan la in o maci´on a las
neu onas de siguien es capas a las que es ´an in e conec adas. Una imagen no es m´as que una ma iz de
p´ıxeles, es o es, una ma iz cuyos alo es ep esen an los p´ıxeles de la imagen. Pod ´ıamos eo dena
los elemen os de es a ma iz dando luga a un ec o unidimensional que si iese como en ada de
una ed neu onal al uso. Sin emba go, haciendo es o es a ´ıamos pe diendo mucha in o maci´on sob e
dependencias espaciales de muchos de los elemen os de las im´agenes, po lo que debemos se capaces
de p ocesa la imagen en su o ma o habi ual como ma iz n-dimensional de p´ıxeles (cada capa de
colo es una ma iz bidimensional y podemos ene a ias capas).
Los elemen os de en ada de una ed neu onal de con oluci´on end ´an dados po enso es ( ec o es)
de cua o dimensiones (n´ume o de en adas, ancho de la imagen, al o de la imagen y n´ume o de
canales de colo de la misma). No malmen e, el n´ume o de en adas se ´a 1.
El elemen o undamen al de las edes neu onales de con oluci´on son las capas de con oluci´on,
que dan nomb e al algo i mo. En es as capas se ex aen las ca ac e ´ıs icas undamen ales de los da os
de en ada y se c ea con ellas lo que denomina emos mapa de ca ac e ´ıs icas. Pa a ello, las capas
de con oluci´on cuen an con un n´ucleo o il o (en ingl´es ke nel), que iene dado po una ma iz
bidimensional de meno ama˜no que la imagen y cuyos alo es son pa ´ame os en enables. Tend emos
un il o pa a cada canal de colo . La unci´on de es e il o es ex ae las ca ac e ´ıs icas ele an es de las
dis in as pa es de la imagen. Pa a ello, es necesa io de ini las dimensiones del il o y lo que que emos
que se desplace el il o cada ez que lo mo amos (s ide). Supongamos que enemos una en ada de
ama˜no (1 ×ancho ×al o ×canales), un ke nel de ama˜no (dim ×dim) (con dim < m´ın(al o, ancho))
y un desplazamien o con alo s. Comenzamos colocando el il o sob e los p´ıxeles co espondien es a
la esquina supe io izquie da del p ime canal de colo de la imagen y mul iplicamos cada alo en el
ke nel po el co espondien e en esa posici´on en la imagen, sumando odos esos alo es y almacenando
el esul ado. Repe imos la misma acci´on pa a el es o de canales y sumamos los alo es ob enidos,
siendo el alo esul an e el p ime elemen o del mapa de ca ac e ´ıs icas que ob end emos como salida
22 CAP´
ITULO 2. FUNDAMENTOS
Figu a 2.4: Ob enci´on de la p ime a ca ac e ´ıs ica del mapa en una imagen con 3 canales de colo y
un il o de dimensiones 3 ×3.
pa a es a capa. Vol iendo al p ime canal de colo , aho a desplazamos el il o sp´ıxeles a la de echa y
epe imos la ope aci´on. Una ez no engamos m´as p´ıxeles po la de echa hacia los que desplaza el il o
(ya hab emos comple ado la p ime a ila del mapa de ca ac e ´ıs icas) ol emos a la p ime a posici´on
en la que lo colocamos y lo desplazamos sp´ıxeles hacia abajo, comenzando nue amen e el p oceso
an e io has a comple a la segunda ila del mapa de ca ac e ´ıs icas. Es o es, amos eco iendo cada
capa de la imagen de izquie da a de echa y de a iba a abajo ob eniendo la “ca ac e ´ıs ica”de cada
posici´on que ocupa el il o ( e igu a 2.4).
Adem´as, hay una pa ´ame o m´as que debemos indica a las capas de con oluci´on y que de e mina ´a
el ama˜no de la salida: el elleno opadding. Es e pa ´ame o puede oma dos alo es: same y alid.
Con el p ime o de ellos, o zamos a que el mapa de ca ac e ´ıs icas enga las mismas dimensiones que
la imagen (en ancho y al o) si el s ide uese 1, ampliando po sus cua o lados con ilas y columnas de
ce os las capas de la imagen, pa a que el il o pueda desplaza se has a ob ene an as ca ac e ´ıs icas
como p´ıxeles en´ıa la imagen o iginal. Con alid padding, la salida end ´a po dimensi´on las eces que
se haya podido mo e el il o con el s ide sen esa di ecci´on sin sali se de la imagen y en gene al el
ama˜no del mapa de ca ac e ´ıs icas se ´a meno que el de la imagen de en ada. Un pa ´ame o adicional
que eciben las capas de con oluci´on es el n´ume o de il os a aplica , es o es, indicamos cuan os il os
con las mismas dimensiones amos a aplica a la imagen, ob eniendo pa a cada uno de ellos un mapa de
ca ac e ´ıs icas. Con es e pa ´ame o indicamos ambi´en la cua a dimensi´on de la salida de la capa. As´ı,
en gene al, si enemos unos da os de en ada de ama˜no (n×w×h×c) pa a una capa de con oluci´on
con un ke nel de ama˜no (k1×k2), un s ide sy aplicamos m il os a la imagen, la salida de la capa
end ´a un ama˜no, dependiendo del ipo de padding de:
2.3. REDES NEURONALES DE CONVOLUCI ´
ON 23
(a) Valid padding, s ide=1 (b) Same padding, s ide=1
(c) Valid padding, s ide=2 (d) Same padding, s ide=2
Figu a 2.5: Di e en es con igu aciones de la capa de con oluci´on, con alid ysame padding ys ides
de 1 y 2. Las im´agenes se oman de [2].
Same padding:n×lw
sm×h
s×m.
Valid padding:n×w−k1+ 1
s×h−k2+ 1
s×m
En cuan o al n´ume o de pa ´ame os en enables de la capa (pesos), es e end ´a dado po el
n´ume o o al de il os que engamos mul iplicado po el ama˜no de cada il o. En el caso gene al,
enemos c×m×k1×k2pa ´ame os en enables. Adem´as, a la salida de cada il o se le suma ambi´en
un ec o de sesgo, que iene ama˜no my cuyos alo es son pa ´ame os en enables ambi´en, po lo
que en ealidad es a can idad iene dada po c×m×k1×k2+m.
Adem´as de las capas de con oluci´on las edes neu onales cuen an con o o ipo de capas:
Capas de pooling: Es as capas se enca gan de educi las dimensiones de las salidas de las capas
de con oluci´on, educiendo la in o maci´on que nos o ece es a salida. As´ı, se oma la salida de la
capa de con oluci´on y con e imos la po ci´on de imagen cubie a po el ke nel en un ´unico alo ,
que puede se la media (a e age pooling) o el m´aximo (max pooling) de los alo es p esen es en
esa po ci´on de la salida. Las capas de pooling suelen apa ece en e dos capas de con oluci´on.
Capas comple amen e conec adas ( ully connec ed): Es as capas, habi uales en edes neu o-
nales, conec an odas las neu onas de en ada con odas las de salida y en las edes neu onales
de con oluci´on suelen apa ece como las ´ul imas capas de la ed, pa a una ez hayamos ex a´ıdo
las ca ac e ´ıs icas de la imagen podemos es ablece elaciones en e ellas que acili en y p ecisen
la p edicci´on inal sob e los da os.
Las edes neu onales de con oluci´on uncionan ex ao dina iamen e bien como modelos de ap endizaje
au om´a ico con im´agenes de en ada, y en gene al si en pa a odos aquellos da os de en ada en los
que que amos cap u a dependencias espaciales en e los elemen os, que con i iendo la imagen
en un a ay de da os se ´ıa imposible cap u a . M´as adelan e, e emos que las edes neu onales de
con oluci´on que emplea emos no eciben exac amen e im´agenes con 3 canales de colo , sino que lo
que eciben es una pila de 4 im´agenes con una capa de colo (escala de g ises), pe o que a e ec os
p ´ac icos se co esponde con una imagen con cua o capas. Al in y al cabo aqu´ı los colo es no son an
impo an es y nos cen amos m´as en las elaciones exis en es en e las im´agenes que nos de uel e el
en o no como obse aciones en i e aciones sucesi as.
24 CAP´
ITULO 2. FUNDAMENTOS
Figu a 2.6: Esquema gene al de una ed neu onal de con oluci´on y sus capas. Imagen ob enida de [8].
2.3.1. Redes de con oluci´on y ap endizaje po e ue zo
Den o del ma co de ap endizaje po e ue zo, las edes neu onales modeliza ´an la pol´ı ica y su
unci´on de alo . As´ı, man end emos en nues o modelo dos edes neu onales que eciben la misma
en ada: una obse aci´on del en o no. Una de ellas iene an os alo es de salida como acciones posibles
pueda ealiza el agen e en el en o no, indicando el alo de cada salida la p obabilidad de ealiza
esa acci´on en el es ado ep esen ado po la obse aci´on (π(a|s)), es lo que llamamos ed de pol´ı ica
(policy ne wo k). La segunda ed iene una ´unica salida, que indica el alo de la pol´ı ica ac ual
que a la la ga que emos maximiza y ecibe el nomb e de ed de alo ( alue ne wo k). Lo que en
ealidad hacemos es en ena una ed neu onal con una se ie de pa ´ame os θ(los que dec´ıamos que
de e minaban la pol´ı ica en el algo i mo PPO) que de ina la pol´ı ica en ese momen o y su alo , con
el obje i o de encon a una pol´ı ica ´op ima que maximice la ecompensa espe ada. Los modelos que
dise˜nemos aplica ´an los mismos il os de con oluci´on a las en adas pa a cada una de las dos edes,
di e enci´andose s´olo en la ´ul ima capa ( ully connec ed) que end ´a dis in o n´ume o de salidas en cada
una de ellas.
2.4. Tenso low
Tenso ow es una biblio eca de c´odigo abie o pa a compu aci´on num´e ica que pe mi e desa-
olla aplicaciones de machine lea ning de mane a ´apida y sencilla. Expond emos b e emen e algunas
de alles de su uncionamien o y en la siguien e secci´on e emos como se in eg a den o de RLlib. La
exposici´on siguien e se ex ae de [18] y de la p opia documen aci´on1. Desa ollada po Google, usa
Py hon pa a p opo ciona una API sencilla pa a el desa ollo de aplicaciones y C++ pa a la ejecuci´on
de las mismas. La idea undamen al de Tenso low son los g a os de da os. Cada nodo en el g a o
ep esen a una ope aci´on ma em´a ica y cada a is a en e nodos es un a ay mul idimensional llamado
1h ps://www. enso low.o g/
2.5. RAY Y RLLIB 25
enso . Es os nodos y enso es son obje os de Py hon pe o las ope aciones se ejecu an en C++, que
p opo ciona un mayo endimien o de c´alculo. Con Tenso low podemos modela , en ena y ejecu a
in e encias sob e modelos de ap endizaje p o undo como edes neu onales, usando pa a ello la API de
ke as.
2.4.1. Ke as
Ke as2es la API de al o ni el de Tenso low pa a c ea y en ena modelos de ap endizaje p o undo
( edes neu onales). Algunas de sus en ajas son la simplicidad de su in e az, que es bas an e accesible
al usua io, y la acilidad pa a con igu a la c eaci´on de modelos y pa a ex ende modelos p e iamen e
c eados. Podemos c ea modelos de ap endizaje au om´a ico, como edes neu onales, de mane a sencilla
con la idea del g a o de Tenso low, y as´ı es como lo hace ke as. Los nodos se co esponden con cada
una de las capas de la ed y las a is as con el lujo de da os en e capas. Cada nodo ep esen a las
ope aciones que hay que hace sob e los da os de en ada, modeladas po una se ie de pesos en enables,
cuyos alo es se an ajus ando du an e las i e aciones de en enamien o.
2.4.2. Tenso low Li e
Tenso low Li e es un amewo k de ap endizaje p o undo que pe mi e ejecu a modelos p e ia-
men e en enados en Tenso low en disposi i os en los que se pueden op imiza cos es de in e encia
(disposi i os m´o iles que usen And oid oIOs, sis emas como Rapsbe y Pi o acele ado es como la TPU
Google Co al). Los modelos de Tenso low se pueden con e i en modelos de Tenso low Li e, que
ienen un o ma o especial que pe mi e in oduci op imizaciones en los modelos. Una de las en ajas
que nos o ece ´a Tenso low Li e se ´a la cuan izaci´on de modelos, que en la secci´on 2.8 explica emos.
2.5. Ray y RLlib
Ray es un amewo k de c´odigo abie o que p e ende c ea una API uni e sal pa a aplicaciones
dis ibuidas. Es e amewo k es ´a cons i uido po a ias biblio ecas que o ecen uncionalidades muy
di e sas. Noso os nos cen a emos en la biblio eca de Py hon RLlib (Rein o cemen Lea ning Lib a y)
que da sopo e a aplicaciones elacionadas con el ap endizaje po e ue zo.
Ray cuen a con su “n´ucleo”(Ray Co e) que ges iona la plani icaci´on de a eas de mane a dis ibuida
y los ecu sos disponibles y sob e ´el se desa ollan biblio ecas muy a iadas, en e las que se encuen a la
ya mencionada RLlib.Ray p opo ciona p imi i as simples pa a cons ui es as aplicaciones dis ibuidas
y pa a pode pa aleliza de mane a sencilla c´odigo esc i o pa a una sola m´aquina. La API de Ray es ´a
disponible en Py hon yJa a y expe imen almen e en C++. Noso os usa emos la API de Py hon a lo
la go de odo es e abajo.
F en e a o os amewo ks y biblio ecas exis en es pa a la compu aci´on dis ibuida, Ray cuen a
con la en aja de la acilidad que o ece pa a pa aleliza c´odigo que o iginalmen e no se esc ibi´o con
con es a in enci´on. Ray ans o ma un c´odigo compues o po clases y unciones en una se ie de ac o es
que se ealizan a eas, pe mi iendo as´ı la pa alelizaci´on. Es a mane a de c ea los ac o es y las a eas
bas´andose en en la es uc u a de clases y unciones del c´odigo simple apo a a Ray es a en aja que
mencion´abamos an es.
Aunque Ray p opo ciona sopo e pa a escala la ejecuci´on a es uc u as dis ibuidas con a ios no-
dos, noso os explo a emos su uncionalidad en una sola m´aquina, lle ando a cabo esa pa alelizaci´on
a ni el de ecu sos de la p opia m´aquina.
2h ps://www. enso low.o g/guide/ke as
32 CAP´
ITULO 2. FUNDAMENTOS
Figu a 2.10: Google Co al M.2 Accele a o A+E Key, usado pa a mejo a la in e encia sob e modelos
de Tenso low Li e cuan izados.
conc e as de es e p oduc o pueden consul a se en la p opia p´agina de Google Co al13.
El uso de la TPU como a je a M.2 en luga de la e si´on USB del acele ado iene en ajas
adicionales, como el hecho de elimina el sob ecos e de la in e conexi´on USB.
A odas las en ajas ya mencionadas de es os acele ado es hemos de a˜nadi su bajo p ecio, que
podemos adqui i po un p ecio de 24.99$en la p opia web de Google Co al14. Una ez engamos el
p oduc o hay que segui una se ie de pasos pa a ins ala lo y pode usa lo en nues o sis ema15, que
b´asicamen e consis en en ins ala el d i e PCIe, el un ime de Edge TPU y PyCo al, una biblio eca
de Py hon desa ollada sob e Tenso low Li e que simpli ica las in e acciones con la TPU.
2.8. Cuan izaci´on de modelos
Como hemos is o en la secci´on an e io , la TPU que usa emos pa a acele a la in e encia s´olo
abaja con alo es en e os de 8 bi s, pe o los da os de los modelos que en enemos (pesos de la
ed neu onal, en adas, salidas, . . . ) an a eni ep esen ados po n´ume os en pun o lo an e de
32 bi s. Se ´a necesa io hace una ans o maci´on de es os alo es loa 32 ain 8 pa a pode lle a
a cabo es a in e encia sob e el acele ado de Google Co al. Es e p oceso a a se lo que denominamos
como cuan izaci´on y a con inuaci´on exponemos con m´as de alle en qu´e consis e y po qu´e unciona,
bas´andonos en lo mos ado en [9].
Cuando ep esen amos da os num´e icos en un o denado siemp e lo hacemos de mane a disc e a,
pues el n´ume o de alo es que podemos ep esen a es ini o. Po an o, no exis e una ep esen aci´on
pa a cada n´ume o eal, y de hecho a ios n´ume os son ep esen ados de la misma mane a. El n´ume o
de bi s del que dispongamos pa a ep esen a nues o conjun o de n´ume os de e mina ´a una mayo o
meno p ecisi´on en la ep esen aci´on, es o es, si podemos o no dis ingui dos n´ume os p ´oximos en e
s´ı. El p oceso de cuan izaci´on consis e en educi la p ecisi´on a la ho a de ep esen a es os alo es,
disminuyendo el n´ume o de alo es disponibles pa a ep esen a los n´ume os eales y haciendo que el
conjun o de n´ume os dis in os con el que abajamos sea meno . Es a educci´on de la p ecisi´on ae
consigo un dec emen o e iden e en el olumen de memo ia necesa io pa a almacena cada n´ume o,
pues es amos disminuyendo el n´ume o de bi s necesa ios pa a ep esen a cada alo , y la posibilidad
de almacena m´as da os en las caches o egis os, educiendo los accesos a memo ia.
Noso os aplica emos la cuan izaci´on a los alo es de una ed neu onal, que en gene al suelen se
13h ps://co al.ai/docs/m2/da ashee /
14h ps://co al.ai/p oduc s/m2-accele a o -ae
15h ps://co al.ai/docs/m2/ge -s a ed#1-connec - he-module
2.8. CUANTIZACI ´
ON DE MODELOS 33
bas an e obus as en e a peque˜nas pe u baciones de esos alo es. Y es que la cuan izaci´on, si se
ealiza co ec amen e, s´olo ae consigo una peque˜na p´e dida de p ecisi´on en la ep esen aci´on de los
alo es que no a ec a al compo amien o gene al del modelo.
Los modelos que en enemos con RLlib end ´an una se ie de pa ´ame os dados po alo es en pun o
lo an e de 32 bi s. Es os bi s se di iden en es conjun os: signo, exponen e y man isa ( e igu a 2.11),
y el alo que ep esen an iene dado po la siguien e exp esi´on:
(−1)b31 ×2(b30b29 ...b23 )2−127 ×(1.b22b21 . . . b0)2
S Exponen e Man isa
31 30 23 22 0
Figu a 2.11: Rep esen aci´on de un alo en pun o lo an e de 32 bi s.
Como podemos obse a , el exponen e pe mi e ep esen a un amplio ango de n´ume os mien as
que la man isa ija la p ecisi´on de los mismos.
Pa a pode usa el modelo en la TPU necesi amos que odos es os alo es engan dados po en e os
de 8 bi s con signo.
Aqu´ı es donde en a en juego la cuan izaci´on, que a a consis i en mapea odos los alo es que
oman los pa ´ame os del modelo en alo es en e os en el in e alo [-127,128] (que son los que podemos
ep esen a con en e os de 8 bi s). A la ho a de de ini es a unci´on hemos de ene en cuen a dos
aspec os:
1. Debe se lineal pa a pode ealiza la ans o maci´on in e sa de mane a di ec a.
2. El 0 en pun o lo an e debe es a ep esen ado de mane a co ec a, es o es, debe
co esponde se con una de los alo es cuan izados. Al cuan iza y descuan iza alo es s´olo 256 =
28de ellos ol e ´an a oma el mismo alo que en´ıan an es de la cuan izaci´on. Si asegu amos
que el 0 en la ep esen aci´on en pun o lo an e sea uno de ellos ob end emos mejo es esul ados al
cuan iza , ya que el 0 iene un signi icado di e en e al es o de alo es en muchos de los pa ´ame os
de es as edes.
Asigna emos a los alo es ex emos de los da os sin cuan iza los alo es ex emos que pueden oma
los da os cuan izados, de iniendo as´ı un ac o de escala del que se ´an m´ul iplo odos los n´ume os eales
en el p oceso de descuan izaci´on. Es o es, los ex emos m´aximo y m´ınimo de ambos conjun os de da os
se mapean a los del o o y el 0 se mapea a uno de los alo es cuan izados, asignando alo es en pun o
lo an e al es o de alo es cuan izados. As´ı, los alo es eales que no engan un alo en e o asignado
se edondean al alo m´as p ´oximo que s´ı que lo enga, y se les asigna ese alo , pe di´endose p ecisi´on
ya que dos alo es dis in os pe o p ´oximos en el modelo sin cuan iza pasan a ep esen a el mismo
alo en el modelo cuan izado. Podemos elaciona los alo es cuan izados qy descuan izados po
medio de la siguien e exp esi´on:
=s×(q−z),
donde zse denomina ze o-poin y se co esponde con el alo en e o que asignamos al alo 0 en pun o
lo an e y ses el ac o de escala, que iene dado po el cocien e en e el ango de alo es eales y los
que podemos ep esen a de mane a cuan izada, es o es,
s= max − min
128 −(−127) = max − min
255 ,
con max y min los alo es m´aximo y m´ınimo del conjun o de alo es a cuan iza .
34 CAP´
ITULO 2. FUNDAMENTOS
Los modelos que empela emos en es e abajo es a ´an o mados po a ias capas que se implemen an
con alo es en pun o lo an e:
Tenso es con los da os de la capa de con oluci´on, que son cons an es.
Tenso es con los da os de en ada.
Tenso es con el esul ado de la capa pa a los da os de en ada.
Seg´un lo expues o an es, es a ea ´acil con e i los pa ´ame os p opios de la ed (pesos) en alo es
cuan izados una ez en enada, pues sabemos de an emano el ango de alo es que an a oma . Los
alo es que no son cons an es (como los de las en adas y salidas de cada capa) no se pueden conoce
con exac i ud y no se puede p ocede del mismo modo que con los pesos. Sin emba go, s´ı que se puede
es ima el ango en el que se an a mo e obse ando los alo es que oman en dis in as ejecuciones.
Es o es, as una se ie de ejecuciones con alo es en pun o lo an e, podemos es ima el ango de
alo es que han omado y conside a que es e a a se el ango ap oximado en cualquie ejecuci´on y
ealiza la cuan izaci´on con es os alo es. As´ı, es a in o maci´on pa a la cuan izaci´on puede ob ene se
de dos o mas: du an e y despu´es del en enamien o. Dado que la ase de en enamien o de nues os
modelos la amos a ealiza con RLlib op amos po la segunda opci´on, al no ene esa acilidad pa a
con igu a es e en enamien o cuan izado. Pa a ello, una ez en enados los modelos, du an e el p oceso
de cuan izaci´on, se ejecu a ´an unas cuan as in e encias con un conjun o de da os de en ada pa a el
p oblema que esuel e el modelo, y los alo es que omen la dis in as en adas y salidas en es as
ejecuciones se u iliza ´an pa a lle a a cabo una co ec a cuan izaci´on. M´as adelan e se de alla ´a la
implemen aci´on conc e a de es e p oceso en nues os modelos.
Cap´ı ulo 3
Implemen aci´on
El obje i o del abajo se ´a e alua el endimien o de los p ocesos de en enamien o y de in e-
encia sob e modelos de ap endizaje po e ue zo. Realiza emos es as e aluaciones sob e di e en es
a qui ec u as ha dwa e, que nos pe mi i ´an a ia los ecu sos empleados. Con odo ello, ob end emos
una se ie de conclusiones en las que e emos qu´e es mejo en cada caso y los bene icios e incon enien es
de cada una de las opciones que conside emos.
3.1. Desc ipci´on de los en o nos de p uebas
T as habe ealizado unas p ime as p uebas pa a amilia iza se con el en o no de Ray y la biblio eca
RLlib, el g ueso del abajo se ealiza de mane a emo a en es se ido es del Depa amen o de
A qui ec u a de Compu ado es y Au om´a ica de la Facul ad de In o m´a ica de la Uni e sidad Com-
plu ense de Mad id. Desc ibi emos a con inuaci´on las ca ac e ´ıs icas de cada uno de es os sis emas:
Se ido es inge: El se ido cuen a con 16 CPUs In el(R) Xeon(R) CPU E5-2670 01de 2.60GHz
y una GPU GeFo ce GTX 10802.
Se ido ol a1: Es e se ido es el que m´as ecu sos nos o ece: 40 CPUs In el(R) Xeon(R)
Gold 6138 CPU3de 2 GHz y dos GPUs de ´ul ima gene aci´on: GeFo ce RTX 30904y Tesla
V100-PCIE-32GB5.
Se ido a ecslab001: En es e se ido es donde se encuen a ins alado el acele ado Google
Co al sob e el que ealiza emos el an´alisis de la in e encia. Adem´as, cuen a con 16 CPUs In el(R)
Co e(TM) i9-9900K CPU de 3.60GHz6.
1h ps://a k.in el.com/con en /www/es/es/a k/p oduc s/64595/in el-xeon-p ocesso -e5-2670-20m-cache-
2-60-ghz-8-00-g -s-in el-qpi.h ml
2h ps://www.n idia.com/es-la/ge o ce/p oduc s/10se ies/ge o ce-g x-1080/
3h ps://a k.in el.com/con en /www/es/es/a k/p oduc s/120476/in el-xeon-gold-6138-p ocesso -27-5m-
cache-2-00-ghz.h ml
4h ps://www.n idia.com/es-es/ge o ce/g aphics-ca ds/30-se ies/ x-3090/
5h ps://www.n idia.com/es-es/da a-cen e / esla- 100/
6h ps://a k.in el.com/con en /www/es/es/a k/p oduc s/186605/in el-co e-i9-9900k-p ocesso -16m-cache-
up- o-5-00-ghz.h ml
35
36 CAP´
ITULO 3. IMPLEMENTACI ´
ON
3.2. Desc ipci´on de los modelos
E alua emos el endimien o de los p ocesos de en enamien o e in e encia de ap endizaje po e ue -
zo usando pa a ello la biblio eca RLlib de Ray, de la que hemos mos ado algunas de las ca ac e ´ıs icas
y u ilidades que o ece en el cap´ı ulo an e io . Emplea emos el algo i mo PPO pa a el p oceso de
en enamien o de nues os modelos y el agen e in e acciona ´a con un en o no p opio de RLlib que
desc ibimos a con inuaci´on.
3.2.1. Desc ipci´on del en o no del agen e
RLlib pe mi e la in eg aci´on de en o nos de o as biblio ecas como Gym den o de su uncionalidad.
Pa a la ealizaci´on de los expe imen os, el en o no Gym del que pa imos es el denominado Pong- 07,
inspi ado en el ideojuego de A a i Inc. que simulaba una pa ida de enis de mesa en e dos jugado es
po medio de im´agenes bidimensionales y que se lanz´o o iginalmen e en 1972 [17]. En es e juego, un
jugado ma ca un pun o cuando la pelo a sob epasa la l´ınea e ical en la que se mue e la pala del
o o jugado y cada episodio concluye cuando uno de los dos jugado es alcanza los 21 pun os.
Gym se basa en la idea de es e ideojuego pa a modela su en o no, en el que las obse aciones las
cons i uyen im´agenes RGB de 210×160 p´ıxeles (lo que da luga a obse aciones de ama˜no (210,160,3))
y que es ´an o madas po una ep esen aci´on esquem´a ica de la pa ida, en la que se ap ecian dos
ec ´angulos simulando las palas de los jugado es (el jugado que con ola el agen e que en enamos
apa ece a la izquie da de las im´agenes) y la pun uaci´on de cada uno de ellos en la pa e supe io .
Exis en seis acciones posibles que puede oma el agen e en cada momen o pa a la in e acci´on con
el en o no, sin emba go a e ec os p ´ac icos s´olo hay es acciones dis in as. Podemos consul a las
acciones disponibles pa a es e en o no de la siguien e mane a:
1impo gym
2
3en = gym. make ( 'Pong - 0 ')
4p in ( en . unw apped . ge _ac ion_meanings () )
5
6>> ['NOOP','FIRE','RIGHT ','LEFT','RIGHTFIRE ','LEFTFIRE ']
Las acciones NOOP yFIRE man ienen en la misma posici´on la pala del agen e, LEFT yLEFTFIRE
la mue en a la izquie da (hacia a iba en la imagen) y RIGHT yRIGHTFIRE hacen lo p opio hacia la
de echa (hacia abajo en la imagen).
Cada acci´on end ´a ep esen ada po un en e o en e 0 y 5, y podemos indica al agen e que ealice
una de ellas con el m´e odo s ep. Es o ha ´a que se ealice sob e el en o no la acci´on indicada k eces
consecu i as, siendo kun n´ume o seleccionado al aza del conjun o {2,3,4}.
Las ecompensas ob enidas po cada acci´on indi idual pueden oma es alo es dis in os: 0.0 si
ninguno de los jugado es suma un pun o as esa acci´on, 1.0 si el jugado con olado po el agen e
suma pun o y −1.0 si el el pun o lo suma el jugado con olado po la “m´aquina”. En cada episodio la
ecompensa o al ob enida es la suma de las ecompensas de cada una de las acciones que lo cons i uyen
y po an o es un alo en e −21.0 y 21.0 que ep esen a la di e encia de pun os con la que acaba la
pa ida, siendo es e alo posi i o si el jugado que gana es el que con ola el agen e y nega i o en caso
con a io.
Pa iendo de es e en o no como base, el que ealmen e usa RLlib pa a modela el p oblema de
ap endizaje cuando indicamos Pong- 0 como en o no en la inicializaci´on de los agen es es una modi-
icaci´on del mismo. En es e en o no modi icado las obse aciones ienen la o ma (dim, dim, 4), donde
dim es un pa ´ame o de con igu aci´on que podemos especi ica al agen e en su c eaci´on y que po
de ec o oma el alo 84. Es e en o no es el esul ado de aplica una se ie de en ol u as (w appe s) al
7h ps://gym.openai.com/en s/Pong- 0/
3.2. DESCRIPCI ´
ON DE LOS MODELOS 37
Figu a 3.1: Compa aci´on en e las im´agenes del en o no Gym o iginal y las del en o no de RLlib
equi alen e c eado con la unci´on w ap deepmind().
en o no o iginal de Gym. Podemos c ea es e en o no con la unci´on w ap deepmind()8indicando el
en o no Gym sob e el que aplica las en ol u as y la dimensi´on de las im´agenes de salida. Es a se ie de
en ol o ios ac ´uan ealmen e como un p ep ocesado de las im´agenes del en o no o iginal de Gym.
Las im´agenes en o ma o RGB del en o no o iginal de Gym de ans o man en esa misma imagen pe o
en escala de g ises (haciendo uso de las u ilidades de la biblio eca c 29), pasando de ene es a s´olo
un canal de colo . Pos e io men e, las im´agenes se edimensionan pa a da les o ma de cuad ado con la
dimensi´on especi icada como n´ume o de p´ıxeles po lado, y se gua da una cola con las cua o ´ul imas
im´agenes p ocesadas en es e o ma o (de ah´ı el 4 de la e ce a dimensi´on de las im´agenes), que se i ´a
ac ualizando as cada obse aci´on ( e igu a 3.1). As´ı, las obse aciones que ecibi ´a nues o algo-
i mo pa a ap ende se ´an conjun os de cua o im´agenes en escala de g ises, co espondien es con las
cua o ´ul imas obse aciones ob enidas del en o no o iginal de Gym co ec amen e edimensionadas.
Usa emos una ed neu onal de con oluci´on con la que p ocesa emos es os da os no s´olo pa a cap u a
las dependencias espaciales en e los elemen os de la imagen sino ambi´en las empo ales en e es ados
sucesi os del en o no.
3.2.2. Modelo de Tenso low Ke as
Los agen es que c eemos du an e la e apa de en enamien o e in e encia end ´an asociado un modelo
de Tenso low Ke as. Pa a nues o p oblema, y al se las obse aciones im´agenes, usa emos una ed
neu onal de con oluci´on en nues o modelo. Es as edes en RLib se implemen an como obje os de
la clase VisionNe wo k10. En la con igu aci´on del agen e podemos da alo a pa ´ame os espec´ı icos
de es e modelo como la dimensi´on de la en ada (que como acabamos de e se usaba ambi´en
pa a c ea el en o no con el que in e acciona ´a el agen e) y la con igu aci´on de las capas de
con oluci´on que p ocesa ´an las im´agenes de en ada. De es a o ma, se c ea una ed neu onal con
dos salidas co espondien es a las salidas de la pol´ı ica (policy ne wo k) y la unci´on de alo ( alue
ne wo k). La salida de la pol´ı ica end ´a dada po seis alo es que se co esponden con cada una de las
seis acciones que podemos ealiza en el en o no Pong- 0. Cada salida oma un alo en pun o lo an e,
8h ps://gi hub.com/ ay-p ojec / ay/blob/mas e / llib/en /w appe s/a a i_w appe s.py#L288
9h ps://pypi.o g/p ojec /openc -py hon/
10h ps://gi hub.com/ ay-p ojec / ay/blob/mas e / llib/models/ / isionne .py
38 CAP´
ITULO 3. IMPLEMENTACI ´
ON
al que se le aplica la unci´on so max, dada po :
σ:R6→[0,1]6
σ(z)j=ezj
P6
i=1 ezi
y que mue e los alo es ob enidos al in e alo [0,1] pa a que ealmen e ep esen en la p obabilidad de
que elegi cada una de las acciones sea la que maximice la ecompensa inal.
Podemos modi ica la con igu aci´on del modelo de los agen es que ayamos a c ea de mane a
sencilla. Cada agen e que c eemos en RLlib ecibi ´a un dicciona io con ig con los pa ´ame os necesa ios
pa a su con igu aci´on. Una de las cla es de es e dicciona io es model, que con iene como alo o o
dicciona io con la con igu aci´on del modelo que en ena ´a nues o agen e. En es e dicciona io model
indicamos con los alo es asociados a las cla es dim ycon il e s la dimensi´on que que emos que
engan los da os de en ada y la con igu aci´on de las capas de con oluci´on que aplica emos a las
im´agenes, espec i amen e. El p ime o de es os alo es, la dimensi´on, la indicamos con un en e o y
la ed esul an e ecibi ´a da os de en ada de ama˜no (dim, dim, 4). La con igu aci´on de las capas de
con oluci´on la indicamos median e una lis a, en la que cada uno de sus elemen os ep esen a a una
capa. A su ez, amos a especi ica los pa ´ame os pa a cada capa como una lis a con es elemen os:
ou size: en e o que indica el n´ume o de il os con las mismas ca ac e ´ıs icas que aplica emos
en esa capa (y que de e mina la ´ul ima dimensi´on de la salida de esa capa).
ke nel: lis a de dos elemen os con la que indicamos las dimensiones del il o de con oluci´on que
aplica emos.
s ide: en e o que indica el desplazamien o en p´ıxeles de cada il o de con oluci´on.
Cuando con igu emos manualmen e los il os de con oluci´on hemos de ene en cuen a que la con-
ca enaci´on de los mismos debe p oduci una salida de ama˜no (B, 1,1, X), donde Xes el n´ume o de
il os de con oluci´on de la ´ul ima capa. El ama˜no de en ada po de ec o de 84 ×84 de Ray ae ya
asociada una con igu aci´on de capas de con oluci´on. Pa a el es o de ama˜nos de en ada end emos
que especi ica de mane a manual la con igu aci´on de los mismos.
Rllib c ea pa a el agen e un modelo de ke as, con una se ie de capas con 2D co espondien es
a los il os especi icados. Todas las capas, a excepci´on de la ´ul ima, son c eadas con el pa ´ame o
padding=‘same’ mien as que la ´ul ima de ellas se con igu a con padding=‘ alid’. El ancho y el
al o de cada capa obedecen a la ´o mula dim salida = ceil(dim en ada/s ide), sal o pa a la ´ul ima,
cuyos alo es ienen dados po dim salida = (dim en ada−ke nel)/s ide+1. Pa a que la dimensi´on
de es a ´ul ima capa sea 1 al y como equie e RLlib, end emos que hace que el ke nel del ´ul imo
il o de con oluci´on sea de igual ama˜no que el ancho y al o de las en adas que llegan a es a ´ul ima
capa. A con inuaci´on mos amos un ejemplo de c´odigo en el que se e leja c´omo c ea un agen e PPO
que ecibe im´agenes de 168 ×168 p´ıxeles y pa a el que indicamos ambi´en el pa ´ame o asociado a los
il os de con oluci´on.
1impo ay
2impo ay . llib . agen s . ppo as ppo
3
4 ay. ini ()
5con ig = ppo . DEFAULT_CON FIG . copy ()
6
7con ig['model '][ 'dim '] = 168
8con ig['model '][ 'con _ il e s'] =
9[16 ,[8 ,8] ,4] ,[32 ,[4 ,4] ,2] ,[32 ,[4 ,4] ,2] ,[256 ,[11 ,11] ,1]
10
11 agen = ppo . PPOT aine ( con ig , en ='Pong - 0 ')
3.2. DESCRIPCI ´
ON DE LOS MODELOS 39
(a) Visualizaci´on de la ed neu onal
con la aplicaci´on Ne on.
(b) Recompensa media po i e aci´on pa a los modelos 1, 3 y 4 as 11000
i e aciones de en enamien o
Figu a 3.2: Rep esen aci´on de la ed neu onal de ke as que se c ea pa a p ocesa im´agenes de ama˜no
168.
Se c ea as´ı un modelo de ke as con 4 capas de con oluci´on que se co esponden con la con i-
gu aci´on especi icada. La igu a 3.2 mues a la ed neu onal que se c ea (3.2a) como modelo de
ke as y que podemos isualiza con la he amien a Ne on11. Adem´as, mos amos ambi´en un e-
sumen de la es uc u a de capas de es a ed neu onal, que podemos isualiza in ocando la un-
cion summa y() sob e el modelo de ke as (si enemos un agen e de RLlib podemos hace es o con
agen .ge policy().model.base model.summa y()). Adem´as, en (3.2b) podemos e ambi´en el
n´ume o de pa ´ame os en enables (pesos) que hay en cada capa y el o al del modelo.
3.2.3. Modelos p opues os
Pa a pode e alua el endimien o en di e en es modelos, uno de los pa ´ame os que end emos
en cuen a se ´a el ama˜no de las im´agenes que se oman del en o no, pues que emos e como se
ges ionan los ecu sos y c´omo a ´ıan los iempos de in e encia y en enamien o si los modelos p ocesan
im´agenes m´as o menos g andes. P oponemos as´ı un modelo que ecibe im´agenes de 84 ×84 p´ıxeles, ya
que es e es el alo po de ec o en RLib. Adem´as, conside a emos o os cinco modelos m´as en los que el
ama˜no de en ada es el doble o el iple del que o ece RLlib po de ec o (168 y 252, espec i amen e).
Respec o a las capas de con oluci´on, no enemos mane a de decidi que con igu aci´on se ajus a
mejo a las im´agenes de nues o modelo, po lo que p opond emos a ias opciones pa a cada ama˜no
de en ada y al inal selecciona emos aquella con igu aci´on con la que ob engamos mejo es esul ados.
11h ps://ne on.app/
40 CAP´
ITULO 3. IMPLEMENTACI ´
ON
Pa a el modelo con en adas de dimensi´on 84 di ec amen e omamos la con igu aci´on de las capas de
con oluci´on que nos da RLlib po de ec o.
La abla 3.1 mues a las ca ac e ´ıs icas de los seis modelos escogidos, que di ie en en e ellos en
el ama˜no de los da os de en ada y en la es uc u a de sus capas de con oluci´on.
Modelo Tama˜no de
la en ada Fil os de con oluci´on Pa ´ame os
en enables
1 84 ×84 [16,[8,8],4],[32,[4,4],2],[256,[11,11],1] 2.009.447
2 168 ×168 [16,[16,16],8],[32,[4,4],2],[256,[11,11],1] 2.034.023
3 252 ×262 [16,[8,8],4],[16,[8,8],4],[32,[4,4],2],[256,[8,8],1] 1.108.359
4 168 ×168 [16,[8,8],4],[32,[4,4],2],[32,[4,4],2],[256,[11,11],1] 2.042.279
5 252 ×252 [16,[8,8],4],[32,[4,4],2],[32,[4,4],2],[256,[16,16],1] 4.254.119
6 168 ×168 [16,[8,8],4],[32,[4,4],2],[256,[21,21],1] 7.252.327
Cuad o 3.1: Modelos p opues os, con el ama˜no de las im´agenes que ecibe como en ada, la con igu-
aci´on de las capas de con oluci´on que indicamos median e el pa ´ame o con il e s y el n´ume o
de pa ´ame os en enables (pesos) de la ed neu onal esul an e.
3.2.4. Modelos seleccionados
De los seis modelos p opues os an e io men e, amos a selecciona es de ellos pa a con inua con
el an´alisis en el que se a a cen a es e abajo. Pa a ello, amos a selecciona un modelo po
cada ama˜no de en adas, as´ı pod emos ealiza el an´alisis de iempo y endimien o eniendo da os
pa a modelos dis in os que abajan con im´agenes de di e en e ama˜no. Pa a ealiza es a selecci´on,
ejecu amos 2000 i e aciones de en enamien o sob e cada uno de los modelos pa a obse a las
ecompensas que se ob ienen al cabo de es e iempo y ene un c i e io m´as que nos ayude a de e mina
qu´e es modelos elegi . Al in y al cabo, hemos elegido la con igu aci´on de las capas de con oluci´on
sin guia nos po ning´un c i e io, po lo que haciendo es o in en amos de e mina de mane a emp´ı ica
qu´e con igu aci´on de las p opues as comienza a mejo a sus ecompensas m´as ´apidamen e. Es as
i e aciones de en enamien o se lle an a cabo en el se ido es inge con 8 ollou wo ke s y haciendo
uso de la GPU GTX.
Como podemos obse a en la g ´a ica 3.3a s´olo hay es de los seis modelos que mejo an la ecom-
pensa media as 2000 i e aciones de en enamien o. Adem´as, cada uno de ellos ecibe como da os
de en ada im´agenes de un ama˜no dis in o, po lo que elegimos los modelos 1, 3 y 4 como aquellos
que emplea emos pa a ob ene el es o de esul ados y conclusiones de es e abajo. El es ado de las
ecompensas medias po i e aci´on as 11000 i e aciones de en enamien o ya s´olo pa a es os es mo-
delos seleccionados puede e se en la g ´a ica de la imagen 3.3b. T as 2000 i e aciones de en enamien o
emos como el modelo 1 es el que m´as ´apido empieza a mejo a sus ecompensas y el que anscu-
idas es as i e aciones ob iene mayo alo pa a la ecompensa media, mien as que los modelos 2 y
3 necesi an m´as i e aciones pa a comenza a o ece alo es mayo es en las ecompensas. Obse ando
los esul ados as 11000 i e aciones emos que as una p ime a ase de c ecimien o m´as ´apido el
alo de las ecompensas se es anca y c ece m´as len amen e. De aho a en adelan e, no analiza emos
m´as la calidad del ap endizaje de los dis in os modelos. El hecho de a ia los ecu sos del sis ema
sob e el que en enamos los modelos no debe ´ıa in lui en la capacidad de ap endizaje de los mismos,
pues el algo i mo que se es ´a ejecu ando no a ´ıa, ´unicamen e lo ealizamos sob e sopo es dis in os.
As´ı, la calidad del ap endizaje depende ´unicamen e de la es uc u a del modelo en s´ı (es uc u a de
sus capas), po lo que es e an´alisis que hemos ealizado pa a selecciona los es modelos sob e los
que analiza el endimien o de los p ocesos cub i ´ıa es a o a pa e de e aluaci´on de la capacidad de
ap endizaje y de las ecompensas ob enidas.
3.3. AN ´
ALISIS DEL RENDIMIENTO 41
(a) Recompensa media po i e aci´on pa a los modelos
1,2,3,4,5 y 6 as 2000 i e aciones de en enamien o
(b) Recompensa media po i e aci´on pa a los modelos 1,
3 y 4 as 11000 i e aciones de en enamien o
Figu a 3.3: E oluci´on de las ecompensas medias pa a los modelos p opues os y pa a los seleccionados
pa a los expe imen os. Obs´e ese que, dado que es e en enamien o se ealiz´o en a ias e apas de 1000
i e aciones que con inuaban desde el es ado de la an e io , en los alo es inmedia os a las i e acio-
nes m´ul iplo de 1000 se obse an oscilaciones impo an es en el alo de las ecompensas y que se
co esponden con las i e aciones de calen amien o de cada anda de i e aciones de en enamien o.
3.3. An´alisis del endimien o
De alla emos aqu´ı qu´e aspec os end emos en cuen a pa a analiza el endimien o de los modelos y
c´omo ob end emos los da os que nos se i ´an pa a ob ene di e sas conclusiones, an o pa a la ase de
en enamien o como la de in e encia. P opond emos una se ie de expe imen os de en enamien o
e in e encia, cada uno de los cuales con a ´a con una con igu aci´on espec´ı ica y as ejecu a los,
compa a emos y analiza emos los esul ados ob enidos.
3.3.1. Implemen aci´on de los expe imen os de en enamien o
En enamos los modelos haciendo uso exclusi amen e de las uncionalidades que nos o ece RLlib
pa a ello. Se dise˜nan unos sc ip s que nos an a pe mi i lle a a cabo un n´ume o espec´ı ico de
i e aciones de en enamien o, gua dando un checkpoin con el es ado del modelo as cada una de
ellas. Es o p oceso pa e de la base expues a en [7].
Pa a el en enamien o nos ayuda emos del sc ip ain ppo.py, que nos pe mi e ajus a di e sos
pa ´ame os pa a con igu a cada uno de los expe imen os de en enamien o (modelo a en ena , e-
cu sos a u iliza , n´ume o de i e aciones de en enamien o, di ecci´on de la que ca ga los da os si ya
hab´ıamos en enado an es...). Pa a e m´as de alles consul a el ap´endice A.1.
Realiza emos a ios expe imen os con cada uno de los es modelos, en los que a ia emos los
ecu sos empleados pa a el p oceso de en enamien o. Es os expe imen os se ealizan en el se ido
ol a1 en el que disponemos de 40 CPUs y 2 GPUs.
Los pa ´ame os de la con igu aci´on de ecu sos que amos a a ia se ´an undamen almen e es:
GPUs a u iliza : conside a emos cua o opciones espec o al uso de las GPUs del sis ema.
As´ı, en ena emos sin hace uso de las GPUs (con igu aci´on none), usando s´olo la GPU N idia
Ge-Fo ce RTX (con igu aci´on gpu0, usando s´olo la GPU N idia Tesla 100-PCIE (con igu aci´on
gpu1) y usando ambas (con igu aci´on bo h).
48 CAP´
ITULO 3. IMPLEMENTACI ´
ON
da ase c ea o .py21. Gene a emos de es a mane a un da ase con im´agenes de ama˜no dim pa a
uno de los modelos, que se almacena ´a en el iche o da ase name.npy.
1en = w appe s . w ap_deepmind ( gym . make ('Pong - 0 '), dim = dim )
2obs = en . ese ()
3wi h open ( da ase _name + '. npy ','wb ') as :
4 o _in ange (500) :
5np . sa e ( , obs)
6ac ion = en . ac ion_space . sample ()
7obs , _ , _ , _ = en . s ep ( ac ion )
Una ez somos capaces de gene a el da ase c eamos el modelo cuan izado. Pa a ello, comenzamos
leyendo los da os del da ase an e io men e gene ado:
1images = []
2wi h open (da ase _di , ' b ') as :
3 o _in ange (500) :
4images . append ( np . load ( ))
A con inuaci´on, de inimos la unci´on ep esen a i e da a gen(), que de uel e un gene ado con una
mues a de 100 de los da os del conjun o:
1de ep esen a i e_da a_gen ():
2 o da a in . da a . Da ase . om_ enso _slices (( images )). ba ch (1) . ake (100) :
3yield [ . d ypes . cas (da a , . loa 32 ) ]
Aho a ca gamos el modelo de ke as que p e iamen e hab´ıamos gua dado en un iche o con ex ensi´on
.h5 y lo con e imos a uno de Tenso low Li e pe o cuan iz´andolo. Pa a ello:
1model = . ke as . models . load_model ( h5_di , cus om_objec s ={ ' ': })
2con e e = . li e . TFLi eCon e e . om_ke as_model ( model )
3con e e . op imiza ions = [ .li e . Op imize . DEFAULT ]
4con e e . ep esen a i e_da ase = ep esen a i e_da a_gen
5con e e . a ge _spec . suppo ed_ops = [ . li e . OpsSe . TFLITE_BUILTINS_INT8 ]
6con e e . in e ence_in pu _ yp e = . uin 8
7con e e . in e enc e_ou pu _ yp e = . uin 8
8 li e_model_quan = con e e . con e ()
9open( li e_di , " wb"). w i e ( li e _mo del _quan )
Todo es e p oceso lo lle amos acabo con el sc ip quan ize .py22. A con inuaci´on, y pa a pode eje-
cu a el modelo en la TPU debemos compila lo haciendo uso de la he amien a Edge TPU Compile 23,
que c ea ´a a pa i del modelo . li e cuan izado un modelo compa ible con la TPU Google Co al.
Podemos ealiza es a a ea con la in e az de l´ınea de comandos edeg pu compile , po ejemplo con
edge pu compile model quan . li e, que gene a ´a un a chi o model quan edge pu. li e que
ya s´ı que euni ´a odos los equisi os pa a pode se ejecu ado en la TPU. Como consecuencia de odo
es e p oceso gene amos a ias e siones de cada modelo:
modelX.h5: modelo de Tenso low ke as
modelX. li e: modelo de Tenso low Li e equi alen e, con enso es con alo es loa 32.
modelX quan . li e: modelo de Tenso low Li e cuan izado, con enso es con alo es in 8.
modelX quan edge pu. li e: modelo de Tenso low Li e cuan izado y p epa ado pa a pode
ejecu a in e encias sob e ´el en la TPU.
La igu a 3.5 mues a odos los sc ip s que se ´an necesa ios pa a pode lle a a cabo los expe imen os
de in e encia sob e la TPU. Los iche os que con ienen los modelos se encuen an en el di ec o io
expo ed models24.
21h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/da ase _c ea o .py
22h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/quan ize .py
23h ps://co al.ai/docs/edge pu/compile /
24h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/ ee/main/expo ed_models
3.3. AN ´
ALISIS DEL RENDIMIENTO 49
checkpoin s/.../
checkpoin -11999
model1.h5
model sa e .py
model1. li e
li e con e e .py
da ase model1.npy
model1 quan . li e
model1 quan edge pu. li e
quan ize .py
ain ppo.py
da ase c ea o .py
edge pu compile
in 8
loa 32
sc ip s de Py hon
Figu a 3.5: Relaci´on en e los dis in os a chi os que con ienen modelos gua dados y los sc ip s de
Py hon que ealizan las con e siones y gua dan el modelo esul an e.
Una ez enemos los es modelos de TFLi e podemos ealiza in e encias sob e ellos y ecolec a
m´e icas sob e el iempo empleado pa a su pos e io an´alisis. Siguiendo el ejemplo de clasi icaci´on
de im´agenes25 accesible en el eposi o io de Google Co al, c eamos el sc ip ollou co al.py26,
que ca ga ´a un modelo de TFLi e cuan izado y compilado pa a pode se ejecu ado sob e la TPU y
ealiza ´a an os pasos de in e encia como indiquemos, epo ando el iempo empleado en ealiza lo.
Se ´a necesa io c ea un in ´e p e e de TFLi e27 en el que habili amos la ejecuci´on sob e la TPU po
medio de un delegado de Tenso lowLi e28. C eamos es e in ´e p e e con la unci´on que mues a el
siguien e agmen o de c´odigo, d´onde p e iamen e hemos indicado las biblio ecas necesa ias pa a la
in e encia sob e la TPU en unci´on del sis ema ope a i o sob e el que es emos ejecu ando:
1EDGETPU_SHARED_LIB = {
2'Linux ':'libedge pu . so .1 ',
3'Da win':'libedge pu .1. dylib ',
4'Windows':'edge pu . dll '
5}[ pla o m . sys em () ]
6
7
8
25h ps://gi hub.com/google-co al/pyco al/blob/mas e /examples/classi y_image.py
26h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/ ollou _co al.py
27h ps://www. enso low.o g/api_docs/py hon/ /li e/In e p e e
28h ps://www. enso low.o g/li e/pe o mance/delega es
50 CAP´
ITULO 3. IMPLEMENTACI ´
ON
9de make_in e p e e ( model_ ile ):
10 model_ ile , * de ice = model_ ile . spli ( '@')
11 e u n li e . In e p e e (
12 model_pa h = model_ ile ,
13 expe imen al_delega es =[
14 li e . load_delega e ( EDGETPU_SHARED_LIB ,
15 {'de ice': de ice [0]} i de ice else {})
16 ])
La es uc u a gene al del sc ip pa a ealiza las in e encias segui ´a la idea del que nos p opo ciona
RLlib pa a la misma a ea ( ollou .py). Pa i emos de un modelo y especi ica emos o bien el n´ume o
de pasos de in e encia o bien el n´ume o de episodios comple os (pa idas de enis de mesa inalizadas)
que que emos ejecu a sob e ese modelo. En cada paso de in e encia end emos una imagen ob enida
del en o no con el que es amos in e accionando, la coloca emos como enso de en ada al modelo y lo
in oca emos. De las dos salidas que p oduce el modelo nos queda emos con la p ime a de ellas, que se
co esponde con la salida de la ed de la pol´ı ica y que cuen a con seis alo es, cada uno de los cuales
( as aplica la unci´on so max) ep esen a la p obabilidad de que omando esa acci´on en ese es ado
mejo emos la ecompensa global. Po ello, y al y como se hace en RLlib, selecciona emos como siguien e
acci´on a oma el m´aximo de es os alo es. Una ez ob enida la acci´on, la ejecu amos sob e el en o no,
ob eniendo la siguien e obse aci´on a p ocesa (que ep esen a el es ado del en o no as ealiza se esa
acci´on), la ecompensa asociada a esa acci´on y si hemos concluido o no el episodio. En odo momen o
debemos asegu a que los alo es de las im´agenes deben se del ipo acep ado po el modelo pa a sus
en adas, po lo que an es de coloca el enso como en ada del modelo hacemos la con e si´on de ipos
si es necesa io. Cada paso de in e encia ejecu a la siguien e secuencia de ins ucciones:
1s a = ime . pe _coun e ()
2in e p e e . in oke ()
3in e ence_ ime = ime . pe _coun e () - s a
4episode_ imes . append ( in e ence_ ime )
5
6ou pu _da a = in e p e e . ge _ enso ( ou pu _de ails [0][ 'index '])
7
8ac ion = np. a gmax ( ou pu _da a )
9
10 # S ep en i onmen and ge ewa d and done in o ma ion
11 image , ewa d , done , _ = en . s ep ( ac ion )
12
13 # Place new image as he new model 's inpu
14 image = image [np. newaxis , ...]
15 i inpu _de ails [0][ 'd ype '] == np . loa 32 :
16 image = np . loa 32 ( image )
17 i inpu _de ails [0][ 'd ype '] == np . uin 8 :
18 image = np . uin 8 ( image )
19
20 in e p e e . se _ enso ( inpu _de ails [0][ 'index '], image )
Medi emos los iempos de in e encia sob e cada uno de los 3 modelos cuan izados sob e la TPU.
Adem´as, y pa a e la ganancia al usa es e acele ado , elabo a emos un sc ip simila pa a ejecu a
in e encias sob e los modelos de TFLi e en la CPU. Es e sc ip , ollou li e.py29 s´olo se di e encia
de ollou co al.py en que no habli a la ejecucic´on sob e la TPU po medio de un delegado al c ea
el in ´e p e e de TFLi e.
29h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/ ollou _ li e.py
Cap´ı ulo 4
Resul ados
El obje i o del abajo e a analiza el endimien o en di e en es a qui ec u as de los p ocesos de
en enamien o e in e encia de modelos de ap endizaje po e ue zo. En es e cap´ı ulo amos a p esen a
los esul ados ob enidos as ealiza a ios expe imen os, implemen ados siguiendo las pau as desc i as
en el cap´ı ulo an e io , y las conclusiones que de los esul ados se de i an. As´ı, a a emos po sepa ado
los esul ados ob enidos en cada uno de los dos p ocesos (en enamien o e in e encia) conside ados.
4.1. Resul ados del p oceso de en enamien o
Analiza emos aqu´ı el alo de a ias m´e icas que Ray gene a pa a cada i e aci´on de en enamien o.
Es as m´e icas se e e i ´an al uso de ecu sos y a los iempos empleados, pe o no a la capacidad
de ap endizaje de los modelos, pues eso es algo que ya se u o en cuen a a la ho a de selecciona los
modelos ep esen a i os. Y es que, aunque a iemos las con igu aciones de ecu sos en los dis in os
expe imen os, la capacidad de ap endizaje de cada modelo se ´a la misma, pues el algo i mo no a ´ıa
(la ed neu onal que en enamos es la misma), y las ´unicas di e encias son el mayo o meno g ado de
pa alelizaci´on de algunas de sus pa es y el sopo e ha dwa e sob e el que se desa olla es e p oceso.
Es po ello que nos amos a cen a en analiza aquellos ac o es del p oceso de en enamien o que s´ı
se en a ec ados cuando a iamos la con igu aci´on de ecu sos del en enamien o, es o es, el iempo de
ejecuci´on de sus dis in as ases y la u ilizaci´on de los ecu sos de c´ompu o y almacenamien o du an e el
p oceso. P esen amos los esul ados g ´a icamen e pa a que esul e m´as c´omoda su in e p e aci´on y la
compa aci´on en e ellos, ob enidos a pa i de los que podemos encon a en o ma o abula (a chi os
cs ) en la ca pe a ay esul s1del eposi o io de Gi hub de es e p oyec o. Pa a cada expe imen o
encon amos la salida que gene a ´a Ray, en e ellos los iche os p og ess.cs , que con ienen los alo es
de las m´e icas po cada i e aci´on. Los alo es que se p esen an y analizan a con inuaci´on son la media
de los ob enidos pa a cada una de las 20 i e aciones de en enamien o, desechando las 3 o 4 p ime as
en el caso de los expe imen os que usan alguna de las GPUs, que no epo an alo es num´e icos (el
alo apa ece como NaN) y se denominan i e aciones de calen amien o.
4.1.1. Uso de los ecu sos disponibles
Pa a e alua el uso de los ecu sos empleados du an e el p oceso de en enamien o, es udiamos los
alo es de las siguien es m´e icas ela i as al uso de las CPUs, las GPUs y la memo ia RAM
del sis ema, ob eniendo con odas ellas po cen ajes de u ilizaci´on:
1h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/ ee/main/ ay esul s
51
52 CAP´
ITULO 4. RESULTADOS
cpu u il pe cen : po cen aje medio de u ilizaci´on del conjun o de las CPUs del sis ema du an e
cada i e aci´on de en enamien o, po lo que los alo es que ob end emos se encon a ´an en el
in e alo 0-100. Es os alo es se ob ienen apoy´andose en la unci´on cpu pe cen 2de la biblio eca
de Py hon psu il.
am u il pe cen : po cen aje medio de u ilizaci´on de la memo ia RAM o al del sis ema du an e
cada i e aci´on de en enamien o, as´ı que los alo es nue amen e se encon a ´an en e 0 y 100.
Ray usa la unci´on i ual memo y3de la biblio eca psu il pa a ob ene los alo es asociados
a es a m´e ica.
gpu u il pe cen X: po cen aje medio de u ilizaci´on de la GPU con iden i icado X du an e cada
i e aci´on de en enamien o. Viene dada po un alo en el in e alo 0-1.
am u il pe cen X: po cen aje medio de u ilizaci´on de la memo ia de la GPU con iden i icado
X du an e cada i e aci´on de en enamien o (se mide el po cen aje del iempo en el que se es ´an
ealizando ope aciones de lec u a o esc i u a sob e la memo ia). Viene dada po un alo en el
ango 0-1.
Las dos ´ul imas m´e icas hacen uso de la biblio eca GPU il4(que se ´a necesa io que engamos ins alada
en nues o sis ema), ob eniendo in o maci´on de las GPUs disponibles con GPU il.ge GPUs() y pa a
la lis a de GPUs de uel as ob iene el po cen aje de uso (con el a ibu o load) y de u ilizaci´on de la
memo ia de la GPU (con el a ibu o memo yU il) de cada una de ellas. Es po eso, que al ealiza
las p uebas en el se ido ol a1 ob end emos esul ados sepa ados pa a cada una de las dos GPUs
disponibles en el sis ema.
Uso de la CPU
En la igu a 4.1 podemos e el po cen aje de u ilizaci´on de la CPU pa a los es modelos y
pa a las dis in as con igu aciones p obadas. Algunas conclusiones que ob enemos del an´alisis de los
diag amas son las siguien es:
1. En p ime luga , obse amos que, en gene al y pa a odas las con igu aciones p obadas, el po -
cen aje de uso de la CPU es bajo (el alo m´aximo se alcanza pa a el modelo 3 en enando sin
GPUs y es ´a p ´oximo al 16 %). Hemos de ene en cuen a que el sis ema sob e el que es amos
ealizando los expe imen os dispone de una g an capacidad de c´ompu o y que puede da sopo e
a las a eas necesa ias pa a el en enamien o de modelos con RLlib sin mayo p oblema.
2. El p ime pa ´on que des acamos y que pa ece epe i se en los es modelos es que aumen a el
n´ume o de wo ke s aumen a ambi´en el po cen aje de uso de las CPUs, como queda e lejado en
los esul ados ob enidos pa a el en enamien o con ambas GPUs y 2, 4, 8 y 16 wo ke s. Es o iene
sen ido, pues Ray asigna una CPU a cada wo ke cuando plani ica el p oceso de en enamien o.
3. Obse amos ambi´en que el uso de la GPU s´olo pa a el d i e (y que los wo ke s in e accionen
con el en o no haciendo uso s´olo de la CPU) conlle a un sob ecos e en el po cen aje de uso
de la CPU, que po lige o que sea, no deja de epe i se en los es modelos y pa a las es
con igu aciones de GPUs p obadas.
4. Respec o a los en enamien os ealizados haciendo uso de la CPU, los esul ados son indepen-
dien es pa a cada modelo. Mien as que en el modelo 1 es e po cen aje es meno que en muchos
2h ps://psu il. ead hedocs.io/en/la es /#psu il.cpu_pe cen
3h ps://psu il. ead hedocs.io/en/la es /#psu il. i ual_memo y
4h ps://gi hub.com/ande skm/gpu il
4.1. RESULTADOS DEL PROCESO DE ENTRENAMIENTO 53
(a) Uso de la CPU pa a el modelo 1 (b) Uso de la CPU pa a el modelo 3
(c) Uso de la CPU pa a el modelo 4 (d) Compa aci´on del uso de la CPU pa a los es modelos
Figu a 4.1: Po cen aje medio po i e aci´on de en enamien o de uso de la CPU del se ido ol a1 pa a
di e en es con igu aciones de los modelos 1, 3 y 4 as 20 i e aciones de en enamien o.
de los expe imen os con GPUs y el mismo n´ume o de wo ke s (8), en los modelos 3 y 4 s´ı que es e
alo es el mayo de los que se epo an. El modelo 3 es en el que la di e encia es m´as signi ica i a,
y es e hecho puede debe se a que el ama˜no de las im´agenes que se p ocesan es mayo , y es e
p ocesamien o pod ´ıa e se acele ado en mayo medida con el uso de las GPUs.
5. Analizando la g ´a ica 4.1d, emos que se sigue un pa ´on cla o en los alo es que ob enemos pa a
cada expe imen o pa a cada uno de los modelos. Ma izamos dos aspec os:
Si obse amos el expe imen o en el que no se usa ninguna de las GPUs, emos que si
o denamos los modelos de mayo a meno po cen aje de CPU u ilizado, enemos en p ime
luga al modelo 3, seguido del 4 y po ´ul imo el 1, o den que se co esponde ambi´en con el
del ama˜no de las im´agenes que oma cada modelo como en ada.
En el es o de expe imen os (en los que usamos una o ambas GPUs) emos que el pa ´on es
dis in o. As´ı, obse amos que los da os pa a los modelos 1 y 4 an casi a la pa en muchos
casos (hay m´as expe imen os en los que el uso pa a el modelo 1 es lige amen e mayo ) pe o el
modelo 3 es siemp e el que epo a un po cen aje de u ilizaci´on m´as bajo. Es a clasi icaci´on
se co esponde con la que pod ´ıamos hace si mi amos el n´ume o de pa ´ame os en enables
54 CAP´
ITULO 4. RESULTADOS
de cada modelo ( abla 3.1), pues los modelos 1 y 4 ienen un n´ume o en o no a los 2
millones de pesos en enables y es e da o pa a el modelo 1 onda los 1.1 millones.
Es as obse aciones e ue zan la hecha en el pun o an e io , y es que el hecho de in oduci la
GPU op imiza el p ocesamien o de es os da os de en ada de mayo ama˜no, pasando el modelo
1 de se el que peo es esul ados ob en´ıa al que epo a unos po cen ajes m´as bajos de uso.
Adem´as, una ez in eg amos el uso de las GPUs, la endencia es que el po cen aje de u ilizaci´on
de la CPU sea mayo si el n´ume o de pesos que debemos ajus a en el modelo lo es, y es e hecho
no se e condicionado po el ama˜no de los da os de en ada.
En de ini i a, podemos conclui que el uso de la CPU en un se ido como en el que hemos ealizado
los en enamien os no supone un p oblema, pues los alo es ob enidos son ela i amen e bajos.
Adem´as, pa a aquellos modelos que p ocesen im´agenes de mayo ama˜no, el uso de la CPU se e
educido si a˜nadimos ambi´en el uso de GPUs du an e el p oceso.
Uso de la memo ia RAM
La igu a 4.2 mues a el po cen aje medio de u ilizaci´on de la memo ia RAM del sis e-
ma du an e el p oceso de en enamien o pa a los dis in os modelos y con igu aciones que enimos
conside ando. a con inuaci´on de allamos algunas obse aciones que se desp enden de es os da os:
1. En es e caso, las g ´a icas de los 3 modelos siguen un pa ´on id´en ico, po lo que el hecho de
compa a un expe imen o con o o no a a depende del modelo conc e o.
2. Vemos que los alo es m´as bajos en odos los casos se ob ienen cuando s´olo usamos las CPUs
pa a el en enamien o.
3. Adem´as, pa a cada con igu aci´on de GPUs, el hecho de usa las s´olo pa a el d i e educe en m´as
de la mi ad es e po cen aje en e a cuando las usamos ambi´en pa a los wo ke s.
4. Como ocu ´ıa con el uso de la CPU, emos una endencia c ecien e, m´as ma cada en es e caso,
pasando a mul iplica casi po cua o el alo pa a 16 wo ke s si lo compa amos con el de 2
wo ke s. Pa a los 3 modelos el expe imen o con 16 wo ke s u iliza, de media, m´as de el 50 % de
la memo ia RAM disponible.
5. Se obse an ambi´en lige as di e encias en los esul ados dependiendo de la con igu aci´on de
GPU empleada en el expe imen o, obse ´andose unos alo es meno es cuando usamos la GPU 1
(Tesla- 100).
6. Compa ando los esul ados ob enidos pa a los es modelos, que apa ecen e lejados en la g ´a ica
4.2d, obse amos que las di e encias son poco signi ica i as en e los dis in os modelos, si bien
en odos los expe imen os el o den de los modelos de mayo a meno po cen aje de u ilizaci´on de
la RAM es el mismo: modelo 3, seguido del 4 y el modelo 1 po ´ul imo. Es e o den es el mismo
que si o denamos de mayo a meno ama˜no de las en adas de la ed neu onal.
Ag upando odas las ideas an e io es, podemos a i ma que usa GPUs pa a el en enamien o
ae consigo un sob ecos e en la capacidad de RAM ocupada, que se acen ´ua m´as cuando los
wo ke s hacen ambi´en uso de las GPUs y que se a inc emen ando seg´un a˜nadimos m´as wo ke s que
hacen uso de ella. Adem´as, el uso es lige amen e mayo pa a los modelos que abajan con obse aciones
de mayo ama˜no.
4.1. RESULTADOS DEL PROCESO DE ENTRENAMIENTO 55
(a) Uso de la memo ia RAM pa a el modelo 1 (b) Uso de la memo ia RAM pa a el modelo 3
(c) Uso de la memo ia RAM pa a el modelo 4 (d) Compa aci´on del uso de la memo ia RAM pa a los
es modelos
Figu a 4.2: Po cen aje medio de uso de la memo ia RAM del se ido ol a1 pa a di e en es expe-
imen os ealizados con los modelos 1, 3 y 4 y di e en es con igu aciones du an e 20 i e aciones de
en enamien o.
Uso de las GPUs y su memo ia
La igu a 4.3 mues a los esul ados ob enidos ela i os a la u ilizaci´on de las GPUs disponibles
en el se ido ol a1 du an e las i e aciones de en enamien o y ambi´en sob e el po cen aje de
iempo que se accede a la memo ia de es as GPUs. Las m´e icas que ep esen amos aqu´ı son
gpu u il pe cen 0 (u ilizaci´on de la GPU RTX), gpu u il pe cen 1 (u ilizaci´on de la GPU Tesla-
100), am u il pe cen 0 (accesos a memo ia en la GPU RTX) y am u il pe cen 1 (accesos a
memo ia en la GPU Tesla- 100), que, aunque Ray las epo e con alo es en el in e alo [0,1], se
ep esen an omando alo es en [0,100] pa a acili a su in e p e aci´on. Analizando los da os podemos
ex ae las siguien es conclusiones:
1. El po cen aje de uso de las GPUs es bas an e ele ado, sob e odo cuando se usa s´olo una de ellas
compa ida en e el d i e y los wo ke s (en e 50 % y 60 %). Adem´as, cuando su uso se ese a
s´olo al d i e , como es l´ogico, su po cen aje de u ilizaci´on baja, pues du an e la ase de sampling
no se usa la GPU.
56 CAP´
ITULO 4. RESULTADOS
(a) Uso de las GPUs pa a el modelo 1 (b) Po cen aje del iempo que se accede a la memo ia
de las GPUs pa a el modelo 1
(c) Uso de las GPUs pa a el modelo 3 (d) Po cen aje del iempo que se accede a la memo ia
de las GPUs pa a el modelo 3
(e) Uso de las GPUs pa a el modelo 4 ( ) Po cen aje del iempo que se accede a la memo ia de
las GPUs pa a el modelo 4
Figu a 4.3: Po cen aje medio de uso (izquie da) y po cen aje medio del iempo que se accede a la
memo ia (de echa) de ambas GPUs del se ido ol a1 pa a di e en es expe imen os ealizados con los
modelos 1, 3 y 4 y di e en es con igu aciones du an e 20 i e aciones de en enamien o.
4.1. RESULTADOS DEL PROCESO DE ENTRENAMIENTO 57
2. En los expe imen os en los que se usan ambas GPUs an o pa a el d i e como pa a los wo ke s
el po cen aje de uso de la GPU RTX es bas an e mayo que el de la GPU Tesla- 100. Cuando
excluimos a los ollou wo ke s del uso de las GPUs, el po cen aje de uso de ambas s´ı que se
equilib a m´as.
3. En cuan o al po cen aje de iempo que se accede a la memo ia de las GPUs es e disminuye
no ablemen e en odos los casos cuando la GPU se usa s´olo pa a el d i e , lo que nos indica que
cuando usamos la GPU pa a los ollou wo ke s los accesos a memo ia de es os son bas an e
signi ica i os.
4. En gene al, el po cen aje de acceso a memo ia cuando se usa ´unicamen e la GPU RTX es mayo
que cuando s´olo se usa la GPU Tesla- 100.
5. Al igual que ocu ´ıa con el po cen aje de u ilizaci´on de las GPUs, el po cen aje de accesos a
memo ia es mayo en la GPU RTX que en la Tesla- 100 cuando ambas se usan simul ´aneamen e.
6. Po ´ul imo obse amos que si bien el n´ume o de wo ke s que se c een no iene un e ec o cla o
en el uso de la GPUs (en los modelos 1 y 4 s´ı que se obse a cie o inc emen o si aumen amos el
n´ume o de wo ke s), en el po cen aje de accesos a memo ia s´ı que obse amos una co elaci´on
cla a en e aumen a el n´ume o de wo ke s y que aumen en los accesos a memo ia.
Concluyendo, podemos a i ma que el po cen aje de uso de las GPUs es al o en la mayo ´ıa de
los casos, que los wo ke s hacen un uso conside able de la misma cuando se les pe mi e usa la,
inc emen ando los accesos a memo ia seg´un aumen amos los wo ke s que se c ean y que el hecho de
usa ambas GPUs simul ´aneamen e c ea una mayo ca ga de abajo en la GPU RTX que en la GPU
Tesla- 100, eniendo en cuen a el po cen aje o al de la capacidad de cada una que es ´a en uso du an e
es e p oceso.
4.1.2. Tiempos empleados
Analiza emos en es e apa ado los alo es ob enidos en los di e en es expe imen os ealizados pa a
los empo izado es de las dis in as ases de cada i e aci´on del algo i mo de en enamien o PPO.
As´ı, conside a emos los alo es de es as cua o m´e icas que epo a Ray y que se co esponden con
cada una de las cua o ases que iene la implemen aci´on que se hace en RLlib del algo i mo PPO ( e
imagen 2.8):
sample ime ms: iempo (en milisegundos) que emplean los ollou wo ke s en ob ene del en o no
los da os necesa ios pa a la ac ualizaci´on de la pol´ı ica. Cuando analizamos la implemen aci´on
que hacia RLlib del algo i mo e´ıamos que en o al los wo ke s deb´ıan ealiza ain ba ch size
in e acciones con el en o no, omando cada wo ke se ies de ollou agmen leng h pasos.
Es a ase se ejecu a de mane a pa alela en e los dis in os wo ke s, en caso de habe los.
load ime ms: iempo (en milisegundos) que se emplea en ca ga y conca ena las expe iencias
ecolec adas po los wo ke s en el d i e an es de comenza la ase de ac ualizaci´on de la pol´ı ica.
lea n ime ms: iempo (en milisegundos) que emplea el d i e en comple a una e apa de ac-
ualizaci´on del modelo que es amos en enando (compu a una se ie de i e aciones (po de ec o
30, ienen dadas po el pa ´ame o de con igu aci´on num sgd i e ) del algo i mo de descenso de
g adien e) que nos da ´a unos nue os alo es pa a los pesos de la ed neu onal de con oluci´on del
modelo.
upda e ime ms: iempo (en milisegundos) que se emplea en ac ualiza el modelo en los wo ke s
(ac ualiza los pesos en la ed neu onal) as inaliza la e apa de ap endizaje en el d i e .
64 CAP´
ITULO 4. RESULTADOS
2. Cada modelo pa ece segui su p opio pa ´on en lo que espec a a es os alo es.
3. S´ı que se ap ecia que en gene al la endencia pa ece se ascenden e si aumen amos el n´ume o de
wo ke s, aunque aun en los modelos 1 y 4 el esul ado con 4 wo ke s es mejo que con 2.
4. Respec o al uso de la GPU exclusi amen e pa a el d i e o la compa ici´on de la misma en e
wo ke s yd i e lso iempos a ´ıan dependiendo del modelo y de la GPU empleada.
5. Compa ando los es modelos ampoco se obse a una co elaci´on cla a en e el n´ume o de alo es
a ac ualiza (pesos) y el iempo que se a da en lle a a cabo es a ac ualizaci´on, siendo en muchos
expe imen os mucho mayo el iempo pa a el modelo 3, que, aunque sea el que abaja du an e
odo el p oceso con da os de en ada mayo es, es el que iene pesos que ac ualiza en su ed
neu onal.
As´ı, concluimos que los esul ados ob enidos pa a el iempo de ac ualizaci´on de los modelos a ojan
que es a acci´on del iempo es muy peque˜na compa ada con el es o y que los alo es no dependen de
mane a cla a de la con igu aci´on de ecu sos o del modelo en cada expe imen o.
Tiempo p omedio po i e aci´on
La igu a 4.9 ecoge da os ace ca de los iempos empelados en cada i e aci´on pa a los dis in os ex-
pe imen os. Las g ´a icas de la izquie da mues an los da os absolu os y su desglose en las cua o e apas
que hemos analizado p e iamen e, donde se ha omi ido el expe imen o en el que no se usan GPUs pa a
que la di e encia en e los da os ep esen ados sea ap eciable a simple is a. A la de cha, se ep esen a
la dis ibuci´on de los cua o alo es analizados pa a cada expe imen o, mos ´andose como po cen ajes
sob e el o al del iempo empleado, incluy´endose ya aqu´ı el expe imen o no gpus 8 wo ke s pues o
que lo que ep esen amos son po cen ajes y no alo es absolu os. Analizando de enidamen e los da os,
podemos ema ca :
1. La ase de ap endizaje es la que ocupa la mayo pa e del iempo de cada i e aci´on de en ena-
mien o, seguida de la ase de ecogida de expe iencias del en o no (sampling), que ambi´en ocupa
una acci´on conside able. M´as esiduales son los iempos empleados pa a la ca ga de los da os
de la ase sampling en el d i e y la de ac ualizaci´on de los modelos, ocupando es a ´ul ima una
acci´on desp eciable del iempo o al de las i e aciones.
2. Vemos que, en gene al, usa la GPU s´olo pa a el d i e mejo a los iempos ob enidos. Es e
hecho e a algo que ya en´ıa p oduci´endose pa a cada uno de los iempos conside ados de mane a
independien e, po lo que, como es no mal, se epi e cuando conside amos el iempo o al.
3. Nue amen e y como ya hab´ıamos indicado en algunos casos, cuando a iamos el n´ume o de
wo ke s, los mejo es esul ados se ob ienen cuando es e n´ume o es 4.
4. El uso de una u o a GPU pa ece no ene in luencia en los esul ados ob enidos. Sin emba go,
pa a los modelos 1 y 3 emos que usa ambas simul ´aneamen e mejo a el da o de iempo que se
ob iene con cada una de ellas po sepa ado.
5. Mi ando aho a las g ´a icas de po cen ajes de dis ibuci´on del iempo emos como cuando no
usamos GPU p ´ac icamen e la o alidad del iempo se emplea en la ase de ap endizaje.
6. Compa ando los alo es num´e icos que oman los da os de iempo pa a cada modelo, obse amos
que el que m´as iempo consume po i e aci´on es el modelo 3, a con inuaci´on el 4 y po ´ul imo el
1. Es o es, los modelos que po cesan im´agenes m´as g andes son aquellos que m´as iempo a dan
en en ena se.
4.1. RESULTADOS DEL PROCESO DE ENTRENAMIENTO 65
(a) Tiempo medio po i e aci´on pa a el modelo 1 (b) Dis ibuci´on (en %) del iempo p omedio po i e a-
ci´on po ases pa a el modelo 1
(c) Tiempo medio po i e aci´on pa a el modelo 3 (d) Dis ibuci´on (en %) del iempo p omedio po i e a-
ci´on po ases pa a el modelo 3
(e) Tiempo medio po i e aci´on pa a el modelo 4 ( ) Dis ibuci´on (en %) del iempo p omedio po i e a-
ci´on po ases pa a el modelo 4
Figu a 4.9: Tiempo o al p omedio po i e aci´on de en enamien o (izquie da) y dis ibuci´on de ese
iempo (en po cen aje) en cada una de las e apas de las i e aciones de en enamien o (de echa) pa a
dis in as con igu aciones p obadas sob e los modelos 1, 3 y 4, as 20 i e aciones de en enamien o en
el se ido ol a1.
66 CAP´
ITULO 4. RESULTADOS
En de ini i a, emos aqu´ı co obo adas odas las conclusiones que en´ıamos ex ayendo en los an´alisis
an e io es. Des acamos as´ı la impo ancia del uso de las GPUs pa a educi ab up amen e el
iempo de en enamien o (pues se educe el iempo de la ase de ap endizaje que ocupa la mayo
pa e del iempo en odos los casos), el uso de la GPU s´olo pa a el d i e pa a educi ambi´en
es os iempos (se educe no ablemen e el iempo de sampling) y que cuando usamos 4 wo ke s los
iempos son en gene al mejo es.
4.1.3. An´alisis del uso que se hace de las dis in as CPUs
Analizamos en es e apa ado los esul ados ob enidos en los dis in os expe imen os que p esen ´aba-
mos en la abla 3.3 y que en´ıan po obje i o e alua si en´ıa alg´un e ec o sob e el cos e en iempo y la
u ilizaci´on de ecu sos las es icciones que pod´ıamos impone a Ray en la u ilizaci´on de las CPUs
del sis ema, ecogiendo las m´e icas que enimos a ando pa a expe imen os en los que no imponemos
es icciones en es e sen ido (como los que ya hemos analizado), o os en los que indicamos a Ray
el n´ume o de CPUs con los que debe plani ica las a eas que c ea pa a la ejecuci´on del algo i mo y
po ´ul imo p obamos a es ingi las CPUs del sis ema que se pueden usa a s´olo unas espec´ı icas de
mane a ex e na a Ray.
En p ime luga podemos obse a en la igu a 4.10 como a ec an es as con igu aciones al po cen aje
o al de uso de la CPU del sis ema que se usa y a la ocupaci´on de la memo ia RAM du an e el
p oceso de en enamien o.
(a) U ilizaci´on media de la CPU pa a los modelos 1, 3,
y 4.
(b) Ocupaci´on media de la memo ia RAM pa a los mo-
delos 1, 3 y 4.
Figu a 4.10: U ilizaci´on de los ecu sos del se ido ol a1 pa a las dis in as con igu aciones de uso de
las CPUs p obadas sob e los modelos 1, 3 y 4, as 20 i e aciones de en enamien o.
Analizando los esul ados, emos a g andes asgos que las dis in as con igu aciones, en lo que a la
ges i´on del uso de las CPUs espec a, no a ec an en el po cen aje de u ilizaci´on o al de las CPUs y de
la memo ia RAM de mane a signi ica i a. S´ı que es cie o que ij´andonos en la g ´a ica 4.10a obse amos
que el po cen aje de uso de la CPU o al del sis ema es lige amen e meno en aquellos casos en los que
indicamos a Ray que el n´ume o de CPUs de las que dispone es de 9 (una pa a el d i e y el es o pa a
los wo ke s), pe o la a iaci´on es m´ınima (en o no al 1-2 %). En cuan o a la ocupaci´on de memo ia
RAM las a iaciones son p ´ac icamen e impe cep ibles.
En las g ´a icas de la igu a 4.11 emos el e ec o que iene es a mane a de con igu a el uso de las
CPUs sob e el iempo p omedio po i e aci´on, desglosado en ases. Como podemos obse a , los
esul ados dependen de cada modelo y con igu aci´on de GPUs. As´ı, podemos des aca :
4.1. RESULTADOS DEL PROCESO DE ENTRENAMIENTO 67
(a) Tiempo medio po i e aci´on pa a el modelo 1 (b) Tiempo medio po i e aci´on pa a el modelo 3
(c) Tiempo medio po i e aci´on pa a el modelo 4 (d) Compa aci´on en e el iempo p omedio po i e aci´on
pa a los modelos 1, 3 y 4
Figu a 4.11: Tiempo o al p omedio po i e aci´on de en enamien o pa a dis in as con igu aciones de
uso de las CPUs p obadas sob e los modelos 1, 3 y 4, as 20 i e aciones de en enamien o en el se ido
ol a1.
1. Pa a el modelo 1 obse amos que las a iaciones en los iempos son p ´ac icamen e nulas, si bien
en algunos casos se e un lige o sob ecos e si es ingimos el uso de las CPUs a nue e de ellas en
conc e o.
2. Respec o a los esul ados ob enidos pa a el modelo 4 comp obamos que an o cuando usamos
la GPU RTX como cuando usamos ambas, los esul ados son lige amen e mejo es cuando no
es ablecemos es icci´on en el uso de las CPUs. Sin emba go, pa a la GPU Tesla- 100 es a
mejo a se obse a cuando indicamos a Ray que iene que abaja s´olo con 9 CPUs pe o no
o zamos a que sean ningunas en conc e o.
3. Analizando los esul ados pa a el modelo 3, obse amos que en los casos en los que se usa
una de las dos GPUs las di e encias son m´ınimas, si bien hay un sua e inc emen o del iem-
po en los expe imen os m´as es ic i os. Si ponemos la mi ada en los expe imen os con ambas
GPUs emos que hay una endencia a la alza en el iempo o al empleado seg´un aumen amos
las es icciones al uso de las CPUs (m´as de 10s de di e encia po i e aci´on en e los expe imen os
bo h gpus 9 cpus no cpu limi 8 wo ke s ybo h gpus 9 cpus se a ini y 8 wo ke s). Es-
a endencia se puede obse a de mane a muy lige a en las es ´ul imas columnas de la g ´a ica
4.11a, se acen ´ua un poco m´as en 4.11c y la di e encia se hace bas an e no able en 4.11b, lo que
68 CAP´
ITULO 4. RESULTADOS
nos hace pensa que el ama˜no de los da os con los que abaja el algo i mo quiz´as sea un ac o
que in luya en es a ap eciaci´on, siendo necesa ia mayo lexibilidad en el uso de las CPUs si las
obse aciones que ecibimos del en o no son mayo es.
En de ini i a, podemos que conclui que sal o en excepciones, el hecho de es ingi el uso de las CPUs
a unas en conc e o educe muy lige amen e el po cen aje de uso o al de las CPUs del sis ema y no
supone un sob ecos e ele ado en el iempo de ejecuci´on. Aun as´ı, los mejo es esul ados de iempo se
ob ienen siemp e cuando no imponemos es icciones en el uso de las CPUs, pe o si po alg´un mo i o
necesi amos es ingi la ejecuci´on de Ray a unas cuan as CPUs el sob ecos e que ob end ´ıamos en la
mayo ´ıa de los casos se ´ıa asumible y no supond ´ıa mayo p oblema.
4.1.4. Conclusiones ex a´ıdas de los expe imen os de en enamien o
Poniendo en com´un las obse aciones y conclusiones que hemos ido ex ayendo sob e odo el es udio
del en enamien o, podemos a i ma que no hay una con igu aci´on que op imice an o el uso
de ecu sos como el iempo empleado po i e aci´on espec o a las dem´as.
La p incipal conside aci´on a ene en cuen a es ealiza el en enamien o haciendo uso de una o
a ias GPUs.
Usa las GPUs s´olo pa a el d i e y que los wo ke s no hagan uso de ellas p oduce mejo es
esul ados que cuando es as son compa idas an o po el d i e y los wo ke s. Es o nos inci a
a pensa que la in e acci´on con el en o no es m´as ´apida cuando no usamos GPU pa a ella,
esul ado que m´as adelan e e emos co obo ado cuando analicemos la in e encia.
Respec o al n´ume o de wo ke s a usa , ija emos el n´ume o en 4, pues es donde se op imiza el
iempo medio po i e aci´on.
Respec o a la localizaci´on de las CPUs, si es posible, no es ingimos su uso, pe o en caso de
ene que o za la ejecuci´on, end emos un lige o sob ecos e que en la mayo ´ıa de los casos se ´a
asumible.
As´ı, p oponemos ealiza los en enamien os con un agen e con 4 wo ke s, con an as GPUs como enga
el sis ema pa a el d i e y ninguna GPU pa a los wo ke s.
4.2. Resul ados de la in e encia de modelos
Analizamos aqu´ı los esul ados ob enidos en los dis in os expe imen os ealizados pa a p oba la
in e encia de modelos p e iamen e en enados. Di idimos es e an´alisis en dos: po un lado la in e encia
en RLlib haciendo uso de las uncionalidades que nos o ece su API, y po o o, la in e encia sob e el
acele ado Google Co al.
4.2.1. In e encia en RLlib
La igu a 4.12 mues a las mediciones de iempo ealizadas en los expe imen os de in e encia de
modelos. Pa a cada modelo, se ejecu an 10 episodios comple os de in e encia haciendo uso del sc ip
ollou .py ya desc i o en el cap´ı ulo an e io . Los esul ados que apa ecen en la g ´a ica se ob ienen
como la media de los iempos odos los pasos de in e encia ejecu ados du an e los 10 episodios. Aunque
el sc ip usado mida el iempo en segundos, po cla idad decidimos ep esen a lo en milisegundos.
Du an e la ejecuci´on de los expe imen os obse amos que la c eaci´on de wo ke s no iene mucho
sen ido en es e caso, pues el sc ip de ollou no pa aleliza las ejecuciones y las in e encias se an
ejecu ando de mane a secuencial. A la is a de las g ´a icas podemos ex ae una se ie de conclusiones:
4.2. RESULTADOS DE LA INFERENCIA DE MODELOS 69
Figu a 4.12: Tiempos en milisegundos que se a da en ejecu a un paso de in e encia pa a las dis in as
con igu aciones p obadas y los modelos 1, 3 y 4.
1. Como ya hemos an icipado, el hecho de c ea wo ke s no modi ica el iempo de ejecu a las
in e encias, pues es as se ejecu an de mane a secuencial sob e un ´unico wo ke que se c ea en el
d i e . As´ı, cuando ejecu emos es as in e encias indica emos en la con igu aci´on que el n´ume o
de wo ke s a c ea es 0 pa a que no se c een hilos y p ocesos innecesa ios.
2. Vemos en odos los casos que el uso de la GPU1 educe el iempo espec o al uso de ambas
GPUs y el uso de ´unicamen e la GPU0. Es o se debe a que du an e la ejecuci´on de una se ie
de episodios de in e encia, siemp e que se usa la GPU0, el p ime episodio es m´as len o que el
es o e in oduce es a lige a penalizaci´on. Es a i e aci´on de “calen amien o” no apa ece cuando
usamos la GPU1. El hecho de ealiza a ios episodios de in e encia en cada expe imen o nos ha
pe mi ido obse a es a peculia idad, ya que si s´olo hubi´esemos ejecu ado un episodio pod ´ıamos
habe pensado que es e e a el iempo eal que se a daba en ejecu a las in e encias con la GPU0
y la di e encia de iempos se ´ıa mucho mayo . A´un as´ı la peque˜na di e encia que se obse a en
las g ´a icas nos ad ie e de es e hecho y de la necesidad de desca a los iempos de la p ime a
ejecuci´on cuando abajemos con la GPU0.
3. El expe imen o pa a el que ob enemos mejo es esul ados pa a los es modelos es aquel en el
que la in e encia se ealiza sin el uso de GPUs. Es o no es una no edad, pues es algo que ya se
hab´ıa obse ado analizando los iempos de in e acciones con el en o no ( igu a 4.4), de donde
ex a´ıamos que los iempos e an meno es cuando los wo ke s (que e an los que ealizaban es a
in e acci´on) no hac´ıan uso de las GPUs. Y es que en ambos casos lo que es amos haciendo es
ejecu a in e encias sob e el modelo, po lo que es l´ogico que hagamos la misma ap eciaci´on.
Es e hecho pod ´ıa debe se a que dadas las ca ac e ´ıs icas y el ama˜no de los modelos no sea
con enien e desplaza la ealizaci´on de los c´alculos de las in e encias a la GPU.
4. Compa ando esul ados ob enidos pa a los dis in os modelos, comp obamos que hay una lige a
di e encia condicionada po el ama˜no de los da os con los que abaja cada uno de ellos. As´ı, el
iempo se ´a sua emen e mayo si las im´agenes que omamos del en o no lo son.
En conclusi´on, la mejo con igu aci´on pa a ejecu a in e encias sob e modelos p e iamen e en enados
con RLlib implica no c ea wo ke s (no desempe˜nan ninguna unci´on) y ejecu a las s´olo sob e las
CPUs del sis ema.
70 CAP´
ITULO 4. RESULTADOS
4.2.2. In e encia sob e el acele ado Google Co al
Figu a 4.13: Tiempo po cada ejecuci´on de in e encia pa a dis in as con igu aciones en el se ido
a ecslab001 y los modelos 1, 3 y 4.
Modelo RLlib TF Li e TF Li e
Cuan izado TPU
1 1.01225 0.57362 10.08402 0.41419
3 1.29343 1.63730 70.47366 1.02737
4 1.45621 1.25892 43.15306 0.75465
Cuad o 4.1: Tiempos (en milisegundos) pa a los dis in os expe imen os ealizados sob e el se ido
a ecslab001.
Analiza emos aqu´ı el esul ado de ejecu a in e encias sob e las edes neu onales cuan izadas y
compiladas pa a su co ec a ejecuci´on sob e la TPU Google Co al. Adem´as, pa a pode medi las
en ajas del uso de es e acele ado , compa a emos es os alo es con los da os que ob end emos de
ejecu a in e encias sob e el modelo de Tenso low Li e sin cuan iza ( alo es en pun o lo an e de 32
bi s) y de ejecu a in e encias den o del amewo k de RLlib con la con igu aci´on pa a la que mejo es
esul ados ob en´ıamos en el apa ado an e io (usando s´olo CPUs). Adem´as, p oba emos ambi´en
a ejecu a el modelo cuan izado sob e las CPUs del sis ema, aunque es e modelo no es ´e pensado
pa a se ejecu ado sob e una a qui ec u a de es e ipo. La igu a 4.13 y la abla 4.1 mues an los
esul ados ob enidos pa a los di e en es expe imen os p obados. Debido a la g an di e encia num´e ica
que se obse a en e los alo es esul an es de la in e encia del modelo de Tenso low Li e cuan izado
sob e las CPUs y el es o de esul ados, es os se omi en en la g ´a ica. Podemos ex ae una se ie de
conclusiones sob e es os expe imen os:
1. En p ime luga , obse amos como la in e encia sob e la TPU ob iene los mejo es alo es de
iempo.
2. Sal o pa a el modelo 3, el iempo de in e encia en RLlib es mayo que el del modelo de TFLi e.
4.2. RESULTADOS DE LA INFERENCIA DE MODELOS 71
3. Los iempos de in e encia en la TPU ambi´en se an a e condicionados po el ama˜no de las
en adas que oma el modelo, ob eni´endose as´ı un iempo mayo pa a el modelo 3, seguido del 4
y del 1.
4. Obse amos que la CPU en lo an e (modelos de TFLi e en loa 32) es much´ısimo m´as ´apida
que en en e os (modelos de Tenso low cuan izados en in 8), aunque p obablemen e es o se deba
a que la CPU haga uso de sus unidades ec o iales.
Con es o, podemos conclui que hemos conseguido uno de los obje i os undamen ales del abajo:
e alua el endimien o de modelos de ap endizaje po e ue zo sob e la TPU Co al y compa a lo con la
ejecuci´on de esos modelos sob e la CPU y den o del amewo k de RLlib. Adem´as, es a comp obaci´on
ha sido bas an e sa is ac o ia, pues hemos conseguido ejecu a un modelo en enado en RLlib sob e
un disposi i o de ul abajo consumo y p ecio como es la TPU Google Co al donde adem´as los
iempos de in e encia son bas an e meno es, libe ando adem´as el es o de ecu sos del sis ema
du an e es e p oceso.
El hecho de ejecu a el modelo cuan izado conlle a una peque˜na p´e dida de p ecisi´on en la
ep esen aci´on de los alo es ob enidos como salida, como ya an icip´abamos en el p ime cap´ı ulo de
es e abajo. Mos amos a con inuaci´on un ejemplo de salida ob enida as aplica el mismo modelo y
pa a los mismos da os de en ada en la CPU con alo es en pun o lo an e de 32 bi s y en la TPU con
en e os de 8 bi s (los alo es de la TPU que mos amos son los esul an es de “descuan iza ” los que
ealmen e nos de uel e el modelo, haciendo uso de los alo es de ze o poin yscale con los que se ha
ealizado la cuan izaci´on).
1- En TPU con uin 8 :
2
3---- ou pu [0] ----
4INT8 DATA
5[[[[ 7.150586 -4.8753996 12.1884985 10.319595 -0.08125666 13.894889 ]]]]
6---- ou pu [1] ----
7INT8 DATA
8[[-0.70262796]]
9
10 - En CPU con loa 32 :
11
12 ---- ou pu [0] ----
13 FLOAT DATA
14 [[[[ 7.969496 -5.3353543 13.295782 11.171885 -0.17144847 15.070765 ]]]]
15 ---- ou pu [1] ----
16 FLOAT DATA
17 [[ -0.6038263]]
Vemos que pese a las lige as di e encias que se obse an, los alo es es ´an bas an e p ´oximos en e
s´ı, y lo que es m´as impo an e, en ambos casos el o den los mismos en la salida 0 se man iene, po
lo que la acci´on a oma , que iene de e minada po el ´ındice del mayo alo en es a salida, es la
misma. Des aca inalmen e que la p ime a de las salidas (ou pu [0]) se co esponde con la salida
de la ed de pol´ı ica (policy ne wo k) e indica la p obabilidad de que la acci´on en cada posici´on sea
la que a la la ga maximice la ecompensa del episodio (es os alo es podemos lle a los al in e alo
[0,1] pa a que ealmen e ep esen en el alo de una p obabilidad, median e la unci´on so max, pe o
el o den de los mismos se sigue man eniendo). La segunda de las salidas (ou pu [1]) se co esponde
con el esul ado de la ed de alo ( alue ne wo k) e indica la ecompensa espe ada pa a la secuencia
comple a de acciones has a conclui el episodio, que se usa ´unicamen e en el en enamien o del modelo
pa a ac ualiza los pa ´ame os de la ed neu onal.
72 CAP´
ITULO 4. RESULTADOS
Cap´ı ulo 5
Conclusiones
Con la ealizaci´on de es e abajo de in de g ado se ha comple ado un es udio exhaus i o del
endimien o de las aplicaciones de ap endizaje po e ue zo en di e en es a qui ec u as
ha dwa e, analizando an o el cos e en iempo como la u ilizaci´on de ecu sos y el consumo de po-
encia. Los esul ados ob enidos se ´an bas an e ´u iles a la ho a de dise˜na los p ocesos de in e encia y
en enamien o pa a esol e p oblemas de ap endizaje po e ue zo, ya que bas´andonos en ellos pode-
mos con igu a es os p ocesos pa a acele a su ejecuci´on o educi la u ilizaci´on de ecu sos. Adem´as,
hemos in eg ado en el abajo una se ie de biblio ecas que o ecen ecu sos espec´ı icos pa a la pa a-
lelizaci´on de los algo i mos o el modelado de los en o nos de ap endizaje, p opo cionando sc ip s que
pe mi en lle a a cabo modelizaciones, en enamien os e in e encias den o del ma co del ap endizaje
po e ue zo y que se pueden ejecu a en di e en es a qui ec u as ha dwa e.
Analizando la lis a de obje i os que p opon´ıamos en la in oducci´on de es a memo ia obse amos
que se ha cumplido en buena medida con odos ellos:
1. Se ha conseguido modela el escena io de ap endizaje po e ue zo, in eg ando un en o no
Gym den o de la uncionalidad de RLlib.
2. Se han p opues o a ios expe imen os de en enamien o. Pa a ello se han desa ollado a ios
sc ip s que los ejecu aban haciendo uso de RLlib. Es a pa e ha in oluc ado adem´as un an´alisis
p o undo de la lib e ´ıa pa a a a de explo a al m´aximo su uncionalidad, siendo necesa io
muchas eces pa a ello una lec u a exhaus i a del c´odigo uen e de la misma y la in e acci´on con
o os usua ios a a ´es del o o o icial de Ray1pa a a a de acla a algunas cues iones.
3. Se ha e aluado el en enamien o pa a modelos que in e accionaban con el en o no Pong- 0
de Gym, pe o que di e ´ıan en e s´ı en el ama˜no de las im´agenes que ecib´ıan de es e en o no.
Adem´as, se p opusie on a ias opciones pa a cada uno de los alo es del ama˜no de en ada que
que ´ıamos e alua , es ableci´endose un c i e io pa a elegi los ep esen an es po cada ama˜no.
Quiz´as, quede como u u o abajo e alua ambi´en es e endimien o en di e en es en o nos (en
los que los alo es de las ecompensas y el ango de acciones sea dis in o).
4. Una ez ealizados los expe imen os p opues os y ob enida in o maci´on ace ca de los mismos (la
cual se encuen a ambi´en el eposi o io Gi hub de es e abajo), se ha conseguido o ganiza ,
es uc u a y ep esen a g ´a icamen e es a in o maci´on, analizando los da os y ex ayendo
conclusiones de los mismos.
1h ps://discuss. ay.io/ca ego ies
73
80 AP´
ENDICE A. FUNCIONAMIENTO DE LOS SCRIPTS DE PYTHON
ull ain(checkpoin oo , agen , n i e , sa e ile, n ini = 0, heade = T ue,
es o e = False, es o e di = None): ejecu a una se ie de i e aciones de en enamien o
sob e un agen e dado y de uel e una es uc u a con sus esul ados, adem´as de gua da es a
in o maci´on en unos iche os .cs y.json. Recibe como a gumen os:
•checkpoin oo :s ing con la u a del di ec o io en el que que emos que se ayan gua -
dando los checkpoin s pa a cada paso de en enamien o ealizado.
•agen : agen e de RLlib sob e el que ejecu a las i e aciones de en enamien o.
•n i e : en e o indicando el n´ume o de i e aciones de en enamien o del algo i mo conc e o
del agen e (en nues o caso PPO) a ejecu a .
•sa e ile: u a al a chi o en el que que emos que se almacenen la in o maci´on del en e-
namien o. Median e un s ing indicamos la u a a un a chi o sin ex ensi´on, as´ı se c ea ´an
dos a chi os en esa u a con ex ensiones .json y.cs .
•n ini: en e o indicando el n´ume o de la ´ul ima i e aci´on ealizada, su alo po de ec o es
0, indicando que aun no hemos comenzado a en ena ese modelo.
•heade : booleano indicando si hay que a˜nadi la l´ınea de cabece a con los nomb es de las
columnas al iche o .cs con los da os del en enamien o. Su alo po de ec o es T ue
indicando que si es la p ime a ez que es amos en enando el modelo s´ı hay que a˜nadi es a
l´ınea.
• es o e: booleano indicando si debemos es ablece o no el es ado del agen e desde un
checkpoin , cuya u a indicamos en es o e di . Su alo po de ec o es False.
• es o e di : u a del checkpoin desde el que que emos es au a el es ado del agen e, si
hemos indicado es o e=T ue.
La unci´on de uel e una lis a con un dicciona io po cada i e aci´on de en enamien o, en el que
se incluyen el n´ume o de i e aci´on, las ecompensas m´ınima, media y m´axima de los episodios,
la longi ud media de los episodios, el iempo de la ase de ap endizaje en ms Y el iempo o al
en segundos de esa i e aci´on. Es os mismos da os se gua dan en los iche os .json y.cs an es
mencionados.
As´ı, pa a ejecu a uno de los expe imen os de en enamien o ejecu amos el sc ip indicando pudiendo
indica le el alo de a ios a gumen os:
-m, --model: en e o (1-6) indicando el iden i icado del modelo a en ena .
-g, --gpu: s ing con los alo es gpu0, gpu1, none, bo h indicando la con igu aci´on de GPUs
con las que ealiza el en enamien o.
-d, --d i e -gpus: n´ume o de GPUs que se asigna ´an al d i e (con ig[num gpus]), puede
se un n´ume o decimal. El es o se epa i ´an a pa es iguales en e los wo ke s.
-w, --wo ke s: n´ume o de wo ke s que se c ea ´an en el algo imo pa a ecoge expe iencias del
en o no.
-s, --sa e-name: u a del iche o, sin ex ensi´on, en el que se gua da ´an los da os de en ena-
mien o en o ma os .json y.cs .
-i, --i e s: n´ume o de i e aciones de en enamien o a ejecu a .
-c, --cpus: n´ume o de CPUs que indicamos a Ray en su inicializaci´on. Su alo po de ec o es
None, que indica que Ray usa ´a odas las que encuen e disponibles.
A.2. SCRIPT DE INFERENCIA EN RLLIB 81
-a, --se -a ini y: conjun o con los iden i icado es de las CPUs a las que que emos es ingi
la ejecuci´on con sched se a ini y. Su alo po de ec o es el conjun o ac´ıo ({}), que indica
que no o zamos a que el p og ama se ejecu e en unas CPUs conc e as.
- , -- es o e di : di ecci´on del chekpoin desde el que que emos es u a el es ado del agen e.
Su alo po de ec o es None que indica que no que emos es au a desde ning´un checkpoin .
Adem´as de ealiza las i e aciones de en enamien o indicadas, la ejecuci´on de es e sc ip mue e los
iche os con las m´e icas que epo a Ray (y que po de ec o se gua dan en un di ec o io den o de
∼/ ay esul s cuyo nomb e iene dado po el imes amp del momen o en que se inicia la ejecuci´on) y
los almacena en un di ec o io den o de la ca pe a ay esul s del p oyec o y con el nomb e indicado
po sa e name. Adem´as, ambi´en copia el iche o pa ams.pkl de es e di ec o io en el que se gua dan
los checkpoin s, pues luego se ´a necesa io que es e ah´ı pa a la ejecuci´on de in e encias.
Po ejemplo, podemos ejecu a 1000 i e aciones de eny enamien o pa a el modelo 3 usando s´olo la
GPU 0 del sis ema, con 0.001 GPUs pa a el d i e y 4 wo ke s que se epa en el es o de la GPU con
la siguien e ins ucci´on:
1$py hon a ini ng_ sc ip s / ain_ppo . py -- model =3 -- gpu = gpu0 -- d i e - gpus =0.001
2-- wo ke s =4 --sa e - name = model3_4_wo ke s_gpu0 --i e s =1000
Es o gene a ´a un di ec o io pa a cada checkpoin en checkpoin s/ppo/model3 4 wo ke s gpu0 y unos
iche os aining esul s/ppo/model3 4 wo ke s gpu0.cs y el mismo pe o con ex ensi´on .json
con algunos da os del en enamien o. Adem´as, end emos en ay esul s/model3 4 wo ke s gpu0
los iche os con las m´e icas que gene a Ray.
A.2. Sc ip de in e encia en RLlib
El sc ip ollou wi h ime.py2se ´a el que u ilicemos pa a ealiza los expe imen os de in e encia
en RLlib. Es e sc ip es una modi icaci´on del que p opo ciona ya RLlib ( ollou .py3, al que se le
a˜nade el c´odigo necesa io pa a medi y gua da da os sob e el iempo que se oma en cada in e encia
y pa a la ges i´on de los ecu sos disponibles. As´ı, podemos especi ica una se ie de pa ´ame os cuando
ejecu emos es e sc ip , algunos de los cuales p o iene del sc ip o iginal de RLlib:
checkpoin : p ime a gumen o, con ´el indicamos la u a al checkpoin desde el que que emos
es ablece el es ado del agen e pa a las in e encias.
-- un: algo i mo con el que hemos en enado al agen e. En nues o caso siemp e oma ´a el alo
PPO.
--en : en o no Gym sob e el que ejecu a las in e encias. En nues o caso oma ´a el alo
Pong- 0.
-- ime-ou pu : u a a un iche o .cs en el que se gua da ´an los da os de iempo de las in e-
encias.
--no- ende : es necesa io a˜nadi es e a gumen o si no que emos que se mues e po pan alla las
in e acciones con el en o no. Noso os siemp e lo a˜nadi emos.
--gpu: con igu aci´on de GPUs con las que ealiza la in e encia. Puede oma los alo es gpu0,
gpu1,none ybo h.
2h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/ ollou _wi h_ ime.py
3h ps://gi hub.com/ ay-p ojec / ay/blob/mas e / llib/ ollou .py
82 AP´
ENDICE A. FUNCIONAMIENTO DE LOS SCRIPTS DE PYTHON
-- ideo-di : di ec o io en el que gua da emos ideos de las in e acciones. No lo u ilizamos en
es e abajo.
--se eps: n´ume o de pasos de in e encia a ejecu a . Si especi icamos un n´ume o de episodios
(con --episodes) el alo que le hayamos dado al n´ume o de pasos queda ´a sin e ec o.
--episodes: n´ume o de episodios comple os a ejecu a . --con ig: dicciona io con la con igu a-
ci´on del agen e, que sob eesc ibe a la ca gada del iche o pa ams.pkl del di ec o io del checkpoin .
--sa e-in o: gua da in o maci´on sob e las obse aciones y las acciones de cada paso de in e en-
cia. No lo u iliza emos.
--use-shel e: gua da la in o maci´on sob e las obse aciones y las acciones de cada paso de
in e encia con o ma o shel .
--se -a ini y: Conjun o (se ) con los iden i icado es de las CPUs a las que que emos es ingi
la ejecuci´on.
--num-cpus- ay: n´ume o de CPUs que indicamos a Ray en su incicializaci´on. Si su alo es 0 (lo
es po de ec o), le es amos indicando a Ray que puede usa odas las que encuen e disponibles.
La con igu aci´on de ecu sos espec´ı ica (n´ume o de wo ke s, GPUs pa a el d i e ...) podemos especi i-
ca la en le pa ´ame o --con ig. Un ejemplo de ejecuci´on de in e encia sin GPUs y sin c ea wo ke s
se ´ıa:
1$py hon ollou _wi h_ ime . py checkpoin s / ppo / model1_gpu / checkpoin _11000 / checkpoin
-11000 -- un = PPO -- en = Pong - 0 -- ime - ou pu = ollou _ esul s / ol a1 /
model1_no_gpus_0_wo ke s .cs --no - ende -- gpu =none -- episodes =10 -- con ig = '{"
num_wo ke s ":0 , " num_ gpus_pe _wo ke ":0 , " num_gpus ":0}
A.3. Sc ip s de expo aci´on y cuan izaci´on de modelos pa a la
TPU
De alla emos aho a el con enido y mane a de uso de los cua o sc ip s que lle an a cabo el p oceso
comple o de c eaci´on de modelos de Tenso low Li e cuan izados que pueden se ejecu ados en la TPU.
A.3.1. Sc ip de expo aci´on de modelos
El sc ip model sa e .py4pa e de un modelo en enado en RLlib y expo a la ed neu onal con
la que se modela la pol´ı ica y su alo en o ma o .h5. Pa a ello, la ejecuci´on del sc ip equie e dos
pa ´ame os en su llamada:
Di ecci´on a un checkpoin desde el que es ablece emos el es ado del agen e a expo a .
Ru a donde que emos gua da el modelo en o ma o .h5. Se indica ´a la u a al iche o y su
nomb e sin ex ensi´on.
El sc ip c ea ´a un agen e PPO es au ando el es ado del checkpoin pasado como p ime a gumen o
y gua da ´a el modelo de ke as que con iene la ed neu onal de la pol´ı ica y su alo en un iche o con
ex ensi´on .h5 en la di ecci´on especi icada como segundo a gumen o. Po ejemplo, podemos ob ene un
iche o .h5 del modelo 1 ejecu ando:
1$py hon model_sa e . py checkpoin s / ppo / model1_gpu / checkpoin _1000 / checkpoin -1000
expo ed_models / model1
4h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/model_sa e .py
A.3. SCRIPTS DE EXPORTACI ´
ON Y CUANTIZACI ´
ON DE MODELOS PARA LA TPU 83
A.3.2. Sc ip de c eaci´on de modelos de Tenso low Li e
El sc ip li e con e e .py5c ea y gua da un modelo de Tenso low Li e a pa i de un modelo
de ke as p e iamen e expo ado en o ma o .h5. En su ejecuci´on debemos indica le el alo de dos
a gumen os:
Di ecci´on del a chi o con ex ensi´on .h5 donde se encuen a el modelo de ke as expo ado.
Di ecci´on del iche o . li e con ex ensi´on donde que emos gua da el modelo esul an e.
El sc ip c ea ´a un obje o TFLi eCon e e que lle a ´a a cabo la con e si´on a pa i del modelo
de ke as p e iamen e ca gado. Po ejemplo, pa a c ea un modelo de Tenso low Li e del modelo 1
podemos ejecu a :
1$py hon li e_con e e . py expo ed_models / model1 . h5 expo ed_models / model1 . li e
A.3.3. Sc ip de c eaci´on de da ase s pa a la cuan izaci´on
El sc ip da ase c ea o .py6c ea y gua da conjun os de im´agenes del en o no con el que in e -
accionan los modelos y que oman como en adas y que son necesa ias pa a que du an e el p oceso de
cuan izaci´on se puedan es ima los angos que oman los enso es de en ada y de salida del modelo
(pues sus alo es son a iables) y el modelo cuan izado pie da la meno p ecisi´on posible espec o al
o iginal. Debemos especi ica el alo de dos a gumen os en la ejecuci´on del sc ip :
Dimensi´on de las im´agenes que gua da emos en el da ase .
Ru a en la que se gua da ´a el da ase que se c ee, sin ex ensi´on.
Una ez ejecu emos el sc ip , se c ea ´a un en o no como con el que in e accionan los agen es y se
oma ´an 500 im´agenes ob enidas como obse aciones as ejecu a una se ie de acciones alea o ias
sob e es e en o no. Es as im´agenes se gua da ´an en un iche o con ex ensi´on .npy (pues son en ealidad
a ays de Numpy) en la u a indicada como segundo a gumen o. Po ejemplo, podemos c ea un da ase
con im´agenes de dimensi´on (168 ×168 ×4), que pod ´ıan se usado pa a la cuan izaci´on del modelo 4,
ejecu ando:
1$py hon da ase _c ea o . py 168 da ase s / da ase _model4
A.3.4. Sc ip de cuan izaci´on de modelos de Tenso low Li e
El sc ip quan ize .py7lle a a cabo la c eaci´on de un modelo de Tenso low Li e cuan izado, con
odos su pa ´ame os como en e os de 8 bi s, a pa i de un modelo de ke as expo ado en un iche o
.h5. Pa a ello eque i ´a es a gumen os cuando lo ejecu emos:
Di ecci´on a un da ase , con ex ensi´on .npy que con enga al menos 500 im´agenes que pod ´ıan se
en ada del modelo que que emos con e i .
Di ecci´on del modelo de ke as con ex ensi´on .h5 que que emos con e i a Tenso low Li e y
cuan iza .
Di ecci´on del iche o con ex ensi´on . li e donde que emos gua da el modelo con e ido a
Tenso low Li e y cuan izado.
5h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/ li e_con e e .py
6h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/da ase _c ea o .py
7h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/quan ize .py
84 AP´
ENDICE A. FUNCIONAMIENTO DE LOS SCRIPTS DE PYTHON
El sc ip con iene la unci´on ep esen a i e da a gen() que oma 100 im´agenes del da ase ca gado
de la u a especi icada como p ime pa ´ame o pa a pode es ima el ango de las en adas y las salidas
del modelo y que la cuan izaci´on de es os alo es sea co ec a. As´ı, se ca ga el modelo de ke as gua dado
en la di ecci´on del segundo a gumen o y se con ie e a Tenso low Li e cuan izando los alo es de sus
pa ´ame os, gua dando el modelo esul an e en el iche o especi icado como e ce a gumen o. Po
ejemplo, podemos c ea una e si´on cuan izada del modelo 3 ejecu ando:
1$py hon quan ize . py da ase s / da ase _model3 . py expo ed_models / model3 . h5
expo ed_models / model3_quan . li e
A.4. Sc ip s de in e encia de modelos de Tenso low Li e
De alla emos aqu´ı como se implemen an y el modo de uso de los sc ip s ollou co al.py8y
ollou li e.py9que ejecu an in e encias sob e modelos de Tenso low Li e, bien cuan izados o
sin cuan iza sob e el acele ado Google Co al ( ollou co al.py) o sob e las CPUs del sis ema
( ollou li e.py). La es uc u a de es os dos sc ip s es la misma, sal o que el p ime o de ellos
al c ea el in ´e p e e del modelo de Tenso low Li e es ablece como delegado la TPU. Adem´as, de la
unci´on p incipal de los sc ip s, es os cuen a con dos unciones auxilia es:
make in e p e e (model ile). Recibe como pa ´ame o la u a a un modelo gua dado de Ten-
so low Li e y de uel e un obje o de la clase In e p e e sob e el que pod emos ejecu a in e-
encias. En el caso del sc ip pa a la TPU, aqu´ı se indica median e un delegado que las ejecuciones
se ealiza ´an en es e sopo e.
keep gping(s eps, num s eps, episodes, num episodes): Funci´on que implemen a la con-
dici´on del bucle, indicando cuando debemos pa a de ejecu a pasos de in e encia. Se oma
di ec amen e del sc ip de in e encia que nos p opo ciona RLlib ( ollou .py).
Cuando ejecu emos el sc ip podemos da alo a una se ie de pa ´ame os que con igu an las in e encias
a ealiza :
-m, --model: u a al a chi o . li e en el que se encuen a el modelo de Tenso low Li e
(cuan izado o no) sob e el que ejecu a emos las in e encias.
-s, --s eps: pasos de in e encia que que emos ejecu a . Si damos alo a --episodes el n´ume o
de pasos indicado no end ´a e ec o.
-e, --episodes: n´ume o de episodios comple os de in e encia a ejecu a . Si indicamos su alo ,
el de --s eps queda sin e ec o.
-o, --ou pu : u a a un a chi o .cs en el que gua da emos los da os ela i os a la ejecuci´on
de las in e encias ( iempos, pasos po episodio, ecompensas...).
Cuando ejecu amos cualesquie a de los dos sc ip s en p ime luga se c ea el in ´e p e e pa a el modelo
de Tenso low Li e indicado. Seguidamen e se c ea un en o no con w ap deepmind con Pong- 0 como
base, y de aqu´ı se ´a de donde se oman las i e aciones. Aho a, se i e a mien as no hayamos comple ado
el n´ume o o al de episodios (o mien as no hayamos comple ado el n´ume o o al de pasos en caso de
no habe indicado un n´ume o de episodios a ejecu a ) y en cada paso de i e aci´on se oma una imagen
8h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/expo ed_models/ ollou _
co al.py
9h ps://gi hub.com/ja igm98/Mejo ando-el-Ap endizaje-Au oma ico/blob/main/expo ed_models/ ollou _
li e.py
A.4. SCRIPTS DE INFERENCIA DE MODELOS DE TENSORFLOW LITE 85
del en o no, se coloca como enso de en ada del in ´e p e e del modelo, se in oca al modelo y se
ob iene el alo del enso de salida. De la salida de la pol´ı ica, se oma el ´ındice con el alo m´as al o
y esa se ´a la siguien e acci´on, que se ealiza sob e el en o no, ob eni´endose as´ı una nue a obse aci´on y
comenzando nue amen e el p oceso (b´asicamen e es la misma idea que se sigue en el sc ip ollou .py
de RLlib.
86 AP´
ENDICE A. FUNCIONAMIENTO DE LOS SCRIPTS DE PYTHON
Bibliog a ´ıa
[1] Imad Dabbu a. ((G adien Descen Algo i hm and I s Va ian s)). En: Towa ds Da a Science
(2017). u l:h ps:// owa dsda ascience.com/g adien -descen -algo i hm-and-i s-
a ian s-10 652806a3.
[2] Vincen Dumoulin y F ancesco Visin. ((A guide o con olu ion a i hme ic o deep lea ning)). En:
a Xi (2016). u l:h ps://a xi .o g/pd /1603.07285 1.pd .
[3] Jona han Hui. ((RL — P oximal Policy Op imiza ion (PPO) Explained)). En: Medium (2018).
u l:h ps : / / jona han - hui . medium . com / l - p oximal - policy - op imiza ion - ppo -
explained-77 014ec3 12.
[4] Renu Khandelwal. ((A Basic In oduc ion o Tenso Flow Li e)). En: Towa ds Da a Science (2020).
u l:h ps:// owa dsda ascience.com/a- basic- in oduc ion- o- enso low- li e-
59e480c57292.
[5] Ue Kiao. ((Calcula e ou pu size o Con olu ion)). En: OpenGenus IQ (2021). u l:h ps://iq.
opengenus.o g/ou pu -size-o -con olu ion/.
[6] Meh ya Moh i, A shin Ros aminzadeh y Amee Talwalka . Founda ions o Machine Lea ning
(second edi ion). MIT P ess, 2018.
[7] Paco Na han. ((Dis ibu ed Compu ing wi h Ray: In o o RLlib: Example En i onmen s)). En:
Medium (2020). u l:h ps://medium.com/dis ibu ed-compu ing-wi h- ay/in o- o-
llib-example-en i onmen s-3a113 532c70.
[8] Sumi Saha. ((A comp ehensi e Guide o Con olu ional Neu al Ne wo ks)). En: Towa ds Da a
Science (2018). u l:h ps : / / owa dsda ascience . com / a - comp ehensi e - guide - o -
con olu ional-neu al-ne wo ks- he-eli5-way-3bd2b1164a53.
[9] Manas Sahni. ((8-Bi Quan iza ion and Tenso Flow Li e: Speeding up mobile in e ence wi h
low p ecision)). En: Hea Bea F i z AI (2018). u l:h ps : / / hea bea . i z . ai / 8 -
bi - quan iza ion- and- enso low- li e- speeding- up- mobile- in e ence- wi h- low-
p ecision-a882d ca bbd.
[10] Sabyasachi Sahoo. ((Deciding op imal ke nel size o CNN)). En: Towa ds Da a Science (2018).
u l:h ps : / / owa dsda ascience . com / deciding - op imal - il e - size - o - cnns -
d6 7b56 9363.
[11] Kaz Sa o. ((Wha makes TPUs ine- uned o deep lea ning?)) En: Google Cloud Blogs (2018).
u l:h ps://cloud.google.com/blog/p oduc s/ai- machine- lea ning/wha - makes-
pus- ine- uned- o -deep-lea ning.
[12] John Schulman y col. ((P oximal Policy Op imiza ion Algo i hms)). En: a Xi (2017). u l:
h ps://a xi .o g/pd /1707.06347.pd .
[13] John Schulman y col. ((T us Region Policy Op imiza ion)). En: a Xi (2017). u l:h ps :
//a xi .o g/pd /1502.05477.pd .
87
88 BIBLIOGRAF´
IA
[14] Saga Sha ma. ((Policy Ne wo ks s Value Ne wo ks in Rein o cemen Lea ning)). En: Towa ds
Da a Science (2018). u l:h ps:// owa dsda ascience.com/policy-ne wo ks- s- alue-
ne wo ks-in- ein o cemen -lea ning-da2776056ad2.
[15] Abhishek Su an. ((P oximal Policy Op imiza ion (PPO) Wi h Tenso Flow 2.x)). En: Towa ds Da a
Science (2020). u l:h ps:// owa dsda ascience.com/p oximal-policy-op imiza ion-
ppo-wi h- enso low-2-x-89c9430ecc26.
[16] Richa d S. Su on y And ew G. Ba o. Rein o cemen Lea ning: An In oduc ion. MIT P ess,
2014.
[17] Jo di To es. ((Deep Q-Ne wo k (DQN)-I OpenAI Gym Pong and W appe s)). En: Towa ds
Da a Science (2020). u l:h ps:// owa dsda ascience.com/deep- q- ne wo k- dqn- i-
bce08bd 2a .
[18] Se da Yegulalp. ((Wha is Tenso Flow? The machine lea ning lib a y explained)). En: In oWold
(2019). u l:h ps://www.in owo ld.com/a icle/3278008/wha -is- enso low- he-
machine-lea ning-lib a y-explained.h ml.