presentación forinvest 2013
DESCRIPTION
TRANSCRIPT
REDES NEURONALES : HERRAMIENTA DE TRADING
Javier Oliver Muncharaz
http://www.rankia.com/blog/redes-neuronales
Valencia, 7 Marzo 2013
• Aplicaciones de las redes neuronales
• Historia de las redes neuronales
•¿Qué son las redes neuronales y cómo funcionan?
• Red Neuronal BackPropagation
• Ejemplo 1: comparativa predicción de volatilidad
del índice IBEX-35 entre modelo econométrico
versus red neuronal BackPropagation
• Ejemplo 2: predicción índice DAX
Problemas de Asociación y Reconocimiento
– NETalk (Sejnowski & Rosemberg):
• Reconocimiento de escritura, traducción,…
– Tratamiento de imágenes:
• Ruido o niebla en placas matrículas
Inspección visual:
Seguimiento de pupila:
Airline Marketing Tactician (AMT):
• Monitoriza y recomienda la reserva de
plazas
Control de robots:
ALVINN:
• Conducción de vehículo
Problemas de Optimización
– Optimización de rutas:
Aplicaciones en Astronomía/Astrofísica
– Reconocimiento de estrellas/galaxias
– Clasificación espectral y morfológica de
estrellas/galaxias
– Estudios de superficies planetarias
– Estudio del campo magnético interplanetario
– Determinación de parámetros en atmósferas
estelares
Aplicaciones en Medicina:
-Análisis de imágenes de resonancias magnéticas, ultrasonido
- Clasificación de pacientes en grupos en función de variables
-Procesamientos de señales, modelado y simulación de
funcionamiento del cerebro.
- Predicción de pronósticos
Ej: clasificación de pacientes con Alzheimer. 92% éxito
frente al análisis discriminante.
Ej: enfermedades oculares. Un médico general detecta
correctamente un 79%, la red neuronal un 87% y se
aproxima a un especialista con un 92%
APLICACIONES EN FINANZAS
• Ej: análisis datos financieros y contables, sistema antifraude
VISA,…
• OPTIMIZACIÓN: Construcción de carteras de diferentes
activos optimizando el binomio rentabilidad-riesgo utilizando
redes neuronales frente a modelos clásicos de construcción de
carteras (Markowitz).
Ej: Wong, Wang, Goh y Quek (1992) utilizan red neuronal
(fuzzy) para la predicción de rentabilidades de las acciones
mediante ratios financieros de las empresas.
Ej: Azema-Barac, Trelaven (1993) utilizan como variables
para la red tanto ratios financieros del análisis fundamental como
indicadores del análisis técnicos.
• CLASIFICACIÓN: Estudio de la probabilidad de riesgo
en la concesión de créditos y la probabilidad de quiebra de
una empresa.
Ej: Marose (1990) es el primero en estudiar la clasificación
de clientes para concesión de crédito para el Chase Manhattan
Bank.
Ej: Martín del Brío y Serrano (1995) estudian el riesgo de
insolvencia de empresas españolas.
• PREDICCIÓN: Es el principal objetivo del uso de la
redes neuronales en las finanzas.
Ej: White (1988) (pionero) utiliza serie de precios y
volúmenes de IBM obteniendo mejores resultados respecto
modelos estadísticos y econométricos.
Ej: Hawley, Jhonson & Raina (1990) y Parisi, Parisi
(2006) estudian mercados con mayor volatilidad (mercados
asiáticos)
Ej: Parisi, Parisi & Guerrero (2003) predicción de las
variaciones semanales del índice IPSA (Chile). Con una
estrategia activa mediante redes neuronales obtienen más
ganancias respecto a otras estrategias más pasivas.
Ej: Zhang, Jiang, & Li (2004) utilizan una red neuronal
backpropagation para obtener señales de compra/venta
realizando predicción de tendencias futuras en el mercado
de valores.
Ej: Lamothe y García (2004) Estudian la volatilidad
implícita de las opciones sobre el índice Ibex-35 llegando a
la conclusión que el modelo de valoración de opciones
Black-Scholes no es totalmente eficiente obteniéndose
mejores resultados con la implementación de las redes.
Ej: Hamid y Habid (2005) también estudian la valoración
de opciones mediante redes. Conclusión: La aplicación de
las redes presentan muy buenas perspectivas tanto en la
valoración del precio de las opciones como en la
volatilidad.
• Alan Turing (1936) estudia el cerebro como una forma de ver el
mundo de la computación
• Warren McCulloch ,Walter Pitts, Donald Hebb plantean las
primeras teorías de la computación neuronal.
• Frank Rosenblatt (1957) desarrolla la primera red neuronal, el
Perceptrón
• Widrow y Hoff desarrollan el modelo Adaline
• Autores como Grossberg, Minsky, Kohonen,
Hopfield,..también construyeron otro tipo de redes neuronales.
• Desde 1985 comenzarón a consolidarse los congresos más
importantes como Neuronal Networks for Computing, la
Neural Information Processing Systems
• Revistas especializadas como Neural Networks,
Transactions on Neural Networks
•El Departamento de Defensa de los Estados Unidos, la
Sociedad Europea de Redes Neuronales son algunos de las
instituciones que han impulsado la investigación sobre redes
neuronales.
• Las redes Neuronales Artificiales intentan simular el
comportamiento de las neuronas biológicas en el proceso de
aprendizaje.
• Un sistema de computación
compuesto por elementos
simples (neuronas) que se
encuentran interconectadas que
procesan la información de forma
dinámica como respuesta a
entradas externas
Estructura neurona biológica y artificial
• Estructura de una red neuronal: Neuronas de entrada,
intermedias y de salida.
• Cada neurona tiene un estado de activación asociado
• Existe una función transferencia o de salida que modifica
el estado de la neurona y lo transforma en una señal de salida
• Las señales se transmiten mediante las conexiones sinápticas
mediante ponderaciones
• La agregación combinada de todas las entradas a una neurona
constituyen la entrada total neta de información o regla de
propagación , es decir, el cálculo del valor neto que realiza dicha
neurona con las diferentes señales que han entrado en la misma.
• La función de activación estimará el nuevo estado de activación
de una neurona en un momento posterior teniendo en
cuenta el estado de activación anterior que tenía y el valor
de la entrada del valor neto calculado .
Neurona 1
Neurona 2
Neurona n
.
.
w j1
w jn
w j2
Netj
F(a j(t),Netj)=
a j(t+1)f j(a j(t+1)
=y j
y j
Neurona j
• Cuando la regla de propagación o supera un cierto número
umbral Φ entonces se activa la neurona y el resultado pasa a la
función de transferencia que dará una señal de salida .
• Existen cuatro tipos básicos de funciones de transferencia o
activación: tipo escalón, lineal, lineal-mixta y sigmoidal.
• tipo escalón:
Se utiliza este tipo de función cuando el estado de activación de
la neurona es binario (0,1).
Por ejemplo para el caso de umbral fuera cero tendríamos la
siguiente función escalón:
FUNCIÓN DE ACTIVACIÓN TIPO ESCALÓN
• Función de activación tipo lineal: puede obtener cualquier
número real. En este caso el estado de activación coincide con el
valor neto de entrada menos el umbral.
• Función de activación tipo lieal-mixta: variante de la lineal.
Los valores del estado de activación de una neurona están fijados
dentro de un intervalo de números reales.
•Función de activación sigmoidal: función continua dentro del
intervalo del eje real y con valor de salida continuo entre (0,1).
• APRENDIZAJE
•El proceso de aprendizaje viene determinado por la variación de
los estados de activación y éstos van modificándose mediante la
variación de los pesos de las neuronas.
• Durante el proceso de aprendizaje los cambios en los pesos
provocan creación, modificación o destrucción de conexiones
entre neuronas. Se creará un conexión cuando el peso sea mayor
que cero y se destruirá cuando sea cero.
• El proceso de aprendizaje finaliza cuando los pesos de cada
conexión de cada neurona permanecen constantes sin variación.
• Por tanto, una de las claves importantes en el aprendizaje es el
criterio elegido para la modificación de los pesos.
• Clasificación mecanismos aprendizaje:
• Aprendizaje supervisado y no supervisado: El primero se basa
en la existencia de un agente externo (supervisor) que controla el
proceso de aprendizaje.
• Aprendizaje online y offline: online si la red puede aprender de
forma continua a medida que recibe nueva información. Los
pesos se modifican constantemente de forma dinámica. No se
distingue fase entrenamiento y de operatividad. En la red offline
se distingue la fase entrenamiento de la red con su conjunto de
datos y la fase de operatividad que utilizará otro conjunto de
datos para realizar test o pruebas sobre el aprendizaje. En este
caso los pesos quedan fijados definitivamente en la fase de
entrenamiento.
• Con carácter general la variación de los pesos se produce a
partir del peso existente en un momento anterior.
• Aprendizaje supervisado: el agente externo controla las
respuestas que debe dar la RNA a partir de los datos de entrada
dados. Este tipo de entrenamiento puede realizarse de tres formas
diferentes.
• El primero , aprendizaje por corrección de error, se basa en el
ajuste de los pesos en función de la diferencia entre los valores
obtenidos por la red y los que se deseaban obtener (error).
• Aprendizaje por refuerzo: el supervisor indica a la RNA una
señal de refuerzo +1 si la salida obtenida es satisfactoria o -1
penalizándola en caso contrario.
• Aprendizaje estocástico: cambios aleatorios en los pesos en
función de una distribución determinada por el supervisor.
• Aprendizaje no supervisado: es autosupervisado. La red no
tiene referencia si las salidas que va generando son o no
correctas. En este caso, la RNA trata de encontrar característica
y correlaciones entre los datos de entrada. Se utilizan para
determinar categorías (clustering) o mapeo de características
(features mapping).
• Existen dos tipos de aprendizaje autosupervisado:
• Aprendizaje Hebbiano: el ajuste de las neuronas viene dado por
la correlación entre los valores de activación (salidas) de las dos
neuronas conectadas.
• Aprendizaje competitivo y cooperativo: cuando las neuronas
compiten tendrán conexiones recurrentes de activación y tendrán
conexiones de inhibición si son próximas. Cuando sean neuronas
cooperativas las conexiones serán sólo de activación.
• La red neuronal Backpropagation propuesta por Rumelhart,
Hinton y Williams en 1986.
• Utiliza el aprendizaje supervisado (por un agente externo) y se
basa en la regla delta generalizada (basado en la regla delta de
Widrow en 1960) o propagación del error hacia atrás.
• El algoritmo funciona en dos fases. En la primera, la
información fluye por las neuronas por la capa de entrada
generando una asociación entre los inputs-outputs. En la segunda
fase, la información fluye por las neuronas por el resto de capas
comparando la salida de cada neurona con la que se desea
obtener, calculando el error cometido. Posteriormente estos
errores se transmiten hacia atrás (capas anteriores) desde las
neuronas de la capa de salida de la red. Así se reajustan los pesos
de cada neurona y se vuelve a presentar la información
reduciéndose el error.
• Aprendizaje de la delta generalizada:
• variación del peso entre neurona i y j cuando se
activa
• : es el factor de aprendizaje (0,1) velocidad de aprendizaje.
• : salida neurona i bajo el patrón de aprendizaje p.
• : delta. Diferencia entre la salida deseada y la obtenida. Para
el caso de la red BP, la delta se define además en función de la
entrada neta que recibe la neurona j.
• Cuando la neurona no esté en la capa de salida el error
cometido será función de los errores cometidos por las neuronas
que reciban como entradas a ésta (propagación del error hacia
atrás).
El parámetro k representa todas las neuronas conectadas a la
salida de la neurona j.
• Esto implica que error de aprendizaje de una neurona será la
suma ponderada por los pesos de los errores de las neuronas que
están conectadas a la salida de ésta.
• El parámetro la velocidad de aprendizaje. A mayor tasa
mayores son los incrementos de los pesos para cada iteración y
más rápido es el aprendizaje. Esto puede provocar oscilaciones y
empeorar los resultados.
• Rumelhart, Hinton y Williams (1986) proponen incoporar un
parámetro (momento o beta) en la variación de los pesos de las
neuronas.
• siendo el momento una constante . Determina el efecto en t+1
del cambio de pesos en t. Se consigue mayor convergencia con
menos iteraciones.
• Estructura red BP
• Este tipo de red presenta una capa de entrada con n neuronas y
una capa de salida con m neuronas. Además requiere de, al
menos, una capa intermedia(oculta).
• Las conexiones son hacia adelante (feedforward).
• Múltiples estudios sobre la volatilidad y su comparativa con
Redes neuronales . Engle (1982 y 1987), French y Schwert
(1987), Bollerslev (1986), Peiró (1992), Aragó &Izquierdo
(2004).
• Modelización de la volatilidad mediante modelos
econométricos de la familia ARCH/GARCH. Los más
extendidos son el GARCH y el EGARCH.
• GARCH es adecuado si se espera una prima de riesgo tal
que el rendimiento esperado será mayor cuando aumente la
volatilidad.
• EGARCH es apto para asimetrías en la distribución de la
volatilidad.
• Ejemplo de estudio: cierres diarios Ibex-35 03/01/2000-
14/07/2010 (2658 observaciones)
• Se estudió y estimó tanto las rentabilidades diarias como
la volatilidad diaria del índice mediante modelo
ARMA(1,1)-GARCH(4,2)-M, incluyendo el volumen con un
retardo. ( 4 residuos, 2 ret. Varianza)
• Inputs de la red: rentabilidad índice con un retardo, con esto
la red ya aprende las relaciones entre rt y rt(-1). (en el modelo
ARMA(1,1), dos retardos de la varianza y el volumen
retardado un periodo.
• Se entrenó la red neuronal Backpropagation con 2 capas
ocultas, 256 neuronas.
• El ratio de aprendizaje se estableció para las capas
ocultas un rango (0,1;0,4). Para la capa de salida (0,1;0,2).
• Para el momentum, las capas ocultas (0,1;0,3) y para la de
salida (0,1;0,2).
• Para medir la eficiencia y poder comparar entre los dos
modelos se calcularon 5 tipos de error de predicción
MAPE (Mean Absolute Percentage Error), MAE (Mean
Absolute Error), MSE (Mean Squared Error), MPE (Mean
Percentage Error) y RMSE (Root Mean Squared Error)
• Cuadro resumen resultados para la rentabilidad
ARMA(1,1)-GARCH-M(4,2)
RED NEURONAL CRIT. AVERAGE
ABSOLUTE ERROR
RED NEURONAL CRIT. MEAN
SQUARED ERROR
RED NEURONAL CRIT. ROOT MEAN SQUARED ERROR
MAPE 1,098356625 1,142042409 1,071136 1,148959
MAE 0,010810 0,010792093 0,010802 0,010844
MSE 0,000238249 0,000237482 0,000236805 0,000237048
MPE -0,971461761 -0,99147652 -0,99804707 -1,024735411
RMSE 0,015435317 0,015410446 0,015388459 0,015396354
• las RNA obtienen similares resultados
• No hay mejora sustancial.
• El tiempo de entrenamiento de las redes escaso (25-40
segundos)
• Cuadro resumen resultados para la volatilidad
ARMA(1,1)-GARCH-M(4,2)
RED NEURONAL CRIT. AVERAGE
ABSOLUTE ERROR
RED NEURONAL CRIT. MEAN
SQUARED ERROR
RED NEURONAL CRIT. ROOT MEAN SQUARED ERROR
MAPE 2,046341064 0,188839984 0,148348765 0,175423745
MAE 0,000234 0,0000379 0,000037 0,000038
MSE 0,000000104 0,000000006 0,0000000196 0,0000000121
MPE 1,890341047 0,104597277 -0,006030978 0,089807449
RMSE 0,000323262 0,0000800898 0,000140036 0,000110112
•En este caso sí existen algunas pequeñas diferencias para los
3 criterios de selección para la red BP a favor del primer
criterio (red con mayor entrenamiento).
• Son claras las ventajas de cualquiera de las 3 RNA respecto al
modelo econométrico.
ESTRATEGIA I : Se realiza una predicción de la apertura y
cierre de la sesión siguiente. El precio de cierre estimado se
ajusta teniendo en cuenta el error que comete la red en la
estimación de la apertura.
Operativa: si este “precio de cierre estimado y
corregido” (Cec) > Apertura Venta a la apertura. Cierre de
posición a Cec o precio de cierre.
Si Apertura<Cec entonces compramos a la apertura y
cerramos posición a Cec o al precio de cierre.
ESTRATEGIA II : El ajuste se realiza teniendo en cuenta el
error que comete esta red en la predicción del cierre, centro y
radio en la sesión anterior y el error en la predicción de la
apertura de la sesión actual. Sumamos estos cuatro errores de
predicción y dividimos entre cuatro, obteniendo así un “error
medio”, que es el que aplicaremos al precio de cierre estimado
por la red. La operativa es idéntica a la estrategia I
TOTAL MES
I II
may-12 48.5 319
jun-12 -206 -335.75
jul-12 376 369.75
ago-12 446 386.75
sep-12 181.5 336.75
oct-12 285.5 147.75
nov-12 -8.5 258.75
TOTAL 1123 1483
02/05/2012 6822 8 6802 28
03/05/2012 6694 53 6621.5 74
04/05/2012 6669 2 6653.25 13.75
07/05/2012 6407 3 6432.25 28.25
08/05/2012 6548 25.5 6580.75 7.25
09/05/2012 6549 -1 6376.25 1
10/05/2012NO OPERA NO OPERA
11/05/2012 6442 -67.5 6439.25 -67.5
14/05/2012 6536 -80.5 6565.5 -80.5
15/05/2012 6530 -89 6473.25 10.25
16/05/2012 6361 34 6443.25 116.25
17/05/2012 6454 -139.5 6374.75 25.75
18/05/2012 6294 69 6372.75 2
21/05/2012NO OPERA NO OPERA
22/05/2012 6406 31.5 6377.25 2.75
23/05/2012NO OPERA NO OPERA
24/05/2012 6346 4 6364.5 -52.5
25/05/2012 6259 55 6235 55
28/05/2012 6418 18 6373.75 26.25
29/05/2012 6342 30.5 6344.25 28.25
30/05/2012 6267 112 6258.75 120.25
31/05/2012 6339 -19.5 6365.25 -19.5
01/06/2012 6315 -216 6346.25 -216
04/06/2012 5997 17 5854.75 -13
05/06/2012 6082 -13.5 6206.5 -13.5
06/06/2012 6018 10.5 5901 -106
07/06/2012 6163 17 6024 10
08/06/2012 6103 8.5 6163 68.5
127 Operaciones
• Definición de los datos de entrada
(Selección de variables ratios, indicadores,…)
• Definición de la topología de la red
(estructura de la red, número neuronas, capas ,
conexiones,..)
• Definición de la función de activación
(función sigmoidal y lineal principalmente. Función escalón si
hay variables binarias)
• Definición del criterio de aprendizaje
(pesos, mecanismo de paro de aprendizaje EMA,…)
• Definición de los datos de salida
NeuroShell Trader www.neuroshell.com
NeuroSolutions www.nd.com
www.alyuda.com
www.wave59.com
www.biocompsystems.com/
www.nnea.net
www.optimaltrader.net
Cortex.snoweron.com/forex_nn.htm
www.ozgrid.com/Services/neural-network-software.htm
Stuttgart Neural Network Simulator
www.ra.cs.uni-tuebingen.de/SNNS/
R-project