Predicción Bitcoin con IA Avanzada
Predicción Bitcoin con IA Avanzada
Facultad de Ingeniería
Federico González
Tutor: Dr. Pablo Rodríguez Bocca
Resumen
1. Introducción 15
1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2. Marco teórico 18
2.1. Bitcoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1. Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2. Transacciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.3. Direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.4. Anonimato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.5. Mercado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3
2.3.3. SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2. Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4. Soluciones evaluadas 56
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3. Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.2. SVR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.3. LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.4. GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.5. CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5. Pruebas realizadas 71
6. Resultados 75
6.2.1. SVR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.2. LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2.3. GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2.4. CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.3.1. SVR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.3.2. LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.3.3. GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4. CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7. Conclusiones 111
Bibliografía 115
Índice de cuadros
7
ÍNDICE DE CUADROS 8
11
ÍNDICE DE FIGURAS 12
4.2. El precio de Bitcoin antes (arriba) y después (abajo) del proceso de estan-
darización, con media 0 y varianza 1. . . . . . . . . . . . . . . . . . . . . . 60
ÍNDICE DE FIGURAS 13
4.3. Ejemplo de arquitectura de red neuronal con una capa LSTM de entrada,
una capa LSTM oculta, y una capa MLP oculta, utilizando 4 pasos previos
como entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4. Ejemplo de arquitectura de red neuronal con una capa CNN de tres canales
de entrada, una capa CNN oculta y una capa MLP oculta. . . . . . . . . . 64
4.5. Arquitectura de red neuronal CNN + LSTM con dos capas CNN, dos capas
LSTM y una capa MLP oculta. . . . . . . . . . . . . . . . . . . . . . . . . 65
6.6. LSTM (Una capa LSTM y una capa MLP) RMSE en función de la cantidad
de neuronas de la capa LSTM. . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.8. LSTM (Una capa LSTM de 16 neuronas y una capa MLP de 32 neuronas)
RMSE en función de la cantidad de pasos previos de entrada. . . . . . . . 84
6.9. CNN (Una capa CNN, una capa MLP de 32 neuronas, 16 pasos previos)
RMSE en función de la cantidad de filtros y el tamaño del kernel. . . . . . 86
6.20. Resultados de los mejores modelos CNN + LSTM de cada fase. . . . . . . 108
6.22. Arquitectura del mejor modelo hallado en las fases de pruebas. La red neu-
ronal consiste de 3 capas CNN, 3 capas LSTM y una capa MLP, utilizando
como características de entrada los datos base (Open, Close, High, Low,
Volume) en conjunto con los indicadores de análisis técnico BB, MACD,
EMA y RSI. TK = Tamaño del kernel, F = Número de filtros de salida, N
= Cantidad de neuronas de la capa. . . . . . . . . . . . . . . . . . . . . . . 110
14
Capítulo 1
Introducción
1.1. Motivación
15
1.2. Propuesta 16
1.2. Propuesta
Capítulo 1 - Introducción
Se define el alcance del problema a tratar, el conjunto de datos utilizado y las métricas
empleadas para la evaluación de los resultados.
Se definen las pruebas realizadas con el fin de optimizar cada tipo de modelo y evaluar el
desempeño de las soluciones propuestas.
Capítulo 6 - Resultados
Capítulo 7 - Conclusiones
Se exponen las conclusiones obtenidas a partir del desarrollo del proyecto y se consideran
posibles mejoras y adiciones a las soluciones propuestas.
Capítulo 2
Marco teórico
2.1. Bitcoin
Bitcoin [99] es la primera implementación del concepto presentado por Nick Szabo en
1997 [122] de un sistema de consenso distribuido, mutuamente confiable y sin interme-
diarios. Es utilizado como un sistema de dinero electrónico y es considerado la primer
criptomoneda descentralizada [111]. Está implementado como un protocolo de código
abierto y no está respaldado por el sistema financiero; en su lugar es sustentado por la
tecnología de blockchain. La unidad de cuenta [90] nativa del sistema de Bitcoin es “un
Bitcoin”, representado con los símbolos bursátiles de “BTC”, “XBT” o “B”
2.1.1. Blockchain
18
2.1. Bitcoin 19
Tamaño
Campo Descripción
(bytes)
Además, el cabezal de un bloque (Cuadro 2.1) incluye un hash criptográfico del cabezal del
bloque anterior del blockchain. De esta manera cada bloque está “encadenado” al anterior,
generando una cadena desde el “bloque génesis” (o “bloque cero”) hasta el bloque actual
(Figura 2.1). Este proceso asegura la integridad de toda la cadena. Aunque los bloques
no son inalterables, modificar uno implicaría regenerar todos los subsiguientes bloques de
la cadena, resultando computacionalmente inviable.
Cada nodo de la red mantiene una copia local de todo el blockchain, de manera que
la cadena es verificada de forma independiente y descentralizada. Cada transacción es
registrada localmente por cada nodo, y posteriormente transmitida al resto de la red.
Cada aproximadamente diez minutos, un nuevo conjunto de transacciones es aceptada por
la red e incluida en forma de un bloque en el blockchain, sin necesidad de la intervención
de una entidad supervisora centralizada.
2.1. Bitcoin 20
2.1.2. Transacciones
Una transacción es una transferencia de una cierta cantidad de Bitcoin de una o más
direcciones de entrada a una o más direcciones de salida. Para prevenir el problema del
2.1. Bitcoin 21
“doble gasto” [21] cada entrada de una transacción debe hacer referencia o bien a una
salida sin gastar de otra transferencia, o a una “generación”. Se le denomina “generación”
a la primer transferencia de un bloque del blockchain, generada al descubrirse un nuevo
bloque. Cuando la salida de una transacción es utilizada como la entrada de otra, esta debe
ser consumida en su totalidad. Es por esto que si se desea transferir una cantidad inferior a
la disponible en la salida, se debe realizar una transacción extra conocida como “cambio”,
mediante la cual la cantidad restante es devuelta a la dirección de origen (Figura 2.2).
Figura 2.2: “A” le envía 100 BTC a “C” y “C” genera 50 BTC. “C” envía 101 BTC a “D”, por
lo que debe generar una transacción de “cambio” por 49 BTC. “D le envía 101 BTC a alguien
más, pero la transacción no fue verificada aún. En este punto, sólo la salida de “D” y el cambio
de “C” pueden ser gastados en otra transacción.
2.1.3. Direcciones
2.1.4. Anonimato
Hasta recientemente, las transacciones realizadas con Bitcoin eran consideradas anónimas.
Sin embargo, en la actualidad, se utiliza el concepto de pseudo-anonimato [95, 18]. Si
bien no existe una asociación directa entre un Bitcoin y su(s) propietario(s), los flujos
de transacciones son globalmente visibles. En consecuencia, es estimado que la identidad
de casi el 40 % de los usuarios puede ser identificada, incluso en los casos donde los
usuarios hayan adoptado las medidas de privacidad recomendadas por Bitcoin [3]. Uno
de los aspectos generados por este pseudo anonimato es el uso de Bitcoin en posibles
actividades delictivas o secretas, así como dificultades para hacer cumplir las normativas
contra el lavado de dinero [104, 98].
2.1. Bitcoin 23
2.1.5. Mercado
Bitcoin tiene una volatilidad siete veces mayor que el oro, ocho veces mayor que S&P
500 y dieciocho veces mayor que el dólar estadounidense [133]. Estas características han
propiciado la investigación en el ámbito de las ciencias económicas, realizándose estudios
para analizar las características de Bitcoin como una mercancía financiera. En [30] y en [82]
se estudia su volatilidad utilizando modelos GARCH [14], concluyéndose que, en general,
Bitcoin tiene un lugar en los mercados financieros y en la gestión de carteras de valores,
ya que puede clasificarse como algo intermedio entre el oro y el dólar estadounidense en
una escala que va desde un medio puro de intercambio hasta una reserva de valor. En [6]
se analizó cómo se ajusta el mercado de Bitcoin a ciertas propiedades estadísticas que
son características de las monedas tradicionales. Se intentó ajustar la serie temporal del
precio de Bitcoin a las distribuciones paramétricas más populares dentro de las finanzas,
encontrándose el mejor ajuste utilizando una distribución hiperbólica generalizada [7].
Asimismo se concluye que una inversión en Bitcoin exhibe un nivel muy alto de volatilidad
2.1. Bitcoin 24
y a su vez un muy alto rendimiento. En [22] se aplica un enfoque similar, desde la óptica
de la estadística financiera, y se concluye que si bien el precio de Bitcoin exhibe un alto
nivel de volatilidad, este está disminuyendo con el tiempo. Se menciona una desconexión
entre el precio del Bitcoin y los fundamentos del mercado financiero. A su vez, se estudió
la memoria a largo plazo [8] de la serie temporal del precio, hallando un comportamiento
pro-cíclico (0.5 <H <1, H = Exponente de Hurst [48]) hasta el año 2014, momento en el
cual se quiebra la tendencia (H <0.5); sugiriendo una evolución a un mercado orientado
de manera más informacional. En [16] y [31] se estudia el potencial de Bitcoin como un
bien de inversión, alcanzando conclusiones contradictorias. En lo que ambos coinciden es
en que puede ser utilizado a modo de diversificar una cartera de valores, y que provee
cierta cobertura contra los movimientos diarios del dólar estadounidense y de la bolsa de
valores.
De manera análoga a la bolsa de valores, han habido numerosos intentos de predecir los
2.2. Series temporales 25
movimientos del precio de Bitcoin. Con tales fines se han utilizando técnicas tradicionales
de estadística sobre series temporales, así como modelos de aprendizaje automático. En
las siguientes secciones se realiza un repaso por los enfoques más relevantes.
Una serie temporal es una serie de datos indexados cronológicamente, comúnmente espa-
ciados uniformemente en el tiempo. Se define como x(t), t = 0, 1, 2, ... Donde t denota el
tiempo transcurrido, y x(t) es considerada como una variable aleatoria. El análisis de una
serie temporal involucra métodos para extraer información estadísticamente relevante y
otro tipo de información representativa sobre las relaciones subyacentes con el objetivo
de, entre otros, extrapolar o interpolar los datos y así predecir el comportamiento de la
serie en momentos no observados.
Los modelos de series temporales pueden tener diferentes formas y representar diversos
procesos estocásticos. Hay dos modelos de series temporales lineales ampliamente utiliza-
dos en la literatura, autorregresivos (AR) y de medias móviles (MA) [17, 45]. Combinando
ambos ha surgido la familia de modelos basados en el principio de Box-Jenkins, amplia-
mente conocidos como los modelos de Box-Jenkins, entre ellos: el modelo autorregresivo
de promedio móvil (ARMA) [17, 45, 25], el autorregresivo integrado de promedio móvil
(ARIMA) [17, 45, 25], el autorregresivo de promedio móvil fraccionalmente integrado (AR-
FIMA) [36] y el autorregresivo integrado de promedio móvil estacionario (SARIMA) [17].
variados, entre un MSE (Mean Squared Error) de 295,797 hasta 16,000. En [5] se utiliza
el mismo tipo de modelo pero realizando una predicción en una ventana de tiempo de un
mes reportando un MAPE (Mean Absolute Percentage Error) de 5.36 %.
Las variables de respuesta se pueden caracterizar como cuantitativas o categóricas. Las va-
riables cuantitativas toman valores numéricos, mientras que las categóricas toman valores
dentro de un conjunto de clases o categorías. Los problemas con una respuesta cuantita-
tiva son referidos como problemas de regresión mientras que los de respuesta categórica
se denominan como problemas de clasificación.
2.3. Aprendizaje automático 27
E = la información histórica del precio de Bitcoin y/o algún otro dato relacionado
relevante.
Además, para cada observación del conjunto de predictores xi , i = 1, ..., n (el precio de
Bitcoin y/o algún otro dato relevante), se cuenta con la respuesta yi numérica (el precio
de Bitcoin en una determinada ventana a futuro). Por lo que se está ante un caso de
aprendizaje supervisado sobre un problema de regresión.
El teorema de “No hay almuerzo gratis” [135, 134] (No free lunch theorem) establece que
no hay un modelo que funcione mejor para todo problema. Las hipótesis supuestas pa-
ra un buen modelo en el marco de un cierto problema pueden no ser válidas para otro
problema, por lo que es frecuente en el contexto de aprendizaje automático probar varios
modelos y encontrar el que mejor funcione para un problema en particular. Esto es espe-
cialmente cierto en el aprendizaje supervisado; donde comúnmente se utiliza la validación
o validación cruzada para evaluar la capacidad predictiva de un conjunto de modelos de
complejidad variable. Dependiendo del problema, el “mejor” modelo estará determinado
por una combinación de factores tales como velocidad, precisión o complejidad.
2.3. Aprendizaje automático 28
Aún siendo uno de los enfoques más simples, no deja de ser de los más útiles y ampliamente
utilizados en el campo del aprendizaje automático supervisado. La regresión lineal simple
asume que hay una relación aproximadamente lineal entre un predictor X y la variable de
respuesta Y:
X ≈ β0 + β1 Y
Los algoritmos que utilizan regresión lineal, deben hallar los parámetros β̂0 y β̂1 que
“mejor” aproximen a la función real. xi ≈ βˆ0 + βˆ1 yi para i = 1, ..., n. En otras palabras,
se desea obtener la recta de término independiente βˆ0 y pendiente βˆ1 tal que esté lo más
“cerca” posible de todos los puntos del conjunto de datos. En este contexto, el concepto
de distancia puede ser definido de varias formas, una de las definiciones más aplicadas es
la de mínimos cuadrados (Figura 2.4).
Figura 2.4: Aproximación de un conjunto de datos por regresión lineal utilizando mínimos
cuadrados (Fuente: [79]).
Sea ŷi = βˆ0 +βˆ1 xi la predicción para Y basada en el valor i-ésimo de X. Entonces ei = yi −ŷi
representa el i-ésimo residual: esto es, la diferencia entre el i-ésimo valor de respuesta
2.3. Aprendizaje automático 29
observado y el i-ésimo valor de respuesta predicho por el modelo lineal. Se define la suma
residual de cuadrados (RSS) como:
Se desea hallar entonces los βˆ0 y βˆ1 que minimicen el RSS (Figura 2.5), se puede demos-
trar [79] que estos valores son:
Pn
(x − x̄)(yi − ȳ)
Pn i
βˆ1 = i=1 2
i=1 (xi − x̄)
βˆ0 = ȳ − βˆ1 x̄
Figura 2.5: Contorno y gráfico tridimensional del RSS en función de los parámetros β0 y β1
para el conjunto de datos de la Figura 2.4 (Fuente: [79]).
La regresión lineal simple resulta útil para estudiar la respuesta en base a un único pre-
dictor. Sin embargo, se puede generalizar el enfoque al caso de múltiples predictores. El
modelo en el caso de regresión lineal múltiple con p predictores queda expresado como:
Y = β0 + β1 X1 + β2 X2 + ... + βp Xp +
2.3. Aprendizaje automático 30
Al igual que en el caso de regresión lineal simple, se utilizan los mínimos cuadrados para
encontrar los βˆ0 , βˆ1 ...βˆp que mejor se ajusten a los datos (Figura 2.6).
Figura 2.6: En el caso de dos predictores y una respuesta, la linea de regresión se convierte en
un plano que minimiza la suma de los cuadrados de las distancias verticales entre el plano y cada
observación (Fuente: [79]).
2.3.3. SVM
El algoritmo implementado por las SVM es una generalización no lineal del “Algoritmo de
retrato generalizado” desarrollado durante los años sesenta [129]. No fue hasta la década
de los noventa cuando alcanzó su presente forma, al ser mayormente estudiado en los
laboratorios de AT&T [15, 43, 26, 29]. Posteriormente, con rapidez se convirtió en uno
de los algoritmos que mejor se desempeñaba en la tarea de clasificación de objetos y
OCR [113, 12]. Originalmente concebido para problemas de clasificación, el método fue
2.3. Aprendizaje automático 31
Dado un conjunto de datos (x1 , y1 ), ..., (xn , yn ) donde xi ∈ Rl denota al vector de predic-
tores e yi ∈ R a la correspondiente variable de respuesta, el objetivo es hallar una función
f (x) tal que tiene a lo sumo una desviación ε de la variable de respuesta yi para todo el
conjunto de datos y tal que la función sea lo más “plana” posible.
En la versión lineal:
f (x) = hw, xi i + b
Donde h·, ·i denota el producto escalar, y “planitud” en este caso implica un w pequeño.
Es decir, se busca una f (x) donde se minimice la norma de w, 21 ||w||2 , sujeto a:
yi − hw, xi i − b ≤ ε
hw, xi i + b − yi ≤ ε
No siempre es posible encontrar tal función, por lo que se introducen variables de holgura
ξi , ξi∗ (Figura 2.7) de forma que el problema queda formulado como:
Minimizar:
l
1 X
||w||2 + c (ξi + ξi∗ )
2 i=1
2.3. Aprendizaje automático 32
Sujeto a:
yi − hw, xi i − b ≤ ε + ξi
hw, xi i + b − yi ≤ ε + ξi∗
ξi , ξ ∗ ≥ 0
i
Se puede demostrar [116] que el problema se puede reformular de tal manera que w queda
expresado como una combinación lineal de los predictores xi :
l
X
w= (αi − αi∗ )xi
i=1
l
X
f (x) = (αi − αi∗ )hxi , x + bi
i=1
2.3. Aprendizaje automático 33
− 1 Pl ∗ ∗
i,j=1 (αi − αi )(αj − αj )hxi , xj i
2
maximice:
−ε li=1 (αi − αi∗ ) + li=1 yi (αi − αi∗ )
P P
Pl (αi − α∗ ) = 0
i i
sujeto a:
αi , αi∗ ∈ [0, C]
El algoritmo puede extenderse a casos no lineales, es decir, donde la relación entre los
predictores y la variable no se ajustan a una función lineal hw, xi i + b ≈ yi . En este caso
se utiliza el “Método Kernel” [2].
Figura 2.8: Método de Kernel. φ(x, y) = (x, y, x21 + x22 ), k(x, y) = hφ(x), φ(y)i (Fuente: [132]).
De esta forma, el método se puede generalizar a casos no lineales, donde w queda expresado
como:
l
X
w= (αi − αi∗ )φ(xi )
i=1
2.3. Aprendizaje automático 34
y la función f como:
l
X
f (x) = (αi − αi∗ )k(xi , x) + b
i=1
Una función de kernel comúnmente empleada para SVR, es la RBF (Radial Basis Fun-
0 kx−x0 k2
ction) [130]: K(x, x ) = exp − 2σ2
Las redes neuronales artificiales (ANN) son sistemas vagamente inspirados por las redes
neuronales biológicas (Figura 2.9). Una red neuronal en sí misma no es un algoritmo, sino
un marco para que los algoritmos de aprendizaje automático procesen entradas de datos
complejos. En la década de 1940, D. O. Hebb [44] concibió una hipótesis de aprendizaje
basada en el mecanismo de la plasticidad neuronal, conocido como “aprendizaje de Hebb”,
una forma de aprendizaje no supervisado. En las siguientes décadas, investigadores co-
menzaron a aplicar estas ideas a modelos computacionales. Hasta que en 1958 [109], se
ideó el perceptrón, un algoritmo para el reconocimiento de patrones. Las primeras redes
funcionales multi-capa fueron publicadas en 1965 [78], aunque su investigación se estancó
luego de que un estudio sobre aprendizaje [96] descubrió dos problemas clave con este
enfoque: los perceptrones eran incapaces de procesar el circuito lógico or, y la falta de
poder computacional para soportar el procesamiento necesario para utilizar grandes redes
neuronales. Un desencadenante clave para el interés renovado en las redes neuronales y
el aprendizaje fue el algoritmo de “backpropagation” [131], el cual resolvió efectivamente
el problema del or al permitir el entrenamiento de redes multi-capa de forma factible y
eficiente.
2.3. Aprendizaje automático 35
Figura 2.9: Neurona biológica y su correspondencia con una neurona artificial de una ANN.
Una ANN se basa en una colección de nodos interconectados denominados neuronas ar-
tificiales. Cada conexión, como las sinapsis en un cerebro biológico, puede transmitir una
señal de una neurona artificial a otra. Una vez recibida, la señal es procesada y poste-
riormente transmitida a neuronas artificiales adicionales. Generalmente, cada señal es un
número real, y la salida de cada neurona artificial se calcula mediante alguna función no
lineal de la suma de sus entradas. Las conexiones entre las neuronas artificiales se llaman
bordes. Las neuronas y los bordes artificiales suelen tener un peso que se ajusta a medida
que avanza el aprendizaje, aumentando o disminuyendo la intensidad de la señal de cada
neurona. Típicamente, las neuronas artificiales se agregan en capas, de forma que cada
capa puede realizar diferentes tipos de transformaciones en sus entradas. Las señales via-
jan desde la primera capa (la capa de entrada) hasta la última capa (la capa de salida),
potencialmente después de atravesar cada una de ellas varias veces.
2.3. Aprendizaje automático 36
Perceptrón
El perceptrón [108] es el modelo más simple de red neuronal, una red constituida por una
capa de entrada y un único valor de salida. Esta salida se puede formular como:
Xn
o = ϕ( wk xk )
k
n
X
oj = ϕ( wkj ok )
k=1
Aprendizaje
Antes de entrenar la red, los pesos wi son inicializados con valores aleatorios. Posterior-
mente, utilizando el conjunto de datos de entrenamiento, los pesos deben ser actualizados
para que la red genere la salida deseada. Con tales fines se utiliza el algoritmo de backpro-
pagation, método mediante el cual se calcula el gradiente de la función de pérdida respecto
a los pesos de la red. Para cada dato del conjunto de entrenamiento, los pesos de la red
son actualizados utilizando el gradiente estocástico de descenso:
∂E
∆wij = −η
∂wij
Figura 2.11: Backpropagation con gradiente estocástico de descenso en una neurona con dos
pesos. Según los valores iniciales y la tasa de aprendizaje, el gradiente estocástico de descenso
puede converger a mínimos locales de E distintos. (Fuente: [119])
El aprendizaje profundo se refiere a la formación de redes neuronales con más de dos capas
ocultas. En el pasado, entrenar tales redes se hacía virtualmente imposible a medida que
se incrementaba la cantidad de capas. Los dos desafíos más grandes se conocieron como
los problemas de “explosión del gradiente” y “desvanecimiento del gradiente”. Si bien el
problema de la explosión del gradiente fue más fácil de sobrellevar aplicando técnicas
simples como el “recorte de gradiente” y la regularización L1 o L2 [125], el problema del
desvanecimiento del gradiente se mantuvo intratable durante décadas. En el peor de los
casos, este problema impide completamente que una red neuronal continúe aprendiendo
2.3. Aprendizaje automático 39
durante el entrenamiento.
La utilización de funciones de activación tradicionales durante backpropagation, como la
función de tangente hiperbólica, cuyo gradiente está en el rango (0, 1), tiene el efecto de
multiplicar estos pequeños números para calcular los gradientes de las capas anteriores.
Esto implica que el gradiente disminuye exponencialmente en la cantidad de capas. En
consecuencia las capas anteriores entrenan muy lentamente, si es que lo hacen en absoluto.
Sin embargo, las implementaciones modernas de los algoritmos de aprendizaje de redes
neuronales permiten entrenar efectivamente redes neuronales muy profundas (hasta cien-
tos de capas). Esto se debe a una combinación de varias mejoras, entre ellas las funciones de
activación de la familia ReLU, arquitecturas de redes más sofisticadas (ver secciones 2.3.6-
2.3.8), así como a modificaciones avanzadas del algoritmo de descenso de gradiente. Por
lo tanto, hoy en día, dado que los problemas de desvanecimiento y explosión del gradiente
están mayormente resueltos (o su efecto disminuido), el término “aprendizaje profundo”
se refiere al entrenamiento de redes neuronales utilizando el juego de herramientas algo-
rítmico y matemático actual, independientemente de la profundidad de la red neuronal.
Las redes neuronales convolucionales (CNN) [88] son un tipo de red neuronal inicialmente
concebido para el reconocimiento de imágenes. Las redes neuronales multi-capa conven-
cionales (MLP), si bien pueden ser utilizadas satisfactoriamente para el procesamiento de
imágenes, sufren de la “maldición de la dimensión” [102] (también conocido como efecto
Hughes) al intentar procesar imágenes de alta resolución. Además, dicha arquitectura de
red no tiene en cuenta la estructura espacial de los datos, ya que trata los píxeles de en-
trada que están muy separados de la misma manera que los píxeles que están muy juntos.
De tal forma se ignora por completo la referencia de localidad de los datos de imagen,
tanto computacional como semánticamente.
Las redes neuronales convolucionales mitigan estos desafíos explotando la localidad es-
2.3. Aprendizaje automático 40
Capa de convolución
Figura 2.12: Características capturadas por distintos filtros aplicados en la capa de convolución
(Fuente: [84]).
El relleno (conocido como “padding”) permite obtener una matriz de salida más grande
que la original; es el ancho del cuadrado de celdas adicionales con las que se rodea la
imagen antes de procesarla con el filtro. Las celdas agregadas por el relleno generalmente
contienen ceros.
Pooling
Luego de cada capa de convolución se suele agregar una capa de pooling (o de reducción
de muestreo). Estas capaz permiten reducir el número de parámetros cuando las imágenes
son demasiado grandes, disminuyendo la dimensionalidad de cada mapa pero conservan-
do la información importante. En general, se utiliza la operación de “max-pooling”, la
cual toma el elemento más grande del mapa de características; se ha demostrado [112]
experimentalmente que esta operación genera mejores resultados que tomar el promedio
(“average-pooling”) o la suma (“sum-pooling”).
Figura 2.13: Arquitectura de una red convolucional para procesamiento de imágenes. (Fuen-
te: [91])
Las CNN han reportado excelentes resultados en cuanto a precisión y velocidad en siste-
mas de reconocimiento de imágenes, tanto de detección de objetos, reconocimiento facial,
o reconocimiento a gran escala; alcanzando niveles de precisión similares a los del ser
humano [24, 85, 92, 86, 49, 123]. Asimismo, se han utilizado con excelentes resultados a
problemas con entradas unidimensionales, tales como interpretación del lenguaje natu-
ral [115], reconocimiento de voz [1] o predicciones en series temporales [137].
En [94], se emplea una red convolucional que toma como entrada una matriz bidimensional
generada a partir de información de índices financieros relacionados con el precio de
Bitcoin, y produce como salida la dirección pronosticada del movimiento diario del precio.
Se compara su precisión con respecto a modelos MLP y SVM, obteniendo en todos los
casos resultados significativamente superiores a través del modelo CNN.
Las redes neuronales recurrentes (RNN) [110] son una familia de redes neuronales conce-
bidas para el procesamiento de datos secuenciales. Estas redes son capaces de escalar a
secuencias mucho más largas de lo que sería práctico para redes sin especialización basada
en secuencias. La mayoría de las redes recurrentes también pueden procesar secuencias de
longitud variable.
Cada unidad u de una capa recurrente l tiene un estado con valores reales hl,u ; dicho
estado puede ser considerado como la memoria de la unidad. En estas redes, cada unidad
en cada capa l recibe dos entradas: un vector de estados de la capa anterior l − 1 y el
vector de estados de esta misma capa del paso temporal anterior (Figura 2.14).
2.3. Aprendizaje automático 44
Figura 2.14: A) Perceptrón. B) Capa de red neuronal recurrente, en cada paso la salida depende
no sólo de la entrada sino del estado h calculado en base al paso temporal previo.
Dado un conjunto de datos de entrada [x1 , x2 ...xt−1 , xt , xt+1 ...], donde xi representa un
vector de datos de entrada para el i-ésimo paso de una serie temporal, cada vector de
datos es leído por la red neuronal secuencialmente en el orden de los pasos del tiempo.
El estado htl,u en cada paso de tiempo t en cada unidad u de cada capa l se calcula como:
Es decir, el estado resultante será una combinación lineal del vector de datos de entrada
con el vector del estado del paso anterior de la misma capa, luego de aplicarle la corres-
pondiente función de activación gl . Al igual que en las MLP, estas capas se pueden apilar
generando arquitecturas de redes neuronales profundas.
Uno de los principales problemas que enfrentan las RNN es el manejo de dependencias a
largo plazo. A medida que aumenta la longitud de la secuencia de entrada, los vectores del
comienzo de la secuencia tienden a ser “olvidados”, debido a que el estado de cada unidad
2.3. Aprendizaje automático 45
se ve afectado significativamente por los vectores leídos más recientemente. Esto puede
causar que se pierdan vínculos de causa-efecto entre datos distantes en secuencias largas.
Las Gated Recurrent Units (GRU) [20] intentan resolver este problema, almacenando
información en su “memoria” a largo plazo para uso futuro. La lectura, escritura y borrado
de la información almacenada en cada unidad es controlada por funciones de activación
que toman valores en el rango (0, 1), la RNN puede “leer” la secuencia de entrada y decidir
en cada momento si mantener información específica sobre cada vector. Esa información
puede ser utilizada posteriormente por el modelo para procesar vectores ubicados en
el final de la secuencia. Esas decisiones son entrenables y se implementan a través del
concepto de “puertas”. Hay varias arquitecturas de este tipo de unidades, generalmente
compuestas de una “puerta de actualización” y una “puerta de olvido” (Figura 2.15).
Figura 2.15: GRU. La salida de la unidad en el paso t está determinado por la entrada x, el
estado del paso anterior ht−1 , el estado actual h0 , la puerta de olvido r y la puerta de actualización
z.
zt = σg (Wz xt + Uz ht−1 + bz )
rt = σg (Wr xt + Ur ht−1 + br )
2.3. Aprendizaje automático 46
Al igual que las GRU, las Long Short Term Memory Networks (LSTM) [46, 42] tienen el
objetivo de modelar las dependencias a largo plazo de manera efectiva. Las LSTM pueden
verse como una versión modificada de las GRU, donde se incorporan dos puertas más,
una de entrada y una de salida. La puerta de entrada regula la proporción del estado de la
memoria actual que se debe mantener y la puerta de salida regula la cantidad del estado
de la memoria que se debe exponer a las siguientes capas de la red. Las LSTM controlan
la exposición del contenido de la memoria mientras que las GRU exponen todo el estado
de la memoria a las otras unidades en la red.
Una celda LSTM se puede expresar como:
ft = σg (Wf xt + Uf ht−1 + bf )
it = σg (Wi xt + Ui ht−1 + bi )
ot = σ g (Wo xt + Uo ht−1 + bo )
ht = ot ◦ σh (ct )
Las LSTM pueden ser apiladas en arquitecturas de RNN profundas, y como tales han
reportado excelentes resultados en tareas como reconocimiento del habla [39, 38], recono-
cimiento de escritura a mano [40, 41] y predicciones en series temporales [37]. Asimismo,
las redes neuronales basadas en GRU han reportado resultados similares a las LSTM [23,
80], con la ventaja de implicar una complejidad computacional inferior.
En [126], se compara la efectividad de utilizar modelos LSTM y GRU para realizar predic-
ciones diarias sobre el precio de Bitcoin, reportándose resultados similares (RMSE=272.96
y RMSE=274.02 respectivamente), aunque se destaca el menor tiempo computacional de-
mandado para el entrenamiento de la red neuronal basada en GRU. Sobre el mismo
problema, en [81] se realiza un estudio comparativo entre un modelo estadístico ARIMA
y una red neuronal recurrente con tres capas LSTM. Los resultados arrojan una precisión
significativamente superior para el modelo LSTM (RMSE=93.27 contra RMSE=1146.07).
Se han empleado con éxito redes neuronales híbridas que combinan distintos tipos de
capas en su arquitectura. Una posible combinación que ha reportado prometedores re-
sultados en una variedad de aplicaciones, es la conjunción de capas convolucionales con
capas recurrentes. Se han utilizado con gran éxito, por ejemplo, en el procesamiento de
vídeo [120, 35], en este caso aprovechando la capacidad de las CNN para la interpretación
de imágenes, y de las LSTM para procesar secuencias (en este caso, de fotogramas). Análo-
gamente, se han utilizado con éxito para realizar pronósticos sobre series temporales [47,
136], de forma que las capas convolucionales realizan la extracción de características de
alto nivel de la serie temporal, y el resultado en forma de secuencia es interpretado por
2.3. Aprendizaje automático 48
capas LSTM.
Capítulo 3
3.1. Introducción
La serie temporal del precio de Bitcoin es una variable altamente compleja, con un alto
nivel de volatilidad y una innumerable variedad de factores que inciden en su valor. En este
contexto, se plantea evaluar la capacidad de distintos modelos de aprendizaje automático
en la tarea de realizar pronósticos de corto plazo sobre el precio de Bitcoin para un
determinado horizonte a futuro. Los modelos deberán aprender a partir de la información
histórica, y ser capaces de generalizar para predecir su valor en momentos no observados
durante el entrenamiento.
3.2. Datos
49
3.2. Datos 50
Cuadro 3.1: Información incluida en cada punto del conjunto de datos fuente.
Figura 3.1: Representación gráfica de un día del precio de Bitcoin en formato de vela, agregado
por hora. Si el precio de apertura está por encima del precio de cierre, se dibuja una vela de color
rojo y de lo contrario de color negro. Las líneas superiores e inferiores, conocidas como sombras,
colas o mechas, representan los rangos de precios máximo y mínimo dentro del periodo de tiempo
correspondiente.
Cuadro 3.2: Cinco minutos de la serie temporal conformada por el conjunto de datos fuente
del histórico de Bitcoin.
q
RM SE = (y − o)2
incertidumbre. Para ello, se calculó la diferencial discreta de primer orden sobre la serie
temporal del precio por hora durante el mes de diciembre:
diff(c) = ct − ct−1
Hallando los mínimos y máximos de esta nueva serie, se identifican los momentos donde
ocurrieron las mayores caídas y subidas del precio por hora respectivamente (Figura 3.2).
3.3. Método de evaluación 54
Se consideran las 5 mayores caídas y subidas (en adelante referidos como “anomalías”),
alrededor de los cuales serán evaluados los modelos utilizando la métrica de RMSE; dicho
resultado será referido como RMSEA.
Por último, se desea evaluar la capacidad de los modelos de predecir la “dirección” del
cambio de precio, es decir, si va a subir o bajar en el horizonte considerado. Dado el precio
de cierre ct , su correspondiente predicción yt , y la cantidad de puntos n del periodo de
evaluación, se calcula el porcentaje de aciertos de la dirección del movimiento de precio
(de ahora en más, “DA”) como:
Pn 1 si (ct > ct+2hr y ct > yt ) ó (ct ≤ ct+2hr y ct ≤ yt )
t
0 en otro caso.
DA = 100 ∗
n
Soluciones evaluadas
4.1. Introducción
Siguiendo la premisa del teorema de “no hay almuerzo gratis”, se evalúa y compara el
desempeño de una variedad de modelos de aprendizaje automático, con el objetivo de
obtener las mejores predicciones de acuerdo a las métricas definidas.
Todos los modelos y el framework de pruebas fueron desarrollados en Python 3.6 [105],
utilizando los wrapper provistos por Keras [83] de las implementaciones de redes neuro-
nales de TensorFlow [124]. Para los modelos SVR se utilizó la implementación de Scikit-
Learn [114].
Para cada tipo de modelo considerado, se busca optimizar sus correspondientes hiper-
parámetros de forma de maximizar la precisión de las predicciones generadas. Parte del
56
4.2. Procesamiento de datos para aprendizaje supervisado 57
Una vez acotado el conjunto de hiperparámetros óptimos de cada modelo, se propone me-
jorar la precisión mediante la utilización de características generadas en base a indicadores
de análisis técnico. Posteriormente, y con el mismo objetivo, se plantea la generación de
datos de entrenamiento adicionales obtenidos a partir de la información del mercado de
otras criptomonedas.
sado
Con el fin de plantear el problema como uno de aprendizaje supervisado, se debe generar
un conjunto de tuplas de la forma (Xi , yi ), tal que Xi representa el vector de las i-ésimas
variables de entrada e yi la i-ésima correspondiente variable de respuesta. En este caso,
la variable de respuesta yt corresponderá al precio de cierre de Bitcoin ct en un momento
t dado. Como variables de entrada se utilizan los datos disponibles hasta 2 horas previas
al precio de clausura a pronosticar, incluyendo hasta n puntos de datos correspondientes
a n pasos temporales previos de la serie temporal (de ahora en más referidos como pasos
previos), siendo n uno de los hiperparámetros que se busca optimizar en la construcción
de los modelos.
El conjunto de datos queda formulado como un conjunto de tuplas (Xt , yt ) tal que:
Xt = (Xt−2hr−(n−1) , Xt−2hr−(n−2) , ..., Xt−2hr−1 , Xt−2hr )
y =c
t t
granularidad de 1 hora.
Figura 4.1: Generación de una tupla X, y para el aprendizaje supervisado, utilizando el precio
de cierre como única variable de entrada, con n = 4 pasos previos de granularidad 1 hora.
Granularidad
Los datos fuente contienen información agregada por minuto. Parece excesivo emplear
una granularidad tan fina habiendo definido el horizonte de predicción en 2 horas. Si
bien la elección de la granularidad a utilizar posiblemente implique un impacto en el
rendimiento de los modelos, se opta por no sobrecargar la (ya suficientemente extensa)
lista de hiperparámetros a optimizar, y se define emplear una granularidad de una hora
para todos los casos. Esto representa una reducción de la cantidad de puntos de datos
del conjunto de datos fuente, pasándose de un total de 2.430.000 de puntos del conjunto
original a 43.200 puntos agregados por hora, de los cuales 720 puntos correspondientes al
mes de diciembre de 2018 serán empleados como conjunto de evaluación, y los restantes
42.480 como conjunto de entrenamiento.
4.2. Procesamiento de datos para aprendizaje supervisado 59
Estandarización
Antes de utilizar los datos como conjunto de entrenamiento, cada una de las variables de
entrada, así como la respuesta de salida son estandarizados de forma que:
X − E[X]
X̂ =
σ(X)
Figura 4.2: El precio de Bitcoin antes (arriba) y después (abajo) del proceso de estandarización,
con media 0 y varianza 1.
4.3. Modelos 61
4.3. Modelos
Con el objetivo de obtener una idea de la dificultad del problema planteado, se define un
modelo base ingenuo que asume que el precio se va a mantener constante. Para todo el
conjunto de prueba, el modelo generará como resultado una predicción tal que:
ct = ct−2hr
4.3.2. SVR
Los modelos basados en el algoritmo de SVR son relativamente simples pero en gene-
ral efectivos. Se implementó un modelo utilizando este algoritmo, proveyendo un robusto
punto de partida y de referencia antes de considerar modelos más sofisticados. En parti-
cular, se utilizaron implementaciones de SVR con funciones de kernel lineal, polinomial y
RBF.
4.3.3. LSTM
Las redes neuronales recurrentes están especialmente equipadas para procesar datos se-
cuenciales, tal como lo es el caso de la serie temporal del precio de Bitcoin. Dentro de esta
familia de redes neuronales, las LSTM han reportado excelentes resultados en el procesa-
miento de series temporales, por lo que resulta natural aplicar este tipo de arquitectura
al presente problema.
Se propone utilizar una red neuronal con múltiples capas LSTM, seguidas de una capa
de MLP y una capa de salida. La cantidad de capas y de neuronas de cada capa son
considerados como hiperparámetros a optimizar.
4.3. Modelos 62
La Figura 4.3 ilustra un ejemplo de red neuronal con esta arquitectura, donde las caracte-
rísticas de entrada correspondientes a 4 pasos previos de información son secuencialmente
alimentadas a una capa LSTM de entrada, y su correspondiente salida es posteriormente
procesada por una capa LSTM oculta adicional, una capa oculta MLP y una capa de
salida.
Figura 4.3: Ejemplo de arquitectura de red neuronal con una capa LSTM de entrada, una capa
LSTM oculta, y una capa MLP oculta, utilizando 4 pasos previos como entrada.
4.3.4. GRU
Las redes neuronales GRU pueden considerarse una versión simplificada de las LSTM,
reportando incluso mejores resultados en una variedad de contextos. Se utilizó el mismo
tipo de arquitectura empleado para el modelo LSTM (Figura 4.3) pero sustituyendo las
4.3. Modelos 63
4.3.5. CNN
La Figura 4.4 muestra un ejemplo de este tipo de modelo, donde las series temporales
conformadas por n pasos de cada característica de entrada, son procesadas como canales
independientes por una secuencia de una o más capas convolucionales, seguidas de una
capa MLP oculta precediendo a la capa de salida.
4.3. Modelos 64
Figura 4.4: Ejemplo de arquitectura de red neuronal con una capa CNN de tres canales de
entrada, una capa CNN oculta y una capa MLP oculta.
Se propone utilizar una arquitectura de red neuronal compuesta por una combinación
de capas CNN y LSTM. La entrada es agrupada en intervalos de tiempo, los cuales son
procesados por una o más capas CNN y el resultado es luego alimentado de manera se-
cuencialmente ordenado a una o más capas LSTM (Figura 4.5). La intención de esta
arquitectura es la de explotar las capacidades específicas de cada uno de estos tipos de
capa. Las CNN son las encargadas de proveer una interpretación de alto nivel de pequeños
intervalos de tiempo de las variables de entrada. Sobre esta información pre-interpretada,
se utilizan las capacidades de las capas LSTM para procesar datos secuencialmente orde-
nados. Seguidamente, antes de la capa de salida, se incluye una capa MLP oculta.
4.3. Modelos 65
Figura 4.5: Arquitectura de red neuronal CNN + LSTM con dos capas CNN, dos capas LSTM
y una capa MLP oculta.
Hay una gran cantidad de hiperparámetros a considerar para esta arquitectura. Además
del número de neuronas y capas, será relevante escoger un adecuado tamaño para los
intervalos procesados por las CNN, así como de la cantidad de pasos que serán alimentados
a las capas LSTM.
4.4. Generación de características de análisis técnico 66
Además de las variables base incluidas en los datos fuente, se calcularon e incluyeron
indicadores basados en fundamentos de análisis técnico. Este tipo de indicadores son
usualmente utilizados por corredores de bolsa en el comercio de la bolsa de valores (o más
recientemente, en el comercio de criptomonedas). Todos los indicadores son calculados a
partir de los datos base, e incluyen características que capturan propiedades de tendencia,
momentum, volumen y volatilidad. A continuación se listan la totalidad de los indicadores
considerados, incluyendo en cada caso una correspondiente referencia de relevancia.
Tendencia
Momentum
Volumen
Volatilidad
Estos indicadores adicionan una cierta pre-interpretación a los datos base, al tiempo que
también permiten incluir información más lejana en el tiempo de forma resumida. En
la Figura 4.6 se muestran gráficamente las series temporales generadas por dos de estos
indicadores, promedio móvil exponencial de las últimas 36hrs (EMA36) y bandas de Bo-
llinger. Se propone utilizar estos indicadores como características de entrada adicionales,
parte del análisis a desarrollar será determinar las combinaciones de estos que produzcan
los mejores resultados.
Figura 4.6: Indicadores de análisis técnico, BB (Bollinger Bands) y EMA36 (36hr. Exponential
Moving Average)
4.5. Generación de datos de entrenamiento adicionales 69
Bajo la hipótesis de que las reglas que rigen los movimientos del precio de Bitcoin son
también, en cierta medida, extrapolables a los movimientos presentes en el precio de otras
criptomonedas (y viceversa), se analiza aumentar el tamaño del conjunto de datos in-
cluyendo el histórico de precios de otras criptomonedas. Una opción podría ser incluir
estos datos como nuevas variables de entrada, pero esto incrementaría la complejidad de
los modelos significativamente. En su lugar, se opta por incluirlos como si fueran puntos
adicionales dentro de la misma serie temporal. Como resultado se obtiene un conjunto de
entrenamiento con la misma cantidad de variables, pero más volumen de datos.
Utilizando la misma fuente [10] y formato que para los datos base, se obtiene la infor-
mación disponible para las criptomonedas con mayor volumen de transacciones: Ethe-
reum (ETH) [33], Litecoin (LTC) [89], Cardano (ADA) [19], NEO (NEO) [100], TRON
(TRX) [128], Ripple (XRP) [107], EOS (EOS) [32], Stellar (XLM) [117], IOTA (MIO-
TA) [77], Bitcoin Cash (BCH) [11], Binance Coin (BNB) [9], Ethereum Classic (ETC) [34],
Ontology (ONT) [101] y Quantum (QTUM) [106].
Previo a incluir esta nueva información en el conjunto de datos base, se equipara el precio
y el volumen para que en promedio sean de igual magnitud que los de Bitcoin
El precio de clausura equiparado c0X para una moneda X se calcula como:
cBT C
c0X = cX ∗
cX
Figura 4.7: Conjunto de datos expandido mediante la incorporación del histórico de otras
criptomonedas al conjunto de datos original.
Pruebas realizadas
RAM 16.0 GB
OS Windows 10 64-bit
71
5.2. Fase 2 - Características de entrada extendidas 72
cada modelo, analizando la incidencia de estos sobre los resultados. Se busca en cada caso
hallar la combinación óptima de estos parámetros que maximicen el desempeño según las
métricas definidas.
Características
Fase Datos
de entrada
Base +
2 43.600 puntos de datos del histórico de Bitcoin
Indicadores de análisis técnico
Modelo Hiperparámetros
Base -
De manera de que los resultados obtenidos como parte de esta investigación sean viables
en un ambiente de producción, y de que la experimentación se pueda realizar en un
tiempo razonable en el contexto del alcance de este proyecto, se limita el tiempo total
de entrenamiento de cada modelo a un máximo de 60 minutos. En consecuencia, ciertos
modelos cuyas combinaciones de hiperparámetros y características de entrada impliquen
tiempos de entrenamiento por encima de este límite, no serán contemplados.
Capítulo 6
Resultados
La Figura 6.1 ilustra gráficamente el desfasaje de la predicción del modelo base, corres-
pondiente a un retraso de 2 horas.
75
6.2. Fase 1 - Características de entrada básicas 76
Estos resultados (Cuadro 6.1) sientan una base de partida sobre la cual evaluar las pre-
dicciones de los modelos de aprendizaje automático desarrollados.
RMSE RMSEA DA ( %)
6.2.1. SVR
Los hiperparámetros a optimizar para este modelo son ε, γ y c. Además, se evalúa cómo
se comporta el modelo al variar la cantidad de pasos previos de entrada.
El parámetro γ define qué tan lejos llega la influencia de un solo ejemplo de entrenamien-
to, con valores bajos implicando “lejos” y valores altos “cerca”.
RMSE RMSEA DA ( %)
Pasos previos 4
ε 0.001
γ 0.002
c 32
Otros kernel
6.2.2. LSTM
Se observa (Figura 6.6) que empleando una única capa LSTM y una capa MLP, la mejor
precisión se obtiene con una relativamente pequeña cantidad de neuronas (16).
A su vez, se destaca que agregar capas LSTM ocultas adicionales no mejora los resultados
(Figura 6.7).
6.2. Fase 1 - Características de entrada básicas 83
Cabe notar que una única capa LSTM de n pasos contiene en su arquitectura n capas
MLP, lo que implica por sí sola un alto grado de complejidad.
Es destacable que a diferencia de lo que ocurría con el modelo SVR, este modelo sí
parece aprovechar la información provista en pasos previos adicionales (Figura 6.8). Esto
es congruente con la arquitectura de este tipo de red neuronal, especialmente diseñado
para utilizar datos secuenciales.
6.2. Fase 1 - Características de entrada básicas 84
Figura 6.8: LSTM (Una capa LSTM de 16 neuronas y una capa MLP de 32 neuronas)
RMSE en función de la cantidad de pasos previos de entrada.
RMSE RMSEA DA ( %)
Pasos previos 64
6.2.3. GRU
Utilizando los mejores hiperparámetros encontrados (Cuadro 6.7), los resultados para esta
versión más simple de RNN suponen una importante mejora sobre el modelo SVR, pero
no alcanzan los niveles de precisión obtenidos por el modelo LSTM (Cuadro 6.6).
RMSE RMSEA DA ( %)
Pasos previos 64
6.2.4. CNN
Figura 6.9: CNN (Una capa CNN, una capa MLP de 32 neuronas, 16 pasos previos)
RMSE en función de la cantidad de filtros y el tamaño del kernel.
Se observa que se favorece un kernel relativamente pequeño con un alto número de filtros
(Figura 6.9). Específicamente, se alcanza la mejor precisión con un tamaño de kernel
de 4, y 256 filtros de salida. Una posible interpretación de estos valores es que la red
intenta identificar 256 distintos patrones, a partir de intervalos de 4 pasos de largo de las
5 variables de entrada básicas.
Al igual que ocurre con las otras arquitecturas de red neuronal experimentadas hasta el
momento, la precisión se degrada al aumentar la cantidad de capas ocultas, independien-
temente de la cantidad de filtros o el tamaño de kernel.
Empleando la mejor configuración de hiperparámetros hallados en este fase para este tipo
de modelo (Cuadro 6.9), los resultados no llegan a ser tan precisos como los obtenidos
por el modelo LSTM (Cuadro 6.8).
6.2. Fase 1 - Características de entrada básicas 87
RMSE RMSEA DA ( %)
Pasos previos 32
A pesar de estas limitaciones, se lograron obtener resultados a la par del modelo LSTM
(Cuadro 6.10), incluyendo en al arquitectura de la red neuronal una única capa CNN, una
capa LSTM y una MLP (Cuadro 6.11).
RMSE RMSEA DA ( %)
Pasos previos 64
ε = 0.001, γ = 0.002, c = 32
SVR 48.05 113.01 70.14
Pasos previos = 4
Pasos previos = 64
Pasos previos = 64
Pasos previos = 32
Se destaca en esta fase la superioridad de la precisión obtenida por los modelos de redes
neuronales, en particular el mejor RMSE es alcanzado por el modelo LSTM, mientras
que la mayor precisión alrededor de las anomalías (RMSEA) y la mejor precisión de la
dirección del movimiento del precio (DA) fue obtenida por el modelo híbrido CNN +
LSTM.
6.3. Fase 2 - Características de entrada extendidas 90
6.3.1. SVR
En primer lugar, se experimenta utilizando cada indicador técnico por separado, junto
al resto de las variables de entrada básicas. Como resultado se obtiene una lista de los
indicadores que, por si solos, mejoran el resultado de la predicción, estos son: DCH, KCC,
UO, TSI, MFI, RSI, AROON, KST, EM y CMF. Posteriormente, se prueban sus posibles
combinaciones, en busca de la que produzca el mejor desempeño (Figura 6.10).
6.3. Fase 2 - Características de entrada extendidas 91
RMSE RMSEA DA ( %)
Una observación interesante es que en este caso el modelo se desempeña mejor con una
mayor cantidad de pasos previos que en la primer fase (8 contra 4); el resto de los hiper-
parámetros se mantienen incambiados (Cuadro 6.14).
6.3. Fase 2 - Características de entrada extendidas 92
Pasos previos 8
ε 0.001
γ 0.002
c 32
6.3.2. LSTM
Los resultados arrojan una mejora con respecto a la primer fase (Cuadro 6.15).
RMSE RMSEA DA ( %)
Pasos previos 64
6.3.3. GRU
Se obtiene una significante mejora en comparación con la fase anterior mediante la inclu-
sión de los indicadores detallados en la Figura 6.12.
RMSE RMSEA DA ( %)
Pasos previos 64
6.3.4. CNN
RMSE RMSEA DA ( %)
Pasos previos 32
Los resultados arrojan la mejor precisión de todos los modelos evaluados en esta fase
(Cuadro 6.21).
RMSE RMSEA DA ( %)
Pasos previos 64
Características DA
Modelo Hiperparámetros RMSE RMSEA
de entrada ( %)
Se observa una mejora con respecto a la fase anterior para todos los modelos considerados,
destacándose en particular la precisión superior obtenida por el modelo híbrido CNN +
LSTM.
6.4. Fase 3 - Conjunto de datos de entrenamiento extendido 101
6.4.1. SVR
RMSE RMSEA DA ( %)
La información adicional no parece tener una incidencia significativa para este modelo.
6.4.2. LSTM
Con las combinaciones de hiperparámetros utilizados en las fases anteriores, los resultados
no muestran una mejora significativa.
RMSE RMSEA DA ( %)
Pasos previos 64
6.4.3. GRU
Se observan resultados análogos a los obtenidos para el modelo LSTM, siendo necesario
aumentar la complejidad de la red para mejorar la precisión (Cuadro 6.28), obteniendo
una mejora en la precisión con respecto a la fase anterior (Cuadro 6.27).
RMSE RMSEA DA ( %)
Pasos previos 64
6.4.4. CNN
RMSE RMSEA DA ( %)
Pasos previos 32
Una vez incorporados los nuevos datos de entrenamiento, y ajustados los hiperparáme-
tros del modelo de acuerdo a lo especificado en el Cuadro 6.32, se obtienen los mejores
resultados de todo el conjunto de experimentos (Cuadro 6.31).
RMSE RMSEA DA ( %)
En todos los modelos de redes neuronales se observó una mejora en los resultados al
incorporar los nuevos datos en el conjunto de entrenamiento. La mejor precisión es regis-
trada por el modelo híbrido de red neuronal CNN y LSTM. En el Cuadro 6.33 se resume
los resultados de la fase, utilizando el conjunto de entrenamiento extendido y la mejor
configuración de hiperparámetros y características correspondientes a cada modelo.
6.4. Fase 3 - Conjunto de datos de entrenamiento extendido 105
Características DA
Modelo Hiperparámetros RMSE RMSEA
de entrada ( %)
Figura 6.20: Resultados de los mejores modelos CNN + LSTM de cada fase.
Figura 6.21: Comparación de la precisión de cada tipo de modelo en la última fase de experi-
mentación.
6.5. Resumen de resultados 110
Figura 6.22: Arquitectura del mejor modelo hallado en las fases de pruebas. La red neuronal
consiste de 3 capas CNN, 3 capas LSTM y una capa MLP, utilizando como características de
entrada los datos base (Open, Close, High, Low, Volume) en conjunto con los indicadores de
análisis técnico BB, MACD, EMA y RSI. TK = Tamaño del kernel, F = Número de filtros de
salida, N = Cantidad de neuronas de la capa.
Capítulo 7
Conclusiones
111
7.1. Trabajos futuros 112
RMSE: Un valor de 42.11 significó una mejora del 26 % respecto al modelo base.
Esto representa un error medio del 1.10 % sobre el precio de clausura en el periodo
de evaluación considerado, correspondiente al mes de diciembre de 2018.
En especial para los modelos de alta complejidad, la gran cantidad de posibles combina-
ciones de parámetros hace de su optimización una tarea extremadamente demandante en
cuanto a tiempo y poder computacional. Con tiempo y/o poder de procesamiento adicio-
nal, sería posible seguir refinando los hiperparámetros de forma de continuar mejorando
los resultados obtenidos en este proyecto.
El conjunto de datos fuente utilizado provee la información del histórico del precio de
Bitcoin y otras criptomonedas agregada por minuto. Con el fin de reducir el volumen de
datos y la cantidad de pruebas a realizar como parte de este estudio, se optó por utilizar
el conjunto de datos con una granularidad de una hora. Sin embargo, resulta de interés
experimentar con distintos niveles de granularidad y evaluar su posible impacto en el
desempeño de los modelos.
Ensemble
Características adicionales
Análisis de sentimiento
Hay una infinidad de factores externos que inciden en el precio de Bitcoin. Un análisis de
sentimiento [103] aplicado sobre noticias y/o redes sociales podría potencialmente revelar
algo de información respecto a tales factores. Dicho análisis debería realizarse en función
del tiempo, de forma de ser capaces de incluirlo como otra de las tantas series temporales
que se utilizan como características de entrada.
Análisis de redes
Una vez alcanzado cierto nivel de precisión en la generación de predicciones, una posible
aplicación de dichos resultados es en el intercambio de criptomonedas. Específicamente,
7.1. Trabajos futuros 115
[1] Ossama Abdel-Hamid y col. «Convolutional neural networks for speech recogni-
tion». En: IEEE/ACM Transactions on audio, speech, and language processing
22.10 (2014), págs. 1533-1545.
[3] Elli Androulaki y col. «Evaluating user privacy in bitcoin». En: International Con-
ference on Financial Cryptography and Data Security. Springer. 2013, págs. 34-51.
[4] Amin Azari. «Bitcoin Price Prediction: An ARIMA Approach». En: KTH Royal
Institute of Technology (2018).
[5] Nashirah Abu Bakar y Sofian Rosbi. «Autoregressive Integrated Moving Average
(ARIMA) Model for Forecasting Cryptocurrency Exchange Rate in High Volatility
Environment: A New Insight of Bitcoin Transaction». En: International Journal
of Advanced Engineering Research and Science 4.11 (2017).
[6] Aurelio F Bariviera y col. «Some stylized facts of the Bitcoin market». En: Physica
A: Statistical Mechanics and its Applications 484 (2017), págs. 82-90.
116
BIBLIOGRAFÍA 117
[8] Jan Beran. Statistics for long-memory processes. Vol. 1. ISBN: 978-0412049019.
Routledge, 2017.
[12] Volker Blanz y col. «Comparison of view-based object recognition algorithms using
realistic 3D models». En: International Conference on Artificial Neural Networks.
Springer. 1996, págs. 251-256.
[16] Elie Bouri y col. «On the hedge and safe haven properties of Bitcoin: Is it really
more than a diversifier?» En: Finance Research Letters 20 (2017), págs. 192-198.
[17] George EP Box y col. Time series analysis: forecasting and control. ISBN: 978-
0470272848. John Wiley & Sons, 2015.
[18] Jerry Brito y Andrea Castillo. Bitcoin: A primer for policymakers. Vol. 1. Mercatus
Center at George Mason University, 2013.
[20] Kyunghyun Cho y col. «Learning phrase representations using RNN encoder-
decoder for statistical machine translation». En: arXiv preprint arXiv:1406.1078
(2014).
BIBLIOGRAFÍA 118
[21] Usman Chohan. «The Double Spending Problem and Cryptocurrencies». En: SSRN
(2017).
[22] Jeffrey Chu, Saralees Nadarajah y Stephen Chan. «Statistical analysis of the ex-
change rate of bitcoin». En: PloS one 10.7 (2015), e0133678.
[23] Junyoung Chung y col. «Empirical evaluation of gated recurrent neural networks
on sequence modeling». En: arXiv preprint arXiv:1412.3555 (2014).
[24] Dan Cireşan, Ueli Meier y Jürgen Schmidhuber. «Multi-column deep neural net-
works for image classification». En: arXiv preprint arXiv:1202.2745 (2012).
[25] John H Cochrane. «Time series for macroeconomics and finance». En: Manuscript,
University of Chicago (2005).
[26] Corinna Cortes y Vladimir Vapnik. «Support-vector networks». En: Machine lear-
ning 20.3 (1995), págs. 273-297.
[29] Harris Drucker y col. «Support vector regression machines». En: Advances in neural
information processing systems. 1997, págs. 155-161.
[30] Anne Haubo Dyhrberg. «Bitcoin, gold and the dollar–A GARCH volatility analy-
sis». En: Finance Research Letters 16 (2016), págs. 85-92.
[31] Anne Haubo Dyhrberg. «Hedging capabilities of bitcoin. Is it the virtual gold?»
En: Finance Research Letters 16 (2016), págs. 139-144.
[35] Yin Fan y col. «Video-based emotion recognition using CNN-RNN and C3D hy-
brid networks». En: Proceedings of the 18th ACM International Conference on
Multimodal Interaction. ACM. 2016, págs. 445-450.
[37] Felix A Gers, Douglas Eck y Jürgen Schmidhuber. «Applying LSTM to time series
predictable through time-window approaches». En: Neural Nets WIRN Vietri-01.
Springer, 2002, págs. 193-200.
[38] Alex Graves, Navdeep Jaitly y Abdel-rahman Mohamed. «Hybrid speech recogni-
tion with deep bidirectional LSTM». En: Automatic Speech Recognition and Un-
derstanding (ASRU), 2013 IEEE Workshop on. IEEE. 2013, págs. 273-278.
[40] Alex Graves y Jürgen Schmidhuber. «Offline handwriting recognition with multi-
dimensional recurrent neural networks». En: Advances in neural information pro-
cessing systems. 2009, págs. 545-552.
[41] Alex Graves y col. «Unconstrained on-line handwriting recognition with recurrent
neural networks». En: Advances in neural information processing systems. 2008,
págs. 577-584.
[42] Klaus Greff y col. «LSTM: A search space odyssey». En: IEEE transactions on
neural networks and learning systems 28.10 (2017), págs. 2222-2232.
[43] Isabelle Guyon, B Boser y Vladimir Vapnik. «Automatic capacity tuning of very
large VC-dimension classifiers». En: Advances in neural information processing
systems. 1993, págs. 147-155.
[45] Keith W Hipel y A Ian McLeod. Time series modelling of water resources and
environmental systems. Vol. 45. Elsevier, 1994.
[46] Sepp Hochreiter y Jürgen Schmidhuber. «Long short-term memory». En: Neural
computation 9.8 (1997), págs. 1735-1780.
[47] Chiou-Jye Huang y Ping-Huan Kuo. «A deep cnn-lstm model for particulate matter
(PM2. 5) forecasting in smart cities». En: Sensors 18.7 (2018), pág. 2220.
[48] Harold Edwin Hurst. «Long-term storage capacity of reservoirs». En: Trans. Amer.
Soc. Civil Eng. 116 (1951), págs. 770-799.
[49] ImageNet Large Scale Visual Recognition Challenge 2014 (ILSVRC2014). http:
//[Link]/challenges/LSVRC/2014/results. Accedido: 2018-12-
23.
[52] Investopedia - ATR. https : / / www . investopedia . com / terms / a / atr . asp.
Accedido: 2019-01-29.
[58] Investopedia - EMA. https : / / www . investopedia . com / terms / e / ema . asp.
Accedido: 2019-01-29.
[71] Investopedia - TRIX. https : / / www . investopedia . com / terms / t / trix . asp.
Accedido: 2019-01-29.
[79] Gareth James y col. An introduction to statistical learning. Vol. 112. Springer,
2013.
[80] Rafal Jozefowicz, Wojciech Zaremba e Ilya Sutskever. «An empirical exploration of
recurrent network architectures». En: International Conference on Machine Lear-
ning. 2015, págs. 2342-2350.
[81] Ebru Şeyma Karakoyun y Ali Osman Çıbıkdiken. «Comparison of ARIMA Time
Series Model and LSTM Deep Learning Algorithm for Bitcoin Price Forecasting».
En: Proceedings of MAC 2018 in Prague (2018), pág. 171.
BIBLIOGRAFÍA 123
[87] Yann LeCun, Yoshua Bengio y Geoffrey Hinton. «Deep learning». En: nature
521.7553 (2015), pág. 436.
[91] MathWorks - Introduction to Deep Learning: What Are Convolutional Neural Net-
works? https : / / www . mathworks . com / videos / introduction - to - deep -
learning - what - are - convolutional - neural - networks -- 1489512765771 .
html. Accedido: 2018-12-23.
[92] Masakazu Matsugu y col. «Subject independent facial expression recognition with
robust face detection using a convolutional neural network». En: Neural Networks
16.5-6 (2003), págs. 555-559.
BIBLIOGRAFÍA 124
[94] John Mern, Spenser Anderson y John Poothokaran. «Using Bitcoin Ledger Net-
work Data to Predict the Price of Bitcoin». En: Stanford University Department
of Aeronautics and Astronautics (2017).
[95] Ian Miers y col. «Zerocoin: Anonymous distributed e-cash from bitcoin». En: Se-
curity and Privacy (SP), 2013 IEEE Symposium on. IEEE. 2013, págs. 397-411.
[96] Marvin Minsky y Seymour Papert. Perceptron Expanded Edition. ISBN: 9780262631112.
1969.
[97] TM Mitchell. «Machine Learning, McGraw-Hill Higher Education». En: New York
(1997).
[98] Malte Moser, Rainer Bohme y Dominic Breuker. «An inquiry into money laun-
dering tools in the Bitcoin ecosystem». En: eCrime Researchers Summit (eCRS),
2013. IEEE. 2013, págs. 1-14.
[99] Satoshi Nakamoto. «Bitcoin: A peer-to-peer electronic cash system». En: [Link]
(2008).
[102] Thomas Oommen y col. «An objective analysis of support vector machine ba-
sed classification for remote sensing». En: Mathematical geosciences 40.4 (2008),
págs. 409-424.
[103] Bo Pang, Lillian Lee y col. «Opinion mining and sentiment analysis». En: Foun-
dations and Trends
R in Information Retrieval 2.1–2 (2008), págs. 1-135.
[104] Morgen E Peck. «The cryptoanarchists’ answer to cash». En: IEEE Spectrum 49.6
(2012).
BIBLIOGRAFÍA 125
[108] Frank Rosenblatt. The perceptron, a perceiving and recognizing automaton Project
Para. Cornell Aeronautical Laboratory, 1957.
[109] Frank Rosenblatt. «The perceptron: a probabilistic model for information storage
and organization in the brain.» En: Psychological review 65.6 (1958), pág. 386.
[112] Dominik Scherer, Andreas Müller y Sven Behnke. «Evaluation of pooling opera-
tions in convolutional architectures for object recognition». En: Artificial Neural
Networks–ICANN 2010. Springer, 2010, págs. 92-101.
[115] Yelong Shen y col. «Learning semantic representations using convolutional neural
networks for web search». En: Proceedings of the 23rd International Conference on
World Wide Web. ACM. 2014, págs. 373-374.
[118] Mark Stitson y col. «Support vector regression with ANOVA decomposition ker-
nels». En: Advances in kernel methods—Support vector learning (1999), págs. 285-292.
BIBLIOGRAFÍA 126
[119] Stochastic gradient descent in plain English - Medium. https : / / medium . com /
@[Link]/stochastic-gradient-descent-in-plain-english-9e6c10cdba97r.
Accedido: 2019-23-02.
[120] Jiajun Sun, Jing Wang y TC Yeh. Video understanding: from video classification
to captioning. 2017.
[121] Dian Utami Sutiksno y col. «Forecasting Historical Data of Bitcoin using ARIMA
and α-Sutte Indicator». En: Journal of Physics: Conference Series. Vol. 1028. 1.
IOP Publishing. 2018, pág. 012194.
[122] Nick Szabo. «Formalizing and securing relationships on public networks». En: First
Monday 2.9 (1997).
[123] Christian Szegedy y col. «Going deeper with convolutions». En: Proceedings of the
IEEE conference on computer vision and pattern recognition. 2015, págs. 1-9.
[125] Andrei Nikolaevich Tikhonov. «On the solution of ill-posed problems and the met-
hod of regularization». En: Doklady Akademii Nauk. Vol. 151. 3. Russian Academy
of Sciences. 1963, págs. 501-504.
[130] Jean-Philippe Vert, Koji Tsuda y Bernhard Schölkopf. «A primer on kernel met-
hods». En: Kernel methods in computational biology 47 (2004), págs. 35-70.
BIBLIOGRAFÍA 127
[131] Paul Werbos. «Beyond Regression:"New Tools for Prediction and Analysis in the
Behavioral Sciences». En: Ph. D. dissertation, Harvard University (1974).
[133] Mark T Williams. «Virtual Currencies–Bitcoin Risk». En: world bank conference,
Washington, DC. Vol. 21. 2014.
[134] David H Wolpert. «The lack of a priori distinctions between learning algorithms».
En: Neural computation 8.7 (1996), págs. 1341-1390.
[135] David H Wolpert y William G Macready. «No free lunch theorems for optimiza-
tion». En: IEEE transactions on evolutionary computation 1.1 (1997), págs. 67-82.
[136] Yuankai Wu y Huachun Tan. «Short-term traffic flow forecasting with spatial-
temporal correlation in a hybrid deep learning framework». En: arXiv preprint
arXiv:1612.01022 (2016).
[137] Jianbo Yang y col. «Deep Convolutional Neural Networks on Multichannel Time
Series for Human Activity Recognition.» En: Ijcai. Vol. 15. 2015, págs. 3995-4001.