Este documento presenta una introducción a las redes neuronales artificiales. Explica que las redes neuronales artificiales se inspiran en el funcionamiento del cerebro humano y están compuestas de neuronas artificiales interconectadas. También describe los componentes básicos de una red neuronal artificial como los pesos sinápticos, el sumador, el umbral y la función de activación. Finalmente, menciona algunas aplicaciones como el reconocimiento de patrones y la predicción de series temporales.
Inteligencia artificial y redes neuronales artificiales
1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Defensa
Universidad Nacional Experimental
De la Fuerza Armada Nacional Bolivariana
Núcleo - Lara.
INTELIGENCIA ARTIFICIAL
(Red Neuronal Artificial)
Integrantes:
Querales, Yaneth
Huerta, Yuenni
Pérez, Yaina
Principal, Yasmira
Terán, Yandry
Profesor:
Jesús Contreras
Sección: 8N2IS
Barquisimeto, Diciembre 2011
2. INTRODUCCION
El presente enfoque es teórico práctico, de manera que se pueda
lograr su total comprensión. Se presenta el concepto de Redes neuronales
que es uno de esos términos de gran auge en la era de la tecnología. La
mayoría de la gente los ha oído, pero pocos saben lo que significan. Este
trabajo de investigación está diseñado para iniciar al lector en las redes
neuronales, su funcionamiento, estructura genérica, terminología, tipos y
usos.
Desde hace algunos años, algunos investigadores han estado creando
modelos, tanto en hardware como en software, que interpretan la actividad
cerebral en un esfuerzo por producir una forma de inteligencia artificial.
Muchos modelos teóricos o paradigmas, datan desde los años 50's.
Muchos de ellos tenían aplicaciones limitadas en el mundo real, teniendo
como consecuencia que las Redes Neuronales Artificiales (RNA)
permanecieran en la obscuridad por décadas.
Las RNA están compuestas de un gran número elementos de
procesamiento altamente interconectados (Neuronas) trabajando al mismo
tiempo para la solución de problemas específicos. Las RNA, tal como las
personas, aprenden de la experiencia.
En cualquier caso, se trata de una nueva forma de computación que
es capaz de manejar las imprecisiones e incertidumbres que aparecen
cuando se trata de resolver problemas relacionados con el mundo real
(reconocimiento de formas, toma de decisiones, etc.), ofreciendo soluciones
robustas y de fácil implementación.
3. Las RNA están compuestas de muchos elementos sencillos que
operan en paralelo, el diseño de la red está determinado mayormente por las
conexiones entre sus elementos, entre los cuales se encuentran los pesos
sinápticos que son el factor de aprendizaje de la neurona, las entradas que
serán los valores a procesar, un umbral que viene a ser el sumario donde se
procesan las entradas y los pesos. Aunado a ello se mencionan las fórmulas
matemáticas que sirven para resolver RNA, entre ellas están la función de
activación y la de reajuste de pesos. A través de los parámetros
mencionados Las RNA son entrenadas para la realización de funciones
complejas en variados campos de aplicación. Hoy en día pueden ser
entrenadas para la solución de problemas que son difíciles para sistemas
computacionales comunes o para el ser humano.
Finalmente, la esencia de este trabajo se ve reflejada en la necesidad
de conocer las redes neuronales artificiales, su implementación y como llegar
a implementar una RNA en algún caso real, teniendo como objetivo que el
lector quede totalmente satisfecho con la información suministrada.
4. Conceptos básicos que se deben tener en cuenta:
• Red: conjunto de entidades (objetos, personas, etc.) conectadas entre sí.
• Neurona: Célula diferenciada perteneciente al sistema nervioso, capaz de
propagar el impulso nervioso a otra neurona. Está compuesta por una zona
de recepción, las dendritas, y otra de emisión o salida, el axón o neurita: se
dice que a partir de cierta edad se acelera el proceso de pérdida de
neuronas.
• Artificial: Que no ha sido hecho por la naturaleza, sino por el ser humano u
otro ser inteligente.
red neuronal
Es un sistema compuesto por un gran número de elementos básicos
(Neuronas), agrupados en capas y que se encuentran altamente
interconectadas (sinapsis).
REDES NEURONALES BIOLOGICAS (RNB)
Red Neuronal Biológica
Está compuesta por un conjunto de neuronas de entrada (sensores)
conectados a una compleja red de neuronas "calculadoras" (neuronas
ocultas), las cuales, a su vez, están conectadas a las neuronas de salidas
que controlan. Una neurona es una célula viva, y como tal, contiene los
mismos elementos que forman parte de todas las células biológicas, además,
de poseer elementos característicos que la diferencian. En general una
neurona consta de un cuerpo celular más o menos esférico de 5 a 10 micras
de diámetro, del que sale una rama principal el axón, y varias ramas más
5. cortas denominadas dendritas. A su vez el axón puede producir ramas en
torno a su punto de arranque, y con frecuencia se ramifica extensamente
cerca de su extremo.
Soma o cuerpo celular: corresponde a la parte más voluminosa de la
neurona. Aquí se puede observar una estructura esférica llamada
núcleo. Éste contiene la información que dirige la actividad de la
neurona.
Dendritas: son prolongaciones cortas que se originan del soma
neural. Su función es recibir impulsos de otras neuronas y enviarlas
hasta el soma de la neurona.
Axón: es una prolongación única y larga. En algunas ocasiones,
puede medir hasta un metro de longitud. Su función es sacar el
impulso desde el soma neuronal y conducirlo hasta otro lugar del
sistema.
REDES NEURONALES ARTIFICIALES (RNA)
Es una rama de la Inteligencia Artificial es "la disciplina científica y
técnica que se ocupa del estudio de las ideas que permiten ser inteligentes a
los ordenadores" (definición de H. Winston).
Qué son las RNA
Una RNA es herramienta diseñada para emular la forma en que el
cerebro humano funciona.
6. Una RNA es parecida al cerebro en dos aspectos:
El conocimiento es adquirido a través de un proceso de
aprendizaje.
La fuerza de conexión interneuronas, conocida como pesos
sinápticos, son usados para el almacenamiento del
conocimiento
Las RNA son un método de resolver problemas, de forma individual o
combinadas con otros métodos, para aquellas tareas de clasificación,
identificación, diagnóstico, optimización o predicción en las que el balance
datos/conocimiento se inclina hacia los datos y donde, adicionalmente,
puede haber la necesidad de aprendizaje en tiempo de ejecución y de cierta
tolerancia a fallos. En estos casos las RNAs se adaptan dinámicamente
reajustando constantemente los “pesos” de sus interconexiones.
Las RNA se basan en la analogía que existe en el comportamiento y
función del cerebro humano, en particular del sistema nervioso, el cual está
compuesto por redes de neuronas biológicas que poseen bajas capacidades
de procesamiento, sin embargo toda su capacidad cognitiva se sustenta en
la conectividad de éstas.
La unidad de una red neuronal artificial es un procesador elemental
llamado neurona que posee la capacidad limitada de calcular, en general,
una suma ponderada de sus entradas y luego le aplica una función de
activación para obtener una señal que será transmitida a la próxima neurona.
Estas neuronas artificiales se agrupan en capas o niveles y poseen un alto
grado de conectividad entre ellas, conectividad que es ponderada por los
pesos. A través de un algoritmo de aprendizaje supervisado o no
7. supervisado, las RNA ajustan su arquitectura y parámetros de manera de
poder minimizar alguna función de error que indique el grado de ajuste a los
datos y la capacidad de generalización de las RNA.
Las redes neuronales como su nombre lo indica pretenden imitar a
pequeñísima escala la forma de funcionamiento de las neuronas que forman
el cerebro humano. Todo el desarrollo de las redes neuronales tiene mucho
que ver con la neurofisiología, no en vano se trata de imitar a una neurona
humana con la mayor exactitud posible. Entre los pioneros en el modelado
de neuronas se encuentra Warren McCulloch y Walter Pitts. Estos dos
investigadores propusieron un modelo matemático de neurona. En este
modelo cada neurona estaba dotada de un conjunto de entradas y salidas.
Cada entrada está afectada por un peso. La activación de la neurona se
calcula mediante la suma de los productos de cada entrada y la salida es una
función de esta activación. La principal clave de este sistema se encuentra
en los pesos de las diferentes entradas. Como se ha visto, las entradas son
modificadas por el peso y las salidas son función de estas modificaciones.
Esto nos lleva a concluir que los pesos influyen de forma decisiva en la salida
y por lo tanto pueden ser utilizados para controlar la salida que se desea.
En realidad cuando se tienen interconectadas muchas de estas
neuronas artificiales lo que se hace inicialmente es entrenar el sistema. El
entrenamiento consiste en aplicar unas entradas determinadas a la red y
observar la salida que produce. Si la salida que produce no se adecua a la
que se esperaba, se ajustan los pesos de cada neurona para
interactivamente ir obteniendo las respuestas adecuadas del sistema. A la
red se le somete a varios ejemplos representativos, de forma que mediante
la modificación de los pesos de cada neurona , la red va "aprendiendo".
8. ELEMENTOS BÁSICOS DE LA RNA:
Pesos sinápticos (wij): ligas de conexión entre los datos de
entrada y el sumador. Si estas son positivas entonces son
excitatorias, de lo contrario son inhibitorias.
Sumador: concentra la información como una combinación lineal
de los pesos sinápticos y de la entrada. Conocido como la regla de
propagación de la suma ponderada de las entradas multiplicadas
por los pesos
Umbral: disminuye la entrada (obtenida en el sumador) a la
función de la función de activación.
Función de activación: limita la amplitud de la respuesta de la
neurona al intervalo [0; 1] o [-1; 1].
BENEFICIOS Y VENTAJAS DE USAR RNA
1. Generalización: Capacidad para producir respuestas razonables a
estímulos no presentados durante su entrenamiento.
2. Adaptabilidad: La red puede ser construida para adaptar sus pesos
sinápticos al medio ambiente (re-entrenar). Es una de las
características más atractivas de las redes neuronales, es la
capacidad de aprender a realizar tareas basadas en un entrenamiento
o una experiencia inicial.
9. 3. Auto organización: Las redes neuronales usan su capacidad de
aprendizaje adaptativo para organizar la información que reciben
durante el aprendizaje y/o la operación. Una RNA puede crear su
propia organización o representación de la información que recibe
mediante una etapa de aprendizaje. Esta auto organización provoca la
facultad de las redes neuronales de responder apropiadamente
cuando se les presentan datos o situaciones a los que no habían sido
expuestas anteriormente.
4. Robusta: Por su carácter distributivo, una red maneja muy bien daños
a su estructura (ruido).
5. Complejidad: Puede capturar comportamiento complejo que no es
posible con métodos tradicionales.
6. No-parametrito: No hace suposiciones.
7. Tolerancia a Fallos: Comparados con los sistemas computacionales
tradicionales, los cuales pierden su funcionalidad en cuanto sufren un
pequeño error de memoria, en las redes neuronales, si se produce un
fallo en un pequeño número de neuronas, aunque el comportamiento
del sistema se ve influenciado, sin embargo no sufre una caída
repentina.
Hay dos aspectos distintos respecto a la tolerancia a fallos: primero, las
redes pueden aprender a reconocer patrones con ruido, distorsionados, o
10. incompleta. Segundo 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 fallos es que
tienen su información distribuida en las conexiones entre neuronas,
existiendo cierto grado de redundancia en ese tipo de almacenamiento, a
diferencia de la mayoría de los ordenadores algorítmicos y sistemas de
recuperación de datos que almacenan cada pieza de información en un
estado único, localizado y direccionable.
8. Operación en Tiempo Real: Los computadores neuronales pueden
ser realizados en paralelo, y se diseñan y fabrican máquinas con
hardware especial para obtener esta capacidad.
9. Fácil inserción dentro de la tecnología existente: Debido a que una
red puede ser rápidamente entrenada, comprobada, verificada y
trasladada a una implementación hardware de bajo costo, es fácil
insertar RNA para aplicaciones específicas dentro de sistemas
existentes (chips, por ejemplo). De esta manera, las redes neuronales
se pueden utilizar para mejorar sistemas de forma incremental, y cada
paso puede ser evaluado
FUNCIONES EN EL MODELO DE NEURONA ARTIFICIAL
El modelo de neurona artificial, modela la neurona como una
serie de funciones que se componen entre ellas siendo los resultados
unas los parámetros de otras, así la función de ponderación hace uso
de los valores que le llegan de las entradas y los pesos de las sinapsis
11. y la función de activación toma este valor para transformarlo en el
estado de la neuronas mediante la interacción de estas funciones se
procesa la información.
ALGUNAS DE LAS APLICACIONES MÁS DESTACADAS DE LAS RNA
SON:
Reconocimiento de patrones de clasificación:
Reconocimiento de voz, de caracteres manuscritos,...
Análisis y reconocimiento de imágenes, formas,...
Diagnóstico clínico.
Escritura. La red es presentada con muchos ejemplos de un
patrón hasta “guardar” el patrón, luego al ser presentado una
versión con ruido esta es capaz de reconocer el patrón.
Asociación de patrones: •Clasificación: una la red es entrenada
con ejemplos de clasificación conocida.
Aproximación de funciones. Identificación, problemas inversos.
Control: se conoce una señal de referencia y el objetivo es ajustar
los parámetros libres para seguir la salida deseada.
Filtro: son útiles en predicciones.
Análisis de series temporales y predicción:
Modelos meteorológicos.
Predicción del comportamiento.
12. Predicción de series temporales.
Robótica
Entre otras.
COMPARACIÓN ENTRE REDES NEURONALES BIOLÓGICAS Y REDES
NEURONALES ARTIFICIALES
La neurona artificial como símil de la neurona biológica:
Las neuronas artificiales son modelos que tratan de simular el
comportamiento de las neuronas biológicas. Cada neurona se representa
como una unidad de proceso que forma parte de una entidad mayor, la red
neuronal.
Como se ve la ilustración, dicha unidad de proceso consta de una
serie de Entradas Xi, que equivalen a las dendritas de donde reciben la
estimulación, ponderadas por unos pesos Wi , que representan como los
impulsos entrantes son evaluados y se combinan con la función de red que
nos dará el nivel de potencial de la neurona.
La salida de la función de red es evaluada en la función de activación
que da lugar a la salida de la unidad de proceso.
Como se puede ver en la siguiente ilustración, La neurona artificial se
comporta como la neurona biológica pero de una forma muy simplificada.
13. Por las entradas Xi llegan unos valores que pueden ser enteros, reales
o binarios. Estos valores equivalen a las señales que enviarían otras
neuronas a la nuestra a través de las dendritas.
Los pesos que hay en las sinapsis Wi, equivaldrían en la neurona
biológica a los mecanismos que existen en las sinapsis para transmitir la
señal. De forma que la unión de estos valores (Xi y Wi) equivalen a las
señales químicas inhibitorias y excitadoras que se dan en las sinapsis y que
inducen a la neurona a cambiar su comportamiento.
Estos valores son la entrada de la función de ponderación o red que
convierte estos valores en uno solo llamado típicamente el potencial que en
la neurona biológica equivaldría al total de las señales que le llegan a la
neurona por sus dendritas. La función de ponderación suele ser una la suma
ponderada de las entradas y los pesos sinápticos.
La salida de función de ponderación llega a la función de activación
que transforma este valor en otro en el dominio que trabajen las salidas de
las neuronas. Suele ser una función no lineal como la función paso o
sigmoidea aunque también se usa funciones lineales
14. El valor de salida cumpliría la función de la tasa de disparo en las
neuronas
biológicas. Suele ser la función identidad aunque hay sistemas en que no es
así pero estos sistemas sobrepasan el nivel de esta introducción así que nos
quedamos con lo más sencillo suponemos que la salida devuelve la identidad
15. Cuadro Comparativo
NEURONAS BIOLÓGICAS NEURONAS ARTIFICIALES
Red neuronal biológica, cúmulo de Red neuronal artificial, modelos
neuronas físicamente interconectadas matemáticos y computacionales de una
cuya actividad ayuda a definir un circuitored neuronal empleados en estadística,
reconocible en el sistema nervioso. psicología cognitiva, e inteligencia
artificial.
Conexiones sinápticas. (sinapsis: Conexiones ponderadas. (pesos +
conexión dendrita y axón de una neurona entradas)
y otra)
Efectividad de la sinapsis. (mecanismos Peso de las conexiones. (Wi)
que transmiten señal (conexión con otra
neurona)
Efecto excitador o inhibidor de una Signo del peso de una excitación.
conexión. peso-entrada (+) = sinapsis excitadora
(estimula la neurona para que se peso-entrada (-) = sinapsis inhibidora
relacione con las demás)
Efecto combinado de la sinapsis Función de propagación o de red
(núcleo) (realiza procesamiento de pesos
y entradas)
Activación -> tasa de disparo Función de activación -> salida (axón)
PERCEPTRÓN SIMPLE
El Perceptrón es un tipo de red neuronal artificial desarrollado por
Frank Rosenblatt, véase Perceptrón multicapa, también puede entenderse
como perceptrón la neurona artificial y unidad básica de inferencia en forma
de discriminador lineal, que constituye este modelo de red neuronal artificial,
esto debido a que el perceptrón puede usarse como neurona dentro de un
perceptrón más grande u otro tipo de red neuronal artificial.
16. Perceptrón simple: El perceptrón usa una matriz para representar las redes
neuronales y es un discriminador terciario que traza su entrada x (un vector
binario) a un único valor de salida f(x) (un solo valor binario) a través de
dicha matriz.
Donde w es un vector de pesos reales y es el producto punto (que
computa una suma ponderada). u es el 'umbral', el cual representa el grado
de inhibición de la neurona, es un término constante que no depende del
valor que tome la entrada.
El valor de f(x) (0 o 1) se usa para clasificar x como un caso positivo o
un caso negativo, en el caso de un problema de clasificación binario. El
umbral puede pensarse de como compensar la función de activación, o
dando un nivel bajo de actividad a la neurona del rendimiento. La suma
ponderada de las entradas debe producir un valor mayor que u para cambiar
la neurona de estado 0 a 1.
En la fase de aprendizaje los pesos son ajustados de acuerdo a la
suma pesada de las entradas (la red). En el perceptrón estándar, la red pasa
a la función de activación y la salida de la función es usada para ajustar los
pesos.
17. PERCEPTRON MULTICAPA:
Es una red neuronal artificial formada por multicapas, esto le permite
resolver problemas que no son linealmente separables lo cual es la principal
limitación del perceptron (también llamado perceptron simple). El perceptron
multicapa puede ser totalmente o localmente conectado. En el primer caso
cada salida de una neurona de capa i es entrada de todas las neuronas de la
capa “ i+1”, mientras que en el segundo cada neurona de la capa “i” es
entrada de una serie de neuronas(región)de la capa “i+1”
18. Capa de entrada: las neuronas de la capa de entrada, reciben los
datos que se proporcionan a la RNA para que los procese.
Capas ocultas: estas capas introducen grados de libertad adicionales
en la RNA. El número de ellas puede depender del tipo de red que
estemos considerando. Este tipo de capas realiza gran parte del
procesamiento.
Capa de salida: Esta capa proporciona la respuesta de la red
neuronal. Normalmente también realiza parte del procesamiento.
RED ADALINE
Esta red es del mismo tipo que la perceptron, la red adaline utiliza un
método de aprendizaje basada en un algoritmo llamado LMS. Está
compuesta por una neurona con dos entradas, la salida presenta dos
opciones o es mayor que 0 o menos que 0. Su aprendizaje es supervisado y
para actualizar el valor de los pesos utiliza el algoritmo anteriormente citado.
Su utilización principal es el filtrado y el procesamiento de señale
Estructura Adaline
La Figura (4.5.a) muestra una Adaline básica. La unidad procesadora
representada por un círculo con el símbolo sumatorio implementa una
función umbral. Las conexiones de cada una de las entradas tienen
asociadas un valor de ponderación llamado también peso wi.
El mecanismo de ajuste de los pesos representado en la Figura
(4.5.b), consiste en utilizar
19. APRENDIZAJE SUPERVISADO
Como ya se mencionó anteriormente una red neuronal artificial (ANN)
es un esquema de computación distribuida inspirada en la estructura del
sistema nervioso de los seres humanos. La arquitectura de una red neuronal
es formada conectando múltiples procesadores elementales, siendo éste un
sistema adaptivo que posee un algoritmo para ajustar sus pesos (parámetros
libres) para alcanzar los requerimientos de desempeño del problema basado
en muestras representativas.
Por lo tanto podemos señalar que una ANN es un sistema de
computación distribuida caracterizada por:
20. Un conjunto de unidades elementales, cada una de las cuales posee
bajas capacidades de procesamiento.
Una densa estructura interconectada usando enlaces ponderados.
Parámetros libres que deben ser ajustados para satisfacer los
requerimientos de desempeño.
Un alto grado de paralelismo.
Es importante señalar que la propiedad más importante de las redes
neuronales artificiales es su capacidad de aprender a partir de un conjunto
de patrones de entrenamientos, es decir, es capaz de encontrar un modelo
que ajuste los datos. El proceso de aprendizaje también conocido como
entrenamiento de la red puede ser supervisado o no supervisado.
El aprendizaje supervisado
Se asemeja al método de enseñanza tradicional con un profesor que
indica y corrige los errores del alumno hasta que éste aprende la lección. Si
la red utiliza un tipo de aprendizaje supervisado debemos proporcionarle
parejas de patrones entrada-salida y la red neuronal aprende a asociarlos.
En terminología estadística equivale a los modelos en los que hay
vectores de variables independientes y dependientes: técnicas de regresión,
análisis discriminante, análisis lógit, modelos de series temporales, etc. En
aprendizaje automático y minería de datos, el aprendizaje supervisado es
una técnica para deducir una función a partir de datos de entrenamiento. Los
datos de entrenamiento consisten de pares de objetos (normalmente
vectores): una componente del par son los datos de entrada y el otro, los
resultados deseados. La salida de la función puede ser un valor numérico
21. (como en los problemas de regresión) o una etiqueta de clase (como en los
de clasificación).
A través del aprendizaje supervisado es la de crear una función capaz
de predecir el valor correspondiente a cualquier objeto de entrada válida
después de haber visto una serie de ejemplos, los datos de entrenamiento.
Para ello, tiene que generalizar a partir de los datos presentados a las
situaciones no vistas previamente, cabe destacar que en otros términos
consiste en entrenar la red a partir de un conjunto de datos o patrones de
entrenamiento compuesto por patrones de entrada y salida. El objetivo del
algoritmo de aprendizaje es ajustar los pesos de la red w de manera tal que
la salida generada por la ANN sea lo más cercanamente posible a la
verdadera salida dada una cierta entrada. Es decir, la red neuronal trata de
encontrar un modelo al procesos desconocido que generó la salida y. Este
aprendizaje se llama supervisado pues se conoce el patrón de salida el cual
hace el papel de supervisor de la red.
El aprendizaje supervisado consiste en entrenar la red a partir de un
conjunto de datos o patrones de entrenamiento compuesto por patrones de
entrada y salida. El objetivo del algoritmo de aprendizaje es ajustar los pesos
de la red w de manera tal que la salida generada por la ANN sea lo más
cercanamente posible a la verdadera salida dada una cierta entrada. Es
decir, la red neuronal trata de encontrar un modelo al procesos desconocido
que generó la salida y. Este aprendizaje se llama supervisado pues se
conoce el patrón de salida el cual hace el papel de supervisor de la red.
El aprendizaje no supervisado
22. No hay un profesor que corrija los errores al alumno; recuerda más al
auto aprendizaje. El alumno dispone del material de estudio pero nadie lo
controla. Si el entrenamiento es no supervisado, únicamente debemos
suministrar a la red los datos de entrada para que extraiga los rasgos
característicos esenciales. En terminología estadística equivale a los
modelos en los que sólo hay vectores de variables independientes y buscan
el agrupamiento de los patrones de entrada: análisis de conglomerados o
clúster, escalas multidimensionales, etc.
Aprendizaje no supervisado se presenta sólo un conjunto de patrones
a la ANN, y el objetivo del algoritmo de aprendizaje es ajustar los pesos de la
red de manera tal que la red encuentre alguna estructura o configuración
presente en los datos.
Algunas de sus aplicaciones más importantes son:
Asociadores de patrones, esto es asocia dos patrones y permite
recuperar la información a pesar de errores en la capa de entrada.
Modeladores funcionales, las redes neuronales permiten, gracias a
su capacidad de ajustar el error dar los valores más cercanos a una
función de la que solo sabemos algunos puntos por los que pasa
CICLO DE ENTRENAMIENTO
El entrenamiento de la red neuronal es muy importante ya que servirá
para que posteriormente la respuesta del sistema sea la adecuada. Si nos
fijamos un poco eso tiene mucho que ver con el aprendizaje humano.
Ejemplo, Cuando a un niño se le ordena coger un vaso, empieza moviendo el
brazo de forma cuasi-aleatoria hasta que choca con el vaso y lo presiona con
23. sus dedos. La próxima vez que se le ordene al niño, éste alcanzará el vaso
con mayor soltura y precisión. Este mismo modelo se ha ensayado en redes
neuronales de características similares a las del niño. Una vez que el brazo
mecánico choca con la pieza y memoriza la secuencia, en posteriores
ocasiones al brazo le cuesta menos realizar la misma operación se dice
entonces que el sistema adquirió experiencia.
Algoritmo de entrenamiento
Son técnicas matemáticas o heurísticas bien establecidas a través de
los cuales se obtienen los valores de los pesos sinápticos y el parámetro de
sesgo. Estos algoritmos NO modifican la función de activación elegida para
el modelo de red neuronal que se entrena.
Lo que hacen es modificar los pesos sinápticos utilizando el valor
anterior de este más un factor de corrección:
24.
25. Y se diferencian uno de otro en la forma en que dicha correcciones
obtenidas. Existen una amplia variedad de algoritmos de entrenamiento cada
cual con sus fortalezas y debilidades. Distintos paradigmas de aprendizaje
junto con distintos algoritmos de entrenamiento producen diversas redes
neuronales.
Existen muchos algoritmos de entrenamiento, algunos de los cuales se
mencionan:
Error correction learning or delta rule: es un aprendizaje
supervisado, en donde se usa el error obtenido en la presentación del
estímulo para determinar el factor de corrección.
Competitive learning: las neuronas compiten entre sí para hacerse
activas estableciendo. Solo una se activa a la vez (especialización).
Hebbian learning: correlaciona la actividad prey post sináptica (si
ambas neuronas se activan se fortalece la conexión y se debilita en
caso contrario).
Aquí el factor de corrección es multiplicativo entre la actividad prey
post sináptica.
Memory Based learning: la red almacena data ya procesada en
memoria. Un nuevo patrón es procesado según su cercanía (en
sentido euclideo) a un patrón en memoria
26. ENTRENAMIENTO
Durante la operatoria de una red neuronal podemos distinguir
claramente dos fases o modos de operación: la fase de aprendizaje o
entrenamiento, y la fase de operación o ejecución.
Durante la primera fase, la fase de aprendizaje, la red es entrenada
para realizar un determinado tipo de procesamiento. Una vez alcanzado un
nivel de entrenamiento adecuado, se pasa a la fase de operación, donde la
red es utilizada para llevar a cabo la tarea para la cual fue entrenada.
Una vez seleccionada el tipo de neurona artificial que se utilizará en
una red neuronal y determinada su topología es necesario entrenarla para
que la red pueda ser utilizada. Partiendo de un conjunto de pesos sinápticos
aleatorio, el proceso de aprendizaje busca un conjunto de pesos que
permitan a la red desarrollar correctamente una determinada tarea. Durante
el proceso de aprendizaje se va refinando iterativamente la solución hasta
alcanzar un nivel de operación suficientemente bueno.
El proceso de aprendizaje se puede dividir en tres grandes grupos de
acuerdo a sus características [Isasi Viñuela y Galván León, 2004],
[Yao,1999]:
Aprendizaje supervisado. Se presenta a la red un conjunto de
patrones de entrada junto con la salida esperada. Los pesos se van
modificando de manera proporcional al error que se produce entre la
salida real de la red y la salida esperada.
27. Aprendizaje no supervisado. Se presenta a la red un conjunto de
patrones de entrada. No hay información disponible sobre la salida
esperada. El proceso de entrenamiento en este caso deberá ajustar
sus pesos en base a la correlación existente entre los datos de
entrada.
Aprendizaje por refuerzo. Este tipo de aprendizaje se ubica entre
medio de los dos anteriores. Se le presenta a la red un conjunto de
patrones de entrada y se le indica a la red si la salida obtenida es o no
correcta. Sin embargo, no se le proporciona el valor de la salida
esperada. Este tipo de aprendizaje es muy útil en aquellos casos en
que se desconoce cuál es la salida exacta que debe proporcionar la
red.
Fase de operación
Una vez finalizada la fase de aprendizaje, la red puede ser utilizada
para realizar la tarea para la que fue entrenada. Una de las principales
ventajas que posee este modelo es que la red aprende la relación existente
entre los datos, adquiriendo la capacidad de generalizar conceptos. De esta
manera, una red neuronal puede tratar con información que no le fue
presentada durante de la fase de entrenamiento.
Descripción general:
Las redes neuronales que puede crear y simular el programa están
formadas por 2 capas de neuronas:
28. Una capa de entradas, con un máximo de 8 neuronas.
Una capa de salidas, con un máximo de 8 neuronas.
Y, cada neurona de la capa de entradas está conectada con todas las
neuronas de la capa de salidas. Estas conexiones presentan pesos
sinápticos variables: Wij, siendo i el número de la neurona de entrada (Xi) y j
el de la neurona de salida (Xj).
Además, cada neurona de la capa de salidas presenta un valor umbral
(Tj), que, para facilitar la rutina de entrenamiento, se expresa como si fuera
un peso sináptico más, asociado a una neurona bias (siempre activa).
De esta manera, los valores umbrales quedan: Tj = -W0j, siendo j el
número de la neurona de salida (Xj) y X0 la neurona bias.
Así, uno de los modelos que puede manejar el programa sería:
Y la condición de activación para las neuronas de la capa de salida quedaría:
Para el entrenamiento se usa la regla de entrenamiento del Perceptrón
simplificada:
29. Si la salida generada por la neurona de salida es la correcta (no se
realizan ajustes de los pesos sinápticos).
Si la salida es 1 pero debería ser 0, se reducen sólo los pesos de las
conexiones activas sobre la neurona de salida según una constante
de entrenamiento C.
Si la salida es 0 pero debería ser 1, entonces se aumentan sólo los
pesos de las conexiones activas según la misma constante C.
El programa permite también trabajar con la red una vez esta ha sido
entrenada, de forma que introduciendo unos datos de entrada, la red genera
unos datos de salida.
ERROR CUADRÁTICO
Otro criterio razonable para escoger un determinado estimador de un
parámetro θ es tomar aquel que cometa, en promedio, el menor error en la
estimación. Como, en principio, queremos penalizar igualmente los errores
por defecto que por exceso podríamos establecer como cantidad a minimizar
la esperanza de la diferencia entre el estadístico T y el parámetro θ (en valor
absoluto para impedir que los errores por defecto y por exceso se anulen
mutuamente.
Aunque este operador resulta razonable, presenta el inconveniente de
que la función valor absoluto es complicada de manejar desde un punto de
vista matemático. Por dicha razón suele utilizarse el error cuadrático medio
(ECM) de un estimador T, definido como sigue:
30. Una propiedad interesante del ECM es que puede descomponerse
como la suma de dos componentes: la varianza del estimador más su sesgo
al cuadrado:
Por tanto, en el caso de comparar diversos estimadores centrados de
un parámetro θ, el ECM coincidirá con sus varianzas. Con lo que el
estimador con menor ECM coincidirá con el de menor varianza.
Debe quedar claro, sin embargo, que el estimador con menor ECM no
debe ser necesariamente centrado. De hecho, no siempre existirá el
estimador con ECM mínimo. En realidad, si no nos restringimos a
estimadores centrados, suele suceder que para unos determinados valores
de θ sea un estimador el que produzca un ECM menor, mientras que para
otros valores de θ sea otro estimador el que obtenga un ECM menor.
ALGORITMO DE RETROPROPAGACIÓN
La Red Backpropagation
El método por el cual el error es propagado hacia atrás fue
descubierto por D.E. Rumelhart, G.E. Hinton y R.J. Williams en 1986. Ellos
formalizaron dicho 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.
El método backpropagation (propagación del error hacia atrás),
basado en la generalización de la regla delta, a pesar de sus limitaciones, ha
ampliado de forma considerable el rango de aplicaciones de las redes
neuronales.
31. El método de back-propagation (o entrenamiento hacia atrás) es un
sistema automático de entrenamiento de redes neuronales con capas
ocultas, perfeccionado en la década de los 80. En este tipo de redes, el
problema a la hora de entrenarlas estriba en que sólo conocemos la salida
de la red y la entrada, de forma que no se pueden ajustar los pesos
sinápticos asociados a las neuronas de las capas ocultas, ya que no
podemos inferir a partir del estado de la capa de salida como tiene que ser el
estado de las capas ocultas.
Es un algoritmo de aprendizaje supervisado que se usa para entrenar
redes neuronales artificiales. El algoritmo consiste en minimizar un error
(comúnmente cuadrático) por medio de descenso de gradiente, por lo que la
parte esencial del algoritmo es cálculo de las derivadas parciales de dicho
error con respecto a los parámetros de la red neuronal.
Conocido también por su denominación en inglés, backpropagation,
este algoritmo es de uso muy extendido en las aplicaciones de redes
neurales. Se le identifica como parte de los procesos de aprendizaje
supervisados como se dijo anteriormente, pues requiere que la red disponga
de información para partir de ella, usualmente en las entradas y salidas. El
algoritmo es iterativo alrededor de los pesos, pues la intención es ajustarlos
en cada unidad de tal manera que se reduzca el error entre la salida deseada
y la real. De ahí que la variable principal sea conocida como error derivado
de los pesos, EW (por las siglas en inglés).
El sistema de entrenamiento mediante back-propagation consiste en:
Empezar con unos pesos sinápticos cualquiera (generalmente
elegidos al azar).
32. Introducir unos datos de entrada (en la capa de entradas) elegidos al
azar entre los datos de entrada que se van a usar para el
entrenamiento.
Dejar que la red genere un vector de datos de salida (propagación
hacia delante).
Comparar la salida generada por la red con la salida deseada.
La diferencia obtenida entre la salida generada y la deseada
(denominada error) se usa para ajustar los pesos sinápticos de las
neuronas de la capa de salidas.
El error se propaga hacia atrás (back-propagation), hacia la capa de
neuronas anterior, y se usa para ajustar los pesos sinápticos en esta
capa.
Se continua propagando el error hacia atrás y ajustando los pesos
hasta que se alcance la capa de entradas.
Este proceso se repetirá con los diferentes datos de entrenamiento.
La importancia de la red backpropagation:
Consiste en su capacidad de auto adaptar 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
33. 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.
CONCLUSION
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
34. 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 que finalizarán con este documento.
También se puede decir que las redes neuronales se orientan a
desarrollar máquinas o sistemas inteligentes capaces de simular, desarrollar
y optimizar muchas de las funciones de un ser humano así como también la
investigación científica ya que pueden hacer cosas que el hombre por sus
limitaciones físicas no puede realizar.
Estas redes se pueden ver como dos cosas; primero un intento de
imitar nuestra forma de pensar, por otro lado un magnífico algoritmo basado
en la paralelización masiva, al contrario de los sistemas informáticos
habituales que se basan en procesar las cosas en serie. Esa, es también la
forma que tiene el ser humano de pensar.
Muchas veces se dice que los ordenadores han superado al hombre;
sin embargo no somos capaces de mantener una buena conversación con
uno, y cosas que para nosotros son tan sencillas como identificar un rostro
en una multitud, para el ordenador basado en los algoritmos es casi
imposible. Si a nosotros nos hablan de un "animal que tiene trompa"
inmediatamente pensamos en un elefante. Sin embargo, un ordenador
habría de buscar recursivamenteen su base de datos sobre animales, uno
por uno, hasta encontrar coincidencias.