Redes Neuronales para el Reconocimiento de Patrones

Anuncio
Universidad ORT Uruguay
Facultad de Ingeniería
Redes Neuronales para el Reconocimiento
de Patrones
Entregado como requisito para la obtención del título de
Licenciado en Análisis de Sistemas de Información
Juan Andrés Gómez Robaina - 129139
Tutor: Ing. Julio Fernández
2007
1
1 - Abstract ................................................................................................................ 3
2- Humanos y Computadoras .................................................................................. 4
3 - El Test de Turing ................................................................................................. 6
3.1 - Inteligencia Artificial Versus Inteligencia Natural.......................................... 7
4 - Redes Neuronales ............................................................................................... 8
4.1 - Analogía con el cerebro humano .................................................................... 9
4.2 - Redes neuronales biológicas ...................................................................... 9
El axón ................................................................................................................... 9
4.3 - Redes neuronales artificiales ........................................................................ 11
Entradas............................................................................................................... 12
Salidas ................................................................................................................. 12
Pesos ................................................................................................................... 12
5 - Reconocimiento de Patrones ........................................................................... 12
6 - Aprendizaje ........................................................................................................ 15
Cómo aprende una red ....................................................................................... 15
6.1 - Algoritmos de Aprendizaje ............................................................................ 16
6.2 - Entrenamiento Supervisado .......................................................................... 16
6.3 - Entrenamiento No Supervisado .................................................................... 17
6.4 - Índices de Aprendizaje................................................................................... 17
6.5 - Técnicas de Entrenamiento ........................................................................... 18
6.6 - Recolección de Datos y Preparación............................................................ 19
7 - Arquitecturas Típicas ........................................................................................ 19
8 - Aplicaciones de las Redes Neuronales ........................................................... 20
9 - Conclusiones ..................................................................................................... 22
Bibliografía .............................................................................................................. 23
2
1 - Abstract
El objetivo de este documento es introducir a estudiantes y profesionales del área de
la Informática a la aplicación de Redes Neuronales para el reconocimiento de
patrones.
Se pretende mostrar el funcionamiento de las mismas para entender y crear una
base que permita profundizar en cualquiera de los amplios temas que forman parte
del mundo de la Inteligencia Artificial.
Entender el propósito de las redes neuronales para visualizar claramente cómo
pueden aplicarse para solucionar importantes problemas en el área de sistemas de
computación.
Abordaremos las diferencias entre la inteligencia natural y la inteligencia artificial,
contrastando tanto a nivel biológico como a nivel artificial, poniendo humanos y
computadoras a ambos lados de la balanza.
Se realizará una definición de lo que es una red neuronal y su cometido a través de
ejemplos sencillos que puedan permitir la apertura suficiente a la dificultad que
presenta el tema.
Este artículo abarca los puntos fundamentales del reconocimiento de patrones, es
por eso que también se hace hincapié en el proceso de aprendizaje, tanto en definir
lo que es el mismo como en los diferentes caminos que podemos tomar para
realizarlo.
Por último, se presentan las conclusiones obtenidas.
3
2- Humanos y Computadoras
A menudo decimos que los seres humanos son más inteligentes que las
computadoras pero no tenemos claro el por que de esta afirmación. Puede influir
que nuestra condición humana no nos deja pensar que un trozo de silicio y metal
puede hacer lo mismo que nosotros o porque somos diferentes a las computadoras,
en términos de las operaciones que realizamos. El objetivo de la inteligencia artificial
se enfoca al estudio del comportamiento inteligente en las máquinas, este tipo de
comportamiento supone aprender o entender de la experiencia, dar sentido a
mensajes contradictorios o ambiguos, responder rápida y exitosamente a una nueva
situación mediante flexibilidad o diferentes respuestas, usar el razonamiento para
resolver problemas dirigiendo la conducta efectivamente, manejar situaciones
perplejas, comprender e inferir mediante vías racionales, aplicar conocimiento para
manipular el ambiente, pensar y razonar y reconocer la relativa importancia de
diferentes elementos dentro de una situación. Una de las metas a largo plazo de la
I.A. es el desarrollo de máquinas que puedan hacer todas estas cosas igual, o quizá
incluso mejor que los humanos (RUSSEL Beale, 1990).
Rich y Knight (1991) sostienen que: “La Inteligencia Artificial es el estudio de
cómo hacer que las computadoras hagan cosas, que de momento, los humanos
hacen mejor”, otra definición publicada sostiene que: “La IA es el comportamiento de
una máquina, que realizado por un humano, sería considerado inteligente”
(TURBAM Efraim, 2001).
En lo que la mayoría de los expertos están de acuerdo es en que la IA abarca
dos grandes conceptos. El primero involucra el estudio del proceso del pensamiento
humano, para comprender que es la inteligencia, y el segundo, como representar
estos procesos mediante máquinas tales como computadoras o robots
Sumar unos cuantos números de ocho y nueve cifras puede ser una operación
trivial para una computadora, pero requiere un gran esfuerzo incluso para una
persona hábil. De todas maneras esto no responde la interrogante de si son más
inteligentes que nosotros o no, aunque inicialmente se podría considerar que si,
entonces consideremos los crucigramas. Muchas personas son excelentes
resolviéndolos, pero otras pueden ser terribles. Pero todos podemos generalmente
manejar varias pistas para tratar de descifrar una palabra en cuestión, y sin
embargo, este tipo de tareas son extremadamente difíciles para las computadoras.
Resolver crucigramas generalmente implica resolver una pista obscura, tenemos
que sacar conjeturas y utilizar lo que llamamos intuición, donde seguimos caminos
de investigación que no son inmediatamente obvios pero que surgen de alguna idea
que sale adelante. Las computadoras no pueden hacer esto bien, quizás debamos
ajustar nuestra definición y decir que las computadoras son lógicas y que solo
pueden hacer cosas lógicas.
4
Entonces deberíamos tener en cuenta la visión; una actividad que resulta
perfectamente lógica para nosotros, mirar algo, descubrir que es, darle un nombre, y
posiblemente hacer algo con el. Si fuera una tasa de té, la reconoceríamos como tal
y la beberíamos; si fuera una pelota de fútbol que viene rápidamente hacia nosotros,
tendríamos que decidir cursos de acción más complejos. Pero de nuevo, las
computadoras son muy malas realizando simples tareas visuales. Quizás el
problema sea que, como las computadoras pueden hacer tareas que nosotros
hacemos en una fracción de segundo, como complejas operaciones matemáticas o
recordar un nombre o una dirección, esperamos que sean como nosotros en otros
aspectos.
La respuesta al por qué no pueden hacer las cosas que hacemos podría estar en
la naturaleza. Un conocido filósofo, John Searle, cree que la materia de la que
estamos hechos es fundamental para la inteligencia (Searle, 1980; Searle, 1992).
Para él, el pensamiento sólo puede ocurrir en máquinas muy especiales – las
máquinas vivientes hechas de proteínas.
Si miramos dentro de una computadora, podemos ver cierta cantidad de chips,
conteniendo circuitos y componentes, enchufados en un tablero de circuitos con
resistores y otros elementos. Si miramos dentro del cerebro no veremos nada
comparado con esa estructura ordenada, nuestra inspección inicial nos revelaría
nada más que una enrollada masa homogénea de materia gris. Pero una
investigación más profunda puede revelar que también el cerebro tiene
componentes, pero estos están todos dispuestos de una manera inmensamente
compleja, cada uno conectado a cientos de otros.
Posiblemente sea esta diferencia en el diseño explique la diferencia en el
funcionamiento entre los sistemas. Las computadoras están diseñadas para realizar
una instrucción tras otra, extremadamente rápido, mientras que nuestro cerebro
trabaja con unidades mucho más lentas. Cuando una computadora puede haber
realizado unos millones de operaciones por segundo, las unidades en el cerebro
responden diez veces por segundo. Sin embargo, el cerebro trabaja en más de una
cosa a la vez, algo que las computadoras no pueden hacer hasta el momento. La
computadora es una máquina serial de alta velocidad y es usada como tal,
comparada con la lenta y altamente paralela naturaleza del cerebro. Dado esto
todavía nos podemos seguir preguntando si resulta sorprendente que la
computadora falle en funcionar de la misma manera que el cerebro. (RUSSEL Beale,
1990)
5
2.1 - Algunas diferencias entre el cerebro y las computadoras

El cerebro procesa la información en paralelo, mientras que los ordenadores
convencionales lo hacen secuencialmente. Por tanto, tenemos que construir
nuevas variedades de ordenadores paralelos para realizar progresos en la IA.

La maquinaria computacional está basada en lógica binaria (verdadero o
falso).

Las neuronas animales son mucho más complejas que simples conmutadores
–los bloques constructivos básicos de los ordenadores actuales -. Para lo
cual, necesitaríamos neuronas artificiales verdaderamente realistas para
construir máquinas inteligentes.
3 - El Test de Turing
En 1950 el británico matemático Alan Turing (Turing, 1950) propuso el Test de
Turing(TT) como un reemplazo a la pregunta de si las máquinas pueden pensar.
Desde entonces, las ideas de Turing han sido extensamente discutidas, atacadas y
defendidas una y otra vez. Por un lado el TT ha sido considerado como el
“comienzo” de la IA y el TT como su objetivo final, pero por otro, el TT ha sido
catalogado como inútil, y hasta perjudicial. En el medio hay argumentos de
conciencia, comportamiento, definiciones operacionales de inteligencia, el problema
de “otras mentes”, condiciones necesarias y suficientes que otorguen inteligencia, y
otros más.
El propósito del Test es proveer un método para evaluar si una máquina puede
pensar o no y consiste en un desafío al cual llamó “El juego de la Imitación”. El juego
es jugado por un hombre(A), una mujer (B) y un interrogador (C) cuyo sexo no tiene
importancia. El interrogador se mantiene en una habitación separada de A y B. El
objetivo del interrogador es determinar cual de los otros dos es la mujer mientras
que el objetivo del hombre y la mujer es convencer al interrogador que el o ella son
la mujer y el otro no. La comunicación para tomar las decisiones debe ser realizada
por una conexión de teletipo, para que sean los caracteres no sean manuscritos. Así
el interrogador realiza las preguntas en lenguaje natural escrito y recibe las
preguntas de la misma manera, las preguntas pueden ser de cualquier tema
imaginable, desde matemáticas a poesía, el clima o ajedrez. La interrogante que
plantea Turing surge en que sucedería si la máquina toma el lugar de (A) en el
juego, es realmente una duda saber si el interrogador pueda distinguir cual es la
mujer.
Si el interrogador no es capaz de decidir si está hablando con un hombre o una
mujer entonces se podría decir que la máquina es inteligente.
6
3.1 - Inteligencia Artificial Versus Inteligencia Natural
El valor potencial de la inteligencia artificial se puede entender mejor contrastándolo
con la inteligencia natural o humana (TURBAM Efraim, 2001). Esta última posee
muchas ventajas:
 La IA es más permanente – La inteligencia natural es perecedera desde un
punto de vista comercial ya que los empleados pueden cambiar su lugar de
trabajo y olvidar la información. Por el contrario, la IA es permanente mientras
los sistemas y programas se mantengan sin cambios.
 La IA ofrece facilidad de duplicación y diseminación – La transferencia de
conocimiento de una persona a otra usualmente requiere un largo proceso de
aprendizaje, y rara vez puede ser duplicado completamente. Sin embargo,
cuando el conocimiento forma parte de un sistema computarizado, puede ser
fácilmente transferido desde esa computadora a alguna otra por varios
medios.
 La IA puede ser más barata que la inteligencia natural – Hay muchas
circunstancias en las que comprar servicios informáticos es más barato que
tener el correspondiente poder humano para llevar a cabo las mismas tareas.
Esto es especialmente verdad cuando el conocimiento está diseminado por
muchos lugares.
 La IA es consistente y cuidadosa – La inteligencia natural es errática porque
los humanos lo son; no nos comportamos de manera consistente.
 La IA puede ser documentada – Las decisiones tomadas por computadora
pueden ser fácilmente documentadas siguiendo el log de actividades del
sistema. La inteligencia natural es difícil de documentar. Por ejemplo, una
persona puede llegar a cierta conclusión en cierto momento, pero más
adelante en el tiempo puede resultar incapaz de recrear el proceso de
razonamiento que lo llevó a esa conclusión, o a tan siquiera a recordar los
supuestos que fueron parte de la decisión.
 La IA puede ejecutar algunas tareas más rápidamente que los humanos.
 La IA puede realizar ciertas tareas mejor que muchas o que la mayoría de las
personas.
 La Inteligencia Natural es creativa, mientras que la IA carece de inspiración.
La habilidad de adquirir conocimiento es inherente al ser humano, pero con la
IA, el conocimiento adaptado debe formar parte de un sistema
cuidadosamente construido.
7
4 - Redes Neuronales
La Inteligencia Artificial es un campo muy grande y tiene ramas en psicología
cognoscitiva, filosofía, matemáticas, cibernética y por supuesto en las ciencias de la
computación. Podemos decir ampliamente, que sin embargo distinguimos que
algunos aspectos de la IA están enfocados a entender como el cerebro o la mente
humana trabajan, y a intentos para modelar esto mediante el uso de ordenadores;
en otras palabras, modelar el cerebro completo como una entidad única tratando de
construir un modelo de computadora que se comporte de la misma manera.
Tenemos objetivos planteados para saber como las criaturas capturan las ideas
en sus cerebros, como procesan la información, como identifican patrones, como
guardan datos históricos, como memorizan patrones e ideas y los asocian con nueva
información y como razonan y manipulan conceptos abstractos. Son estas
fascinaciones el motor del estudio que intenta alcanzar una comprensión más
madura de la mente (NILS J. Nilson, 2000).
Decimos que es una red neuronal porque es una red de elementos
interconectados, inspirados en los estudios de sistemas nerviosos biológicos. En
otras palabras, las redes neuronales son un intento de crear máquinas que trabajen
en un modo similar al del cerebro humano construyendo estas máquinas usando
componentes que se comporten como neuronas biológicas. La alternativa principal
es tratar de mirar la estructura del cerebro, el cual está constituido por billones de
neuronas interconectadas, y mirar si podemos producir una actividad similar a la del
cerebro utilizando redes de neuronas artificiales.
La función de una red neuronal es producir un patrón de salida respecto a un
patrón de entrada. Este concepto es algo abstracto, como una de las operaciones
para la que una red neuronal puede ser construida, el reconocimiento de patrones
(RUSSEL Beale, 1990).
8
4.1 - Analogía con el cerebro humano
4.2 - Redes neuronales biológicas
El cerebro humano está compuesto por células especiales llamadas neuronas.
Estas células no mueren cuando un ser humano es dañado (las demás células se
reproducen para reemplazarse y luego mueren), lo que podría explicar porque
retenemos información. El número estimado de neuronas en un cerebro humano va
de 50 billones a 150 billones, en los cuales podemos encontrar más de 100 tipos
diferentes de neuronas, particionadas en grupos a los cuales llamamos redes. Cada
red contiene varios cientos de neuronas que están altamente interconectadas, de
esta manera, podemos ver al cerebro como una colección de redes neuronales.
La habilidad para aprender y reaccionar a los cambios de nuestro ambiente
requiere inteligencia. El pensamiento y el comportamiento inteligente son
controlados por el cerebro y el sistema nervioso central. Por ejemplo, la gente que
sufre daños cerebrales tiene dificultades en el aprendizaje y en la reacción a
ambientes cambiantes. A pesar de esto, las partes no dañadas del cerebro pueden a
menudo compensar con nuevos aprendizajes.
Una neurona está formada por el cuerpo celular y diferentes prolongaciones como
se muestra en la Figura 1:
El axón
Por aquí transitan los impulsos nerviosos o potenciales de acción desde el
cuerpo celular hacia la siguiente célula. Los axones pueden agruparse y formar lo
que comúnmente llamamos fibra nerviosa. La terminación axonal tiene forma
abultada y se llama botón presináptico, el cual contiene las vesículas sinápticas
incluyendo en su interior a los neurotransmisores, que son sustancias químicas
responsables de transmitir los mensajes a la neurona que le sucede.
Las dendritas
Con número y estructura variable según el tipo de neurona, transmiten los
potenciales de acción desde las neuronas adyacentes hacia el cuerpo celular o
soma.
9
Se unen entre ellas a través de una unión discontinua llamada sinapsis. Si
dicha sinapsis ocurre por contacto físico se trata de una sinapsis eléctrica, y si es a
través de una hendidura se llama sinapsis química.
Son células excitables especializadas para la recepción de estímulos y la
conducción del impulso nervioso.
Las neuronas se hallan en el encéfalo, la médula espinal y los ganglios
nerviosos y están en contacto con todo el cuerpo. A diferencia de la mayoría de las
otras células del organismo, las neuronas normales en el individuo maduro no se
dividen ni se reproducen (como una excepción las células olfativas sí se regeneran).
Los nervios mielinados del sistema nervioso periférico también tienen la posibilidad
de regenerarse a través de la utilización del neurolema, una capa formada de los
núcleos de las células de Schwann.
Figura 1 – La neurona (Wikipedia, 2007)
10
4.3 - Redes neuronales artificiales
Una red neuronal artificial modela a una red neuronal biológica. La computación
neuronal utiliza actualmente un conjunto limitado de conceptos de los sistemas
neuronales biológicos, es más una analogía con el cerebro humano que un modelo
exacto del mismo. Los conceptos neuronales son usualmente implementados como
simulaciones de software de los masivos procesos paralelos que involucran el
procesamiento de elementos (también llamados neuronas artificiales)
interconectados en una arquitectura de red. La neurona artificial recibe entradas
análogas a los impulsos electromagnéticos que las dendritas de las neuronas
biológicas reciben de otras neuronas. La salida de una red neuronal artificial
corresponde a las señales enviadas desde una neurona biológica a través de su
axón. Estas señales artificiales pueden ser cambiadas por pesos en un modo similar
a los cambios físicos que ocurren en la sinápsis (Rich E. ,1985).
Es importante reconocer que en un principio las redes neuronales fueron desde
su origen propuestas para modelar la actividad del cerebro humano, pero este posee
una mayor complejidad de la que el modelo puede capturar. Entonces, los modelos
neuronales computacionales no son fieles representaciones de sistemas biológicos
reales. A pesar de la intensa investigación en la neurobiología y la psicología,
muchas importantes interrogantes de cómo el cerebro funciona siguen sin encontrar
una respuesta (TURBAM Efraim, 2001).
Red Neuronal Biológica
Red Neuronal Artificial
Cuerpo Celular
Dendritas
Axón
Sinápsis
Baja Velocidad
Muchas neuronas (10 a la 9)
Nodo
Entrada
Salida
Peso
Alta Velocidad
Pocas neuronas (desde una docena a
cientos de miles)
Tabla 1 – Relaciones entre redes neuronales biológicas y artificiales (Medsker y
Liebowitz, 1994)
11
Entradas
Cada entrada corresponde a un simple atributo. Por ejemplo, si el problema
consiste en decidir si aprobar o no un préstamo, algunos atributos podrían ser el
nivel de ingreso del aplicante, su edad y su tipo de vivienda. El valor numérico, o
la representación de un atributo es la entrada de la red. Muchos tipos de datos,
como texto, imágenes o la voz, pueden ser usados como entradas, pero un
preprocesamiento puede ser necesitado para convertir la información en
entradas significativas desde información simbólica, o para escalar la
información. La computación neuronal sólo puede procesar valores numéricos, si
un problema involucra atributos cualitativos, debe ser preprocesada.
Salidas
Las salidas de una red contienen la solución a un problema. Por ejemplo, en
el caso de la aprobación del préstamo puede ser si o no. La red neuronal asigna
valores numéricos, como 1 para SI y 0 para NO. El propósito de la red neuronal
es computar los valores de la salida. A menudo, se requiere un post proceso de
las salidas.
Pesos
Los pesos son elementos claves en una red neuronal, expresan la fuerza
relativa (o valor matemático) de la información de entrada o de las muchas
conexiones que trasfieren información de una capa a otra. En otras palabras, los
pesos expresan la relativa importancia de cada entrada a un elemento del
proceso y en última instancia las salidas. Los pesos son cruciales porque
mantienen patrones almacenados de información, y es mediante repetidos
ajustes de los mismos que las redes aprenden.
5 - Reconocimiento de Patrones
Mientras usted está leyendo estas sentencias su cerebro está teniendo que
ordenar las señales que está recibiendo de sus ojos para poder identificar las letras
en la página y convertirlas juntas en palabras, oraciones, párrafos y así
sucesivamente. El acto de reconocer las letras individualmente es un reconocimiento
de patrones, los símbolos en la página son los patrones que necesitan ser
reconocidos (HILERA José R., 1995).
Ahora, como este artículo ha sido impreso o usted lo está leyendo en un formato
digital, las letras están en una tipografía particular, entonces todas las letras ‘a’s, por
ejemplo, son más o menos las mismas. Una máquina se podría diseñar para
reconocer la letra ‘a’ muy fácilmente, desde el momento de que solo tendría que
reconocer sólo un patrón.
12
Pero si queremos construir una máquina que pueda leer caracteres manuscritos
el problema es aún mucho más complicado por la gran variación, incluso entre
ejemplos de la misma letra. Es por lo tanto muy difícil encontrar un caracter
representativo para cada una de las letras, entonces un conjunto de los caracteres
típicos para cada letra deberían ser construidos. Entonces, por ejemplo, todas las
diferentes ‘a’ van a ser leídas por el mismo conjunto. Y de manera semejante con las
demás letras, dando como resultado un conjunto de 27 letras en total. Cada conjunto
de caracteres es llamado clase y tendremos ahora que construir una máquina que
elija entre cual patrón de entrada pertenece a un clasificador de patrones. Esto es
todavía un problema difícil, pero puede ser resuelto exitosamente porque los
patrones de entrada no tienen que combinar exactamente con uno de los
parámetros de la clase. En cambio, la máquina tiene que tener la capacidad de
decidir que patrón de entrada es más similar a los miembros de una clase que
cualquiera de los otros, lo que resulta una tarea más simple.
El beneficio de usar clases de patrones en este problema es que un caracter
manuscrito que es variable puede ser introducido al sistema, y un caracter impreso
puede ser la salida. Pero otros problemas pueden ser resueltos utilizando el
reconocimiento de algo que no puede ser enteramente descrito o predicho, entonces
en esencia una red neuronal puede ser utilizada para implementar o solucionar un
problema si ese problema puede ser reducido a una clasificación de patrones, y esto
es posible en un gran número de casos. La función de una red neuronal es recibir
patrones de entrada y producir un patrón de salida correcto para esa clase.
13
Se ha dicho que una red neuronal es un clasificador de patrones, pero no todos
los clasificadores de patrones son redes neuronales, y la mejor manera de explicar
esto es a través de un ejemplo. Imaginemos una situación en la que queremos hacer
una decisión que pueda leer los números del 0 al 9 desde un documento. Los
números pueden estar escritos de diversas maneras, tanto en estilos como tamaños
y orientaciones como lo muestra la figura 3.
Figura 3 – El número 3 y varias maneras de representarlo (PICTON Phil, 2000).
Cualquiera de estas entradas pueden aparecer, pero queremos que la máquina
responda de la misma manera cada vez, indicando que el número 3 se ha
presentado.
Figura 4 – Digitalización de un número (PICTON Phil, 2000)
Como muestra la Figura 4, la entrada es digitalizada formando una cruda
representación de lo que es el número 3, lo cual debe ser suficiente para distinguir
los 10 números.
14
6 - Aprendizaje
Informalmente, el aprendizaje es la capacidad de un sistema de absorber
información de su ambiente sin requerir ningún agente externo inteligente que lo
“programe”. El aprendizaje es la habilidad fundamental del cerebro, y es el mayor
foco de la investigación. Desafortunadamente, los algoritmos de aprendizaje
declarados en la literatura a lo largo del tiempo son inaceptablemente lentos en
grandes redes. Aunque está claro que necesitamos la habilidad de escalar nuestras
aplicaciones a redes más grandes, no está claro aún, cuales son los medios para
alcanzar esto (JUDD J. Stephen, 1990).
Cómo aprende una red
Consideremos una única neurona que aprende la operación inclusiva OR- un
problema clásico de la lógica simbólica. Existen dos elementos de entrada, X1 y X2.
Si alguno de los dos o los dos tienen un valor positivo, entonces el resultado es
positivo también.
Caso
X1
X2
Resultados Deseados
1
2
3
4
0
0
1
1
0
1
0
1
0
1 (Resultado Positivo)
1 (Resultado Positivo)
1 (Resultado Positivo)
Tabla 2 – Operación OR
La neurona debe ser entrenada para reconocer los patrones de entrada y
clasificarlos para obtener las correspondientes salidas. El procedimiento consiste en
presentarle a la neurona las secuencias de los cuatro patrones de entrada para que
los pesos puedan ser ajustados luego de cada iteración (usando el feedback del
error encontrado comparando el valor estimado con el valor obtenido). Este paso es
repetido hasta que los pesos converjan en un conjunto de valores uniformes que
permitan a la neurona clasificar los cuatro patrones correctamente.
15
6.1 - Algoritmos de Aprendizaje
Una importante consideración en las redes neuronales es el uso apropiado de
un algoritmo de aprendizaje o algoritmo de entrenamiento. Hay cientos de ellos, y
pueden ser clasificados como de Entrenamiento Supervisado y Entrenamiento No
Supervisado.
Como se puede entender de tu propia experiencia el entrenamiento
supervisado requiere un maestro, que puede ser un un conjunto de datos o un
observador que califica el funcionamiento. De todos modos, tener un maestro es
aprender por refuerzo. Cuando no hay un maestro externo, el sistema debe
organizarse a si mismo por algún criterio designado dentro de la red, esto es
aprender haciendo.
El algoritmo más utilizado es el llamado backpropagation que consiste en
minimizar un error (comúnmente cuadrático) por medio de gradiente descendiente,
por lo que la parte escencial del algoritmo es cálculo de las derivadas parciales de
dicho error con respecto a los parámetros de la red neuronal (TURBAM Efraim,
2001).
6.2 - Entrenamiento Supervisado
De esta manera, la salida actual de una red neuronal es comparada con la
salida deseada. Los pesos que generalmente son seteados al azar en un comienzo,
luego son ajustados por la red para que en el próximo ciclo o en la próxima iteración,
se produzcan resultados más acertados. El objetivo de todo proceso de aprendizaje
es en definitiva minimizar el error entre la salida deseada y la correspondiente salida
mediante la modificación de los pesos.
Con el entrenamiento supervisado, es necesario entrenar la red antes de que la
misma quede en estado operacional. El entrenamiento consiste en presentar datos
de entrada y salida a la red, esta información es llamada juego de datos de
entrenamiento. Esto es, para cada entrada presentada, la salida deseada es
presentada también.
La fase de entrenamiento puede consumir mucho tiempo, y se puede
considerar completa cuando la red produce las salidas requeridas para un conjunto
dado de entradas. Cuando no se necesita entrenamiento adicional, los pesos se
congelan. Usando esta técnica, una red puede hacer cosas como tomar decisiones,
memorizar información o generalizar.
16
6.3 - Entrenamiento No Supervisado
Este tipo de entrenamiento es llamado en ocasiones entrenamiento
autosupervisado. Aquí, las redes no utilizan influencias externas para ajustar sus
pesos, en su lugar hay un monitoreo interno de la performance. La red busca
regularidades o tendencias en las señales de entrada, y hace adaptaciones de
acuerdo a su propio funcionamiento. Incluso sin ser instruida en cuando un resultado
es correcto o incorrecto, la red todavía debe tener alguna información de como
organizarse a si misma. Por ejemplo, una red podría aprender a seguir un objeto en
movimiento coordinando algún punto en su retina simulada con el centro de la retina.
Un algoritmo de aprendizaje no supervisado puede enfatizar la cooperación
entre los grupos de los elementos de proceso. En este esquema, los grupos
trabajarían juntos para tratar de simular cada uno. Si una entrada externa es activa
algún nodo del grupo, la actividad del grupo puede ser incrementada en su totalidad.
Asimismo, si las entradas externas a los nodos del grupo es decrementada, esto
puede traer un efecto inhibidor a todo el grupo, entonces los mismos pueden
comprimir la información a la siguiente capa.
La competencia entre los elementos de proceso puede formar la base del
aprendizaje también. El entrenamiento de grupos competitivos podría amplificar las
respuestas de grupos específicos a estímulos específicos y asociar esos grupos con
cada uno y con una respuesta específica apropiada. Por ejemplo, los elementos de
proceso pueden ser organizados para discriminar entre varias características de los
patrones, como bordes horizontales o verticales o bordes derechos e izquierdos.
En su estado actual, este tipo de entrenamiento no es bien comprendido y es
todavía objeto de mucha investigación. Es de gran interés para los gobiernos que
enfrentan situaciones militares, muchas de estas situaciones no tienen un conjunto
de datos disponible hasta que se suscita un conflicto. Pero por otro lado, el
entrenamiento supervisado, ha adquirido una reputación produciendo buenos
resultados en aplicaciones prácticas y están ganando en popularidad.
6.4 - Índices de Aprendizaje
La velocidad del entrenamiento depende de muchas cosas, habiendo
compensaciones en el aprendizaje. Obviamente un índice más bajo significa pasar
mucho tiempo para lograr el entrenamiento para producir un sistema entrenado. Con
un índice más rápido, si embargo, la red puede no estar habilitada para hacer
discriminaciones más finas que con un sistema que aprende más lentamente, los
investigadores están tratando de darnos lo mejor de los dos mundos.
Muchos factores alrededor del tiempo deben ser tenidos en cuenta cuando se
discuten las tareas del entrenamiento, que a veces puede ser descrito como
“pesado”. Debemos tener en cuenta la complejidad de la red, su tamaño, la
selección del paradigma, su arquitectura, el tipo de reglas del entrenamiento o las
reglas empleadas y el nivel de exactitud deseado. Estos factores juegan un papel
17
significativo en determinar cuanto tiempo tomará entrenar una red. El cambio de
cualquiera de estos factores puede extender el tiempo de entrenamiento a tiempos
no razonables o llevar los resultados a niveles inaceptables.
6.5 - Técnicas de Entrenamiento
En la programación tradicional, donde programas altamente estructurados son
utilizados, el programador tendrá que recibir las entradas, algún tipo de
requerimientos de proceso (que hacer con las entradas), y la salida deseada. El
trabajo del programador es aplicar lo necesario; tiempo e instrucciones paso a paso
para desarrollar la relación requerida entre la entrada y la salida.
Las técnicas de programación basadas en conocimiento (Sistemas Expertos),
usan incluso conceptos de un nivel más alto para especificar las relaciones entre
entradas y salidas, esto se refiere a heurísticas, o más comúnmente, reglas
En contraste, las redes neuronales no requieren ninguna instrucción, regla o
requerimiento de proceso para como procesar la información de entrada. De hecho,
las redes neuronales determinan la relación entre las entradas y las salidas mirando
los ejemplos de muchos pares de entradas-salidas. Esta habilidad única de
determinar como procesar la información usualmente se refiere a una
autoorganización, este proceso es llamado también adaptación o aprendizaje.
Pares de entradas y salidas son aplicadas a entradas y salidas, estos pares de
datos son utilizados para enseñar o entrenar la red. Sabiendo que salida es
esperada de cierta entrada, la red aprende automáticamente ajustando o adaptando
los pesos de las conexiones entre los elementos del proceso. Este método para
ajustar el proceso es llamado la regla de aprendizaje.
Es imaginable que el conjunto de datos de entrenamiento debe ser lo
suficientemente grande para contener toda la información pertinente para que la red
pueda “aprender” todas las características y relaciones que son importantes.
Supongamos que queremos enseñarle a una red de a una cosa primero antes
de enseñarle algo nuevo, este acercamiento no funciona. Todos los pesos ajustados
tan meticulosamente para un hecho pueden ser drásticamente alterados en
aprender el nuevo hecho. Los pasos previos pueden ser “olvidados” en el proceso
de aprender algo nuevo. Como resultado el sistema debe aprender todo junto,
encontrando el mejor valor de los pesos para todo el conjunto de hechos. Tratando
de enseñarlo a un sistema a reconocer patrones de píxeles para los diez dígitos,
donde digamos tenemos 20 ejemplos de cada digito, no se van a presentar todos los
ejemplos del número ‘3’ en el mismo momento.
Después que la red supervisada se comporta bien con la información de
entrenamiento, es importante luego analizar el comportamiento con información que
nunca vio antes. Si el sistema no da salidas razonables para los datos de prueba
entonces el período de entrenamiento no ha terminado (JUDD J Stephen, 1990).
18
6.6 - Recolección de Datos y Preparación
Los primeros dos pasos en el proceso de desarrollo de una red neuronal
involucran la recopilación de datos y separación en dos conjuntos, un conjunto de
entrenamiento y un conjunto de testeo. El primer conjunto es utilizado para ajustar
los pesos y el segundo juego de datos es utilizado para la validación de la red.
En general, mientras más información sea utilizada, mejor pueden ser los
resultados obtenidos. Un gran volumen de información incrementa el tiempo de
entrenamiento pero mejora la exactitud de los resultados y a menudo lleva a una
rápida convergencia en el seteo de los pesos. Para un volumen moderado de datos,
el 80% es típicamente utilizado randómicamente para el entrenamiento, el 10% para
realizar pruebas y el restante 10% para pruebas secundarias; para grandes
cantidades de datos, se toma una gran porción como ejemplos y se lo trata como un
volumen moderado de datos (TURBAM Efraim, 2001).
7 - Arquitecturas Típicas
A menudo es conveniente visualizar las neuronas dispuestas en capas.
Típicamente, las neuronas de una misma capa se comportan del mismo modo. Los
factores claves para determinar el comportamiento de una neurona son su función
de activación y el patrón de pesos cargados sobre los cuales se envían y reciben
señales. Dentro de cada capa, las neuronas tienen la misma función de activación y
el mismo patrón de conexiones hacia otras neuronas. Para ser más específicos, en
muchas redes neuronales, las neuronas dentro de cada capa están completamente
conectadas o desconectadas por completo. Si alguna neurona en una capa (la capa
oculta) es conectada a una neurona en otra capa (la capa de salida), luego cada
unidad escondida es conectada a cada neurona de salida (Beale, 1990).
La distribución de neuronas en capas y los patrones de conexión dentro y entre
las capas es llamada arquitectura de red. Muchas redes neuronales tienen una capa
de entrada en las cuales la activación de cada unidad es igual a una señal de salida.
La red ilustrada en la Figura 2 está compuesta por unidades de entrada, unidades de
salida y una unidad escondida (una unidad que no es ni una entrada ni una salida)
19
Las redes neuronales pueden ser clasificadas como monocapa y multicapa.
Para determinar el número de capas, las unidades de entrada no son contadas
como una capa, porque no realizan cálculos
Figura 2 – Red Neuronal Artificial (JUDD J Stephen, 1990)
8 - Aplicaciones de las Redes Neuronales
Las redes neuronales son una tecnología computacional que puede utilizarse
en un gran número y variedad de aplicaciones, tanto comerciales como militares.
Los diferentes tipos de redes neuronales pueden tener una aplicación particular
apropiada.(McCord Marilyn Nelson, 1990; SMITH Kate A., 2002) Es posible distinguir
grupos según distintas disciplinas:
Biología


Aprender más acerca del cerebro y otros sistemas.
Obtención de modelos de la retina.
Empresas





Evaluación de probabilidad de formaciones geológicas y petrolíferas.
Identificación de candidatos para posiciones específicas.
Explotación de Bases de Datos.
Optimización de plazas y horarios en líneas de vuelo.
Reconocimiento de caracteres escritos.
Medio Ambiente

Analizar tendencias y patrones.
20

Previsión del Tiempo.
Finanzas




Previsión de la evolución de los precios.
Valoración del Riesgo de los créditos.
Identificación de falsificaciones.
Interpretación de firmas.
Manufacturación



Robots automatizados y sistemas de control (visión artificial y sensores
de presión, temperatura, gas, etc.)
Control de producción en líneas de proceso.
Inspección de la calidad.
Medicina






Analizadores del habla para la ayuda en la audición en sordos
profundos.
Diagnóstico y tratamiento a partir de síntomas y/o de datos analíticos
(electrocardiograma, encefalograma, análisis sanguíneo, etc.)
Monitorización en cirugía.
Predicción de reacciones adversas a los medicamentos.
Lectores de Rayos X.
Entendimiento de la causa de los ataques epilépticos.
Militares




Clasificación de las señales de radar.
Creación de Armas Inteligentes.
Optimización del uso de recursos escasos.
Reconocimiento y seguimiento en el tiro al blanco.
21
9 - Conclusiones
Las redes neuronales están enfocadas a desarrollar máquinas (ya que su
implementación puede ser por hardware) o sistemas inteligentes capaces de
simular, desarrollar y optimizar muchas de las funciones de un ser humano. Queda
claramente demostrado en las aplicaciones comerciales probando altos niveles de
efectividad y precisión adecuados.
También la investigación científica puede es un campo en el que queda mucho
camino por recorrer. Las redes neuronales pueden aplicarse a muchas áreas de
investigación de muchas ramas de la ciencia, pueden hacer cosas que el hombre
por sus limitaciones físicas no puede realizar.
Su característica fundamental está en la capacidad de aprender, y nuestro
desafío en encontrar mecanismos de aprendizaje y razonamiento para nuestras
necesidades, ya que podemos elegir entre muchos algoritmos, arquitecturas,
tecnologías o productos.
Luego que definimos los puntos anteriores queda todavía la puesta a punto de
la red definiendo como la vamos a alimentar, que tipo de entrenamiento vamos a
realizar y definir los datos que en definitiva van a resultar en su base de
conocimiento para la toma de decisiones.
22
Bibliografía
- Artículo Original del Test de Turing , 2007 [online] Disponible en Internet
http://cogprints.org/499/00/turing.html
- FAUSETT, Laurene 1994 Fundamentals of Neural Networks; Architectures,
Algorithms and Applications New Jersey, Prentice-Hall [Material Impreso en
biblioteca]
- HAYKIN, Simon 1994 Neural Networks, a Comprehensive Foundation IEEE
Press – MacMillanCollege Publishing Company Inc.
- HILERA, José R., et.al. 1995 Redes Neuronales Artificiales Addison Wesley
[Material Impreso en biblioteca]
- JUDD, J Stephen.1990. Neural Network Design and the Complexity of Learning
MIT Press [Material Impreso en biblioteca]
- McCord , Marilyn Nelson, et.al 1990 A practical guide to Neural Nets Reading:
Addison-Wesley [Material Impreso en biblioteca]
- NILS, J. Nilson. 2000. Inteligencia Artificial, una nueva síntesis. McGraw Hill
- PICTON, Phil 2000 Neural Networks Londres: Polgrave
- Rich E. 1985 Inteligencia Artificial McGraw-Hill ,Inc.
- RUSSEL, Beale. 1990. Neural Computing: An Introduction. CRC Press [Online]
http://books.google.com
- SMITH, Kate A, et.al.2002 Neural networks in business IDEA GROUP INC
[Online] http://books.google.com
- TURBAM, Efraim, et.al. 2001. Decisión Support Systems and Intelligent
Systems Prentice-Hall, Inc.
- Turing Test: 50 Years Later 2007 [online] Disponible en Internet
http://www.fil.ion.ucl.ac.uk/~asaygin/tt/ttest.html
- WIKIPEDIA, 2007 [online] Disponible en Internet:
<http://es.wikipedia.org/wiki/Neuronas>
23
Descargar