artificial intelligence

Redes Neuronales

alarije

30/03/2014

No Comments

A lo largo de la historia, el ser humano ha utilizado la naturaleza como inspiración para desarrollar nuevas ideas. El tema de las redes neuronales es sólo uno de los millones de ejemplos que existen.

Las redes neuronales artificiales son modelos matemáticos que intentan reproducir el funcionamiento del sistema nervioso: captan información, la procesan y generan una respuesta adaptada a cada situación. Se trata de una técnica computacional que se utiliza hoy en día en numerosos campos de conocimiento: aplicaciones médicas, análisis de mercados y clientes, minería de datos, optimización de procesos industriales, modelación financiera y económica…
Su atractivo radica en su habilidad para encontrar relaciones no lineales entre cualquier combinación de datos de mercado, indicadores técnicos y factores fundamentales.

Neurona artificial

neurona artificialAl igual que en nuestro sistema nervioso, el elemento principal de la red es la neurona.

Se trata de un elemento de procesamiento simple: a partir de un vector de entradas (información de entrada) produce una única salida (información de salida)

La salida producida por una neurona i, para un determinado momento de tiempo t puede escribirse como:

fórmula neurona

  • Conjunto de entradas, xj(t): provenientes del exterior o de otras neuronas
  • Pesos sinápticos, wij: grado de conexión entre las neuronas i, j. Puede ser positivo, negativo o cero (no hay conexión). Mediante el ajuste de estos pesos la neurona es capaz de adaptarse a cualquier entorno.
  • Regla de propagación, σi(wij,xj(t)): recoge la información y determina el potencial resultante de la interacción de la neurona i con las N neuronas vecinas (hi(t)). La más utilizada y simple en realizar una suma de las entradas ponderadas con sus pesos sinápticos correspondientes: hi(t)=∑j wij∙xj(t).
  • Función de activación, fi(ai(t-1),hi(t)): determina el estado de activación actual de la neurona i (ai(t)). En la mayoría de los modelos se suele ignorar el estado anterior de la neurona (ai(t-1)). Las funciones de activación más usadas: función identidad, escalón, lineal por tramos, sigmoidea, sinusoidal…
  • Función de salida, Fi(ai(t)): salida actual de la neurona i. En general se utiliza la función identidad.

Unión de neuronas = red neuronal

red neuronal 2Una red neuronal no es más que la unión de varias neuronas. Dichas neuronas se combinan en estructuras denominadas capas.

La arquitectura de una red no tiene límites, depende de la utilidad y complejidad que busquemos. Se pueden incluir tantas capas como queramos y cada capa puede contener a su vez innumerables neuronas.

La estructura más simple es la denominada red monocapa (las neuronas en este caso cumplen la función de entrada y salida). Lo normal es que tengan varias capas (multicapas): una capa de entrada (las neuronas reciben información directamente del exterior), al menos una capa oculta (reciben información de otras neuronas, son las que realmente procesan la información), y una capa de salida (reciben la información procesada y devuelven una respuesta).

Las conexiones entre redes suelen ser unidireccionales (redes feedforward) pero también se puede utilizar información de salida para volver a alimentar la red (redes feedback).

La principal ventaja de las redes es que son capaces de adaptar su funcionamiento a distintos entornos modificando sus conexiones entre neuronas.

¿Cómo funcionan?

Se pueden distinguir dos fases:

1.    Fase de aprendizaje o entrenamiento.

La red es entrenada para realizar un tipo de procesamiento. Aprende la relación existente entre los datos presentados para devolver una determinada salida en cada situación.

Partiendo de un conjunto de pesos sinápticos aleatorio, se busca un conjunto de pesos que permitan a la red desarrollar correctamente una determinada tarea. Se trata por tanto del proceso de ajuste de los parámetros. Es un proceso iterativo, en el cual se va refinando la solución hasta alcanzar un nivel de operación suficientemente bueno. La mayoría de los métodos de entrenamiento consisten en proponer una función de error que mida el rendimiento actual de la red en función de los pesos sinápticos. El objetivo del método es encontrar el conjunto de pesos sinápticos que minimizan (o maximizan) la función.

  2.   Fase de operación o ejecución:

Consiste en evaluar el comportamiento de la red ante patrones nunca antes vistos. Esta fase es imprescindible para prevenir el sobreaprendizaje. En la mayoría de los casos se deja que el proceso de aprendizaje avance hasta alcanzar una cota de error razonable, guardando periódicamente las distintas configuraciones intermedias para luego seleccionar la de menor error de evaluación.

Utilización de las redes

Algunos puntos importantes al diseñar la red son:

Datos de entrada: deben estar compuestos por un número representativo de datos, con información suficientemente diferente, para evitar la sobreoptimización. Se propone utilizar el 70% de los datos para entrenar a la neurona, 20% para testear el resultado y  10% como validación fuera de la muestra.

Controlar el número de neuronas y niveles: si son muy pocos el proceso es bastante general, si son muchos, demasiado ajuste a los datos.

Funciones escogidas: comenzar con las funciones más simples y posteriormente ir complicándolo en función de lo que vayamos observando.

En el ámbito financiero se utilizan principalmente en dos vías:

Predecir precios: utilizar la serie a predecir u otras con información relevante para, por ejemplo, estimar el close a un día, una semana, la próxima resistencia o soporte…

Dar señales de compra y venta: en este caso suele haber dos neuronas de salida, una para cada señal. Se establece un umbral en la función de activación, devolviendo un valor 0 o 1 en función de si se supera o no.

El siguiente paso será llevar a la práctica esta técnica. Los resultados que vayamos obteniendo se irán explicando en las siguientes entradas.

add a comment

wpDiscuz