Está en la página 1de 47

Trabajo Fin de Máster

Agente Basado en Deep Q-Learning


aplicado a Mercado de valores

Autor:
Kiril Morozov Curso 2021/2022
Fecha: 31/12/2021
Tutor:
Jordi Escayola Mansilla

1
Agradecimientos
Kiril Morozov M.
Alicante
5 Enero 2022

Agradecer a mis Padres, mi abuela y mi pareja todo el apoyo que me han brindado durante
esta aventura.
Abstract
El Q-learning se ha convertido en una de las ramas más fructíferas de la inteligencia
artificial en los últimos años. Estás técnicas se han acogido en muchas disciplinas diferentes
y cada día se usan más y más en nuestra vida cotidiana. En el presente trabajo se pretende
demostrar la viabilidad de la aplicación de dichos algorítmos en el ámbito de la economía y
en concreto al proceso de toma de decisiones en el trading en los conocidos mercados de
valores. Así como dar una visión resumida de su funcionamiento.
Abstract
In the last years, Q-learning has become one of the most powerful techniques in the Artificial
Intelligence. These techniques have been adapted in many different disciplines and every day
they are used more and more in our common lives.This work aims to demonstrate the
viability of the application of these algorithms in the field of economics and specifically to the
decision-making process in trading.As well as giving a summarized vision of its operation.
5
Agradecimientos 2

Abstract 3

Abstract 4

1. Justificación 8

2. Motivación 8

3. Objetivos 8

4. Hipótesis 9

5. Metodología 9

6. Estado del Arte 10


6.1. Mercado de valores (Definición) . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.2. Proceso Estocástico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.3. Proceso de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.4. Revisión Metodologías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.4.1. Análisis gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.4.2. Análisis técnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.4.3. Modelización Matemática . . . . . . . . . . . . . . . . . . . . . . . . 15
6.4.4. Análisis técnico (Computacional) . . . . . . . . . . . . . . . . . . . . 15

7. Reinforcement Learning (Teoría) 16


7.1. Introduccón . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.2. Interfaz Agente-Entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.3. Recompensas y recompensa acumulada (retorno) . . . . . . . . . . . . . . . 19
7.4. Políticas y Funciónes de valor . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.5. Programación Dinámica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.6. Métodos Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

8. Métodos de diferencias temporales 22


8.1. Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

6
8.2. Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.3. Deep Q Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.3.1. Experience Replay . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.3.2. Target Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.3.3. E-Greedy Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.3.4. Hubber-Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.4. Double Deep-Q learning (DDQN) . . . . . . . . . . . . . . . . . . . . . . . 30
8.5. Deep Q Learning with fixed Targets (TDQN) . . . . . . . . . . . . . . . . . 31

9. Implementación 32
9.1. Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.2. Algoritmo (Pseudocódigo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.3. Diseño Experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

10.Resultados 36
10.1. DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
10.2. DDQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
10.3. T-DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10.4. Comparativa de los 3 modelos . . . . . . . . . . . . . . . . . . . . . . . . . . 43

11.Futuros trabajos y mejoras 44

12.Conclusiones 45

7
Kiril Morozov TFM

1. Justificación

El objetivo de la investigación en este trabajo es evaluar un modelo de deep reinforcment


learning que permita la predicción de precios de mercado de valores a corto plazo para dar
soporte en las inversiones que realizan los traders. El modelo asistirá a losd profesiones de
la banca, administradores de fondos y a mejorar sus técnicas e inversiones, disminuyendo
la probabilidad de pérdidas , mejorando sustancialmente las decisiones tomadas y con el
último n de obtener una ganancia mayor. De fondo podemos encontrar un objetivo puramente
académico, que es la incursión en algoritmos de inteligencia artificial con el n de darle énfasis
a su verdadera utilidad y aportar cualquier mejora

2. Motivación

El interés personal depositado en este problema, nace de la conexión que he podido encon-
trar entre la disciplina de la ciencia de los datos y las ciencias exactas(física en concreto).
En ciencias exactas hacemos uso de datos que nos arroja el entorno para comprenderlos,
manipularlos y modelarlos, en definitiva emitiendo un modelo que nos pueda servir para
comprender el universo y aportar valor a la vida del ser humano. Cada vez son más frecuen-
tes las técnicas computacionales para realizar este tipo de trabajos en ciencias exactas y la
frontera se vuelve cada vez más difusa. En ciencia de datos, el objetivo final, dependiendo del
caso, es o puede ser el mismo, extraer valor y modelar un conjunto de datos que representan
un problema concreto. En definitiva, se ha escogido un problema típicamente estudiado por
economía matemáticas y física, como los procesos estocásticos y se ha decidido dar solución
a este problema desde las técnicas y herramientas que nos aporta la ciencia de los datos y
en concreto la inteligencia artificial. Aunque existen innumerables procesos estocásticos en la
naturaleza y el día a día en este caso se ha escogido estudiar el mercado de valores.

3. Objetivos

Revisión del estado de Arte

Revisión de algorítmos y decisión sobre uno de ellos

Revisión de las bases matemáticas del algoritmo

Implementación del algoritmo

8
Kiril Morozov TFM

Revisión del fenómeno a estudiar

Obtención y estudio de los datos

Aplicación del modelo

Prueba de la validez y bondad

Conclusiones

4. Hipótesis

La hipótesis principal del trabajo es la afirmación preceptiva de que un algoritmo de Deep


Reinforcment Learning se puede desenvolver de una forma más fructífera en un proceso
estocástico,en concreto en el mercado de valores, por encima de otros métodos como podrían
ser los estudiados en economía, matemáticas y física. Este se usará como apoyo en la toma
de decisiones en el trading.

5. Metodología

La metodología usada para el proyecto sera CRISP- DM y es extraía por completo del
correspondiente libro. A continuación vamos a describir brevemente cada una de las fases
que componen dicha metodología.
Fase I. Business Understanding. Denfición de necesidades del cliente (comprensión del nego-
cio) Esta fase inicial se enfoca en la comprensión de los objetivos de proyecto. Después se
convierte este conocimiento de los datos en la definición de un problema de minería de datos
y en un plan preliminar diseñado para alcanzar los objetivos.
Fase II. Data Understanding. Estudio y comprensión de los datos La fase de entendimiento de
datos comienza con la colección de datos inicial y continúa con las actividades que permiten
familiarizarse con los datos, identificar los problemas de calidad, descubrir conocimiento
preliminar sobre los datos, y/o descubrir subconjuntos interesantes para formar hipótesis en
cuanto a la información oculta.
Fase III. Data Preparation. Análisis de los datos y selección de características La fase de
preparación de datos cubre todas las actividades necesarias para construir el conjunto final
de datos (los datos que se utilizarán en las herramientas de modelado) a partir de los datos

9
Kiril Morozov TFM

en bruto iniciales. Las tareas incluyen la selección de tablas, registros y atributos, así como
la transformación y la limpieza de datos para las herramientas que modelan.
Fase IV. Modeling. Modelado En esta fase, se seleccionan y aplican las técnicas de modelado
que sean pertinentes al problema (cuantas más mejor), y se calibran sus parámetros a valores
óptimos. Típicamente hay varias técnicas para el mismo tipo de problema de minería de
datos. Algunas técnicas tienen requerimientos específicos sobre la forma de los datos. Por
lo tanto, casi siempre en cualquier proyecto se acaba volviendo a la fase de preparación de
datos.
Fase V. Evaluation. Evaluación (obtención de resultados) En esta etapa en el proyecto, se
han construido uno o varios modelos que parecen alcanzar calidad suficiente desde la una
perspectiva de análisis de datos. Antes de proceder al despliegue final del modelo, es im-
portante evaluarlo a fondo y revisar los pasos ejecutados para crearlo, comparar el modelo
obtenido con los objetivos de negocio. Un objetivo clave es determinar si hay alguna cuestión
importante de negocio que no haya sido considerada suficientemente. Al nal de esta fase, se
debería obtener una decisión sobre la aplicación de los resultados del proceso de análisis de
datos.
Fase VI. Deployment. Despliegue (puesta en producción) Generalmente, la creación del mode-
lo no es el final del proyecto. Incluso si el objetivo del modelo es de aumentar el conocimiento
de los datos, el conocimiento obtenido tendrá que organizarse y presentarse para que el clien-
te pueda usarlo. Dependiendo de los requisitos, la fase de desarrollo puede ser tan simple
como la generación de un informe o tan compleja como la realización periódica y quizás
automatizada de un proceso de análisis de datos en la organización.

6. Estado del Arte

6.1. Mercado de valores (Definición)

El mercado de valores es un tipo de mercado de capitales de los que operan alrededor del
mundo en el que se negocia la renta variable y la renta fija de una forma estructurada,
también la compra y venta de bienes que tiene un plan fijo, o un negocio que tiene renta
variable a través de la compraventa de valores negociables. Con esta técnica se hace posible
la canalización de capital a medio y largo plazo de los inversores a los usuarios.
Si nos centramos en los que nos atañe, podemos decir que, el mercado de valores es una forma
centralizada de comprar y vender acciones de las compañías que cotizan en bolsa. Éstos se

10
Kiril Morozov TFM

diferencian de otro tipo de mercados donde los activos negociables se limitan a acciones,
bonos y productos negociados en bolsa (ETP).
Los productos negociados en bolsa, también denominados por sus siglas en inglés ETP (ex-
change traded products), son una serie de instrumentos financieros que cotizan durante el
día en mercados nacionales.
Cada ETP tiene un índice de referencia al que replica. Algunos ETF pueden replicar mer-
cados conocidos, como el FTSE 100, pero también se pueden encontrar ETP que replican
índices de referencia más minoritarios o especializados, como determinados índices de acciones
específicos de sectores, que permiten obtener dividendos altos.
Existen tres tipos principales de ETP:

Los ETF o fondos cotizados. Su precio replica el de un conjunto de activos financieros,


como, por ejemplo, un índice.

Los ETN o notas cotizadas. Son un tipo de valores de deuda. Se trata de productos que
apenas están regulados y los inversores deben ser especialmente prudentes al invertir
en ETN.

Los ETC o materias primas cotizadas. Son similares a los ETF, pero replican o bien
un conjunto de materias primas o bien un índice de materias primas.

Existen numerosos ejemplos de mercados repartidos alrededor del mundo. Algunos de los más
grandes son la Bolsa de Nueva York (NYSE), el NASDAQ y la Bolsa de Tokio (JPX). Otras
bolsas conocidas son la Bolsa de Londres (LSE), la Bolsa de Shanghai (SSE) y la Bolsa de
Bombay (BSE).
Hecha la definición de un mercado de valores, es interesante analizar su dinámica y como éste
se entrelaza con las matemáticas y la computación. En definitiva, el enorme interés depositado
en éste fenómeno es debido a que puede aportar una serie de recursos descentralizados que
no dependen de un gobierno central. Además como una herramienta de inversión donde el
inversor busca unas ganancias a largo o corto plazo.
Ese excedente se obtiene por la variabilidad del valor de, por ejemplo, un índice, cuando este
se ha comprado por un precio menor que por el que se vende, o se mantiene.
Las fluctuaciones del valor de un índice, una acción, etc, esparcidas en el tiempo, engendran
un proceso estocástico, ampliamente estudiado en matemáticas y física.

11
Kiril Morozov TFM

6.2. Proceso Estocástico

Como hemos establecido anteriormente, el mercado de valores, origina un proceso estocástico,


definámoslo:

Un proceso estocástico es una colección de variables aleatorias Xt, t ∈ T definidas sobre un


espacio de probabilidad (Ω, A, P ).

Dicho de otra forma es una serie de variables aleatorias que evolucionan en función de otra
(normalmente el tiempo, como es nuestro caso), teniendo cada una de las variables aleatorias
su propia distribución de densidad.
Debido a que nuestro foco de atención recaerá sobre una variables que evoluciona con el
tiempo, podemos clasificar dichos procesos en dos subgrupos.

Tiempo continuo donde la variables independiente T se puede definir con el intervalo


de [0, ∞)ϵR

Tiempo discreto cuando la variables T es un conjunto numerable con determinados


valores, por ejemplo días.

Ejemplos de procesos estocásticos:

Señales de telecomunicación

Señales biomédicas (electrocardiograma, encefalograma, etc.),

Señales sísmicas

Índice de la bolsa segundo a segundo

Evolución de la población

Además en nuestro caso, el proceso estocástico puede ser de tiempo continuo o discreto (según
el enfoque), además también es de valores continuos, puesto que el precio puede adquirir valor
decimal. De aquí en adelante cuando hablemos de nuestro proceso, lo habremos catalogado
como CTCV, acrónimo del inglés Continuos Time/Continuos Values o bíen DTCV, Discrete
Time/Continuos Values.

12
Kiril Morozov TFM

6.3. Proceso de Markov

Otra característica relevante de nuesto fenómeno, es que éste se puede considerar como pro-
ceso de Markov.
Se dice que un proceso estocástico es de Markov cuando éste cumple la propiedad de Markov.
Podemos definir la propiedad de Markov, como la característica de ciertos procesos a no
tener memoria, es decir que el estado futuro únicamente depende de su estado presente y de
ninguna forma de los anteriores. Es decir, la probabilidad de que un mercado tenga un valor,
solo depende de su valor anterior.

6.4. Revisión Metodologías

El análisis de las series temporales generadas por el mercado de valores ha sido objetivo de
estudio de muchas disciplinas como las matemáticas, la economía, la física, entre otras. Con
el auge de la Inteligencia artificial, se ha propiciado la eclosión de los modelos, algoritmos y
técnicas, típicamente usados en dicho ámbito para dar solución a los problemas de valores de
mercado. Sin ser el objetivo de este trabajo hacer una exploración a fondo de dichas técnicas,
debemos ponerlas de relieve para poder situarnos y contextualizar el trabajo.
Podemos empezar hablando de los métodos clásicos usados antes de la aparición de la inte-
ligencia artificial en el campo de mercado bursátil.

6.4.1. Análisis gráfico

Se trata de uno de los métodos más usados inicialmente para poder ofrecer una solución y
predicción consiguiendo que las acciones no sean puramente aleatorias. En concreto se basa
en la observación de una serie de representaciones gráficas que incluyen toda serie de detalles
minuciosos presentados sobre los valores cotizados. A este método se le conoce coloquialmente
como “Chartismo”, que deriva del inglés “Chart”, esto es, gráfico. Existe una enorme variedad
de gráficos que sirven para este propósito entre los cuales podemos destacar:

Gráfico de Barras

Gráfico de Líneas

Grafico de Velas

13
Kiril Morozov TFM

Figura 1: Gráfico velas

Figura 2: Gráfico barras

Figura 3: Gráfico lineas

En la figura anterior podemos ver un ejemplo de cada una de los gráficos anteriores.

6.4.2. Análisis técnico

La distinción con respecto al análisis técnico consiste en que este solo se basa en el análisis
de datos en base a fórmulas matemáticas, estadísticas y modelos empíricos para analizar el
comportamiento futuro de los precios según las series de datos.

Bandas de Bollinger.

Gráficos de puntos.

14
Kiril Morozov TFM

Índices Arms

Índices Tick.

Osciladores de McClellan.

Indice de Demanda (ID)

...

6.4.3. Modelización Matemática

La modelización de la realidad económica no ha sido ajena a esa incursión de técnicas mate-


máticas y estadísticas, pudiéndonos remontar a las lejanas fechas de mediados del siglo XVII,
en donde los trabajos de Sir William Petty, en especial su Aritmética Política, fueron pioneros
en introducir de forma estructurada los métodos cuantitativos en general, y la estadística en
particular, en el estudio de la economía.
Uno de lo ejemplos más significativos ha sido,introducido por Louis Bachilier al hacer la
generalización del paseo aleatorio al tiempo continuo, lo que hoy conocemos como movimiento
browniano.
Otro gran ejemplo podría ser el de Black y Scholes, con la ayuda de Merton, haciendo uso de
una nueva metodología y con las nuevas técnicas de análisis del cálculo estocástico, obtuvieron
a principios de los años 70 una fórmula para la determinación de los precios de las opciones.

6.4.4. Análisis técnico (Computacional)

Dentro de los métodos técnicos pondrémos un énfasis especial en los que usan la compu-
tación/programación como medio de conseguir el pronóstico. Estos métodos explotan la enor-
me capacidad de procesamiento de los ordenadores actuales y a parte de implantar algunos de
los métodos clásicos de una forma mucho más eficiente e inmediata, ofrecen un enorme abani-
co de nuevos enfoques. Podemos destacar unos subgrupos dentro de éstos últimos inducidos
por la propia arquitectura interna de dichos algoritmos o técnicas.

Modelos clásicos/ Estadísticos - Medias Móviles, Suavizado Exponencial, ARI-


MA,SARIMA,TBATS

Aprendizaje Automático - Regresión Lineal, XGBOOST, Randome Forest, K-NN en


general aquí podemos incluir los métodos de clústering y reducción de dimensionalidad

15
Kiril Morozov TFM

Aprendizaje Profundo - RNN, LSTM (redes neuronales)

Inteligencia Artificial - donde podemos Englobar todas los métodos anteriores más
una serie de algoritmos que pertenecen exclusivamente al grupo de técnicas de inteli-
gencia artificial.

Figura 4: Clasificación técnicas De Inteligencia Artificial

Aunque generalmente la clasificación de las técnicas y algoritmos se hace según lo indica el


esquema anterior, las fronteras no son rígidas debido a que muchas de ellas se entremezclan
dando lugar a combinaciones de algoritmos, esta práctica se conoce como “stacking”.
Por último cabe destacar, acercándonos más al tipo de técnicas que nos concierne, Lee, J.W.,
en su trabajo “Stock price prediction using reinforcement learning.” conseguía demostrar
la utilidad en el uso de técnicas de Reinforcment Learning como soporte para trading en
mercados bursátiles
Nuestro caso particular, ha sido tomar la Inteligencia Artificial como enfoque para proponer
una solución al problema propuesto.

7. Reinforcement Learning (Teoría)

7.1. Introduccón

En esta parte del proyecto, vamos a sentar las bases de lo que se conocer como Reinfocment
Learning o en Castellano «Aprendizaje por refuerzo». Podemos aseverar con gran certeza que

16
Kiril Morozov TFM

la forma en la que los seres humanos y en general el mundo animal aprende es mediante un
proceso de interacción con el entorno basado en prueba y error en busca de un objetivo. Las
recompensas no tienen porque llegar de forma inmediata, si no como consecuencia de una
serie de acciones, estas acciones en definitiva son aprendidas por el agente para poder volver
a conseguir el objetivo propuesto. Este proceso, según los psicólogos conductistas se llama
aprendizaje por interacción. Así un niño que esta empezando a gatear, hace sus primeros
pasos y obtiene sus recompensas ( positivas o negativas) mientras intenta llegar a algún
objeto. Un paso mal dado conduce a una recompensa negativa (sensación de dolor ante una
caída), unos pasos bien dados, conducen a recompensas positivas, cuando el niño alcanza el
objeto deseado. Así mediante la repetición de estas pruebas en definitiva se acaba afianzando
y aprendiendo una capacidad tan vital como la de andar.
Este tipo de metodologías se han diseminado hacía las ciencias de la computación como
propuestas para resolver problemas difíciles mediante el uso de los ordenadores, simulando la
forma en la que lo harían los humanos. Podemos destacar entre las áreas de aplicación, toma
de decisiones, control de sistemas, automatización, etc. Además cabe destacar la multitud de
disciplinas que investigan e indagan en este tipo de metodologías. Algunas de ellas son:
Ingeniería, Neurociencia, Psicología, Economía, Matemáticas, Física, Ciencias de la compu-
tación, etc.
Y aunque el grueso de las técnicas de reinforcement Learning ha dado un salto cualitativo
enorme en las últimas décadas, los orígenes de éstas se pueden remontar a los primeros
intentos de automatización de procesos en los años 1980 e incluso algunas de las ideas se
formularon a finales de 1950, en plena revolución industrial. En los últimos años estás técnicas
se han viralizado en gran parte debido al enorme éxito de la empresa DeepMind (Adquirida
por google en 2004) y su agente AlphaGo.

7.2. Interfaz Agente-Entorno

En los párrafos anteriores se han introducido los elementos claves de cualquier algoritmo de
aprendizaje por refuerzo. Vamos a concretar sobre ellos y introducir paralelamente alguna
notación matemática

Agente, es el ente que interactúa con el entorno y toma las acciones pertinentes y en
definitiva aprende sobre el entorno con las experiencias.

Entorno, es lo que define el propio problema, el contexto sobre el cual, el agente toma
sus decisiones e interactúa.

17
Kiril Morozov TFM

Recompensa, es un valor escalar que el agente recibe del entorno después de cada acción.
Lo designaremos como: Rt recompensa en el instante t.

Acción, enumeran lo que el agente puede hacer una vez alcanzado un estado. Por ejemplo
desplazarnos en cualquiera de las 4 direcciones. Se establace la letra At para la acción
en el instante t.

Estado St es la información que se usa para determinar qué sucederá en el próximo


instante de tiempo. Formalmente es una función de la historia: St = f (Ht ).

Todos los elementos anteriores interactúan entre ellos mediante el siguiente esquema.

Figura 5: Visión general MDP

Todos los conceptos anteriores se formalizan en lo que ya habíamos mencionado con anteriori-
dad como Procesos de Decisión de Markov(MDP). Formalmente el proceso de decisión
de Markov se escribe de la siguiente forma:

P(St+1 |St ) = P(S1 ....St )

donde P es la matriz de probabilidades de transición al siguiente estado. Esto dicho en otras


palabras tal y como vimos La definición anterior establece que la probabilidad del siguiente
estado St+1 condicionada por el estado actual es la misma que si está condicionada por el
estado actual y todos los anteriores.
Casi cualquier problema de aprendizaje por refuerzo puedo ser modelado como como un
MDP, en concreto, debe ser todo fenómeno que cumpla la condición de Markov. Es decir, tal
y como vimos, procesos donde el estado siguiente depende exclusivamente del estado actual
y la acción tomada y nada más.
Además se satisface,al ser una distribución de probabilidad condicional, que:

18
Kiril Morozov TFM

p(s′ , r|s, a) = 1
X X

r∈R s′ ∈S,

La dinámica de nuestros procesos y la forma en la que se implementan mediante los len-


guajes de programación con métodos iterativos conducen irremediablemente a introducir los
conceptos de experiencia y episodio. Las recompensas obtenidas y los estados por los que
pasa un agente a medida que toma acciones en un MDP forman un episodio. Un episodio
es una serie de tuplas (estado, acción, recompensa). Cada una de estas tuplas diremos que
es una experiencia. Los episodios finalizan al alcanzar un estado terminal. El conjunto de los
episodios una vez alcanzado el estado final, conforman una época.

7.3. Recompensas y recompensa acumulada (retorno)

En aprendizaje por refuerzo, el objetivo del agente es maximizar la señal de recompensa


a medida que va tomando acciones. Dicho esto, podemos decir que cualquier objetivo final
puede describirse como la maximización de la esperanza (media estadística) de la recompensa
acumulada.
Dicha recompensa acumulada, puede definirse en el instante t como:

X
Gt = Rt+1 + γRt+2 + ... + Rt = Rt
t+1,T

Por lo tanto en definitiva, lo que buscamos es maximizar el retorno, que es la suma de


las recompensas hasta el paso final T. Se ha incluido el término γ con el fin de darle más
importancia a las experiencias más cercanas en el tiempo y resolver la no convergencia del
algoritmo en algunos casos.

7.4. Políticas y Funciónes de valor

Los algoritmos de aprendizaje por refuerzo, tratan en la mayoría de las ocasiones en estimar,
cuan bueno es encontrarse en un estado en términos de la recompensa acumulada o cuan
bueno es tomar una acción encontrándose el agente en un estado en concreto. Las funciones
de valor se encargan de formalizar esto. Cuando lo que evalúa el agente es la bondad de
tomar una cierta acción dado un estado concreto estarémos tratando con función de valor del

19
Kiril Morozov TFM

estado y en el caso contrario, estaremos hablando de función de valor de pares acción-estado.

Formalmente podemos decir que el valor de un estado es :

.
vπ (s) = E[Gt |St = s]∀s ∈ S

Es decir, la política es el valor esperado de los retornos dado un estado s, escogiendo actuar
según una política π.
De forma similar podemos definir el valor de una acción dado un estado s:

.
qπ (s, a) = E[Gt |St = s, At = a]∀s ∈ Sand∀a ∈ A(s))

Además se puede derivar la relación entre las dos funciones de valor, la función de valor de
estado y de acción-estado.

. X
vπ (s) = π(a|s)E[Gt |St = s, At = a] =
a∈A(s)

. X
vπ (s) = π(a|s)qπ (s, a)
a∈A(s)

Una de las particularidades más importantes de las funciones de valor e que estas se pueden
definir de una forma recursiva entre ellas como sigue:

.
vπ (s) = Eπ [Gt | St = s]
=⇒ vπ (s) = Eπ [Rt+1 + γGt+1 | St = s]
=⇒ vπ (s) = a∈A π(a | s) s′ ∈S r∈R p (s′ , r | s, a) [r + γEπ [Gt+1 | St = s′ ]]
P P P

=⇒ vπ (s) = a∈A π(a | s) s′ ∈S r∈R p (s′ , r | s, a) [r + γvπ (s′ )]


P P P

Esta última ecuación se llama Ecuación de Bellman y es el el núcleo de todos los algoritmos
de aprendizaje automático. La ecuación se dice que es recursiva porque relaciona el valor de
un estado con los estados posteriores a este. es decir, podemos contemplar en la ecuación dos

20
Kiril Morozov TFM

partes fundamentales. Una es el valor del estado actual y otra el valor de todos los estados
sucesores de este.
De forma similar podemos obtener le ecuación de Bellman para la función de valor de acción-
estado.

.
vπ (s) = Eπ [Gt | St = s]
=⇒ vπ (s) = Eπ [Rt+1 + γGt+1 | St = s]
=⇒ vπ (s) = a∈A π(a | s) s′ ∈S r∈R p (s′ , r | s, a) [r + γEπ [Gt+1 | St = s′ ]]
P P P

=⇒ vπ (s) = a∈A π(a | s) s′ ∈S r∈R p (s′ , r | s, a) [r + γvπ (s′ )]


P P P

Llegados a este punto podemos introducir el concepto de políticas y de optimalidad. Podemos


decir que resolver un problema de aprendizaje por refuerzo significa en última instancia
encontrar un política para el agente que consiga la máxima cantidad posible de recompensas
en el mínimo de tiempo. Podemos por lo tanto definir la política óptima como aquella que
maximiza al retorno de un agente en un episodio.

p(s′ , r|s, a)(r + γv∗ (s′ ))


X
v∗ (s) = máx
a∈A(s)
s′ ∈S,r∈R

Para el caso de valor de estados, y :

p(s′ , r|s, a)(r + γ ′máx′ q∗ (s′ , a′ ))


X
q∗ (s, a) =
a ∈A(s )
s′ ∈S,r∈R

para el caso de los pares estado-acción.

7.5. Programación Dinámica

Hemos visto las bases matemáticas y las ecuaciones que nos van conduciendo paulatinamente
hacía el interior del aprendizaje por refuerzo. Hasta ahora nos hemos dedicado a formalizar los
componentes que intervienen en un algoritmo RL, como aprende el agente y las funciones más
importantes. Lo siguientes apartados tratan del «como» resolver dichas ecuaciones planteadas
por métodos computacionales.

21
Kiril Morozov TFM

Uno de los enfoques de resolución, es la programación dinámica. Cuando hablamos de pro-


gramación dinámica nos referimos a una serie de algoritmos que son capaces de obtener la
política óptima de nuestro problema MDP.

La problemática de este tipo de enfoques, es que se tienen que cumplir una serie de supuestos
para que la aplicación sea fructífera. la dinámica del entorno debe ser perfectamente conocida,
debemos disponer de suficiente capacidad de procesamiento y además el sistema debe cumplir
la propiedad de Markov. Estos supuestos, rara vez se dan conjuntamente en la realidad, por
lo tanto en la práctica si no estamos trabajando bajo unas condiciones ideales, pocas veces
vamos a poder resolver un problema usando este tipo de metodologías. Y no siempre nuestro
agente va a poder encontrar una solución exacta a la ecuación de Bellman.

Ver de forma detenida este tipo de algoritmos no entra dentro del contenido de este trabajo,
debido a que nosotros nos hemos propuesto resolver un problema con un entorno estocástico.
Aún así cabe destacar que una gran variedad de situaciones se pueden abordar con algoritmos
de este espectro entre los cuales podemos destacar dos algoritmos: Iteración de valores y de
políticas.

7.6. Métodos Monte Carlo

Planteadas las problemáticas de la programación dinámica una de las tantas soluciones a esta,
la aportan los métodos de Monte Carlo. Con los Métodos de Monte - Carlo no es un requisito
conocer de forma exacta la dinámica del entorno, solo necesitamos recopilar trayectorias del
agente en el entorno, esto es ,colecciones de experiencias. otra de las justificaciones para no
necesitar el modelo, es que no es estrictamente necesario conocer la función de recompensas
y de transiciones entre estados.

Aunque hay una gran diferencia entre la programación dinámica, el «approach» sigue siendo
el mismo. El algoritmo estimará el valor de los estados o de las acciones de una política

8. Métodos de diferencias temporales

En este caso nos encontramos ante una combinación de métodos de monte carlo y progra-
mación dinámica en el intento de quedarnos con los beneficios que nos aporta cada uno. Por
un lado tendrémos, como en métodos Monte Carlo un aprendizaje directo de las experiencias
sin necesidad de disponer un entorno totalmente difinido y además como en los métodos
de programación dinámica seremos capaces basándonos en otras estimaciones, actualizar las

22
Kiril Morozov TFM

nuestras sin necesidad de esperar el final de un episodio. Estos últimos métodos son los más
usados actualmente debido a la simplicidad, la eficiencia.
Dentro de los TDM (Time Differnece Methods) es convenientes hacer una separación entre
los On-Policy y Off-policy.

On - Policy Este tipo de procesos intentan mejorar las políticas para tomar decisiones
con cada acción tomada, y se va de una forma paulatina actualizando dicha política en
dirección de una política óptima.

Off - Policy Las actualizaciones en este caso se realizan respecto al óptimo global, por
lo tanto es capaz de optimizar una política óptima usando cualquier otra.

Debemos también destacar que en el aprendizaje por refuerzo podemos tener algorítmos
Model- Based y Model-free, esto es tal y como el propio nombre lo indica, en el primer
caso tenemos un tipo de entorno y problema sobre el cual podrémos intentar inferir su
comportamiento a partir de acciones y estados. En el segundo caso el algorítmo funciona
estrictamente basándose en las experiencias, esto es, prueba y error.
En nuestro caso particular nos centraremos en un Algorítmo Off-Policy y model-Free debido
a la propia naturaleza del problema y su antonomasia.
Por destacar algún algorítmo On Policy, uno de los más conocidos es el SARSA.

8.1. Q-Learning
El algoritmo de Q-Learning entra dentro del espectro de los algoritmos que se basan en los
métodos de diferencias temporales. Tal y como hemos dicho éstos tratan de recalcular el valor
de estado-acción a partir de la evolución del entorno. ¿Cómo podemos recalcular el valor de
Q a partir de un estado siguiente? La solución es trivial, calculando la diferencia del nuevo
valor de Q con el valor anterior y lo que tendremos con esto, es lo que vamos a llamr TD.
Partiendo de la ecuación:

p(s′ , r|s, a) ′máx′ q∗ (s′ , a′ ))


X
q∗ (s, a) = r + γ
a ∈A(s )
s′ ∈S,r∈R

p(s′ , r|s, a) ′máx′ q∗ (s′ , a′ )) − Q(s, a)


X
T D(a, s) = r + γ
a ∈A(s )
s′ ∈S,r∈R

23
Kiril Morozov TFM

Donde la primera parte de la ecuación hasta el término -Q es el nuevo valor de Q.


Con esto podemos escribir la forma en la que vamos a ir actualizando nuestros valores de Q.

Qt (s, a) = Qt−1 (s, a) + αT Dt (a, s)

Donde hemos introducido un nuevo término α que hace de componente de control de la


velocidad de adaptación de los nuevos valores de Q al entorno. Lo podríamos llamar Learning-
Rate. Qt−1 es el valor de Q en el paso anterior.
Ahora si reemplazamos en ésta última ecuación T D por su expresión completa, obtendremos
la espina vertebral del algoritmo de Q Learning.

p(s′ , r|s, a) ′máx′ q∗ (s′ , a′ )) − Q(s, a))


X
Qt (s, a) = Qt−1 (s, a) + α(r + γ
a ∈A(s )
s′ ∈S,r∈R

Vamos a desgranar cada uno de los componentes de la ecuación de actualización en la siguiente


imagen.

Figura 6: Ecuación Q-learnign

Cabe destacar que esta función no se adaptaría al 100 % a nuestro problema planteado. Esto
así ya que seguimos estando limitados por la función Q, donde se deben representar de forma

24
Kiril Morozov TFM

tabular todas las acciones y todos los estados posibles. Esto en el entorno estocástico del
mercado de valor es imposible ya que la cantidad de estados es enorme.
Para dar solución a este problema podemos recurrir al teorema de aproximación universal
que dice:

El teorema de aproximación universal establece que "la red estándar de alimentación mul-
ticapa con una sola capa oculta, que contiene un número finito de neuronas ocultas, es un
aproximador universal entre funciones continuas en subconjuntos compactos de Rn , bajo
suposiciones leves sobre la función de activación".

Por lo tanto, podemos intentar aproximar nuestra función Q, por el uso de las Redes neu-
ronales, que son las que en este caso se encargarán de realizar el mapeo entre los estados
y las acciones. Este tipo de técnicas es objetivo de estudio de lo que se conoce como Deep
Learning. Para poder seguir en la aproximación de nuestro algoritmo final, debemos hacer
una introducción a las redes neuronales y el deep learning.

8.2. Deep Learning

El deep learning es una serie de técnicas nucleares dentro del campo del machine learning, que
imitando el funcionamiento de las neuronas del cerebro animal, resuelve una serie de proble-
mas de inferencia y aprendizaje. En concreto el objetivo principal de las redes neuronales es
con un input, unos datos de entrada, mapeados a través de una series de neuronas, conseguir
la respuesta correcta a un problema dado, output. Es un mecanismo que esta inspirado en el
funcionamiento biológico de nuestras neuronas.
Las redes neuronales están basadas en algo tan fundamental como un perceptrón. Lo que es
básicamente una transformación de un espacio n-dimensional en un escalar, ese escalar es lo
que llamaríamos la señal de salida del perceptrón.

n
X
z= (wi · xi ) + b
i=1

donde xi son las componentes de n dimensiones de un input, wi son los pesos asociados a cada
componente, b es el bias.
En las redes neuronales más complejas, el elemento básico de perceptrón se usa para generar
capas ocultas de una cierta cantidad de estos perceptrones.
A grosso modo podemos resumir la estructura de una red neuronal de la siguiente forma.

25
Kiril Morozov TFM

Una o varias entradas que pueden recibir los datos originales que se quieren procesar.

Después de cada perceptrón se sigue una función de activación no lineal.

Estas funciones de activación devuelven una salida

Las salidas de las capas anteriores sirven de input a las capas siguientes

Se enlazan entre si una serie de capas ocultas

Se obtiene el output final

Este proceso se puede observar en el siguiente diagrama:

Figura 7: Diagrama Red Neuronal

Otro concepto importante dentro de las redes neuronales, es backpropagation. Este concepto
es concerniente al fenómeno de actualización de los pesos de las redes neuronales. En definitiva
cuando entrenamos una red, necesitamos ir ajustando los pesos de tal forma que el output
final sea lo más fidedigno posible. La forma en la que se actualizan los pesos, es propagando
hacía atrás los errores cometidos. En concreto se actualizan los pesos con el descenso de

26
Kiril Morozov TFM

gradiente, es decir, en aquella dirección en la que el gradiente de la función de pérdida se


hace más pequeño.

dL
Wi (nuevos) = Wi (anteriores) + η
dW

Hemos introducido además en el apartado anterior la función de pérdida, cuyo propósito es


decirnos cuán bueno es el output obtenido respecto a la predicción realizada. Dependiendo
de la tipología del propio problema se pueden elegir distintas funciones de pérdida como por
ejemplo: Cross Entropy, MSE, Lineal, etc.

8.3. Deep Q Learning

En definitiva llegamos a la definición final del algoritmo a usar. Deep Q learning, es una
simbiosis entra las herramientas de aprendizaje por refuerzo y el deep learning donde tal
y como hemos mencionado anteriormente sustituiremos nuestra función Q mediante una
aproximación por redes neuronales.
Es importante además definir nuestra función de pérdida con la cual vamos a propagar hacía
atrás el error e ir aproximando los pesos cada vez más a los óptimos. Así la función de pérdida
nos queda como:

p(s′ , r|s, a) ′máx′ q∗ (s′ , a′ )) − Q(s, a))2 ]


X
L(θ) = E[(r + γ
a ∈A(s )
s′ ∈S,r∈R

Dentro de nuestro algoritmo además vamos a introducir una serie de mejoras para sacar el
máximo rendimiento.

8.3.1. Experience Replay

Para que el entrenamiento no se realizara con muestras de datos consecutivas utilizaron


un método llamado experience replay, consiguiendo reducir la correlación entre los datos
y minimizar la posibilidad de que el aprendizaje se quedase atascado en un mínimo local.
Consistía en almacenar en cada paso tuplas de la forma (s; a; r; s0) donde s es el estado
actual, a la acción tomada, r la recompensa obtenida y s0 el siguiente estado; y a la hora de
entrenar la red se utilizaba un conjunto de entrenamiento formado por varias de estas tuplas
seleccionadas de manera aleatoria de entre todas las almacenadas. De esta manera, la red

27
Kiril Morozov TFM

podía entrenar utilizando muestras en un orden distinto en el que ocurrieron. El número de


muestras almacenadas era limitado, de modo que cuando se alcanzaba el tamaño máximo
las más antiguas eran sustituidas por las nuevas, de manera que el conjunto estaba siempre
actualizado. Además, la posibilidad de utilizar una misma muestra en varios conjuntos de
entrenamiento aumentaba en gran medida la eficiencia de los resultados obtenidos.

8.3.2. Target Network

Para reducir el nivel de dependencia con los valores actuales de la red neuronal se introdujo
una segunda red llamada red de objetivos o target network, la cual era una copia de la red
original. La primera red se utilizaba para predecir el valor de la función-Q para el estado
actual, mientras que la segunda se utilizaba para predecir el valor del estado siguiente. A
diferencia de la red original, esta red de objetivos no se actualizaba de manera constante, sino
que igualaba el valor de sus parámetros a los de la red original después de que ésta se hubiera
entrenado con varios conjuntos de entrenamiento. La presencia de esta red proporcionaba
estabilidad a los valores predichos para los estados siguientes, lo que a su vez proporcionaba
también estabilidad para el aprendizaje.

8.3.3. E-Greedy Strategy

El dilema exploración-explotación es un problema muy general que se puede encontrar en


la mayor parte del proceso de toma de decisiones basado en datos. Explotación es cuando
siempre se elige la decisión óptima arrojada por el algoritmo, confiando siempre en que su
aprendizaje es ideal. Y la exploración es cuando no se toma la mejor acción posible si no que
se toma una aleatoria atendiendo al argumento de que aún no se ha entrenado lo suficiente
como para poder confiar al 100 % en la IA. Uno de los sesgos que pueden a aparecer en los
modelos de inteligencia artificial es que conforme el agente va aprendiendo, este tiende a
sobreestimar el valor de sus acciones, es decir, no siempre la mejor opción, la que maximiza
Q, es realmente la mejor en las etapas iniciales del aprendizaje. Confiar solo en la mejor
acción imposibilita al agente explorar el entorno.
Una de las soluciones propuestas a este problema es tomar decisiones aleatorias o no según un
cierto criterio. Muestreando un número aleatorio y comparándolo con una epsilon establecida
previamente. Así si el numero supera la epsilon se toma la acción óptima y si no una aleatoria.
El pseudo-código de dicha técnica quedaría así:

28
Kiril Morozov TFM

Figura 8: E-Greedy Strategy

Otra mejor a parte de epsilon greed, vendrá de la mano de epsilon decay. La justificación de
esto, es que lo interesante del dilema de exploración/explotación, sería que al principio del
entrenamiento la IA, tuviera una tendencia hacía la explotación para aprender lo suficiente
del entorno, mientras que una vez alcanzando el final la explotación adquiera un mayor peso.
Esto se consigue variando la epsilon anteriormente mencionada desde 1 (exploración máxima)
hasta un valor muy pequeño que le daría la prevalencia a la explotación. Esto se consigue
estableciendo un epsilon decay y actualizando la epsilon según la siguiente fórmula.

εnew ← εold αN

Donde alpha suele ser un número bastante pequeño como por ejemplo 0.98, para que el
decaimiento sea paulatino y N es el número del paso de la iteración. (No siendo la forma de
actualización anterior la única)

8.3.4. Hubber-Loss

Para poder actualizar nuestro modelo y calcular las perdidas, se precisa de una función de
pérdidas valga la redundancia. Hubber-Loss ha sido la función de perdidas adoptada en este
caso. Ésta se caracteriza por ser bastante menos sensible a los outliers que el error cuadrático
medio y es comúnmente usada en las regresiones ’robustas’.
Tiene la siguiente forma:

29
Kiril Morozov TFM

Figura 9: Función Hubber Loss

En general,La función de pérdida de Huber es una combinación de la función de error cua-


drático medio y la función de valor absoluto.
Resuelve el problema que aparece con el uso de MAE para entrenar redes neuronales con
grandes gradientes. El uso del descenso de gradiente puede hacer que se pierda el valor
mínimo al final del entrenamiento.

8.4. Double Deep-Q learning (DDQN)

Se sabe que muchas veces la arquitectura básica de DQN, tiende a sobre-entrenar y como
consecuencia sobre-estimar los Q-value (valores). Una explicación a este fenómeno podría
ser el hecho de que el agente elige la política óptima para cada acción. es decir, aquella que
maximiza Q. Como Q tiene mucho ruido, puede pasar que no siempre la mejor acción sea la
que maximiza Q. El problema a grosso modo se puede resumir por el hecho de que se esta
usando la misma red tanto para entrenar el modelo como para estimar la mejor política. Esto
se puede solucionar introduciendo una red paralela en nuestro modelo, esta es la innovación
en la técnica DDQN.
Por el hecho de usar dos redes distintas Q y Q’, el proceso de actualización cambia ligera-
mente, podemos ver dichas diferencias en la siguiente imagen:

30
Kiril Morozov TFM

Figura 10: DQN Algorithm

8.5. Deep Q Learning with fixed Targets (TDQN)

En este caso, al igual que el anterior, una única red neuronal que aproxima Q se desdobla en
dos, una red objetivo y otra de entrenamiento. Una de las redes neuronales, la target network,
fija sus pesos y actualiza la otra periódicamente. Esto es algo similar a decir que no vamos
a actualizar nuestra red objetivo cada vez que hagamos una acción en el entorno, porque la
dinámica se puede volver caótica, si no que se va a ir haciendo una serie de acciones y solo al
cabo de un tiempo decidiré aprender en mi red objetivo de esas acciones. La idea en definitiva
es muy similar a la de DDQN, solo que aquí las acciones y la evaluación se siguen haciendo
desde la misma red neuronal, mientras que en el caso de DDQN se desdobla la funcionalidad
de las dos redes. A grosso modo, en el caso de TDQN, una de las redes se usa para almacenar
lo aprendido para tomar las acciones correspondientes.
Podemos definir la variante TDQN de la siguiente forma:

1. Se desdoblan las dos redes neuronales en objetivo y la estándar

2. Se crea la función que actualiza los pesos de la red objetivo a partir de la estándar

3. Cada cierto periodo establecido como hiperparámetro se actualiza la red objetivo a


partir de la otra

31
Kiril Morozov TFM

9. Implementación

9.1. Herramientas

Como entorno y lenguaje de programación se ha usado Python. Python es un lenguaje de


programación interpretado cuya filosofía hace hincapié en la legibilidad de su código. Se trata
de un lenguaje de programación multiparadigma, ya que soporta parcialmente la orientación
a objetos, programación imperativa y, en menor medida, programación funcional.

Este lenguaje es uno de los más usados para la ciencia de datos y machine Learning e IA.
Tines una amplia comunidad e infinidad de librerías para todo tipo de aplicaciones.
Además se han usado las siguientes librerías:

Yahoo Finance, para la adquisición de datos Financieros

Tensorflow, Librería de Deep Learning para la generación de redes neuronales.

Pandas, Administración de colecciones de datos mediante el uso de Dataframes

Numpy, libreria para el cálculo matemático

Matplotlib, Seaborn, representación gráfica.

9.2. Algoritmo (Pseudocódigo)


Se presenta a continuación el pseudocódigo del algorítmo Deep-Q-learning básico.

32
Kiril Morozov TFM

Tenemos por otro lado el pseudo-código del Double Q learning que desdobla las redes neu-
ronales.

33
Kiril Morozov TFM

La variante T-DQN, es muy similar a DDQN, con la excepción de que se usa la misma red
objetivo tanto para calcular la pérdida como para evaluar la acción.

9.3. Diseño Experimental


Una vez hecha le revisión sobre las técnicas que vamos a poner en práctica, hemos de de-
terminar una serie de elementos importantes para nuestro diseño. En concreto, el espacio de
estados, el espacio de acciones y la forma en la que el agente interactuará con el entorno.

El espacio de acciones, será la tupla {1,2} con su correspondencia a {BUY,SELL}, es


decir, comprar o vender.

Para establecer el espacio de estados, se ha de hacer una ligera disquisición. Existe la posibi-
lidad de alimentar el modelo con el valor del día anterior a aquel en el que se quiera tomar
la decisión. Pero esta forma es muy limitada y perdemos de vista la propia naturaleza del
problema, que es aprender sobre una serie temporal suficientemente larga.
Por lo tanto se ha tomado la decisión de usar ventanas de N días de la propia serie temporal
como un estado n-esimo. Así por ejemplo si tenemos una serie temporal que comprende 500
días y hacemos ventanas de 10 días, tendremos en total 50 estados dentro de dicha serie
temporal.

Otra problemática a resolver es la gran divergencia que puede existir entre los valores de
un día a otro en los datos históricos. Nuestro objetivo no es hacer una regresión ya que
no necesitamos hacer una predicción exacta del valor de la serie el día siguiente. Buscamos
tomar la acción más acertada para maximizar la recompensa final. La idoneidad de la acción
viene determinada por la tendencia de la serie temporal que puede ser creciente, decreciente
o constante. Por lo tanto es lógico pensar que podemos alimentar el modelo con dichas
tendencias. Resolvemos este punto por el medio de la función sigmóide:

1
f (x) =
1 + e−x

que tiene la siguiente forma:

34
Kiril Morozov TFM

Figura 11: Función Sigmoide

Así en definitiva, nuestro espacio de estados es una ventana de N-días con las función
sigmoide de las diferencias de dos días consecutivos. Es decir, de forma más intuitiva,
tendencias diarias de entre (0,1). Donde 0 representa una tendencia muy creciente y 1
muy decreciente.

Podemos visualizar gráficamente la forma que tiene una ventana-estado de 10días:

Figura 12: Función Sigmoide

35
Kiril Morozov TFM

Otro elemento importante de nuestro diseño experimental es el modelo BASELINE que usa-
remos para hacer contrastes y como control para nuestros algoritmos. Se trata básicamente
de un agente que «samplea» de forma pseudoaleatoria una acción del espacio de acciones.
Y se almacenan tanto las recompensas como las acciones en un array histórico para poder
hacer comparativa con el modelo elaborado.
Además como otro elemento de control a la hora de evaluar un modelo sobre unos datos test,
podemos almacenar el conjunto de acciones ideales que se deberían de tomar para sacar el
rendimiento máximo en cada caso.

10. Resultados
Se han entrenado 3 modelos distintos Deep Q learning, Double Deep Q learning y Fixed
Target Deep Q learning con 50 epidsodios cada uno. En los tres casos las ventanas han sido
de 10 días.
Los datos con los que se ha entrenado han sido los últimos 5 años de valores de la empresa
AAPL, aunque a posteriori las evaluaciones se han hecho con otros mercados para no obtener
ua prueba sesgada. Ya que en última instancia busca que el algoritmo sea aplicable a cualquier
mercado.
Las pruebas se van a realizar con los datos históricos de la empresa facebook.
Para entrenar los tres modelos se han establecido los siguientes hiperparámetros.

γ=0.95 (para establecer importancia a las recompensas futuras)

εmax = 1,εmin = 0,01 ,εdecay = 0,995 Para el control de exploración/explotación a


medida que avanza el entrenamiento

lr = 0,001

10.1. DQN
Se ha entrenado el modelo durante 50 períodos. Una vez entrenado el modelo se ha eva-
luado con el dataset de Facebook obteniéndose la siguiente evolución en las recompensas
acumuladas:

36
Kiril Morozov TFM

Figura 13: Recompensa acumulada DQN

Podemos observar que la tendencia general como era de esperar es creciente.


Otra forma de evaluar el modelo es obteniendo cuáles serían las acciones ideales para sacar
el máximo rendimiento posible a una serie temporal.
Las consideraciones que se han tomado son: que si en el paso siguiente la serie es mayor que en
el anterior lo que debemos hacer en ’Comprar’ y con al contrario, si en el siguiente es menor,
lo que debemos hacer es ’vender’. Evidentemente si en algún momento la serie temporal se
mantiene constante y la diferencia es nula, se mantendría. Pero se ha observado que en los
dataset con los que se han realizado las pruebas no contienen este tipo de situaciones. Así
representando la matriz de confusión para nuestra prueba obtenemos:

37
Kiril Morozov TFM

Figura 14: Matriz de confusión DQN

Podemos obtener además una medida de bondad para nuestro modelo como sigue:

aciertos TP + TN
r= =
total TP + TN + FP + FN

Que si lo obtenemos para nuestro caso en concreto,

r = 0,361

Por último, para poder ver una forma intuitiva de aplicación de nuestro algoritmo en la
práctica, podemos visualizar como éste nos apoya en la toma de decisiones. Graficaremos
pues las decisiones que ha ido ofreciendo nuestro agente en cada paso.

38
Kiril Morozov TFM

Figura 15: Acciones tomadas por el agente

Como constraste, el agente aleatorio ha obtenido en esta prueba unos beneficios totales
de -611.009$ mientras el agente DQN ha obtenido unos beneficios totales de +336.51$. El
rendimiento del modelo ha sido de r=0.361, es decir 36,1 % de acierto.

10.2. DDQN
Como segundo modelo a evaluar vamos a usar el Double Deep Q Learning obteniéndose los
siguientes resultados en las recompensas acumuladas:

Figura 16: Recompensa acumulada DDQN

39
Kiril Morozov TFM

Se puede observar que el rendimiento es significativamente mayor que en el caso anterior


además de que el beneficio también lo es.
Si volvemos a obtener el rendimiento del modelo según la fórmula anterior:

r = 0,53

Visualizamos además la matriz de confusión de las decisiones tomadas frente a las ideales.

Figura 17: Matriz de confusión DDQN

Por último al igual que en el caso anterior representamos las acciones en cada paso de la
evaluación emitidas por el modelo.

40
Kiril Morozov TFM

Figura 18: Acciones tomadas por el agente

Como constraste, el agente aleatorio ha obtenido en esta prueba unos beneficios totales
de -263.8$ mientras el agente DDQN ha obtenido unos beneficios totales de +1157.63$.
El rendimiento del modelo ha sido de r=0.53, es decir 53 % de acierto.

10.3. T-DQN

Por último evaluamos el modelo restante con el mismo dataset en aras de prever cual de los
tres se comportará mejor:

Figura 19: Recompensa acumulada TDQN

41
Kiril Morozov TFM

En este caso volvemos a obtener, un beneficio mayor que el de DQN pero no tanto como en
el caso de DDQN.
Calculando de nuevo el rendimiento y visualizando la matriz de confusión obtenemos:

r = 0,5

Figura 20: Matriz de confusión TDQN

Como en los casos anteriores representamos las acciones tomadas por el agente:

42
Kiril Morozov TFM

Figura 21: Acciones tomadas por el agente TDQN

Como constraste, el agente aleatorio ha obtenido en esta prueba unos beneficios totales
de -34.6$ mientras el agente TDQN ha obtenido unos beneficios totales de +809.18$. El
rendimiento del modelo ha sido de r=0.50, es decir 50 % de acierto.

10.4. Comparativa de los 3 modelos


Con el fin de obtener una mayor claridad sobre el rendimiento de los problemas, se ha optado
por probar el funcionamiento de los mismo sobre un dataset distinto para eliminar cualquier
tipo de arbitrariedad en las conclusiones.
En este caso se han usado los datos de cotización de la empresa Microsoft.
El resumen de los resultados ha sido el siguiente:

DQN ha obtenido unos beneficios de +87.55$ con un rendimiento de r=0.38

DDQN ha obtenido unos beneficios de +416.42$ con un rendimiento de r=0.41

TDQN ha obtenido unos beneficios de +914.62$ con un rendimiento de r=0.47

En los tres casos como era de esperar se ha superado la marca del agente aleatorio.
Como último análisis podemos comparar el funcionamiento de los modelos en el caso de los
distintos datasets probados.
La primera prueba realizada con el datsset de Facebook arrojó los siguientes resultados.

43
Kiril Morozov TFM

Figura 22: Comparativa modelos FB

Podemos ver como en este caso el modelo con mejor respuesta ha sido el de DDQN.
La segunda prueba con el dataset de Microsoft tiene los siguientes resultados.

Figura 23: Comparativa modelos FB

En este caso el mejor modelo ha sido TDQN.

11. Futuros trabajos y mejoras


Como el objetivo principal del trabajo era demostrar la viabilidad en el uso de la IA en el
ámbito de la bolsa, no ha sido exhaustivo el estudio de las técnicas propias de éstos. La

44
Kiril Morozov TFM

ingesta de datos hacía el agente ha sido bastante reducida teniendo el cuenta solo el precio
histórico de cada serie temporal. Hay una infinidad de indicadores más como volumen, cierre,
apertura, etc que se podrían usar con el fin de afinar las decisiones y que el agente disponga
de mayor cantidad de información sobre la que aprender (entorno). Esta sería la primera vía
de investigaciones futuras posibles.
Por otro lado y debido a que en muchas ocasiones, incluida la del proyecto presente, los
modelos de IA precisan de gran capacidad de computación, no se ha probado la técnica de
hiperparameters tuning. Es decir, cabe en los futuros pasos, afinar los parámetros de epsilon
decay, learning rate, gamma y fijar aquellos valores que puedan arrojar los mejores resultados.

Una tercera vía de investigación sería, seguir implementando más modelos cuya base y fun-
damentos son las de DQN para solventar las problemática y de nuevo mejorar el rendimiento
de lo que ya tenemos. Existen variedad de variantes como por ejemplo Dueling-DQN, DDPG
(Deep Deterministic Policy Gradients), Actor- Critic, etc.

Por último una propuesta interesante, sería la de implementar dichos agentes como un servicio
web que podría en última instancia ser un apoyo para los corredores profesionales en la toma
de decisiones.

12. Conclusiones

Como valoración final del proyecto cabe destacar, que se ha conseguido el objetivo principal
que es implementar unos modelos basados en el reinforcement lerning para la toma de deci-
siones en el ámbito del trading. Además se puede aseverar que el resultado es satisfactorio
debido a que en todos los casos en los que se ha probado, los 3 modelos siempre han superado
a uno que toma decisiones sampleadas del espacio de acciones de forma aleatoria.
Se ha observado que como norma general el agente dqn ha sido el que menor rendimiento ha
obtenido en todas las pruebas, mientras los otros dos agentes dependiendo del dataset, han
ido alternando la bondad.

Se ha podido concluir también que en un entorno no-determinista, como lo es uno que invo-
lucra un proceso estocástico, nuestros agentes IA son capaces de tener un aprendizaje sobre
dicho entorno solo a partir de la experiencia y las recompensas obtenidas en forma de ganan-
cia acumulada. Esto no hace más que reforzar la idea de que el futuro de esta disciplina es
muy prometedor.

45
Kiril Morozov TFM

Referencias
[1] Van Hasselt, H., Guez, A., & Silver, D. (2016, March). Deep reinforcement learning with
double q-learning. In Proceedings of the AAAI conference on artificial intelligence (Vol.
30, No. 1).

[2] “Artificial Intelligence in Finance by Yves Hilpisch (O’Reilly). Copyright 2021 Yves
Hilpisch, 978-1-492-05543-3.”

[3] Apuntes UOC de la asignatura Reinforcement Leargning por Jordi Casas Roma

[4] Stock Trading with Recurrent Reinforcement Learning (RRL) CS229 Application Pro-
ject Gabriel Molina, SUID 5055783

[5] Dimitri Bertsekas, Dynamic programming and optimal control, vol. 1, 01 1995.

[6] W. Brock, J. Lakonishok, B. LeBaron, Simple technical trading rules and the stochastic
properties of stock returns, The Journal of finance 47 (5) (1992) 1731–1764.

[7] F. Allen, R. Karjalainen, Using genetic algorithms to find technical trading rules, Journal
of financial Economics 51 (2) (1999) 245–271.

[8] Stelios Bekiros, “Heterogeneous trading strategies with adaptive fuzzy actor-critic rein-
forcement learning: A behavioral approach,” Journal of Economic Dynamics and Control,
vol. 34, pp. 1153–1170, 06 2010.

[9] Lillicrap, T. P., Hunt, J. J., Pritzel, A., Heess, N., Erez, T., Tassa, Y., ... & Wiers-
tra, D. (2015). Continuous control with deep reinforcement learning. arXiv preprint
arXiv:1509.02971.

[10] Quang-Vinh Dang. Reinforcement Learning in Stock Trading. International Conference


on Computer Science, Applied Mathematics and Applications, 2019, Hanoi, Vietnam.
hal-02306522

[11] Jugadores Automáticos basados en Deep Reinforcement Learning. Trabajo Fin de Gra-
do. Rodrigo Bravo Antón ,Javier García Rodriguez ,David Alba Corral. Facultad de
Informática .Universidad Complutense de Madrid .Septiembre 2018

[12] L.Beam, Andrew. Deep Learning 101 - Part 1: History and Background. 2017.

[13] DeepMind, deepmind.com/research/alphago/

46
Kiril Morozov TFM

[14] AlphaGo Zero: Learning from Scratch. DeepMind, deepmind.com/blog/


alphago-zero-learning-scratch/.

[15] Palanisamy, Praveen. Hands-On Intelligent Agents With OpenAI Gym. Packt Publishing
Limited, 2018.

[16] Dutta, Sayon. Reinforcement Learning with TensorFlow. Packt Publishing Limited,
2018.

47

También podría gustarte