domingo, 19 de noviembre de 2017

Sistemas Inteligente

Redes Neuronales 

                                          Historia


Desde la década de los 40, en la que nació y comenzó a desarrollarse la informática, el modelo neuronal la ha acompañado. De hecho, la aparición de los computadores digitales y el desarrollo de las teorías modernas acerca del aprendizaje y del procesamiento neuronal se produjeron aproximadamente al mismo tiempo, a finales de los años cuarenta. Desde entonces hasta nuestros días, la investigación neurofisiológica y el estudio de sistemas neuronales artificiales (ANS, Artificial Neural Systems) han ido de la mano. Sin embargo, los modelos de ANS no se centran en la investigación neurológica, si no que toma conceptos e ideas del campo de las ciencias naturales para aplicarlos a la resolución de problemas pertenecientes a otras ramas de las ciencias y la ingeniería.
Podemos decir que la tecnología ANS incluye modelos inspirados por nuestra comprensión del cerebro, pero que no tienen por qué ajustarse exactamente a los modelos derivados de dicho entendimiento.

Los primeros ejemplos de estos sistemas aparecen al final de la década de los cincuenta. La referencia histórica más corriente es la que alude al trabajo realizado por Frank Rosenblatt en un dispositivo denominado perceptrón. Hay otros ejemplos, tales como el desarrollo del Adaline por el profesor Bernard Widrow.
Durante todos estos años, la tecnología ANS no siempre ha tenido la misma consideración en las ramas de la ingeniería y las ciencias de la computación, más ansiosas de resultados que las ciencias neuronales. A partir de 1969, el pesimismo debido a las limitadas capacidades del perceptrón hizo languidecer este tipo de investigación.

A principios de los 80, por un lado Hopfield y sus conferencias acerca de la memoria autoasociativa y por otro lado la aparición del libro Parallel Distributed Processing (PDP), escrito por Rumelhart y McClelland reactivaron la investigación en el campo de las redes neuronales. Hubo grandes avances que propiciaron el uso comercial en campos tan variados como el diagnóstico de enfermedades, la aproximación de funciones o el reconocimiento de imágenes.


Introducción 

Las redes neuronales son un campo muy importante dentro de la Inteligencia Artificial, inspirándose en el comportamiento conocido del cerebro humano (principalmente referido a las neuronas y conexiones), trata de crear cierto modelos artificiales que den soluciones a problemas difíciles de resolver mediante técnicas algorítmicas convencionales.


MODELO DE NEURONA ARTIFICIAL

El modelo de Rumelhart y McClelland (1986) define un elemento de proceso (EP), o neurona artificial, como un dispositivo que a partir de un conjunto de entradas, xi(i=1...n) o vector x, genera una única salida y.


Esta neurona artificial consta de los siguientes elementos:
  • Conjunto de entradas o vector de entradas x, de n componentes
  • Conjunto de pesos sinápticos wij. Representan la interacción entre la neurona presináptica j y la postsináptica i.
  • Regla de propagación d(wij,xj(t)): proporciona el potencial postsináptico, hi(t).
  •  Función de activación ai(t)=f(ai(t-1), hi(t)): proporciona el estado de activación de la neurona en función del estado anterior y del valor postsináptico.
  • Función de salida Fi(t): proporciona la salida yi(t), en función del estado de activación.

Las señales de entrada y salida pueden ser señales binarias (0,1 – neuronas de McCulloch y Pitts), bipolares (-1,1), números enteros o continuos, variables borrosas, etc. La regla de propagación suele ser una suma ponderada del producto escalar del vector de entrada y el vector de pesos:

  También se usa a menudo la distancia euclídea entre ambos vectores:
Existen otro tipo de reglas menos conocidas como la distancia de Voronoi, de Mahalanobis, etc. La función de activación no suele tener en cuenta el estado anterior de la neurona, sino sólo el potencial hi(t). Suele ser una función determinista y, casi siempre, continua y monótona creciente. Las más comunes son la función signo (+1 si hi(t)>0, -1 en caso contrario), la función semilineal y las funciones sigmoides:

RED NEURONAL ARTIFICIAL
Una red neuronal artificial (RNA) se puede definir (Hecht – Nielssen 93) como 
un grafo dirigido con las siguientes restricciones:

  • Los nodos se llaman elementos de proceso (EP).
  • Los enlaces se llaman conexiones y funcionan como caminos unidireccionales instantáneos
  • Cada EP puede tener cualquier número de conexiones.
  • Todas las conexiones que salgan de un EP deben tener la misma señal.
  • Los EP pueden tener memoria local.

Cada EP posee una función de transferencia que, en función de las entradas y la memoria local produce una señal de salida y / o altera la memoria local.
Las entradas a la RNA llegan del mundo exterior, mientras que sus salidas son conexiones que abandonan la RNA.


ARQUITECTURA DE LAS RNA

La arquitectura de una RNA es la estructura o patrón de conexiones de la red. 
Es  conveniente recordar que las conexiones sinápticas son direccionales, 
es decir, la información sólo se transmite en un sentido.

En general, las neuronas suelen agruparse en unidades estructurales llamadas 
capas. Dentro de una capa, las neuronas suelen ser del mismo tipo. Se 
pueden distinguir tres tipos de capas:

  • De entrada: reciben datos o señales procedentes del entorno.
  •  De salida: proporcionan la respuesta de la red a los estímulos de la entrada.
  •  Ocultas: no reciben ni suministran información al entorno (procesamiento interno de la red).


Generalmente las conexiones se realizan entre neuronas de distintas capas, 
pero puede haber conexiones intracapa o laterales y conexiones de 
realimentación que siguen un sentido contrario al de entrada-salida.



Recomendaciones

Para el buen funcionamiento de la red neuronal se debe seguir las siguientes consideraciones:
  • Al momento de evaluar al candidato en la red neuronal el aplicante debe estar relacionado con el área en la que va a trabajar.
  • Esta red neuronal ha sido entrenada con casos ya sucedidos en el pasado, por lo que saca todo su conocimiento de esos casos.
  • Para una buena mantenibilidad se sugiere que la red sea entrenada cada cierto periodo de tiempo, ya que se necesita información actual y correcta para que la red funcione correctamente.



Conclusión 


El aprendizaje de las redes neuronales se basa en la llamada regla de aprendizaje, al entrenamiento y al número de pesos entrenables. Para que una red neuronal funcione correctamente debe de tener un equilibrio en cuanto al número de pesos que maneja. Al igual que las personas, las redes neuronales artificiales pueden sufrir de sobreentrenamiento y arrojar resultados erráticos. Esto es debido al exceso de flexibilidad (muchos pesos adicionales) o rigidez (no permite adaptase correctamente a varias muestras de entrada-salida).

Para evitar el sobreentrenamiento su utilizar un método muy sencillo: asegurarse de que el número de pesos entrenables que influye en cualquier salida en particular sea menor que el número de muestras de entrenamiento. Muchos científicos consideran que el trabajar con redes neuronales artificiales en todo un arte, ya que se deben enfrentar a muchas alternativas una vez que ya han decidido trabajar con ellas. Con el desarrollo las redes neuronales artificiales (y la Inteligencia Artificial) se ha logrado simular de manera muy básica el aprendizaje y el desarrollo de la inteligencia en computadoras, lo cual nos esta llevando hacia una nueva era computacional.