scieee Science in your language
[es] (orig)

Evaluación de rendimiento de arquitecturas paralelas y de propósito específico para el aprendizaje por refuerzo en juegos

Abstract

Las aplicaciones de aprendizaje por refuerzo se usan en la actualidad para resolver problemas de todo tipo en campos muy diversos. Sin embargo, una de las principales desventajas que presentan es el elevado coste computacional del entrenamiento de los modelos necesarios. Con este trabajo de fin de grado se pretende mejorar este proceso mediante la paralelización de los algoritmos empleados y el uso de distintas arquitecturas hardware que variarán los tiempos requeridos. Los modelos entrenados pueden aplicarse para obtener la mejor secuencia de acciones que podemos realizar sobre un entorno y mejorar la recompensa obtenida. Este proceso, que se denomina inferencia, aunque tiene menor complejidad computacional, se realiza muchas más veces, por lo que se han desarrollado procesadores de propósito específico para llevar a cabo esta tarea. Por ello, también es conveniente evaluar su rendimiento en estos soportes y compararlos con otras unidades de procesamiento más generales. Tras definir el escenario en el que nos vamos a mover y los recursos necesarios para ello, se proponen una serie de experimentos de los procesos de entrenamiento e inferencia que nos permitirán evaluar el rendimiento en términos del tiempo empleado, de la utilización de los recursos disponibles y del consumo de energía de distintas arquitecturas hardware, viendo cuál es más conveniente usar en cada caso.

Read accessible full text

Evaluación de rendimiento de arquitecturas paralelas y de propósito específico para el aprendizaje por refuerzo en juegos

Author: Guzmán Muñoz, Javier
Year: 2021
Source: https://docta.ucm.es/bitstreams/902d7765-25b1-4977-a2b9-6918bcda4f40/download
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
xlog 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.