Las Redes Neuronales son un campo muy importante dentro de la Inteligencia Artificial. Inspirándose en el comportamiento conocido del cerebro humano (principalmente el referido a las neuronas y sus conexiones), trata de crear modelos artificiales que solucionen problemas difíciles de resolver mediante técnicas algorítmicas convencionales.
Los
primeros modelos de redes neuronales datan de 1943 por los neurólogos Warren
McCulloch y Walter Pitts.
Años más tarde, en 1949, Donald Hebb desarrolló sus ideas sobre el aprendizaje
neuronal, quedando reflejado en la "regla de Hebb". En 1982 John
Hopfield con la publicación del artículo Hopfield Model , junto con la
invención del algoritmo Backpropagation se consiguió devolver el interés y la
confianza en el fascinante campo de la computación neuronal tras dos décadas de
casi absoluta inactividad y desinterés.
Reglas de Hebb: las conexiones son reforzadas
cada vez que son activadas las neuronas.Esta regla fue introducida por Donald Hebb,
apareciendo en su libro titulado " La Organización del Conocimiento"
en 1949. La ley nos dice: "Si un elemento de procesado simple recibe una
entrada de otro elemento de procesado y ambos están activos, el peso
correspondiente a su conexión debería reforzarse (aumentar)". Las
características en que se basa esta regla son: Asociatividad y Auto
organización.
Red de Hopfield y Retropropagación
(BackPropagation)
Las
redes de Hopfield se usan como sistemas de Memoria asociativa con unidades
binarias. Están diseñadas para converger a un mínimo local, pero la
convergencia a uno de los patrones almacenados no está garantizada.Es decir Hopfield presenta un
sistema de computación neuronal consistente en elementos procesadores
interconectados que buscan y tienden a un mínimo de energía. Esta red con este tipo de
función de energía y mecanismo de respuesta no es mas que un caso de la clase
genérica de redes que consideró Grossberg.

Retro
propagación: es
un algoritmo de aprendizaje supervisado que se usa para entrenar redes
neuronales artificiales. El algoritmo emplea un ciclo propagación – adaptación
de dos fases. Una vez que se ha aplicado un patrón a la entrada de la red como
estímulo, este se propaga desde la primera capa a través de las capas
superiores de la red, hasta generar una salida. La señal de salida se compara
con la salida deseada y se calcula una señal de error para cada una de las
salidas. Las salidas de
error se propagan hacia atrás, partiendo de la capa de salida, hacia todas las
neuronas de la capa oculta que contribuyen directamente a la salida. Sin
embargo las neuronas de la capa oculta solo reciben una fracción de la señal
total del error, basándose aproximadamente en la contribución relativa que haya
aportado cada neurona a la salida original. Este proceso se repite, capa por
capa, hasta que todas las neuronas de la red hayan recibido una señal de error
que describa su contribución relativa al error total.
La importancia
de este proceso consiste en que, a medida que se entrena la red, las neuronas
de las capas intermedias se organizan a sí mismas de tal modo que las distintas
neuronas aprenden a reconocer distintas características del espacio total de
entrada. Después del entrenamiento, cuando se les presente un patrón arbitrario
de entrada que contenga ruido o que esté incompleto, las neuronas de la capa
oculta de la red responderán con una salida activa si la nueva entrada contiene
un patrón que se asemeje a aquella característica que las neuronas individuales
hayan aprendido a reconocer durante su entrenamiento.
Perceptrón
Multicapa:
Un
Perceptrón multicapa es una red con alimentación hacia delante, compuesta de
varias capas de neuronas entre la entrada y la salida de la misma, esta red
permite establecer regiones de decisión mucho más complejas que las de dos
semiplanos, como lo hace el Perceptrón de un solo nivel. Las capacidades del
Perceptrón multicapa con dos y tres capas y con una única neurona en la capa de
salida.
Las
capas pueden clasificarse en tres tipos: Capa de
entrada:
Constituida por aquellas neuronas que introducen los patrones de entrada en la
red. En estas neuronas no se produce procesamiento
Capas ocultas: Formada por aquellas neuronas
cuyas entradas provienen de capas anteriores y las salidas pasan a neuronas de
capas posteriores. Capa de
salida: Neuronas cuyos valores de salida se corresponden con las salidas de
toda la red.
Definición de Redes
Neuronales:
Existen
numerosas formas de definir a las redes neuronales; desde las definiciones
cortas y genéricas hasta las que intentan explicar más detalladamente qué son
las redes neuronales. Por ejemplo:
Una
nueva forma de computación, inspirada en modelos biológicos.
Un
modelo matemático compuesto por un gran número de elementos procesales
organizados en niveles.
Un
sistema de computación compuesto por un gran número de elementos simples,
elementos de procesos muy interconectados, los cuales procesan información por
medio de su estado dinámico como respuesta a entradas externas.
Redes
neuronales artificiales son redes interconectadas masivamente en paralelo de
elementos simples (usualmente adaptativos) y con organización jerárquica, las
cuales intentan interactuar con los objetos del mundo real del mismo modo que
lo hace el sistema nervioso biológico.

La
neurona es la unidad fundamental del sistema nervioso y en particular del
cerebro. Cada neurona es una simple
unidad de procesador que recibe y combina señales desde y hacia otras neuronas.
Si la combinación de entradas es suficientemente fuerte la salida de la neurona
se activa. El cerebro consiste en uno o varios billones de neuronas intensamente interconectadas.
El axón (salida) de la neurona se ramifica y está conectada a las dendritas
(entradas) de otras neuronas a través de uniones llamadas sinapsis. La eficacia
de la sinapsis es modificable durante el proceso de aprendizaje de la red .El
cerebro humano es el sistema de cálculo más complejo que conoce el hombre. El
ordenador y el hombre realizan bien diferentes clase de tarea ;así la operación
de reconocer el rostro de una persona resulta una tarea relativamente sencilla
para el hombre y difícil para el ordenador, mientras que la contabilidad de una
empresa es tarea costosa para un experto contable y una sencilla rutina para el
ordenador básico .La capacidad del cerebro humano de pensar ,recordar y
resolver problemas ha inspirado a muchos científicos intentar o procurar
modelar en el ordenador el funcionamiento del cerebro humano.Los profesionales
de diferentes campos como la ingeniería, filosofía, y psicología han unido sus
esfuerzos debido al potencial que ofrece esta tecnología y están encontrando
diferentes aplicaciones en sus respectivas profesiones. Un grupo de
investigadores ha perseguido la creación de un modelo en el ordenador que iguale
o adopte las distintas funciones básicas del cerebro. El resultado ha sido una nueva
tecnología llamada Computación Neuronal
o también Redes Neuronales. El resurgimiento del
interés en esta nueva forma de realizar los cálculos tras dos décadas de se
debe al extraordinario avance y éxito tanto en el aspecto teórico como de aplicación que se está obteniendo
estos últimos años.

Ventajas que ofrecen la red neuronal.
Debido
a su constitución y a sus fundamentos, las redes neuronales artificiales presentan un gran número de características
semejantes a las del cerebro. Por ejemplo:
son capaces de aprender de la experiencia, de generalizar de casos
anteriores a nuevos casos, de abstraer características esenciales a partir de
entradas que representan información irrelevante, etc. Esto hace que ofrezcan
numerosas ventajas y que este tipo de tecnología se esté aplicando en múltiples
áreas. Entre las ventajas se incluyen:
Aprendizaje
Adaptativo.:Capacidad de aprender a realizar tareas basadas en un entrenamiento o en una experiencia
inicial.
Auto-organización: Una red neuronal puede crear su propia organización o representación de la información que recibe mediante una etapa de aprendizaje.
Tolerancia a fallos. La destrucción parcial de una red conduce a
una degradación de su estructura; sin embargo, algunas capacidades de la red se
pueden retener, incluso sufriendo un gran daño.
Operación
en tiempo real: Los cómputos neuronales pueden ser realizados en paralelo;
para esto se diseñan y fabrican máquinas con hardware especial para obtener esta capacidad.
Fácil
inserción dentro de la tecnología existente: Se pueden obtener chips especializados
para redes neuronales que mejoran su capacidad en ciertas tareas. Ello facilitará la
integración modular en los sistemas existentes.
La
capacidad de aprendizaje adaptativo es una de las características más atractivas
de redes neuronales. Esto es, aprenden a llevar a cabo ciertas tareas mediante un
entrenamiento con ejemplos ilustrativos.
Como las redes neuronales pueden aprender a diferenciar patrones
mediante ejemplos y entrenamientos, no
es necesario elaborar modelos a priori ni necesidad de especificar funciones de
distribución de probabilidad.
Las redes neuronales son sistemas dinámicos auto adaptativos. Son
adaptables debido a la capacidad de auto ajuste de los elementos procesales
(neuronas) que componen el sistema. Son dinámicos, pues son capaces de estar
constantemente cambiando para adaptarse a las nuevas condiciones.
En
el proceso de aprendizaje, los enlaces ponderados de las neuronas se ajustan de
manera que se obtengan ciertos resultados específicos. Una red neuronal no
necesita un algoritmo para resolver un problema, ya que ella puede generar su
propia distribución de pesos en los enlaces mediante el aprendizaje. También
existen redes que continúan aprendiendo a lo largo de su vida, después de
completado su período de entrenamiento.
La
función del diseñador es únicamente la obtención de la arquitectura apropiada.
No es problema del diseñador el cómo la red aprenderá a discriminar. Sin embargo,
sí es necesario que desarrolle un buen algoritmo de aprendizaje que le proporcione
a la red la capacidad de discriminar, mediante un entrenamiento con patrones .
Las
redes neuronales emplean su capacidad de aprendizaje adaptativo para auto
organizar la información que reciben durante el aprendizaje y/o la operación. Mientras
que el aprendizaje es la modificación de cada elemento procesal, la auto
organización consiste en la modificación de la red neuronal completa para
llevar acabo un objetivo específico. Cuando las redes neuronales se usan para reconocer ciertas clases de
patrones, ellas auto organizan la información usada. Por ejemplo, la red
llamada backpropagation, creará su propia representación característica,
mediante la cual puede reconocer ciertos patrones. Esta auto organización
provoca la generalización: facultad de las redes neuronales de responder
apropiadamente cuando se les presentan datos o situaciones a las que no había
sido expuesta anteriormente. El sistema puede generalizar la entrada para
obtener una respuesta. Esta característica es muy importante cuando se tiene
que solucionar problemas en los cuales la información de entrada no es muy
clara; además permite que el sistema dé una solución, incluso cuando la
información de entrada está especificada de forma incompleta.
Tolerancia a fallos.
Las redes neuronales fueron
los primeros métodos computacionales con la
capacidad inherente de tolerancia a fallos. Comparados con los sistemas computacionales
tradicionales, los cuales pierden su funcionalidad cuando sufren un pequeño error de memoria, en las redes
neuronales, si se produce un fallo en un número no muy grande de neuronas y aunque el comportamiento del sistema
se ve influenciado, no sufre una
caída repentina.
Hay
dos aspectos distintos respecto a la tolerancia a fallos:
Las
redes pueden aprender a reconocer patrones con ruido, distorsionados o incompletos.
Esta es una tolerancia a fallos respecto a los datos.
Las
redes pueden seguir realizando su función (con cierta degradación) aunque se
destruya parte de la red.
La razón
por la que las redes neuronales son tolerantes a los fallos es que tienen su
información distribuida en las conexiones entre neuronas, existiendo cierto
grado de redundancia en este tipo de almacenamiento. La mayoría de los
ordenadores algorítmicos y sistemas de recuperación de datos almacenan cada
pieza de información en un espacio único, localizado y direccionable. En cambio, las redes neuronales almacenan
información no localizada. Por lo tanto, la mayoría de las interconexiones entre
los nodos de la red tendrán sus valores en función de los estímulos recibidos,
y se generará un patrón de salida que represente la información almacenada.
Operación en tiempo real. Una de las mayores prioridades, casi en la totalidad de las áreas de
aplicación, es la necesidad de realizar
procesos con datos de forma muy rápida. Las redes neuronales se adaptan bien a
esto debido a su implementación paralela. Para que la mayoría de las redes
puedan operar en un entorno de tiempo real, la necesidad de cambio en los pesos
de las conexiones o entrenamiento es mínimo.
Fácil inserción dentro de la tecnología existente.
Una
red individual puede ser entrenada para desarrollar una única y bien definida tarea (tareas complejas, que
hagan múltiples selecciones de patrones,
requerirán sistemas de redes interconectadas). Con las herramientas
computacionales existentes (no del
tipo PC), una red puede ser rápidamente entrenada, comprobada, verificada y trasladada a una implementación hardware
de bajo coste. Por lo tanto, no se presentan dificultades para la inserción de
redes neuronales en aplicaciones
específicas, por ejemplo de control, dentro de los sistemas existentes. De esta manera, las redes neuronales se
pueden utilizar para mejorar
sistemas en forma incremental y cada paso puede ser evaluado antes de acometer un desarrollo
más amplio.
APLICACIONES DE LAS REDES NEURONALES ARTIFICIALES:
Las características especiales de los
sistemas de computación neuronal permiten que sea utilizada esta nueva técnica de cálculo en una extensa variedad de
aplicaciones. La computación
neuronal provee un acercamiento mayor al reconocimiento y percepción humana que los métodos tradicionales de cálculo. Las
redes neuronales artificiales
presentan resultados razonables en aplicaciones donde las entradas presentan ruido o las entradas están
incompletas. Algunas de las áreas de aplicación de las ANN son las siguientes:Análisis y Procesado de
señales Reconocimiento de Imágenes ,Control de Procesos
Filtrado de ruido
,Robótica Procesado del Lenguaje ,Diagnósticos
médicos ,Otros.

Conversión Texto a Voz: uno de los principales
promotores de la computación neuronal en esta área es Terrence Sejnowski. La
conversión texto-voz consiste en cambiar los símbolos gráficos de un texto en
lenguaje hablado. El sistema de computación neuronal presentado por Sejnowski y
Rosemberg, el sistema llamado NetTalk, convierte texto en fonemas y con la
ayuda de un sintetizador de voz (Dectalk) genera voz a partir de un texto
escrito.
La ventaja que ofrece la computación neuronal frente a las tecnologías
tradicionales en la conversión texto-voz es la propiedad de eliminar la
necesidad de programar un complejo conjunto de reglas de pronunciación en el
ordenador. A pesar de que el sistema NetTalk ofrece un buen comportamiento, la
computación neuronal para este tipo de aplicación abre posibilidades de
investigación y expectativas de desarrollo comercial.
Procesado Natural del Lenguaje: incluye el estudio de cómo
se construyen las reglas del lenguaje. Los científicos del conocimiento
Rumelhart y McClelland han integrado una red neuronal de proceso natural del
lenguaje. El sistema realizado ha aprendido el tiempo verbal pass tense de los
verbos en Inglés. Las características propias de la computación neuronal como
la capacidad de generalizar a partir de datos incompletos y la capacidad de
abstraer, permiten al sistema generar buenos pronósticos para verbos nuevos o
verbos desconocidos.
Compresión de Imágenes: la compresión de imágenes es
la transformación de los datos de una imagen a una representación diferente que
requiera menos memoria o que se pueda reconstruir una imagen imperceptible.
Cottrel, Munro y Zisper de la Universidad de San Diego y Pisttburgh han
diseñado un sistema de compresión de imágenes utilizando una red neuronal con
un factor de compresión de 8:1.
Reconocimiento de Caracteres: es el
proceso de interpretación visual y de clasificación de símbolos. Los
investigadores de Nestor, Inc. han desarrollado un sistema de computación
neuronal que tras el entrenamiento con un conjunto de tipos de caracteres de
letras, es capaz de interpretar un tipo de carácter o letra que no haya visto con
anterioridad.
Reconocimiento de Patrones en Imágenes:
una aplicación típica es la clasificación de objetivos detectados por un sonar.
Existen varias ANN basadas en la popular Backpropagation cuyo comportamiento es
comparable con el de los operadores humanos. Otra aplicación normal es la
inspección industrial.
Problemas de Combinatoria: en este tipo
de problemas la solución mediante cálculo tradicional requiere un tiempo de
proceso (CPU) que es exponencial con el número de entradas. Un ejemplo es el
problema del vendedor; el objetivo es elegir el camino más corto posible que
debe realizar el vendedor para cubrir un número limitado de ciudades en una
área geográfica específica. Este tipo de problema ha sido abordado con éxito
por Hopfield y el resultado de su trabajo ha sido el desarrollo de una ANN que ofrece
buenos resultados para este problema de combinatoria. Procesado de la Señal: en
este tipo de aplicación existen tres clases diferentes de procesado de la señal
que han sido objeto de las ANN como son la predicción, el modelado de un
sistema y el filtrado de ruido.
Predicción: en el mundo real existen muchos
fenómenos de los que conocemos su comportamiento a través de una serie temporal
de datos o valores. Lapedes y Farber del Laboratorio de Investigación de los
Álamos, han demostrado que la red backpropagation supera en un orden de
magnitud a los métodos de predicción polinómicos y lineales convencionales para
las series temporales caóticas.
Modelado de Sistemas: los
sistemas lineales son caracterizados por la función de transferencia que no es
más que una expresión analítica entre la variable de salida y una variable
independiente y sus derivadas. Las ANN también son capaces de aprender una
función de transferencia y comportarse correctamente como el sistema lineal que
está modelando
Filtro de Ruido: las ANN también pueden
ser utilizadas para eliminar el ruido de una señal. Estas redes son capaces de
mantener en un alto grado las estructuras y valores de los filtros tradicionales.
Modelos Económicos y Financieros: una
de las aplicaciones más importantes del modelado y pronóstico es la creación de
pronósticos económicos como por ejemplo los precios de existencias, la producción
de las cosechas, el interés de las cuentas, el volumen de las ventas etc. Las
redes neuronales están ofreciendo mejores resultados en los pronósticos
financieros que los métodos convencionales. Servo Control: un problema difícil en el
control de un complejo sistema de servomecanismo es encontrar un método de
cálculo computacional aceptable para compensar las variaciones físicas que se
producen en el sistema. Entre los inconvenientes destaca la imposibilidad en
algunos casos de medir con exactitud las variaciones producidas y el excesivo
tiempo de cálculo requerido para la obtención de la solución matemática.
Existen diferentes redes neuronales que han sido entrenadas para reproducir o
predecir el error que se produce en la posición final de un robot. Este error se
combina con la posición deseada para proveer una posición adaptativa de corrección
mejorar la exactitud de la posición final.
Redes Neurona Biológica:
Es un conjunto de millones y millones de unas células especiales, llamadas
neuronas, interconectadas entre ellas por sinapsis. Las sinapsis son las zonas
donde dos neuronas se conectan y la parte de la célula que esta especializada
en ello son las dendritas y las ramificaciones del axón.
Cada
neurona desarrolla impulsos eléctricos que se transmiten a lo largo de una
parte de la célula muy alargada llamada axón, al final del axón este se
ramifica en ramificaciones axonales que van a conectarse con otras neuronas por
sus dendritas.
El conjunto de elementos que hay entre la
ramificación axonal y la dendrita forman una conexión llamada sinapsis que
regula la transmisión del impulso eléctrico mediante unos elementos bioquímicas, los neurotransmisores.
Los neurotransmisores liberados en las
sinapsis al final de las ramificaciones axonales pueden tener un efecto
negativo o positivo sobre la transmisión del impulso eléctrico de la neurona
que los recibe en sus dendritas. La neurona receptora recibe varias señales
desde las distintas sinapsis y las combina consiguiendo un cierto nivel de
estimulación o potencial.
En función de este nivel de activación, La
neurona emite señales eléctricas con una intensidad determinada mediante
impulsos con una frecuencia llamada tasa de disparo que se transmiten por el
axón.
Si consideramos que la información en el
cerebro esta codificada como impulsos eléctricos que se transmiten entre las
neuronas y que los impulsos se ven modificados básicamente en las sinapsis
cuando las señales son químicas podemos intuir que la codificación del
aprendizaje estará en las sinapsis y en la forma que dejan pasar o inhiben las
señales segregando neurotransmisores.
En resumen y simplificando mucho todo el tema
a lo que nosotros necesitamos saber, podríamos decir que la información en el
celebro se transmite mediante impulsos eléctricos, que viajan por las neuronas
biológicas y por señales químicas que comunican las neuronas con otras neuronas
en sus bordes usando unas estructuras llamadas sinapsis.
Redes neuronal Artificial
Existe
actualmente una gran tendencia a establecer un nuevo campo de la computación
que integraría los diferentes métodos de resolución de problemas que no pueden
ser descritos fácilmente mediante un enfoque algorítmico tradicional. Estos
métodos tienen su origen en la emulación de sistemas biológicos. Se trata de
una nueva forma de computación que es capaz de manejar las imprecisiones e
incertidumbres de problemas relacionados con el mundo real (reconocimiento de
formas, toma de decisiones, etc.). Para ello se dispone de un conjunto de
metodologías como la Lógica Borrosa, el Razonamiento Aproximado, la Teoría del
Caos y las Redes Neuronales.
- Máquinas
Inteligentes: Máquinas que realizan con cierto éxito funciones típicas de los
seres humanos.
- Inteligencia
Artificial : Capacidad de un artefacto de realizar los mismos tipos de funciones
que caracterizan al pensamiento humano.
Con
las Redes Neuronales se busca la solución de problemas complejos, no como una
secuencia de pasos, sino como la evolución de unos sistemas de computación
inspirados en el cerebro humano, y dotados por tanto de cierta
"inteligencia", los cuales no son sino la combinación de elementos
simples de proceso (neuronas - se dará una visión rápida sobre el
funcionamiento de las mismas en los seres vivos-) interconectados, que operando
de forma paralela en varios estilos que serán analizados detalladamente,
consiguen resolver problemas relacionados con el reconocimiento de formas o patrones,
predicción, codificación, control y optimización entre otras aplicaciones.
La Red Backpropagation:El método backpropagation (propagación del error hacia atrás)
En 1986, Rumelhart, Hinton y Williams, formalizaron un método para que una red neuronal
aprendiera la asociación que existe entre los patrones de entrada y las clases correspondientes,
utilizando varios niveles de neuronas.
La importancia de la red backpropagation consiste en su capacidad de autoadaptar los pesos de
las neuronas de las capas intermedias para aprender la relación que existe ente un conjunto de
patrones de entrada y sus salidas correspondientes. Es importante la capacidad de generalización,
facilidad de dar salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de
entrenamiento. La red debe encontrar una representación interna que le permita generar las
salidas deseadas cuando se le dan entradas de entrenamiento, y que pueda aplicar, además, a
entradas no presentadas durante la etapa de aprendizaje para clasificarlas.
Estructura y Aprendizaje de la Red Backpropagation:
La aplicación del algoritmo tiene dos fases, una hacia delante y otra hacia atrás. Durante la
primera fase el patrón de entrada es presentado a la red y propagado a través de las capas hasta
llegar a la capa de salida. Obtenidos los valores de salida de la red, se inicia la segunda fase,
comparándose éstos valores con la salida esperada para así obtener el error. Se ajustan los pesos
de la última capa proporcionalmente al error. Se pasa a la capa anterior con una retropropagación
del error, ajustando los pesos y continuando con este proceso hasta llegar a la primera capa. De
esta manera se han modificado los pesos de las conexiones de la red para cada patrón de
aprendizaje del problema, del que conocíamos su valor de entrada y la salida deseada que debería
generar la red ante dicho patrón.La técnica Backpropagation requiere el uso de neuronas cuya función de activación sea continua,
y por lo tanto, diferenciable. Generalmente, la función utilizada será del tipo sigmoidal.