1
Alumno: AitorGómez Maguregui
Grupo: 2ºIngenieríaInformática A
Asignatura: Modelos de Computación II
2
Profesor: Prof. D. Juan Luis Castro Peña
ÍNDICE
Portada 1
Índice 2
Apuntes ampliados 3 a 33
Conceptos básicos sobre RRNN 3 a 20
Redes de una capa:Perceptrón, Adaline 20 a 27
Retropropagación o Backpropagation 27 a 32
Validación en Redes Neuronales 32 a 34
Bibliografía 35
3
REDES NEURONALES
Conceptos básicos sobre Redes Neuronales
¿De dónde surge la conexión cerebro vs. Máquinas?
Cuando trabajamos en el ámbito de las Redes Neuronales,
tenemos que comenzar por mostrar una conexión clara y
evidente entre las máquinas y el cerebro humano.
La diferencia más importante y decisiva es la forma en que se
produce el almacenamiento de información en el cerebro y en el
ordenador.
En el ordenador, los datos se guardan en posiciones de memoria
que son celdillas aisladas entre sí. Así cuando se quiere acceder
a una posición de memoria se obtiene el dato de esta celdilla,
sin que las posiciones de memoria contiguas se vean afectadas
por dicha operación.
En el cerebro, la gestión es totalmente diferente. Cuando
buscamos una información no hace falta que sepamos dónde se
4
encuentra almacenada y en realidad no lo podemos saber ya
que nadie sabe dónde guarda el cerebro los datos.
En todo el mundo pero sobre todo en Estados Unidos y Japón,
científicos expertos tratan de dar con la clave de la memoria
asociativa. Si se consiguiera construir un chip de memoria según
el modelo humano, la ciencia daría un paso gigante en la
fascinante carrera hacia la inteligencia artificial.
Un superordenador llamado cerebro
El hombre necesita un sistema de proceso de datos de múltiple
propósito capaz de tratar gran cantidad de información muy
distinta y en muy poco tiempo y con el mayor sentido
práctico(pero no necesariamente con exactitud), para
inmediatamente poder actuar en consecuencia.
Los ordenadores, en cambio, son altamente especializados con
capacidad para procesar con exactitud información muy
concreta (en principio solo números) siguiendo unas
instrucciones dadas.
El cerebro humano posee más de diez millones de neuronas las
cuales ya están presentes en el momento del nacimiento.
Conforme pasa el tiempo se vuelven inactivas, aunque pueden
morir masivamente.
Nuestro órgano de pensamiento consume energía bioquímica, el
equivalente a una cucharada de azúcar por hora. Los
ordenadores domésticos consumen una cantidad semejante.
Según estudios especializados, el cerebro dispone de dos
mecanismos de almacenamiento de datos: la memoria
intermedia acepta de cinco a diez unidades de información,
aunque solo las mantiene durante algunos minutos. La memoria
definitiva guarda las informaciones “para toda la vida”, lo que
5
no significa que nos podamos acordar siempre de todo. La
memoria inmediata trabaja como una especie de cinta continua:
la información circula rotativamente en forma de impulsos
eléctricos por los registros.
Así, el sistema es comparable a la memoria dinámica de un
ordenador, en la que la información tiene que ser refrescada
continuamente para que no se pierda. En cambio, la memoria
definitiva parece asemejarse más bien a las conocidas memorias
de celdillas de los ordenadores. Se cree que esta memoria
funciona gracias a formaciones químicas de las proteínas
presentes en el cerebro humano.
Diferencias entre el cerebro y una computadora
Podemos resumir las diferencias principales entre el cerebro y
una computadora en la siguiente tabla:
Cerebro Computadora
Sistema de datos de múltiple
propósito capaz de tratar gran
cantidad de información en
poco tiempo pero no
necesariamente con exactitud.
Sistemas altamente especializados
con capacidad para procesar
información muy concreta,
siguiendo unas instrucciones
dadas.
La frecuencia de los
impulsos nerviosos puede
variar.
La frecuencia de
transmisión es inalterable y está
dada por el reloj interno de la
máquina.
Las llamadas sinapsis cumple
en el cerebro la función
simultánea de varias
compuertas (AND, OR, NOT, etc.)
Las compuertas lógicas
tienen una función perfectamente
determinada e inalterable.
La memoria es del tipo La información se
6
asociativo y no se sabe dónde
quedara almacenada.
guarda en posiciones de memoria
de acceso directo por su dirección.
Los impulsos fluyen a 30
metros por segundo.
En el interior de una
computadora los impulsos fluyen
a la velocidad de la luz.
Similitudes entre el cerebro y una computadora
- Ambos codifican la información en impulsos digitales.
- Tanto el cerebro como la computadora tienen compuertas
lógicas.
- Existen distintos tipos de memoria.
- Los dos tienen aproximadamente el mismo consumo de energía.
Como conclusión de las analogías y diferencias entre máquina y
cerebro, además de observar detenidamente el análisis que
arriba figura, tenemos que destacar que, a pesar de las
similitudes entre ambos modelos, y de la utilidad del modelo de
cómputo de RRNN, el cerebro humano es, hoy por hoy,
insustituible. No quiere decir esto que la utilidad de las Redes
Neuronales sea, ni mucho menos, escasa.
Inspiración biológica en Redes Neuronales
Nuestro modelo de estudio, las redes neuronales, tienen un
evidente y marcado origen biológico.
A grandes rasgos, recordemos que el cerebro humano se compone
de decenas de billones de neuronas interconectadas entre sí
formando circuitos o redes que desarrollan funciones específicas.
Una neurona típica recoge señales procedentes de otras neuronas
a través de una pléyade de delicadas estructuras llamadas
dendritas. La neurona emite impulsos de actividad eléctrica a lo
7
largo de una fibra larga y delgada denominada axón, que se
escinde en millares de ramificaciones.
Podemos ver en la siguiente imagen la estructura de una
neurona:
Las extremidades de estas ramificaciones llegan hasta las
dendritas de otras neuronas y establecen unas conexiones
llamadas sinapsis, en las cuales se produce una transformación
del impulso eléctrico en un mensaje neuroquímico, mediante la
liberación de unas sustancias llamadas neurotransmisores.
Podemos verlo en detalle en la siguiente imagen:
8
El efecto de los neurotransmisores sobre la neurona receptora
puede ser excitatorio o inhibitorio, y es variable (la intensidad
del efecto depende de numerosos factores que no sería oportuno
describir aquí) , de manera que podemos hablar de la fuerza o
efectividad de una sinapsis. Las señales excitatorias e
inhibitorias recibidas por una neurona se combinan, y en
función de la estimulación total recibida, la neurona toma un
cierto nivel de activación, que se traduce en la generación de
breves impulsos nerviosos con una determinada frecuencia o tasa
de disparo, y su propagación a lo largo del axón hacia las
neuronas con las cuales “conecta”.
De esta manera la información se transmite de unas neuronas a
otras y va siendo procesada a través de las conexiones sinápticas
y las propias neuronas. El aprendizaje de las redes neuronales se
produce mediante la variación de la efectividad de las sinapsis,
de esta manera cambia la influencia que unas neuronas ejercen
sobre otras, de aquí se deduce que la arquitectura, el tipo y la
efectividad de las conexiones en un momento dado, representan
en cierto modo la memoria o estado de conocimiento de la red.
Redes Neuronales Artificiales
Las neuronas se modelan mediante unidades de proceso. Cada
unidad de proceso se compone de una red de conexiones de
entrada, una función de red ( de propagación), encargada de
9
computar la entrada total combinada de todas las conexiones,
un núcleo central de proceso, encargado de aplicar la función
de activación, y la salida, por dónde se transmite el valor de
activación a otras unidades.
En la siguiente tabla podemos ilustrar las analogías entre las
neuronas artificiales y las neuronas biológicas:
Redes Neuronales Biológicas Redes Neuronales
Artificiales
Neuronas Unidades de proceso
Conexiones sinápticas Conexiones ponderadas
Efectividad de las sinapsis Peso de las conexiones
Efecto excitatorio o inhibitorio
de una conexión
Signo del peso de una
conexión
Efecto combinado de las sinapsis Función de propagación o
de red
Activación -> tasa de disparo Función de activación ->
Salida
El siguiente esquema ilustra de forma precisa esta estructura:
10
La función de red es típicamente el sumatorio ponderado,
mientras que la función de activación suele ser alguna función
de umbral o una función sigmoidal.
Vamos a ver con detalle cada uno de los términos que aquí
aparecen:
Función de propagación o de red: Calcula el valor de base o
entrada total a la unidad, generalmente como simple suma
ponderada de todas las entradas recibidas, es decir, de las
entradas multiplicadas por el peso o valor de las conexiones.
Equivale a la combinación de las señales excitatorias e
inhibitorias de las neuronas biológicas.
Función lineal de base (LBF)
Consiste en el sumatorio de las entradas ponderadas. Se trata de
una función de tipo hiperplano, esto es, de primer orden.
Dado una unidad j, y n unidades conectadas a ésta, si llamamos
X al vector de entradas (que coincide con las salidas de las
unidades de la capa anterior) y Wj al vector de pesos de las
conexiones correspondientes, esta función quedaría así:
Al representar los pesos utilizamos dos subíndices para indicar
que conectan dos unidades, i y j, dónde j se refiere la unidad
actual.
Función radial de base (RBF)
Función de tipo hiperesférico, de segundo orden, no lineal. El
valor de red representa la distancia a un determinado patrón de
referencia.
11
Función de activación: Es quizás la característica principal o
definitoria de las neuronas, la que mejor define el
comportamiento de la misma. Se usan diferentes tipos de
funciones, desde simples funciones simples de umbral a
funciones no lineales. Se encarga de calcular el nivel o estado de
activación de la neurona en función de la entrada total.
Se suele distinguir entre funciones lineales, en las que la salida
es proporcional a la entrada; funciones de umbral, en las cuales
la salida es un valor discreto (típicamente binario 0/1) que
depende de si la estimulación total supera o no un determinado
valor de umbral; y funciones no lineales, no proporcionales a la
entrada.
Función de umbral
En un principio se pensó que las neuronas usaban una función
de umbral, es decir, que permanecían inactivas y se activaban
sólo si la estimulación total superaba cierto valor límite; esto se
puede modelar con una función escalón: la más típica es el
escalón unitario: la función devuelve 0 por debajo del valor
crítico (umbral) y 1 por encima.
Después se comprobó que las neuronas emitían impulsos de
actividad eléctrica con una frecuencia variable , dependiendo
de la intensidad de la estimulación recibida, y que tenían
cierta actividad hasta en reposo, con estimulación nula. Estos
descubrimientos llevaron al uso de funciones no lineales con
esas características, como la función sigmoidal, con un perfil
parecido al escalón de una función de umbral, pero continua.
Función sigmoidal o logística
12
Es probablemente la función de activación más empleada en la
actualidad.
Se trata de una función continua no lineal con bastante
plausibilidad fisiológica.
La función sigmoidal posee un rango comprendido entre 0 y 1.
Esto, aplicado a las unidades de proceso de una red neuronal
artificial significa que, sea cual sea la entrada, la salida estará
comprendida entre 0 y1.
Esta función depende del parámetro s , que usualmente toma el
valor 1.
Podemos observar la representación gráfica de este último caso
en la siguiente gráfica:
La salida de una unidad vale 0.5 cuando la entrada es nula,
esto significa que la unidad tiene cierta actividad aún en
ausencia de estimulación. Al aumentar la estimulación la
unidad aumenta su activación, y la disminuye si la
estimulación es inhibitoria, de forma parecida a como se
comportan las neuronas reales.
13
Presenta las siguientes características deseables:
1. Acomodación de señales muy intensas sin producir
saturación.
2. Admite señales débiles sin excesiva atenuación
3. Fácilmente derivable, ya que
La principal limitación de esta función es que no sirve para
expresar polaridades, da siempre valores positivos. Una función
alternativa con cualidades parecidas pero con un rango entre -1
y 1 es la función tangente hiperbólica. Desde un punto de vista
fisiológico, el signo negativo se puede interpretar como una
disminución de la tasa de disparo de una neurona por debajo de
la tasa de disparo en reposo.
Función gaussiana
Conexiones ponderadas: hacen el papel de las conexiones
sinápticas, el peso de la conexión equivale a la fuerza o
efectividad de la sinapsis. Las existencia de conexiones
determina si es posible que una unidad influya sobre otra, el
valor de los pesos y el signo de los mismos definen el tipo
(excitatorio/inhibitorio) y la intensidad de la influencia.
Salida: calcula la salida de la neurona en función de la
activación de la misma, aunque normalmente no se aplica más
que la función identidad, y se toma como salida el valor de
activación. El valor de salida cumpliría la función de la tasa de
disparo en las neuronas biológicas.
Arquitecturas de Redes Neuronales
14
Para diseñar una red debemos establecer como estarán
conectadas unas unidades con otras y determinar
adecuadamente los pesos de las conexiones. Lo más usual es
disponer las unidades en forma de capas, pudiéndose hablar de
redes de una, de dos o de más de dos capas, las llamadas redes
multicapa.
Aunque inicialmente se desarrollaron redes de una sola capa, lo
más usual es disponer tres o más capas: la primera capa actúa
como buffer de entrada, almacenando la información bruta
suministrada a la red o realizando un sencillo pre-proceso de la
misma, la llamamos capa de entrada; otra capa actúa como
interfaz o buffer de salida, almacenando la respuesta de la red
para que pueda ser leída, la llamamos capa de salida; y las
capas intermedias, principales encargadas de extraer, procesar y
memorizar la información, las denominamos capas ocultas.
Además del número de capas de una red, en función de cómo se
interconectan unas capas con otras, podemos hablar de redes
recurrentes (feed-back) y redes no recurrentes o redes en cascada
(feed-forward).
En las redes en cascada la información fluye
unidireccionalmente de una capa a otra (desde la capa de
entrada a las capas ocultas y de éstas a la capa de salida), y
además, no se admiten conexiones intracapa.
15
En las redes recurrentes la información puede volver a lugares
por los que ya había pasado, formando bucles, y se admiten las
conexiones intracapa (laterales), incluso de una unidad consigo
misma.
Las conexiones entre una capa y otra pueden ser totales, es decir,
que cada unidad se conecta con todas las unidades de la capa
siguiente, o parciales, en las cuales una unidad se conecta con
sólo algunas de las capas de la unidad siguiente,
generalmente siguiendo algún patrón aleatorio o pseudo-
aleatorio (por ejemplo, mediante algoritmos genéticos).
Fases de procesamiento
Fase de Aprendizaje
El aprendizaje consiste en la presentación de patrones a la red, y
la subsiguiente modificación de los pesos de las conexiones
siguiendo alguna regla de aprendizaje que trata de optimizar su
respuesta, generalmente mediante la minimización del error o la
optimización de alguna "función de energía".
El modo de aprendizaje más sencillo consiste en la presentación
de patrones de entrada junto a los patrones de salida deseados
(targets) para cada patrón de entrada, por eso se llama
aprendizaje supervisado. Si no se le presentan a la red los
patrones de salida deseados, diremos que se trata de aprendizaje
no supervisado, ya que no se le indica a la red que resultados
debe dar, sino que se le deja seguir alguna regla de auto-
organización. Un tercer tipo de aprendizaje, a medio camino
entre los anteriores, es el llamado aprendizaje reforzado, en este
caso el supervisor se limita a indicar si la salida ofrecida por la
red es correcta o incorrecta, pero no indica que respuesta debe
dar.
16
Cualquiera que sea el tipo de aprendizaje usado, una
característica esencial de la red es la regla de aprendizaje usada,
que indica como se modifican los pesos de las conexiones en
función de los datos usados en la entrada, es decir, de la
historia de aprendizaje de la red. Por ejemplo, entre los
algoritmos de aprendizaje supervisado, la regla delta
generalizada, modifica los pesos realizando en cada ciclo de
aprendizaje un incremento los pesos proporcional a la tasa de
variación del error respecto al peso, en sentido negativo.
El aprendizaje requiere la presentación repetida de un número
relativamente amplio de ejemplos de entrenamiento hasta lograr
una respuesta satisfactoria del sistema (según la medida de error
o función de energía utilizada).
Es usual disponer de un conjunto de datos distintos a los usados
para el entrenamiento, para los cuales se conoce la respuesta
correcta, y se usan como test, evaluando con ello si la red
responde adecuadamente frente a datos distintos a los usados
durante el aprendizaje (generalización), si es así se considera
que la red funciona bien y se puede pasar a la fase de
aplicación (recall), es decir, se puede usar para obtener un
resultado frente a datos totalmente nuevos para los que no se
conoce la respuesta correcta.
Aprendizaje supervisado
Ya sabemos que en el aprendizaje supervisado se presentan a la
red una serie de patrones de entrada junto a los patrones de
salida deseados. El aprendizaje consiste en la modificación de
los pesos de las conexiones en el sentido de reducir la
discrepancia entre la salida obtenida y la deseada. Los pasos
generales a seguir por este algoritmo son los siguientes:
- Aleatorizar los pesos de todas las conexiones
(preferiblemente con valores pequeños)
17
- Seleccionar un par de entrenamiento, es decir, un patrón
de entrada y el patrón de salida deseado (target)
correspondiente.
- Presentar el patrón de entrada y calcular la salida de la
red mediante las operaciones usuales: sumatorio de las
entradas ponderadas, función de activación y transferencia
a la siguiente capa, hasta llegar a la capa de salida.
(inicialmente obtenemos salidas aleatorias, ya que los pesos
de las conexiones son aleatorios)
- Cálculo del error o discrepancia entre la salida obtenida y
la deseada. El error (función objetivo) se suele definir como
la suma de los cuadrados de las diferencias entre las
salidas reales obtenidas y las deseadas, promediado para
todas las unidades de salida y todos los patrones de
entrenamiento. Si el error es menor de cierto criterio fijado
de antemano, incrementar el número de ejemplos correctos;
si todos los ejemplos se han clasificado correctamente,
finalizar, sino, continuar.
- Aplicar la regla de aprendizaje, es decir, ajustar los pesos
de las conexiones tratando de disminuir el error,
generalmente mediante el cálculo de tasas de variación o
gradientes del error, por eso hablamos de reglas de
aprendizaje por gradiente descendiente. Para reducir el
error habrá que modificar los pesos de las conexiones, en
proporción a la tasa relativa de variación del error con
respecto a la variación del peso, o sea, la derivada del
error respecto al peso, EP (error respecto al peso). Una forma
de calcular el EP sería perturbar levemente un peso y
observar como varía el error, pero no resultaría eficiente si
trabajamos con muchas conexiones (este es el fundamento
de algunos métodos estadísticos comentados en otro
18
apartado). Más adelante veremos un algoritmo matemático
para calcular EP.
- Volver al paso 2
Aprendizaje no supervisado
Una de las críticas principales al aprendizaje supervisado,
dejando de lado los aspectos computacionales era su dudosa
plausibilidad biológica, pues:
- Requiere propagar cierta información (el error cometido)
hacia atrás, en sentido contrario al flujo natural de la
información. Como es obvio, esto no sucede en las neuronas
reales, sin embargo esta objeción es superficial si tenemos
en cuenta que el cerebro es rico en redes que retrogradan
de una capas a otras, y podría utilizar estos caminos de
múltiples formas para aportar la información del tipo que
el aprendizaje supervisado requiere.
- Requiere de un instructor que proporcione la salida
deseada. Las personas aprendemos a comprender frases o
escenas visuales sin instrucciones explícitas para ello, se
podría decir que el cerebro posee algún mecanismo de
auto-organización. Cuando se le presentan a la red una
gran colección de datos sin indicarle qué debe hacer con
ellos, se encuentra aparentemente sin saber qué hacer. No
19
obstante, los investigadores han diseñado varios
procedimientos de aprendizaje no supervisado, que son
capaces de extraer inductivamente suficiente información
de esos datos como para permitir posteriormente su
recuperación, estos algoritmos son utilizados en tareas de
clustering y clasificación.
- En el aprendizaje no supervisado no se requiere presentar
patrones de salida deseados. Sin embargo, el algoritmo y la
regla de modificación de las conexiones producen vectores
de salida consistentes, esto es, la presentación de un patrón
aprendido o parecido a él, produce siempre la misma
salida. Se considera que el proceso de aprendizaje es capaz
de extraer ciertas propiedades estadísticas de los ejemplos
de aprendizaje y agruparlos en categorías o clases de
patrones similares.
- No sabemos a priori qué salida corresponderá a cada tipo o
grupo de patrones de entrada, ni qué atributos usará para
clasificarlos, por eso son muy útiles como generadores de
categorías (clustering)
- En general, los métodos de aprendizaje no supervisado
apelan a alguna noción de la calidad de la representación.
Las representaciones de calidad se caracterizan por la
economía de la representación (el costo de codificación más
el costo de reconstrucción), sin perder la capacidad de
reconstruir la información almacenada.
20
Imaginemos por ejemplo, imágenes formadas por elipses, como las
caras de la figura, podríamos representarlas mediante mapas de
bits, pero son posibles otras representaciones más eficientes; una
elipse se puede se distingue de otra en cinco atributos:
orientación, posición vertical, posición horizontal, longitud y
anchura, por consiguiente, la imagen podría describirse usando
sólo cinco parámetros por elipse.
Existen varios métodos sencillos para encontrar códigos
económicos que al mismo tiempo permitan una buena
reconstrucción de la entrada: el aprendizaje por componentes
principales, el aprendizaje competitivo y los códigos
demográficos.
Aprendizaje por componentes principales
El aprendizaje por componentes principales consiste en extraer y
describir las componentes de variación compartidas por
multitud de unidades de entrada, siendo suficiente una unidad
para cada componente principal. Se puede lograr haciendo que
las redes reconstruyan la entrada sobre unas unidades de salida,
aplicando retropropagación. Este aprendizaje no es supervisado,
porque dado que la salida es la misma que la entrada, no se
necesita instructor. Otra forma de lograrlo sin usar
retropropagación se basa en modificar las conexiones en función
de las correlaciones entre las actividades de las unidades ocultas
y las unidades de entrada.
21
Aprendizaje competitivo
En el aprendizaje por componentes principales, un pequeño
número de unidades coopera en la representación del patrón de
entrada. En el aprendizaje competitivo, un gran número de
unidades ocultas pugnan entre sí, con lo que finalmente se
utiliza una sola unidad oculta para representar un patrón de
entrada determinado o un conjunto de patrones similares. La
unidad oculta seleccionada es aquella cuyos pesos incidentes se
asemejan más al patrón de entrada. El aprendizaje consiste en
reforzar las conexiones de la unidad ganadora y debilitar las
otras, para que los pesos de la unidad ganadora se asemejen cada
vez más al patrón de entrada. Generalmente se utilizan reglas
basadas en la regla de Hebb o regla del producto. La
reconstrucción del patrón de entrada consistirá en copiar la
distribución de pesos de la unidad ganadora.
Códigos demográficos
El problema de los componentes principales es que eliminan
toda la redundancia, y con ello pierden la tolerancia a fallos,
ya que cada patrón o conjunto de patrones de entrada similares
queda representado por una sola neurona. La solución a este
dilema, que además parece ser la utilizada por el cerebro, son
los códigos demográficos, una solución intermedia entre las
representaciones distribuidas puras y representaciones
puramente locales.
Se trata de representar cada patrón de entrada por un conjunto o
población de unidades activas simultáneamente, de manera que
la disfunción de alguna unidad no provoca la pérdida de la
información.
Los códigos demográficos parecen contradecir el principio de
economía de las representaciones, sin embargo, una población de
22
neuronas es muy fácil de representar si se compone de un grupo
de neuronas vecinas con un centro prominente de actividad. En
ese caso es suficiente con describir dicho centro, más alguna
medida de la forma en que la actividad de las unidades
adyacentes decae a medida que nos alejamos del centro.
Aprendizaje reforzado
Como ya comentamos, la idea es similar a la del aprendizaje
supervisado, sólo que aquí la información dada por el maestro es
mínima, se limita a indicar si la respuesta de la red es correcta
o incorrecta. En este sentido se asimila a la noción tomada de la
psicología conductual de condicionamiento por refuerzo, que en
resumen defiende que se aprenden (en el sentido de que tienen
más probabilidad de repetirse) las conductas reforzadas
positivamente y viceversa (las conductas castigadas o reforzadas
negativamente reducen la posibilidad de aparecer).
Una noción estrechamente ligada a la de aprendizaje reforzado
es la de Redes Basadas en la Decisión. Son redes para
clasificación de patrones, similares a los asociadores de patrones,
en las cuales el maestro, en vez de indicar la salida deseada
exacta (target), indica sólo la clase correcta para cada patrón de
entrada.
En las redes basadas en la decisión se utiliza una función
discriminante para determinar a que categoría o clase pertenece
el patrón de entrada, si durante el entrenamiento, una respuesta
no coincide con la dada con el maestro, se cambian los pesos, si
no se dejan igual (de aquí viene el nombre de DBNN). El
aprendizaje consiste en encontrar los pesos que dan la
clasificación correcta.
Construcción de modelos
23
Con el fin de llegar al entendimiento global de Redes
Neuronales Artificiales, adoptamos la siguiente perspectiva,
llamada top-down que empieza por la aplicación se pasa al
algoritmo y de aquí a la arquitectura:
Esta aproximación a las Redes Neuronales Artificiales está
motivada por la aplicación, basada en la teoría y orientada
hacia la implementación. Las principales aplicaciones son para
el procesado de señal y el reconocimiento de patrones.
La primera etapa algorítmica representa una combinación de la
teoría matemática y la fundamentación heurística por los
modelos neuronales. El fin último es la construcción de
neurocomputadores digitales, con la ayuda de las tecnologías
VLSI y el procesado adaptativo, digital y paralelo.
Desde el punto de vista de la aplicaciones, la ventaja de las
RRNN reside en el procesado paralelo, adaptativo y no lineal.
Las RRNN han encontrado muchas aplicaciones con éxito en la
visión artificial, en el procesado de señales e imágenes,
reconocimiento del habla y de caracteres, sistemas expertos,
análisis de imágenes médicas, control remoto, control de robots,
inspección industrial y exploración científica. El dominio de
aplicación de las RRNN se puede clasificar de la siguiente
forma: asociación y clasificación, regeneración de patrones,
regresión y generalización, y optimización.
24
Asociación y Clasificación
En esta aplicación, los patrones de entrada estáticos o señales
temporales deben ser clasificadas o reconocidas. Idealmente, un
clasificador debería ser entrenado para que cuando se le
presente una versión distorsionada ligeramente del patrón,
pueda ser reconocida correctamente sin problemas. De la misma
forma, la red debería presentar cierta inmunidad contra el
ruido, esto es, debería ser capaz de recuperar una señal "limpia"
de ambientes o canales ruidosos. Esto es fundamental en las
aplicaciones holográficas, asociativas o regenerativas.
Asociación: de especial interés son las dos clases de asociación:
autoasociación y heteroasociación. El problema de la
autoasociación es recuperar un patrón enteramente, dada una
información parcial del patrón deseado. La heteroasociación es
recuperar un conjunto de patrones B, dado un patrón de ese
conjunto. Los pesos en las redes asociativas son a menudo
predeterminados basados en la regla de Hebb. Normalmente, la
auto correlación del conjunto de patrones almacenado determina
los pesos en las redes auto asociativas. Por otro lado, la
correlación cruzada de muchas parejas de patrones se usa para
determinar los pesos de la red de Heteroasociación.
Clasificación no Supervisada: para esta aplicación, los pesos
sinápticos de la red son entrenados por la regla de aprendizaje
no supervisado, esto es, la red adapta los pesos y verifica el
resultado basándose únicamente en los patrones de entrada.
Clasificación Supervisada: esta clasificación adopta algunas
formas del criterio de interpolación o aproximación. En muchas
aplicaciones de clasificación, por ejemplo, reconocimiento de
voz, los datos de entrenamiento consisten de pares de patrones de
entrada y salida. En este caso, es conveniente adoptar las redes
Supervisadas, como las bien conocidas y estudiadas redes de
25
retropropagación. Este tipo de redes son apropiadas para las
aplicaciones que tienen una gran cantidad de clases con límites
de separación complejos.
Completar los patrones
En muchos problemas de clasificación, una cuestión a
solucionar es la recuperación la información, esto es, recuperar
el patrón original dada sola una información parcial. Hay dos
clases de problemas: temporales y estáticos. El uso apropiado de
la información con textual es la llave para tener éxito en el
reconocimiento.
Generalización
La Generalización. Se puede extender a un problema de
interpolación. El sistema es entrenado por un gran conjunto de
muestras de entrenamiento basados en un procedimiento de
aprendizaje supervisado. Una red se considera que esta
entrenada con éxito si puede aproximar los valores de los
patrones de entrenamiento y puede dar interpolaciones "suaves"
para el espacio de datos no entrenado. El objetivo de la
Generalización es dar una respuesta correcta a la salida para
un estímulo de entrada que no ha sido entrenado con
anterioridad. El sistema debe inducir la característica saliente
del estímulo a la entrada y detectar la regularidad. Tal
habilidad para el descubrimiento de esa regularidad es crítica
en muchas aplicaciones. Esto hace que el sistema funcione
eficazmente en todo el espacio, incluso ha sido entrenado por un
conjunto limitado de ejemplos. Lo podemos ver en la siguiente
figura:
26
Optimización
Las RRNN son una herramientas interesantes para la
optimización de aplicaciones, que normalmente implican la
búsqueda del mínimo absoluto de una función de energía:
Una vez que se define la función de energía, entonces la
determinación de los pesos sinápticos se hace rápidamente. Para
algunas aplicaciones, la función de energía es fácilmente
deducible. En otras, sin embargo, esta función de energía se
obtiene de ciertos criterios de coste y limitaciones especiales. El
mayor problema asociado al problema de optimización es la alta
posibilidad de converger hacia un mínimo local, en vez de
hacia el mínimo absoluto. Para combatir este problema se
27
utilizan algunas propuestas estadísticas, como por ejemplo
procedimientos estocásticos.
Ejemplos de Aplicaciones con Redes Neuronales Artificiales
Antes de señalar algunos de los ejemplos donde las Redes
Neuronales tienen una importante aplicación, cabe decir que
nos centramos en los que pueden tener más relevancia dentro de
nuestro ámbito, la Ingeniería Informática:
Procesamiento de lenguaje natural
Conversión de texto escrito a lenguaje hablado.
NETtalk toma como entradas textos escritos y como salidas
deseadas los códigos elegidos para representar los fonemas
correspondientes. Mediante la ayuda de un sintetizador
(DECtalk) se transforman los códigos en fonemas. Durante el
proceso de aprendizaje se observó como iba mejorando su
habilidad desde un nivel de bebé hasta el nivel de un niño de
6 años, aprendiendo a hacer distinciones difíciles como
pronunciar una c suave o fuerte según el contexto. Si bien esto se
había conseguido antes, la novedad más importante reside en
que mediante la red neuronal no es necesario definir y
programar un montón de complejas reglas, pues la red extrae
automáticamente el conocimiento necesario.
Aprendizaje de gramáticas
(Rumelhart,D. & McClelland, J.) estudiaron la forma en que
construimos las reglas sobre el lenguaje, y trataron de enseñar a
una red neuronal el pasado de los verbos ingleses. El sistema fue
mejorando y al final era capaz de generalizar y conjugar verbos
desconocidos.
28
Compresión de imágenes
(Cottrell, G.W. y otros) han conseguido codificar imágenes con
una relación de compresión de hasta 8:1 sin tener que idear
ninguna regla y alta fidelidad en la reconstrucción.
Reconocimiento de caracteres
Reconocimiento de escritura manual
Nestor, Inc => leen lo escrito mediante una tarjeta digitalizadora.
Tras aprender, son capaces de reconocer escrituras que nunca
habían visto antes. Se ha empleado por ejemplo para reconocer
kanji (escritura japonesa), eliminando la gran dificultad que
presenta este lenguaje para introducirlo en el computador.
El Neocognitrón (Kunihiko Fukishima): simula la forma en que
la información visual avanza en la corteza cerebral. Consigue
un reconocimiento muy avanzado de patrones con gran
capacidad de abstracción y generalización, que lo hacen capaz
de reconocer patrones con distinta orientación y altos niveles de
distorsión.
Reconocimiento de patrones en imágenes
Clasificación de objetivos:
En este campo se han desarrollado numerosas aplicaciones como
la clasificación de imágenes de sonar y radar, la detección de
células cancerosas, lesiones neurológicas y cardíacas,
prospecciones geológicas, etc.. Son muy útiles para procesar
imágenes de las que no se sabe bien cuales son las características
esenciales o diferenciales, ya que las redes no necesitan disponer
de reglas explícitas previas para realizar la clasificación, sino
que extraen el conocimiento necesario.
29
Visión artificial en robots industriales
Por ejemplo, para inspección de etiquetas, clasificación de
componentes, etc. Supera a otros sistemas de visión , además
minimiza los requerimientos de operadores y facilita el
mantenimiento.
Filtro de ruido
Las redes neuronales artificiales son mejores preservando la
estructura profunda y el detalle que los filtros tradicionales
cuando eliminan el ruido. La primera aplicación profesional de
las redes neuronales consistió en un filtro para eliminar ruido
en las líneas telefónicas.
Problemas de combinatoria
Las redes neuronales artificiales están ofreciendo ciertas
esperanzas en el área de problemas algorítmicamente tan
complejos como los NP-completos; por ejemplo, el problema del
viajante de comercio (Hopfield, J. & Tank, D.)
Otras aplicaciones
Modelado y predicción de indicadores económicos
Se obtienen mejores resultados que con cualquier otro método
conocido (como los programas de media móvil). Se ha aplicado
por ejemplo a la predicción de tasas de interés, déficits
comerciales, precios de stock, etc.
30
Historia
En 1956 se organizó en Dartmouth la primera conferencia sobre
IA. Aquí se discutió el uso potencial de las computadoras para
simular "todos los aspectos del aprendizaje o cualquier otra
característica de la inteligencia" y se presentó la primera
simulación de una red neuronal, aunque todavía no se sabían
interpretar los datos resultantes.
En 1959, Widrow publica una teoría sobre la adaptación
neuronal y unos modelos inspirados en esa teoría, el Adaline
(Adaptative Linear Neuron) y el Madaline (Multiple Adaline).
Estos modelos fueron usados en numerosas aplicaciones y
permitieron usar, por primera vez, una red neuronal en un
problema importante del mundo real: filtros adaptativos para
eliminar ecos en las líneas telefónicas.
En 1962, Rosemblatt publica los resultados de un ambicioso
proyecto de investigación, el desarrollo del Perceptrón, un
identificador de patrones ópticos binarios, y salida binaria. Las
capacidades del Perceptrón se extendieron al desarrollar la regla
de aprendizaje delta, que permitía emplear señales continuas de
entrada y salida.
En 1969, Minsky y Papert realizan una seria crítica del
Perceptrón, revelando serias limitaciones, como su incapacidad
para representar la función XOR, debido a su naturaleza lineal.
Este trabajo creó serias dudas sobre las capacidades de los
modelos conexionistas y provocó una caída en picado de las
investigaciones.
Años 70: a pesar del duro golpe que supuso el trabajo de Minsky
y Papert para las investigaciones en computación conexionista,
un puñado de investigadores siguió trabajando y desarrollando
nuevas ideas:
31
Anderson estudia y desarrolla modelos de memorias asociativas.
Destaca el autoasociador lineal conocido como modelo brain-
state-in-a-box (BSB).
Kohonen continúa el trabajo de Anderson y desarrolla modelos
de aprendizaje competitivo basados en el principio de
inhibición lateral. Su principal aportación consiste en un
procedimiento para conseguir que unidades físicamente
adyacentes aprendieran a representar patrones de entrada
similares; a las redes basadas en este procedimiento se las
denomina redes de Kohonen.
Grossberg realizó un importante trabajo teórico - matemático
tratando de basarse en principios fisiológicos; aportó importantes
innovaciones con su modelo ART (Adaptative Resonance Theory)
y, junto a Cohen, elabora un importante teorema sobre la
estabilidad de las redes recurrentes en términos de una función
de energía.
Años 80: En esta década se produce el renacimiento del interés
por el campo gracias sobre todo al trabajo del el grupo PDP y las
aportaciones de Hopfield.
Rumelhart, McClelland & Hinton crean el grupo PDP (Parallel
Distributed Processing). Como resultado de los trabajos de este
grupo salieron los manuales con más influencia desde la crítica
de Minsky y Papert. Destaca el capítulo dedicado al algoritmo de
retropropagación, que soluciona los problemas planteados por
Minsky y Papert y extiende enormemente el campo de aplicación
de los modelos de computación conexionistas.
Hopfield elabora un modelo de red consistente en unidades de
proceso interconectadas que alcanzan mínimos energéticos,
aplicando los principios de estabilidad desarrollados por
Grossberg. El modelo de Hopfield resultó muy ilustrativo sobre
los mecanismos de almacenamiento y recuperación de la
32
memoria. Su entusiasmo y claridad de presentación dieron un
nuevo impulso al campo y provocaron el incremento de las
investigaciones.
Otros desarrollos destacables de esta década son la máquina de
Boltzmann y los modelos BAM.
Redes de una capa: Perceptrón, Adaline y Madaline
Perceptron
Antecedentes
En 1943, Warren McCulloc y Walter Pitts originaron el primer
modelo de operación neuronal, el cual fue mejorado en sus
aspectos biológicos por Donald Hebb en 1948.
En 1962, Bernard Widrow propuso la regla de aprendizaje
Widrow-Hoff, y Frank Rosenblatt desarrolló una prueba de
convergencia, y definió el rango de problemas para los que su
algoritmo aseguraba una solución. El propuso los 'Perceptrons'
como herramienta computacional.
Funcionamiento
En la siguiente figura se representa una neurona "artificial",
que intenta modelar el comportamiento de la neurona biológica.
Aquí el cuerpo de la neurona se representa como un sumador
lineal de los estímulos externos zj, seguida de una función no
lineal yj = f(zj). La función f(zj) es llamada la función de
activación, y es la función que utiliza la suma de estímulos
para determinar la actividad de salida de la neurona.
Lo vemos con detalle en la siguiente ilustración:
33
Este modelo se conoce como perceptrón de McCulloch-Pitts, y es
la base de la mayor parte de las arquitectura de las RNA que se
interconectan entre sí. Las neuronas emplean funciones de
activación diferentes según la aplicación, algunas veces son
funciones lineales, otras funciones sigmoidales (p.ej. la tanh –
tangente hiperbólica - ), y otras funciones de umbral de disparo.
La eficiencia sináptica se representa por factores de peso de
interconexión wij, desde la neurona i, hasta la neurona j.
Los pesos pueden ser positivos (excitación) o negativos
(inhibición). Los pesos junto con las funciones f(z) dictan la
operación de la red neuronal. Normalmente las funciones no se
modifican de tal forma que el estado de la red neuronal
depende del valor de los factores de peso (sinapsis) que se aplica
a los estímulos de la neurona.
En un perceptrón, cada entrada es multiplicada por el peso W
correspondiente, y los resultados son sumados, siendo evaluados
contra el valor de umbral, si el resultado es mayor al mismo, el
perceptrón se activa.
Limitantes
El perceptrón es capaz tan sólo de resolver funciones definidas
por un hiperplano (objeto de dimensión N-1 contenida en un
34
espacio de dimensión N). que corte un espacio de dimensión N.
Un ejemplo de una función que no puede ser resuelta es el
operador lógico XOR.
Una explicación mas sencilla de un hiperplano sería, hablando
en un plano de dos dimensiones, una línea que separa a los
elementos existentes en dos grupos. El perceptrón sólo puede
resolver una función, si todos los posibles resultados del
problema pueden separarse de ésta forma (en dos secciones) es
decir, que no se combinen entre sí.
Entrenamiento
El entrenamiento de un perceptrón es por medio de la regla de
aprendizaje delta:
Para cada peso W se realiza un ajuste dW según la regla:
dW = LR ( T - Y ) X
Donde LR es la razón de aprendizaje, T el valor deseado, Y el
valor obtenido, y X la entrada aplicada al perceptrón.
Tipos de perceptrón
El Perceptrón básico de dos capas (entrada con neuronas
lineales, analógicas, y la de salida con función de activación de
tipo escalón, digital) sólo pude establecer dos regiones separadas
por una frontera lineal en el espacio de patrones de entrada,
donde se tendría un hiperplano.
Un Perceptrón con tres niveles de neuronas puede formar
cualquier región convexa en este espacio. Las regiones convexas
se forman mediante la intelección entre las regiones formadas
por cada neurona de la segunda capa, cada uno de estos
35
elementos se comporta como un Perceptrón simple, activándose
su salida para los patrones de un lado del hiperplano.
Un Perceptrón con cuatro capas puede generar regiones de
decisión arbitrariamente complejas. El proceso de separación en
clases que se lleva a cabo consiste en la partición de la región
deseada en pequeños hipercubos.
Cada hipercubo requiere 2n neuronas en la segunda capa
(siendo n el numero de entradas a la red), una por cada lado
del hipercubo, y otra en la tercera capa, que lleva a cabo el
AND lógico de la salida de los nodos del nivel anterior. La
salida de los nodos de este tercer nivel se activaran solo para las
entradas de cada hipercubo. Los hipercubos se asignan a la
región de decisión adecuada mediante la conexión de la salida
de cada nodo del tercer nivel solo con la neurona de salida
(cuarta capa) correspondiente a la región de decisión en la que
este comprendido el hipercubo llevándose a cabo una operación
lógica OR en cada nodo de salida. Este procedimiento se pude
generalizar de manera que la forma de las regiones convexas sea
arbitraria, en lugar de hipercubos.
En teoría, el Perceptrón de 4 capas puede resuelve una gran
variedad de problemas cuyas entradas sean analógicas, la salida
sea digital y sea linealmente separable. El problema práctico
radica en el numero de neuronas, en el numero idóneo de capas
ocultas, la extensión de la función de activación, el tiempo de
entrenamiento de la red, las implicaciones en la generación de
ruido (al tener un numero excesivo de neuronas) en contraparte
con la ventaja de tener un sistema tolerante a fallas al tener un
numero de neuronas redundante.
Aplicaciones del perceptrón
36
El rango de tareas que el Perceptrón puede manejar es mucho
mayor que simples decisiones y reconocimiento de patrones. Por
ejemplo, se puede entrenar una red para formar el tiempo
pasado de los verbos en ingles, leer texto en ingles y manuscrito.
El Perceptrón multicapa (MLP) puede ser usado para la
predicción de una serie de datos en el tiempo; tal a sido su
éxito en la medición de la demanda de gas y electricidad,
además de la predicción de cambios en el valor de los
instrumentos financieros.
Predicción de mercados financieros, diagnósticos médicos, el
Perceptrón como una red codificadora, el Perceptrón aprende a
sumar enteros.
NETtalk, aplicación de la que ya hemos hablado anteriormente,
es un Perceptrón que es capaz de transformar texto en ingles en
sonido individual (representaciones fonéticas) y la
pronunciación con la utilización de un sintetizador de voz;
cuenta con aproximadamente 300 nodos de neuronas (siendo 80
en la capa escondida) y 20,000 conexiones individuales.
Algoritmo del Perceptrón
El objetivo es encontrar un perceptrón para calcular una
función de n-variables de la que tenemos un fichero de
ejemplos, es decir una serie de líneas, donde cada línea
representa un ejemplo:
x_1 x_2 ... x_n y
con los valores de las entradas X_i seguido del valor Y de la
función para esas entradas.
Para encontrar el perceptrón tendremos que “aprender” los pesos
w_i asociados a cada variable de entrada
37
X_i + el bias b=W_n+1 (que sería el –umbral).
De tal forma que la función que calculará el perceptrón será:
Y = f(e)
Siendo e el estimulo que le entra al perceptrón y f la función de
activación del mismo
e= b + ∑ x_i * W_i y
f(x)= 1 /(1+e^x)
En el caso de que la salida fuese binaria, la función quedaría
Y =1 si f(e) > 0.5, e
Y = 0 si f(e) < .5.
Y en el caso de que tomase n valores discretos habría que
generalizar esto dividiendo el intervalo unidad [0,1] en n
subintervalos (1 por cada valor).
Se supone que el fichero esta normalizado y así, tanto Y como
cada X_i toma valores entre 0 y 1. En otro caso había que
normalizarlo previamente a dicho intervalo.
Lo que se pretende es minimizar el error cuadrático medio
(∑ error^2)/nº ejemplos)
mediante la técnica del gradiente descendente
CONSTANTES
 (tasa de aprendizaje, normalmente entre 0.01 y 0.1)
E (Error cuadrático medio admitido)
38
NºMaxIteraciones (Nº máximo de iteraciones que vamos a dar)
VARIABLES
I (nº de iteraciones)
K (contador de ejemplos)
W[i:1..n+1] (pesos del perceptron)
X[i:1..n] (valores de la entrada en el ejemplo actual)
Y (valor de la salida en el ejemplo actual)
SP (salida del perceptrón con la entrada del ejemplo actual)
Error (error en el ejemplo actual)
ECM (error cuadrático medio)
PASO 1: Inicialización de variables
I=0;
Para i=1..n+1
W[i]=<nº aleatorio (normalmente entre –1 y 1)> (muy
importante que el nº sea aleatorio,
distinto en cada ejecución)
ECM=E
PASO 2: Bucle de iteraciones
Mientras (I < NºMaxIteraciones) y (ErrorCuadraticoMedio > E)
Paso 2.1: Bucle de paso por todos los ejemplos
39
Abrir(<fichero de ejemplos>)
K=0
Mientras no este en el final del fichero
2.1.0 Leer valores del ejemplo
Leer(x[i] (i=1..n), y)
2.1.1 Calcular error en ese ejemplo
SP = W[n+1] + ∑ x[i] * W[i] (salida del perceptrón con la
entrada del ejemplo h)
SP= 1/(1+e^(-SP))
Error = y - SP (diferencia entre el valor de y en el ejemplo h y
SP)
2.1.2 Actualizar los pesos según el error de ese ejemplo
2.1.2.1 Actualizar los pesos de las entradas
Para cada i=1..n
W[i] = W[i] + γ*SP*(1-SP)*x[i]*Error
2.1.2.2 Actualizar el bias (= -umbral)
W[n+1]=W[n+1] + γ*SP*(1-SP)*Error
2.1.3 Incrementar contador de ejemplos
k=k+1
Cerrar(<fichero de ejemplos>)
Paso 2.2.: Calcular Error Cuadratico Medio
ECM=0;
Abrir(<fichero de ejemplos>)
Mientras no este en el final del fichero
40
Leer(x[i] (i=1..n), y)
SP = W[n+1] + ∑ x[i] * W[i]
SP= 1/(1+e^(-SP))
Error = y – SP
ECM=ECM+(Error)^2
ECM=ECM/k
Cerrar(<fichero de ejemplos>)
Paso 2.3.: Incrementar el contador de iteraciones
I=I+1
PASO 3: Salida
Escribe( “El perceptrón aprendido es el de pesos:” )
Para i=1..n
Escribe(“ W”,i,”=”,W[i])
Escribe(“Con bias =”, W[n+1])
Adaline
Es una de las estructuras neuronales más simples junto con el
perceptrón.
Está formada por un único elemento de procesado (Adaline:
Adaptive Linear Elemento; "Widrow-Hoff").
Si se combinan varios adalines se obtiene la configuración
denominada Madaline.
Para su entrenamiento se utiliza un aprendizaje supervisado,
concretamente, por corrección de error. El aprendizaje es Off
Line.
41
Se trata de modificar los pesos para tratar de reducir la
diferencia entre la salida deseada y la actual (para cada
patrón).
La regla de aprendizaje a utilizar se denomina LMS: minimiza
el Error Cuadrático Medio sobre todos los patrones de
entrenamiento.
Cálculo de Pesos Óptimos
Sea el conjunto de entrenamiento: (X,D): patrones de entrada y
salidas deseadas.
X ---- conjunto de L vectores de dimensión n.
D ---- conjunto de L vectores de dimensión m (en este caso
m=1). Salida Deseada.
Y ---- conjunto de L vectores de dimensión m ( en este caso
m=1). Salida Obtenida.
Se trata de minimizar: Sea Yk la salida obtenida para el patrón
k.
El error para el patrón k entonces :
42
El Error Cuadrático Medio:
Sea:
Para hallar el mínimo derivamos con respecto a W y se hace
igual a 0:
43
Consecuencias:
Posee un extremo
El extremo es mínimo
Backpropagation o Retropropagación:
Redes de Retropropagación (Back-prop)
Al hablar de redes de retropropagación o redes de propagación
hacia atrás hacemos referencia a un algoritmo de aprendizaje
más que a una arquitectura determinada.
La retropropagación consiste en propagar el error hacia atrás, es
decir, de la capa de salida hacia la capa de entrada, pasando
por las capas ocultas intermedias y ajustando los pesos de las
conexiones con el fin de reducir dicho error.
Hay distintas versiones o reglas del algoritmo de retropropagación
y distintos arquitecturas conexionistas a las que pueden ser
aplicados.
Durante mucho tiempo no se dispuso de algoritmos para
entrenar redes multicapa, y como las redes de una capa estaban
muy limitadas en cuanto a lo que eran capaces de representar,
el campo de las redes neuronales artificiales estaba estancado.
La invención y perfeccionamiento del algoritmo de
retropropagación dio un gran impulso al desarrollo de este
campo. Tiene un buen fundamento matemático y a pesar de sus
limitaciones ha expandido enormemente el rango de problemas
donde se aplican las redes neuronales artificiales.
44
Al parecer el algoritmo fue ideado a principios de los 70 por
Werbos, y redescubierto a principios de los 80 por Parker y
Rumelhart independientemente. Sin embargo, no se hizo
popular hasta 1986, cuando Rumerlhart, Hinton y Williams
presentaron una descripción clara y concisa del mismo.
Y es que en un primer momento no se valoró como se merecía. El
hecho de que permaneciera en el olvido tanto tiempo también
debe ser una consecuencia de la condición interdisciplinar del
campo, repartido entre las matemáticas y ciencias de la
computación, las neurociencias y la psicología.
Desde la fecha clave de 1986 han surgido nuevas versiones que
han tratado de aumentar la velocidad de convergencia del
algoritmo y han tratado de superar algunos de sus
inconvenientes, como la tendencia a alcanzar mínimos locales y
no globales.
Descripción matemática del algoritmo de retropropagación
Se explica una versión del algoritmo (Hinton, 1992) para redes
con las siguientes características:
- No recurrentes
- Función de activación sigmoidal
- Capas totalmente interconectadas
- Operación totalmente síncrona
-
1. Aleatorizamos los pesos de las conexiones.
2. Presentamos un patrón de entrada y calculamos la salida.
3. Dada una unidad j-ésima de la capa de salida y unidades
i-ésimas de la capa oculta inmediatamente anterior,
calculamos la entrada total ponderada y la salida o
activación de la misma.
45
4. Una vez computadas las actividades de todas las unidades
de salida se calcula una estimación del error,
generalmente una función cuadrática de los errores
individuales cometidos por cada unidad, siendo cada error
individual la diferencia entre la salida deseada y la
obtenida.
siendo dj la salida deseada para la unidad j-ésima
5. Cómputo de la rapidez de variación del error al cambiar
la actividad de cada unidad de salida (EA, error respecto a
la actividad)
Es justamente la diferencia entre la salida deseada y la
salida real obtenida, es decir, la diferencia entre la
actividad deseada y la actividad real.
46
6. Cómputo de la rapidez de variación del error al cambiar
la entrada total que recibe cada unidad de salida.
Es igual a la tasa de variación del error al variar su
activación multiplicado por la tasa de variación de la
activación al cambiar su entrada ( que es justamente la
derivada de la función sigmoidal).
7. Cómputo de la rapidez de variación del error al ser
modificado un peso de la conexión aferente a una unidad
de salida.
Es igual a la tasa de variación del error al variar su
entrada, por la tasa de variación de la entrada al variar
ese peso.
Hasta ahora sabemos calcular el EA sólo para las unidades
de salida, ¿ qué pasa con las unidades ocultas?. En este
caso no tenemos una estimación directa del error aportado
por cada unidad oculta; aquí es donde interviene la
retropropagación o propagación hacia atrás del error:
47
La unidad i-ésima de la capa oculta afecta a todas las unidades
de salida, por lo tanto,
para estimar como varía el error al variar la actividad de esa
unidad oculta, habrá que sumar los efectos individuales de su
actividad sobre todas las neuronas de salida.
Cada efecto individual sobre la variación del error, será igual a
la tasa de variación del error de la unidad de salida al cambiar
su entrada total, multiplicado por la tasa de variación de su
entrada al variar la actividad de la unidad oculta.
8. Conociendo EA para las unidades de cualquier capa
podemos calcular d y EP con las expresiones ya conocidas.
9. Disponiendo de la tasa de variación del error respecto al
peso de una conexión (EP), podemos usar distintas reglas
para modificar ese peso en aras a reducir dicho de error.
48
Una de las primeras reglas que aprovechó este algoritmo es
la regla delta generalizada, que calcula el incremento a
aplicar a un peso como una proporción directa de la tasa
de variación del error, siendo h el coeficiente de
aprendizaje, típicamente con valores comprendidos entre
0.01 y 1.0
Valoración
El algoritmo de retropropagación presenta ciertos problemas,
algunos referentes a su dudosa plausibilidad neurofisiológica, y
otros referentes a ciertos aspectos computacionales, que son los
que vamos a comentar a continuación:
- Los resultados dependen de los valores iniciales, aleatorios,
de las conexiones. Esto hace que sea conveniente entrenar
varias redes con distintas valores iniciales y elegir la que
mejor funcione.
- A veces se requiere mucho tiempo para obtener soluciones
sencillas. Este problema se reduce gracias al aumento de
potencia de los procesadores y al uso de nuevas tecnologías,
sin embargo, el tiempo de cómputo aumenta mucho al
aumentar el tamaño de la red. Si bien el volumen de
cálculo es proporcional al número total de conexiones. En
la práctica, al aumentar el tamaño de la red, hacen falta
más ejemplos de aprendizaje, y eso provoca un aumento
49
aumenta mucho mayor del tiempo de aprendizaje. Para
incrementar la velocidad de convergencia se han
desarrollado diferentes modificaciones del algoritmo.
- La "interferencia catastrófica" o empeoramiento en el
rendimiento del sistema, como consecuencia de la
incorporación de nuevos ejemplos de aprendizaje.
- La parálisis: esto sucede cuando los pesos quedan ajustados
a valores muy grandes, esto hace operar a las unidades de
proceso con una activación muy próxima a 1, y por lo
tanto, el gradiente del error, tiende a 0???, en consecuencia
no se producen modificaciones en los pesos, el aprendizaje
queda detenido. Por eso es conveniente aleatorizar los pesos
de las conexiones con valores pequeños y usar la tasa de
aprendizaje, también pequeña???, a pesar de que se
ralentice el aprendizaje.
- Inestabilidad temporal. Si usamos un coeficiente de
aprendizaje elevado, se van a producir incrementos grandes
en los pesos, de manera que es fácil pasarse de incremento
y tener que tratar de compensarlo en el siguiente ciclo, de
manera que se producirían oscilaciones continuas. Esto se
soluciona usando un coeficiente pequeño, o, para no tener
un aprendizaje muy lento, modificar dicho coeficiente
adaptativamente (aumentarlo si el error global disminuye,
y disminuirlo en caso contrario).
- El problema de los mínimos locales. El algoritmo de
retropropagación usa un técnica por gradiente
descendiente, esto significa que sigue la "superficie del
error" siempre hacia abajo, hasta alcanzar un mínimo
local, pero no garantiza que se alcance una solución
50
globalmente óptima. Sin embargo, se ha comprobado que el
hecho de alcanzar mínimos locales no impide que se
consigan resultados satisfactorios. Por otro lado, se han
desarrollado métodos para solventar este problema, como el
modo de operación asíncrono o probabilístico y el uso de
métodos estadísticos.
Podemos considerar el error como una superficie llena de
desniveles, si soltamos una pelota caerá en algún valle, pero no
necesariamente en el más hondo, sino en el más cercano (un
mínimo local).
Una idea intuitiva para solucionar esto, sería aplicarle cierta
energía a esa superficie agitándola o haciéndola vibrar
(momentum), esto haría saltar a la pelota de valle en valle,
como de los valles más profundos es más difícil salir, tendería a
estar en valles cada vez más profundos. Si dejamos de agitar esa
superficie poco a poco, al final tendremos la pelota en el valle
más profundo de la superficie.
Otras técnicas que pueden ayudar a no caer en mínimos locales
consisten en añadir cierto nivel de ruido a las modificaciones de
los pesos de las conexiones. Otra medida propuesta es añadir
ruido a las conexiones, pero esto es más útil para darle robustez
y aumentar la capacidad de generalización de la red. Estas
medidas, por contra, aumentan el tiempo de aprendizaje.
51
Validación
Necesidad de validación
Una vez tenemos nuestro modelo, es necesario probarlo ante
diferentes situaciones y circunstancias.
Es preciso asegurarse de que nuestra red funciona correctamente,
ya que podría no hacerlo por diferentes motivos. Los más usuales
son los siguientes:
- Entrenamiento insuficiente
- Conjunto de datos no representativo
- Sobreentrenamiento
Punto óptimo para parar el entrenamiento
Dentro de las técnicas de validación, uno de los principales
objetivos que se persigue es encontrar cuál es exactamente el
punto en el que debemos parar nuestro entrenamiento.
Generalmente, se suelen seguir los siguientes criterios:
- Al llegar a evaluar un número determinado de ejemplos
- Cuando el error alcanza un mínimo
- Si la reducción del error es inferior al estipulado
convenientemente.
Método de validación simple
Este es el método conocido como “hold-out”.
52
Su metodología divide el conjunto de datos en 3 grupos, que
deberán estar claramente diferenciados y escogidos a conciencia:
- Datos para el entrenamiento: serán los datos con los que se
entrenará nuestra red, y a través de los que se realizará el
aprendizaje.
- Datos para la validación: serán los datos que servirán como
comprobación de que nuestra red neuronal funciona
adecuadamente y en la manera que esperábamos.
- Datos para el test: serán un conjunto reducido de datos,
escogidos al azar, que darán finalmente un resultado del
trabajo de nuestra red.
Método de validación cruzada
Es más conocido como “cross-validation”.
Este método de validación busca eliminar la dependencia del
azar a la hora de seleccionar los conjuntos de datos para la
validación.
Así, en cada serie de conjuntos de datos, se seleccionará uno de
ellos para formar parte de la validación.
Produce mayor fiabilidad en la validación, aunque consume un
tiempo algo superior.
Otros métodos de validación
Simplemente, mencionar otros métodos usuales en la validación
de redes neuronales:
- Bootstrapping
- Stacked generalization
53
¿Por qué validar y cómo?
Es de gran importancia comprobar que nuestra red funciona
correctamente con unos ejemplos con los que no ha sido
entrenada (pensemos en que, como papagayos, podría haber
aprendido únicamente los ejemplos con los que ha sido
entrenada).
Para llevar a buen puerto esta tarea, tendremos que tener un
conjunto de datos general que represente adecuadamente el
problema para el que estamos trabajando con nuestra red
neuronal.
Con todo el proceso de validación, tendremos que comprobar si
nuestro modelo de cómputo se ajusta fielmente a las situaciones
reales que le presentamos y para lo que, en definitiva, ha sido
concebido.
54
BIBLIOGRAFÍA
55
Las principales fuentes bibliográficas son sitios de la red:
 URL: www.iiia.csic.es
 URL: www.gc.ssr.upm.es
 URL: www.monografias.com
 URL: http:// decsai.ugr.es/~castro/MCII
 URL: http://ohm.utp.edu.co
 URL: www.lfcia.org
 URL: www.gui.uva.es
 URL: http://electronica.com.mx
 URL: www.google.es
 URL: www.ugr.es
 Transparencias sobre Redes Neuronales – Juan Luis Castro Peña

Apuntes ampliados

  • 1.
    1 Alumno: AitorGómez Maguregui Grupo:2ºIngenieríaInformática A Asignatura: Modelos de Computación II
  • 2.
    2 Profesor: Prof. D.Juan Luis Castro Peña ÍNDICE Portada 1 Índice 2 Apuntes ampliados 3 a 33 Conceptos básicos sobre RRNN 3 a 20 Redes de una capa:Perceptrón, Adaline 20 a 27 Retropropagación o Backpropagation 27 a 32 Validación en Redes Neuronales 32 a 34 Bibliografía 35
  • 3.
    3 REDES NEURONALES Conceptos básicossobre Redes Neuronales ¿De dónde surge la conexión cerebro vs. Máquinas? Cuando trabajamos en el ámbito de las Redes Neuronales, tenemos que comenzar por mostrar una conexión clara y evidente entre las máquinas y el cerebro humano. La diferencia más importante y decisiva es la forma en que se produce el almacenamiento de información en el cerebro y en el ordenador. En el ordenador, los datos se guardan en posiciones de memoria que son celdillas aisladas entre sí. Así cuando se quiere acceder a una posición de memoria se obtiene el dato de esta celdilla, sin que las posiciones de memoria contiguas se vean afectadas por dicha operación. En el cerebro, la gestión es totalmente diferente. Cuando buscamos una información no hace falta que sepamos dónde se
  • 4.
    4 encuentra almacenada yen realidad no lo podemos saber ya que nadie sabe dónde guarda el cerebro los datos. En todo el mundo pero sobre todo en Estados Unidos y Japón, científicos expertos tratan de dar con la clave de la memoria asociativa. Si se consiguiera construir un chip de memoria según el modelo humano, la ciencia daría un paso gigante en la fascinante carrera hacia la inteligencia artificial. Un superordenador llamado cerebro El hombre necesita un sistema de proceso de datos de múltiple propósito capaz de tratar gran cantidad de información muy distinta y en muy poco tiempo y con el mayor sentido práctico(pero no necesariamente con exactitud), para inmediatamente poder actuar en consecuencia. Los ordenadores, en cambio, son altamente especializados con capacidad para procesar con exactitud información muy concreta (en principio solo números) siguiendo unas instrucciones dadas. El cerebro humano posee más de diez millones de neuronas las cuales ya están presentes en el momento del nacimiento. Conforme pasa el tiempo se vuelven inactivas, aunque pueden morir masivamente. Nuestro órgano de pensamiento consume energía bioquímica, el equivalente a una cucharada de azúcar por hora. Los ordenadores domésticos consumen una cantidad semejante. Según estudios especializados, el cerebro dispone de dos mecanismos de almacenamiento de datos: la memoria intermedia acepta de cinco a diez unidades de información, aunque solo las mantiene durante algunos minutos. La memoria definitiva guarda las informaciones “para toda la vida”, lo que
  • 5.
    5 no significa quenos podamos acordar siempre de todo. La memoria inmediata trabaja como una especie de cinta continua: la información circula rotativamente en forma de impulsos eléctricos por los registros. Así, el sistema es comparable a la memoria dinámica de un ordenador, en la que la información tiene que ser refrescada continuamente para que no se pierda. En cambio, la memoria definitiva parece asemejarse más bien a las conocidas memorias de celdillas de los ordenadores. Se cree que esta memoria funciona gracias a formaciones químicas de las proteínas presentes en el cerebro humano. Diferencias entre el cerebro y una computadora Podemos resumir las diferencias principales entre el cerebro y una computadora en la siguiente tabla: Cerebro Computadora Sistema de datos de múltiple propósito capaz de tratar gran cantidad de información en poco tiempo pero no necesariamente con exactitud. Sistemas altamente especializados con capacidad para procesar información muy concreta, siguiendo unas instrucciones dadas. La frecuencia de los impulsos nerviosos puede variar. La frecuencia de transmisión es inalterable y está dada por el reloj interno de la máquina. Las llamadas sinapsis cumple en el cerebro la función simultánea de varias compuertas (AND, OR, NOT, etc.) Las compuertas lógicas tienen una función perfectamente determinada e inalterable. La memoria es del tipo La información se
  • 6.
    6 asociativo y nose sabe dónde quedara almacenada. guarda en posiciones de memoria de acceso directo por su dirección. Los impulsos fluyen a 30 metros por segundo. En el interior de una computadora los impulsos fluyen a la velocidad de la luz. Similitudes entre el cerebro y una computadora - Ambos codifican la información en impulsos digitales. - Tanto el cerebro como la computadora tienen compuertas lógicas. - Existen distintos tipos de memoria. - Los dos tienen aproximadamente el mismo consumo de energía. Como conclusión de las analogías y diferencias entre máquina y cerebro, además de observar detenidamente el análisis que arriba figura, tenemos que destacar que, a pesar de las similitudes entre ambos modelos, y de la utilidad del modelo de cómputo de RRNN, el cerebro humano es, hoy por hoy, insustituible. No quiere decir esto que la utilidad de las Redes Neuronales sea, ni mucho menos, escasa. Inspiración biológica en Redes Neuronales Nuestro modelo de estudio, las redes neuronales, tienen un evidente y marcado origen biológico. A grandes rasgos, recordemos que el cerebro humano se compone de decenas de billones de neuronas interconectadas entre sí formando circuitos o redes que desarrollan funciones específicas. Una neurona típica recoge señales procedentes de otras neuronas a través de una pléyade de delicadas estructuras llamadas dendritas. La neurona emite impulsos de actividad eléctrica a lo
  • 7.
    7 largo de unafibra larga y delgada denominada axón, que se escinde en millares de ramificaciones. Podemos ver en la siguiente imagen la estructura de una neurona: Las extremidades de estas ramificaciones llegan hasta las dendritas de otras neuronas y establecen unas conexiones llamadas sinapsis, en las cuales se produce una transformación del impulso eléctrico en un mensaje neuroquímico, mediante la liberación de unas sustancias llamadas neurotransmisores. Podemos verlo en detalle en la siguiente imagen:
  • 8.
    8 El efecto delos neurotransmisores sobre la neurona receptora puede ser excitatorio o inhibitorio, y es variable (la intensidad del efecto depende de numerosos factores que no sería oportuno describir aquí) , de manera que podemos hablar de la fuerza o efectividad de una sinapsis. Las señales excitatorias e inhibitorias recibidas por una neurona se combinan, y en función de la estimulación total recibida, la neurona toma un cierto nivel de activación, que se traduce en la generación de breves impulsos nerviosos con una determinada frecuencia o tasa de disparo, y su propagación a lo largo del axón hacia las neuronas con las cuales “conecta”. De esta manera la información se transmite de unas neuronas a otras y va siendo procesada a través de las conexiones sinápticas y las propias neuronas. El aprendizaje de las redes neuronales se produce mediante la variación de la efectividad de las sinapsis, de esta manera cambia la influencia que unas neuronas ejercen sobre otras, de aquí se deduce que la arquitectura, el tipo y la efectividad de las conexiones en un momento dado, representan en cierto modo la memoria o estado de conocimiento de la red. Redes Neuronales Artificiales Las neuronas se modelan mediante unidades de proceso. Cada unidad de proceso se compone de una red de conexiones de entrada, una función de red ( de propagación), encargada de
  • 9.
    9 computar la entradatotal combinada de todas las conexiones, un núcleo central de proceso, encargado de aplicar la función de activación, y la salida, por dónde se transmite el valor de activación a otras unidades. En la siguiente tabla podemos ilustrar las analogías entre las neuronas artificiales y las neuronas biológicas: Redes Neuronales Biológicas Redes Neuronales Artificiales Neuronas Unidades de proceso Conexiones sinápticas Conexiones ponderadas Efectividad de las sinapsis Peso de las conexiones Efecto excitatorio o inhibitorio de una conexión Signo del peso de una conexión Efecto combinado de las sinapsis Función de propagación o de red Activación -> tasa de disparo Función de activación -> Salida El siguiente esquema ilustra de forma precisa esta estructura:
  • 10.
    10 La función dered es típicamente el sumatorio ponderado, mientras que la función de activación suele ser alguna función de umbral o una función sigmoidal. Vamos a ver con detalle cada uno de los términos que aquí aparecen: Función de propagación o de red: Calcula el valor de base o entrada total a la unidad, generalmente como simple suma ponderada de todas las entradas recibidas, es decir, de las entradas multiplicadas por el peso o valor de las conexiones. Equivale a la combinación de las señales excitatorias e inhibitorias de las neuronas biológicas. Función lineal de base (LBF) Consiste en el sumatorio de las entradas ponderadas. Se trata de una función de tipo hiperplano, esto es, de primer orden. Dado una unidad j, y n unidades conectadas a ésta, si llamamos X al vector de entradas (que coincide con las salidas de las unidades de la capa anterior) y Wj al vector de pesos de las conexiones correspondientes, esta función quedaría así: Al representar los pesos utilizamos dos subíndices para indicar que conectan dos unidades, i y j, dónde j se refiere la unidad actual. Función radial de base (RBF) Función de tipo hiperesférico, de segundo orden, no lineal. El valor de red representa la distancia a un determinado patrón de referencia.
  • 11.
    11 Función de activación:Es quizás la característica principal o definitoria de las neuronas, la que mejor define el comportamiento de la misma. Se usan diferentes tipos de funciones, desde simples funciones simples de umbral a funciones no lineales. Se encarga de calcular el nivel o estado de activación de la neurona en función de la entrada total. Se suele distinguir entre funciones lineales, en las que la salida es proporcional a la entrada; funciones de umbral, en las cuales la salida es un valor discreto (típicamente binario 0/1) que depende de si la estimulación total supera o no un determinado valor de umbral; y funciones no lineales, no proporcionales a la entrada. Función de umbral En un principio se pensó que las neuronas usaban una función de umbral, es decir, que permanecían inactivas y se activaban sólo si la estimulación total superaba cierto valor límite; esto se puede modelar con una función escalón: la más típica es el escalón unitario: la función devuelve 0 por debajo del valor crítico (umbral) y 1 por encima. Después se comprobó que las neuronas emitían impulsos de actividad eléctrica con una frecuencia variable , dependiendo de la intensidad de la estimulación recibida, y que tenían cierta actividad hasta en reposo, con estimulación nula. Estos descubrimientos llevaron al uso de funciones no lineales con esas características, como la función sigmoidal, con un perfil parecido al escalón de una función de umbral, pero continua. Función sigmoidal o logística
  • 12.
    12 Es probablemente lafunción de activación más empleada en la actualidad. Se trata de una función continua no lineal con bastante plausibilidad fisiológica. La función sigmoidal posee un rango comprendido entre 0 y 1. Esto, aplicado a las unidades de proceso de una red neuronal artificial significa que, sea cual sea la entrada, la salida estará comprendida entre 0 y1. Esta función depende del parámetro s , que usualmente toma el valor 1. Podemos observar la representación gráfica de este último caso en la siguiente gráfica: La salida de una unidad vale 0.5 cuando la entrada es nula, esto significa que la unidad tiene cierta actividad aún en ausencia de estimulación. Al aumentar la estimulación la unidad aumenta su activación, y la disminuye si la estimulación es inhibitoria, de forma parecida a como se comportan las neuronas reales.
  • 13.
    13 Presenta las siguientescaracterísticas deseables: 1. Acomodación de señales muy intensas sin producir saturación. 2. Admite señales débiles sin excesiva atenuación 3. Fácilmente derivable, ya que La principal limitación de esta función es que no sirve para expresar polaridades, da siempre valores positivos. Una función alternativa con cualidades parecidas pero con un rango entre -1 y 1 es la función tangente hiperbólica. Desde un punto de vista fisiológico, el signo negativo se puede interpretar como una disminución de la tasa de disparo de una neurona por debajo de la tasa de disparo en reposo. Función gaussiana Conexiones ponderadas: hacen el papel de las conexiones sinápticas, el peso de la conexión equivale a la fuerza o efectividad de la sinapsis. Las existencia de conexiones determina si es posible que una unidad influya sobre otra, el valor de los pesos y el signo de los mismos definen el tipo (excitatorio/inhibitorio) y la intensidad de la influencia. Salida: calcula la salida de la neurona en función de la activación de la misma, aunque normalmente no se aplica más que la función identidad, y se toma como salida el valor de activación. El valor de salida cumpliría la función de la tasa de disparo en las neuronas biológicas. Arquitecturas de Redes Neuronales
  • 14.
    14 Para diseñar unared debemos establecer como estarán conectadas unas unidades con otras y determinar adecuadamente los pesos de las conexiones. Lo más usual es disponer las unidades en forma de capas, pudiéndose hablar de redes de una, de dos o de más de dos capas, las llamadas redes multicapa. Aunque inicialmente se desarrollaron redes de una sola capa, lo más usual es disponer tres o más capas: la primera capa actúa como buffer de entrada, almacenando la información bruta suministrada a la red o realizando un sencillo pre-proceso de la misma, la llamamos capa de entrada; otra capa actúa como interfaz o buffer de salida, almacenando la respuesta de la red para que pueda ser leída, la llamamos capa de salida; y las capas intermedias, principales encargadas de extraer, procesar y memorizar la información, las denominamos capas ocultas. Además del número de capas de una red, en función de cómo se interconectan unas capas con otras, podemos hablar de redes recurrentes (feed-back) y redes no recurrentes o redes en cascada (feed-forward). En las redes en cascada la información fluye unidireccionalmente de una capa a otra (desde la capa de entrada a las capas ocultas y de éstas a la capa de salida), y además, no se admiten conexiones intracapa.
  • 15.
    15 En las redesrecurrentes la información puede volver a lugares por los que ya había pasado, formando bucles, y se admiten las conexiones intracapa (laterales), incluso de una unidad consigo misma. Las conexiones entre una capa y otra pueden ser totales, es decir, que cada unidad se conecta con todas las unidades de la capa siguiente, o parciales, en las cuales una unidad se conecta con sólo algunas de las capas de la unidad siguiente, generalmente siguiendo algún patrón aleatorio o pseudo- aleatorio (por ejemplo, mediante algoritmos genéticos). Fases de procesamiento Fase de Aprendizaje El aprendizaje consiste en la presentación de patrones a la red, y la subsiguiente modificación de los pesos de las conexiones siguiendo alguna regla de aprendizaje que trata de optimizar su respuesta, generalmente mediante la minimización del error o la optimización de alguna "función de energía". El modo de aprendizaje más sencillo consiste en la presentación de patrones de entrada junto a los patrones de salida deseados (targets) para cada patrón de entrada, por eso se llama aprendizaje supervisado. Si no se le presentan a la red los patrones de salida deseados, diremos que se trata de aprendizaje no supervisado, ya que no se le indica a la red que resultados debe dar, sino que se le deja seguir alguna regla de auto- organización. Un tercer tipo de aprendizaje, a medio camino entre los anteriores, es el llamado aprendizaje reforzado, en este caso el supervisor se limita a indicar si la salida ofrecida por la red es correcta o incorrecta, pero no indica que respuesta debe dar.
  • 16.
    16 Cualquiera que seael tipo de aprendizaje usado, una característica esencial de la red es la regla de aprendizaje usada, que indica como se modifican los pesos de las conexiones en función de los datos usados en la entrada, es decir, de la historia de aprendizaje de la red. Por ejemplo, entre los algoritmos de aprendizaje supervisado, la regla delta generalizada, modifica los pesos realizando en cada ciclo de aprendizaje un incremento los pesos proporcional a la tasa de variación del error respecto al peso, en sentido negativo. El aprendizaje requiere la presentación repetida de un número relativamente amplio de ejemplos de entrenamiento hasta lograr una respuesta satisfactoria del sistema (según la medida de error o función de energía utilizada). Es usual disponer de un conjunto de datos distintos a los usados para el entrenamiento, para los cuales se conoce la respuesta correcta, y se usan como test, evaluando con ello si la red responde adecuadamente frente a datos distintos a los usados durante el aprendizaje (generalización), si es así se considera que la red funciona bien y se puede pasar a la fase de aplicación (recall), es decir, se puede usar para obtener un resultado frente a datos totalmente nuevos para los que no se conoce la respuesta correcta. Aprendizaje supervisado Ya sabemos que en el aprendizaje supervisado se presentan a la red una serie de patrones de entrada junto a los patrones de salida deseados. El aprendizaje consiste en la modificación de los pesos de las conexiones en el sentido de reducir la discrepancia entre la salida obtenida y la deseada. Los pasos generales a seguir por este algoritmo son los siguientes: - Aleatorizar los pesos de todas las conexiones (preferiblemente con valores pequeños)
  • 17.
    17 - Seleccionar unpar de entrenamiento, es decir, un patrón de entrada y el patrón de salida deseado (target) correspondiente. - Presentar el patrón de entrada y calcular la salida de la red mediante las operaciones usuales: sumatorio de las entradas ponderadas, función de activación y transferencia a la siguiente capa, hasta llegar a la capa de salida. (inicialmente obtenemos salidas aleatorias, ya que los pesos de las conexiones son aleatorios) - Cálculo del error o discrepancia entre la salida obtenida y la deseada. El error (función objetivo) se suele definir como la suma de los cuadrados de las diferencias entre las salidas reales obtenidas y las deseadas, promediado para todas las unidades de salida y todos los patrones de entrenamiento. Si el error es menor de cierto criterio fijado de antemano, incrementar el número de ejemplos correctos; si todos los ejemplos se han clasificado correctamente, finalizar, sino, continuar. - Aplicar la regla de aprendizaje, es decir, ajustar los pesos de las conexiones tratando de disminuir el error, generalmente mediante el cálculo de tasas de variación o gradientes del error, por eso hablamos de reglas de aprendizaje por gradiente descendiente. Para reducir el error habrá que modificar los pesos de las conexiones, en proporción a la tasa relativa de variación del error con respecto a la variación del peso, o sea, la derivada del error respecto al peso, EP (error respecto al peso). Una forma de calcular el EP sería perturbar levemente un peso y observar como varía el error, pero no resultaría eficiente si trabajamos con muchas conexiones (este es el fundamento de algunos métodos estadísticos comentados en otro
  • 18.
    18 apartado). Más adelanteveremos un algoritmo matemático para calcular EP. - Volver al paso 2 Aprendizaje no supervisado Una de las críticas principales al aprendizaje supervisado, dejando de lado los aspectos computacionales era su dudosa plausibilidad biológica, pues: - Requiere propagar cierta información (el error cometido) hacia atrás, en sentido contrario al flujo natural de la información. Como es obvio, esto no sucede en las neuronas reales, sin embargo esta objeción es superficial si tenemos en cuenta que el cerebro es rico en redes que retrogradan de una capas a otras, y podría utilizar estos caminos de múltiples formas para aportar la información del tipo que el aprendizaje supervisado requiere. - Requiere de un instructor que proporcione la salida deseada. Las personas aprendemos a comprender frases o escenas visuales sin instrucciones explícitas para ello, se podría decir que el cerebro posee algún mecanismo de auto-organización. Cuando se le presentan a la red una gran colección de datos sin indicarle qué debe hacer con ellos, se encuentra aparentemente sin saber qué hacer. No
  • 19.
    19 obstante, los investigadoreshan diseñado varios procedimientos de aprendizaje no supervisado, que son capaces de extraer inductivamente suficiente información de esos datos como para permitir posteriormente su recuperación, estos algoritmos son utilizados en tareas de clustering y clasificación. - En el aprendizaje no supervisado no se requiere presentar patrones de salida deseados. Sin embargo, el algoritmo y la regla de modificación de las conexiones producen vectores de salida consistentes, esto es, la presentación de un patrón aprendido o parecido a él, produce siempre la misma salida. Se considera que el proceso de aprendizaje es capaz de extraer ciertas propiedades estadísticas de los ejemplos de aprendizaje y agruparlos en categorías o clases de patrones similares. - No sabemos a priori qué salida corresponderá a cada tipo o grupo de patrones de entrada, ni qué atributos usará para clasificarlos, por eso son muy útiles como generadores de categorías (clustering) - En general, los métodos de aprendizaje no supervisado apelan a alguna noción de la calidad de la representación. Las representaciones de calidad se caracterizan por la economía de la representación (el costo de codificación más el costo de reconstrucción), sin perder la capacidad de reconstruir la información almacenada.
  • 20.
    20 Imaginemos por ejemplo,imágenes formadas por elipses, como las caras de la figura, podríamos representarlas mediante mapas de bits, pero son posibles otras representaciones más eficientes; una elipse se puede se distingue de otra en cinco atributos: orientación, posición vertical, posición horizontal, longitud y anchura, por consiguiente, la imagen podría describirse usando sólo cinco parámetros por elipse. Existen varios métodos sencillos para encontrar códigos económicos que al mismo tiempo permitan una buena reconstrucción de la entrada: el aprendizaje por componentes principales, el aprendizaje competitivo y los códigos demográficos. Aprendizaje por componentes principales El aprendizaje por componentes principales consiste en extraer y describir las componentes de variación compartidas por multitud de unidades de entrada, siendo suficiente una unidad para cada componente principal. Se puede lograr haciendo que las redes reconstruyan la entrada sobre unas unidades de salida, aplicando retropropagación. Este aprendizaje no es supervisado, porque dado que la salida es la misma que la entrada, no se necesita instructor. Otra forma de lograrlo sin usar retropropagación se basa en modificar las conexiones en función de las correlaciones entre las actividades de las unidades ocultas y las unidades de entrada.
  • 21.
    21 Aprendizaje competitivo En elaprendizaje por componentes principales, un pequeño número de unidades coopera en la representación del patrón de entrada. En el aprendizaje competitivo, un gran número de unidades ocultas pugnan entre sí, con lo que finalmente se utiliza una sola unidad oculta para representar un patrón de entrada determinado o un conjunto de patrones similares. La unidad oculta seleccionada es aquella cuyos pesos incidentes se asemejan más al patrón de entrada. El aprendizaje consiste en reforzar las conexiones de la unidad ganadora y debilitar las otras, para que los pesos de la unidad ganadora se asemejen cada vez más al patrón de entrada. Generalmente se utilizan reglas basadas en la regla de Hebb o regla del producto. La reconstrucción del patrón de entrada consistirá en copiar la distribución de pesos de la unidad ganadora. Códigos demográficos El problema de los componentes principales es que eliminan toda la redundancia, y con ello pierden la tolerancia a fallos, ya que cada patrón o conjunto de patrones de entrada similares queda representado por una sola neurona. La solución a este dilema, que además parece ser la utilizada por el cerebro, son los códigos demográficos, una solución intermedia entre las representaciones distribuidas puras y representaciones puramente locales. Se trata de representar cada patrón de entrada por un conjunto o población de unidades activas simultáneamente, de manera que la disfunción de alguna unidad no provoca la pérdida de la información. Los códigos demográficos parecen contradecir el principio de economía de las representaciones, sin embargo, una población de
  • 22.
    22 neuronas es muyfácil de representar si se compone de un grupo de neuronas vecinas con un centro prominente de actividad. En ese caso es suficiente con describir dicho centro, más alguna medida de la forma en que la actividad de las unidades adyacentes decae a medida que nos alejamos del centro. Aprendizaje reforzado Como ya comentamos, la idea es similar a la del aprendizaje supervisado, sólo que aquí la información dada por el maestro es mínima, se limita a indicar si la respuesta de la red es correcta o incorrecta. En este sentido se asimila a la noción tomada de la psicología conductual de condicionamiento por refuerzo, que en resumen defiende que se aprenden (en el sentido de que tienen más probabilidad de repetirse) las conductas reforzadas positivamente y viceversa (las conductas castigadas o reforzadas negativamente reducen la posibilidad de aparecer). Una noción estrechamente ligada a la de aprendizaje reforzado es la de Redes Basadas en la Decisión. Son redes para clasificación de patrones, similares a los asociadores de patrones, en las cuales el maestro, en vez de indicar la salida deseada exacta (target), indica sólo la clase correcta para cada patrón de entrada. En las redes basadas en la decisión se utiliza una función discriminante para determinar a que categoría o clase pertenece el patrón de entrada, si durante el entrenamiento, una respuesta no coincide con la dada con el maestro, se cambian los pesos, si no se dejan igual (de aquí viene el nombre de DBNN). El aprendizaje consiste en encontrar los pesos que dan la clasificación correcta. Construcción de modelos
  • 23.
    23 Con el finde llegar al entendimiento global de Redes Neuronales Artificiales, adoptamos la siguiente perspectiva, llamada top-down que empieza por la aplicación se pasa al algoritmo y de aquí a la arquitectura: Esta aproximación a las Redes Neuronales Artificiales está motivada por la aplicación, basada en la teoría y orientada hacia la implementación. Las principales aplicaciones son para el procesado de señal y el reconocimiento de patrones. La primera etapa algorítmica representa una combinación de la teoría matemática y la fundamentación heurística por los modelos neuronales. El fin último es la construcción de neurocomputadores digitales, con la ayuda de las tecnologías VLSI y el procesado adaptativo, digital y paralelo. Desde el punto de vista de la aplicaciones, la ventaja de las RRNN reside en el procesado paralelo, adaptativo y no lineal. Las RRNN han encontrado muchas aplicaciones con éxito en la visión artificial, en el procesado de señales e imágenes, reconocimiento del habla y de caracteres, sistemas expertos, análisis de imágenes médicas, control remoto, control de robots, inspección industrial y exploración científica. El dominio de aplicación de las RRNN se puede clasificar de la siguiente forma: asociación y clasificación, regeneración de patrones, regresión y generalización, y optimización.
  • 24.
    24 Asociación y Clasificación Enesta aplicación, los patrones de entrada estáticos o señales temporales deben ser clasificadas o reconocidas. Idealmente, un clasificador debería ser entrenado para que cuando se le presente una versión distorsionada ligeramente del patrón, pueda ser reconocida correctamente sin problemas. De la misma forma, la red debería presentar cierta inmunidad contra el ruido, esto es, debería ser capaz de recuperar una señal "limpia" de ambientes o canales ruidosos. Esto es fundamental en las aplicaciones holográficas, asociativas o regenerativas. Asociación: de especial interés son las dos clases de asociación: autoasociación y heteroasociación. El problema de la autoasociación es recuperar un patrón enteramente, dada una información parcial del patrón deseado. La heteroasociación es recuperar un conjunto de patrones B, dado un patrón de ese conjunto. Los pesos en las redes asociativas son a menudo predeterminados basados en la regla de Hebb. Normalmente, la auto correlación del conjunto de patrones almacenado determina los pesos en las redes auto asociativas. Por otro lado, la correlación cruzada de muchas parejas de patrones se usa para determinar los pesos de la red de Heteroasociación. Clasificación no Supervisada: para esta aplicación, los pesos sinápticos de la red son entrenados por la regla de aprendizaje no supervisado, esto es, la red adapta los pesos y verifica el resultado basándose únicamente en los patrones de entrada. Clasificación Supervisada: esta clasificación adopta algunas formas del criterio de interpolación o aproximación. En muchas aplicaciones de clasificación, por ejemplo, reconocimiento de voz, los datos de entrenamiento consisten de pares de patrones de entrada y salida. En este caso, es conveniente adoptar las redes Supervisadas, como las bien conocidas y estudiadas redes de
  • 25.
    25 retropropagación. Este tipode redes son apropiadas para las aplicaciones que tienen una gran cantidad de clases con límites de separación complejos. Completar los patrones En muchos problemas de clasificación, una cuestión a solucionar es la recuperación la información, esto es, recuperar el patrón original dada sola una información parcial. Hay dos clases de problemas: temporales y estáticos. El uso apropiado de la información con textual es la llave para tener éxito en el reconocimiento. Generalización La Generalización. Se puede extender a un problema de interpolación. El sistema es entrenado por un gran conjunto de muestras de entrenamiento basados en un procedimiento de aprendizaje supervisado. Una red se considera que esta entrenada con éxito si puede aproximar los valores de los patrones de entrenamiento y puede dar interpolaciones "suaves" para el espacio de datos no entrenado. El objetivo de la Generalización es dar una respuesta correcta a la salida para un estímulo de entrada que no ha sido entrenado con anterioridad. El sistema debe inducir la característica saliente del estímulo a la entrada y detectar la regularidad. Tal habilidad para el descubrimiento de esa regularidad es crítica en muchas aplicaciones. Esto hace que el sistema funcione eficazmente en todo el espacio, incluso ha sido entrenado por un conjunto limitado de ejemplos. Lo podemos ver en la siguiente figura:
  • 26.
    26 Optimización Las RRNN sonuna herramientas interesantes para la optimización de aplicaciones, que normalmente implican la búsqueda del mínimo absoluto de una función de energía: Una vez que se define la función de energía, entonces la determinación de los pesos sinápticos se hace rápidamente. Para algunas aplicaciones, la función de energía es fácilmente deducible. En otras, sin embargo, esta función de energía se obtiene de ciertos criterios de coste y limitaciones especiales. El mayor problema asociado al problema de optimización es la alta posibilidad de converger hacia un mínimo local, en vez de hacia el mínimo absoluto. Para combatir este problema se
  • 27.
    27 utilizan algunas propuestasestadísticas, como por ejemplo procedimientos estocásticos. Ejemplos de Aplicaciones con Redes Neuronales Artificiales Antes de señalar algunos de los ejemplos donde las Redes Neuronales tienen una importante aplicación, cabe decir que nos centramos en los que pueden tener más relevancia dentro de nuestro ámbito, la Ingeniería Informática: Procesamiento de lenguaje natural Conversión de texto escrito a lenguaje hablado. NETtalk toma como entradas textos escritos y como salidas deseadas los códigos elegidos para representar los fonemas correspondientes. Mediante la ayuda de un sintetizador (DECtalk) se transforman los códigos en fonemas. Durante el proceso de aprendizaje se observó como iba mejorando su habilidad desde un nivel de bebé hasta el nivel de un niño de 6 años, aprendiendo a hacer distinciones difíciles como pronunciar una c suave o fuerte según el contexto. Si bien esto se había conseguido antes, la novedad más importante reside en que mediante la red neuronal no es necesario definir y programar un montón de complejas reglas, pues la red extrae automáticamente el conocimiento necesario. Aprendizaje de gramáticas (Rumelhart,D. & McClelland, J.) estudiaron la forma en que construimos las reglas sobre el lenguaje, y trataron de enseñar a una red neuronal el pasado de los verbos ingleses. El sistema fue mejorando y al final era capaz de generalizar y conjugar verbos desconocidos.
  • 28.
    28 Compresión de imágenes (Cottrell,G.W. y otros) han conseguido codificar imágenes con una relación de compresión de hasta 8:1 sin tener que idear ninguna regla y alta fidelidad en la reconstrucción. Reconocimiento de caracteres Reconocimiento de escritura manual Nestor, Inc => leen lo escrito mediante una tarjeta digitalizadora. Tras aprender, son capaces de reconocer escrituras que nunca habían visto antes. Se ha empleado por ejemplo para reconocer kanji (escritura japonesa), eliminando la gran dificultad que presenta este lenguaje para introducirlo en el computador. El Neocognitrón (Kunihiko Fukishima): simula la forma en que la información visual avanza en la corteza cerebral. Consigue un reconocimiento muy avanzado de patrones con gran capacidad de abstracción y generalización, que lo hacen capaz de reconocer patrones con distinta orientación y altos niveles de distorsión. Reconocimiento de patrones en imágenes Clasificación de objetivos: En este campo se han desarrollado numerosas aplicaciones como la clasificación de imágenes de sonar y radar, la detección de células cancerosas, lesiones neurológicas y cardíacas, prospecciones geológicas, etc.. Son muy útiles para procesar imágenes de las que no se sabe bien cuales son las características esenciales o diferenciales, ya que las redes no necesitan disponer de reglas explícitas previas para realizar la clasificación, sino que extraen el conocimiento necesario.
  • 29.
    29 Visión artificial enrobots industriales Por ejemplo, para inspección de etiquetas, clasificación de componentes, etc. Supera a otros sistemas de visión , además minimiza los requerimientos de operadores y facilita el mantenimiento. Filtro de ruido Las redes neuronales artificiales son mejores preservando la estructura profunda y el detalle que los filtros tradicionales cuando eliminan el ruido. La primera aplicación profesional de las redes neuronales consistió en un filtro para eliminar ruido en las líneas telefónicas. Problemas de combinatoria Las redes neuronales artificiales están ofreciendo ciertas esperanzas en el área de problemas algorítmicamente tan complejos como los NP-completos; por ejemplo, el problema del viajante de comercio (Hopfield, J. & Tank, D.) Otras aplicaciones Modelado y predicción de indicadores económicos Se obtienen mejores resultados que con cualquier otro método conocido (como los programas de media móvil). Se ha aplicado por ejemplo a la predicción de tasas de interés, déficits comerciales, precios de stock, etc.
  • 30.
    30 Historia En 1956 seorganizó en Dartmouth la primera conferencia sobre IA. Aquí se discutió el uso potencial de las computadoras para simular "todos los aspectos del aprendizaje o cualquier otra característica de la inteligencia" y se presentó la primera simulación de una red neuronal, aunque todavía no se sabían interpretar los datos resultantes. En 1959, Widrow publica una teoría sobre la adaptación neuronal y unos modelos inspirados en esa teoría, el Adaline (Adaptative Linear Neuron) y el Madaline (Multiple Adaline). Estos modelos fueron usados en numerosas aplicaciones y permitieron usar, por primera vez, una red neuronal en un problema importante del mundo real: filtros adaptativos para eliminar ecos en las líneas telefónicas. En 1962, Rosemblatt publica los resultados de un ambicioso proyecto de investigación, el desarrollo del Perceptrón, un identificador de patrones ópticos binarios, y salida binaria. Las capacidades del Perceptrón se extendieron al desarrollar la regla de aprendizaje delta, que permitía emplear señales continuas de entrada y salida. En 1969, Minsky y Papert realizan una seria crítica del Perceptrón, revelando serias limitaciones, como su incapacidad para representar la función XOR, debido a su naturaleza lineal. Este trabajo creó serias dudas sobre las capacidades de los modelos conexionistas y provocó una caída en picado de las investigaciones. Años 70: a pesar del duro golpe que supuso el trabajo de Minsky y Papert para las investigaciones en computación conexionista, un puñado de investigadores siguió trabajando y desarrollando nuevas ideas:
  • 31.
    31 Anderson estudia ydesarrolla modelos de memorias asociativas. Destaca el autoasociador lineal conocido como modelo brain- state-in-a-box (BSB). Kohonen continúa el trabajo de Anderson y desarrolla modelos de aprendizaje competitivo basados en el principio de inhibición lateral. Su principal aportación consiste en un procedimiento para conseguir que unidades físicamente adyacentes aprendieran a representar patrones de entrada similares; a las redes basadas en este procedimiento se las denomina redes de Kohonen. Grossberg realizó un importante trabajo teórico - matemático tratando de basarse en principios fisiológicos; aportó importantes innovaciones con su modelo ART (Adaptative Resonance Theory) y, junto a Cohen, elabora un importante teorema sobre la estabilidad de las redes recurrentes en términos de una función de energía. Años 80: En esta década se produce el renacimiento del interés por el campo gracias sobre todo al trabajo del el grupo PDP y las aportaciones de Hopfield. Rumelhart, McClelland & Hinton crean el grupo PDP (Parallel Distributed Processing). Como resultado de los trabajos de este grupo salieron los manuales con más influencia desde la crítica de Minsky y Papert. Destaca el capítulo dedicado al algoritmo de retropropagación, que soluciona los problemas planteados por Minsky y Papert y extiende enormemente el campo de aplicación de los modelos de computación conexionistas. Hopfield elabora un modelo de red consistente en unidades de proceso interconectadas que alcanzan mínimos energéticos, aplicando los principios de estabilidad desarrollados por Grossberg. El modelo de Hopfield resultó muy ilustrativo sobre los mecanismos de almacenamiento y recuperación de la
  • 32.
    32 memoria. Su entusiasmoy claridad de presentación dieron un nuevo impulso al campo y provocaron el incremento de las investigaciones. Otros desarrollos destacables de esta década son la máquina de Boltzmann y los modelos BAM. Redes de una capa: Perceptrón, Adaline y Madaline Perceptron Antecedentes En 1943, Warren McCulloc y Walter Pitts originaron el primer modelo de operación neuronal, el cual fue mejorado en sus aspectos biológicos por Donald Hebb en 1948. En 1962, Bernard Widrow propuso la regla de aprendizaje Widrow-Hoff, y Frank Rosenblatt desarrolló una prueba de convergencia, y definió el rango de problemas para los que su algoritmo aseguraba una solución. El propuso los 'Perceptrons' como herramienta computacional. Funcionamiento En la siguiente figura se representa una neurona "artificial", que intenta modelar el comportamiento de la neurona biológica. Aquí el cuerpo de la neurona se representa como un sumador lineal de los estímulos externos zj, seguida de una función no lineal yj = f(zj). La función f(zj) es llamada la función de activación, y es la función que utiliza la suma de estímulos para determinar la actividad de salida de la neurona. Lo vemos con detalle en la siguiente ilustración:
  • 33.
    33 Este modelo seconoce como perceptrón de McCulloch-Pitts, y es la base de la mayor parte de las arquitectura de las RNA que se interconectan entre sí. Las neuronas emplean funciones de activación diferentes según la aplicación, algunas veces son funciones lineales, otras funciones sigmoidales (p.ej. la tanh – tangente hiperbólica - ), y otras funciones de umbral de disparo. La eficiencia sináptica se representa por factores de peso de interconexión wij, desde la neurona i, hasta la neurona j. Los pesos pueden ser positivos (excitación) o negativos (inhibición). Los pesos junto con las funciones f(z) dictan la operación de la red neuronal. Normalmente las funciones no se modifican de tal forma que el estado de la red neuronal depende del valor de los factores de peso (sinapsis) que se aplica a los estímulos de la neurona. En un perceptrón, cada entrada es multiplicada por el peso W correspondiente, y los resultados son sumados, siendo evaluados contra el valor de umbral, si el resultado es mayor al mismo, el perceptrón se activa. Limitantes El perceptrón es capaz tan sólo de resolver funciones definidas por un hiperplano (objeto de dimensión N-1 contenida en un
  • 34.
    34 espacio de dimensiónN). que corte un espacio de dimensión N. Un ejemplo de una función que no puede ser resuelta es el operador lógico XOR. Una explicación mas sencilla de un hiperplano sería, hablando en un plano de dos dimensiones, una línea que separa a los elementos existentes en dos grupos. El perceptrón sólo puede resolver una función, si todos los posibles resultados del problema pueden separarse de ésta forma (en dos secciones) es decir, que no se combinen entre sí. Entrenamiento El entrenamiento de un perceptrón es por medio de la regla de aprendizaje delta: Para cada peso W se realiza un ajuste dW según la regla: dW = LR ( T - Y ) X Donde LR es la razón de aprendizaje, T el valor deseado, Y el valor obtenido, y X la entrada aplicada al perceptrón. Tipos de perceptrón El Perceptrón básico de dos capas (entrada con neuronas lineales, analógicas, y la de salida con función de activación de tipo escalón, digital) sólo pude establecer dos regiones separadas por una frontera lineal en el espacio de patrones de entrada, donde se tendría un hiperplano. Un Perceptrón con tres niveles de neuronas puede formar cualquier región convexa en este espacio. Las regiones convexas se forman mediante la intelección entre las regiones formadas por cada neurona de la segunda capa, cada uno de estos
  • 35.
    35 elementos se comportacomo un Perceptrón simple, activándose su salida para los patrones de un lado del hiperplano. Un Perceptrón con cuatro capas puede generar regiones de decisión arbitrariamente complejas. El proceso de separación en clases que se lleva a cabo consiste en la partición de la región deseada en pequeños hipercubos. Cada hipercubo requiere 2n neuronas en la segunda capa (siendo n el numero de entradas a la red), una por cada lado del hipercubo, y otra en la tercera capa, que lleva a cabo el AND lógico de la salida de los nodos del nivel anterior. La salida de los nodos de este tercer nivel se activaran solo para las entradas de cada hipercubo. Los hipercubos se asignan a la región de decisión adecuada mediante la conexión de la salida de cada nodo del tercer nivel solo con la neurona de salida (cuarta capa) correspondiente a la región de decisión en la que este comprendido el hipercubo llevándose a cabo una operación lógica OR en cada nodo de salida. Este procedimiento se pude generalizar de manera que la forma de las regiones convexas sea arbitraria, en lugar de hipercubos. En teoría, el Perceptrón de 4 capas puede resuelve una gran variedad de problemas cuyas entradas sean analógicas, la salida sea digital y sea linealmente separable. El problema práctico radica en el numero de neuronas, en el numero idóneo de capas ocultas, la extensión de la función de activación, el tiempo de entrenamiento de la red, las implicaciones en la generación de ruido (al tener un numero excesivo de neuronas) en contraparte con la ventaja de tener un sistema tolerante a fallas al tener un numero de neuronas redundante. Aplicaciones del perceptrón
  • 36.
    36 El rango detareas que el Perceptrón puede manejar es mucho mayor que simples decisiones y reconocimiento de patrones. Por ejemplo, se puede entrenar una red para formar el tiempo pasado de los verbos en ingles, leer texto en ingles y manuscrito. El Perceptrón multicapa (MLP) puede ser usado para la predicción de una serie de datos en el tiempo; tal a sido su éxito en la medición de la demanda de gas y electricidad, además de la predicción de cambios en el valor de los instrumentos financieros. Predicción de mercados financieros, diagnósticos médicos, el Perceptrón como una red codificadora, el Perceptrón aprende a sumar enteros. NETtalk, aplicación de la que ya hemos hablado anteriormente, es un Perceptrón que es capaz de transformar texto en ingles en sonido individual (representaciones fonéticas) y la pronunciación con la utilización de un sintetizador de voz; cuenta con aproximadamente 300 nodos de neuronas (siendo 80 en la capa escondida) y 20,000 conexiones individuales. Algoritmo del Perceptrón El objetivo es encontrar un perceptrón para calcular una función de n-variables de la que tenemos un fichero de ejemplos, es decir una serie de líneas, donde cada línea representa un ejemplo: x_1 x_2 ... x_n y con los valores de las entradas X_i seguido del valor Y de la función para esas entradas. Para encontrar el perceptrón tendremos que “aprender” los pesos w_i asociados a cada variable de entrada
  • 37.
    37 X_i + elbias b=W_n+1 (que sería el –umbral). De tal forma que la función que calculará el perceptrón será: Y = f(e) Siendo e el estimulo que le entra al perceptrón y f la función de activación del mismo e= b + ∑ x_i * W_i y f(x)= 1 /(1+e^x) En el caso de que la salida fuese binaria, la función quedaría Y =1 si f(e) > 0.5, e Y = 0 si f(e) < .5. Y en el caso de que tomase n valores discretos habría que generalizar esto dividiendo el intervalo unidad [0,1] en n subintervalos (1 por cada valor). Se supone que el fichero esta normalizado y así, tanto Y como cada X_i toma valores entre 0 y 1. En otro caso había que normalizarlo previamente a dicho intervalo. Lo que se pretende es minimizar el error cuadrático medio (∑ error^2)/nº ejemplos) mediante la técnica del gradiente descendente CONSTANTES  (tasa de aprendizaje, normalmente entre 0.01 y 0.1) E (Error cuadrático medio admitido)
  • 38.
    38 NºMaxIteraciones (Nº máximode iteraciones que vamos a dar) VARIABLES I (nº de iteraciones) K (contador de ejemplos) W[i:1..n+1] (pesos del perceptron) X[i:1..n] (valores de la entrada en el ejemplo actual) Y (valor de la salida en el ejemplo actual) SP (salida del perceptrón con la entrada del ejemplo actual) Error (error en el ejemplo actual) ECM (error cuadrático medio) PASO 1: Inicialización de variables I=0; Para i=1..n+1 W[i]=<nº aleatorio (normalmente entre –1 y 1)> (muy importante que el nº sea aleatorio, distinto en cada ejecución) ECM=E PASO 2: Bucle de iteraciones Mientras (I < NºMaxIteraciones) y (ErrorCuadraticoMedio > E) Paso 2.1: Bucle de paso por todos los ejemplos
  • 39.
    39 Abrir(<fichero de ejemplos>) K=0 Mientrasno este en el final del fichero 2.1.0 Leer valores del ejemplo Leer(x[i] (i=1..n), y) 2.1.1 Calcular error en ese ejemplo SP = W[n+1] + ∑ x[i] * W[i] (salida del perceptrón con la entrada del ejemplo h) SP= 1/(1+e^(-SP)) Error = y - SP (diferencia entre el valor de y en el ejemplo h y SP) 2.1.2 Actualizar los pesos según el error de ese ejemplo 2.1.2.1 Actualizar los pesos de las entradas Para cada i=1..n W[i] = W[i] + γ*SP*(1-SP)*x[i]*Error 2.1.2.2 Actualizar el bias (= -umbral) W[n+1]=W[n+1] + γ*SP*(1-SP)*Error 2.1.3 Incrementar contador de ejemplos k=k+1 Cerrar(<fichero de ejemplos>) Paso 2.2.: Calcular Error Cuadratico Medio ECM=0; Abrir(<fichero de ejemplos>) Mientras no este en el final del fichero
  • 40.
    40 Leer(x[i] (i=1..n), y) SP= W[n+1] + ∑ x[i] * W[i] SP= 1/(1+e^(-SP)) Error = y – SP ECM=ECM+(Error)^2 ECM=ECM/k Cerrar(<fichero de ejemplos>) Paso 2.3.: Incrementar el contador de iteraciones I=I+1 PASO 3: Salida Escribe( “El perceptrón aprendido es el de pesos:” ) Para i=1..n Escribe(“ W”,i,”=”,W[i]) Escribe(“Con bias =”, W[n+1]) Adaline Es una de las estructuras neuronales más simples junto con el perceptrón. Está formada por un único elemento de procesado (Adaline: Adaptive Linear Elemento; "Widrow-Hoff"). Si se combinan varios adalines se obtiene la configuración denominada Madaline. Para su entrenamiento se utiliza un aprendizaje supervisado, concretamente, por corrección de error. El aprendizaje es Off Line.
  • 41.
    41 Se trata demodificar los pesos para tratar de reducir la diferencia entre la salida deseada y la actual (para cada patrón). La regla de aprendizaje a utilizar se denomina LMS: minimiza el Error Cuadrático Medio sobre todos los patrones de entrenamiento. Cálculo de Pesos Óptimos Sea el conjunto de entrenamiento: (X,D): patrones de entrada y salidas deseadas. X ---- conjunto de L vectores de dimensión n. D ---- conjunto de L vectores de dimensión m (en este caso m=1). Salida Deseada. Y ---- conjunto de L vectores de dimensión m ( en este caso m=1). Salida Obtenida. Se trata de minimizar: Sea Yk la salida obtenida para el patrón k. El error para el patrón k entonces :
  • 42.
    42 El Error CuadráticoMedio: Sea: Para hallar el mínimo derivamos con respecto a W y se hace igual a 0:
  • 43.
    43 Consecuencias: Posee un extremo Elextremo es mínimo Backpropagation o Retropropagación: Redes de Retropropagación (Back-prop) Al hablar de redes de retropropagación o redes de propagación hacia atrás hacemos referencia a un algoritmo de aprendizaje más que a una arquitectura determinada. La retropropagación consiste en propagar el error hacia atrás, es decir, de la capa de salida hacia la capa de entrada, pasando por las capas ocultas intermedias y ajustando los pesos de las conexiones con el fin de reducir dicho error. Hay distintas versiones o reglas del algoritmo de retropropagación y distintos arquitecturas conexionistas a las que pueden ser aplicados. Durante mucho tiempo no se dispuso de algoritmos para entrenar redes multicapa, y como las redes de una capa estaban muy limitadas en cuanto a lo que eran capaces de representar, el campo de las redes neuronales artificiales estaba estancado. La invención y perfeccionamiento del algoritmo de retropropagación dio un gran impulso al desarrollo de este campo. Tiene un buen fundamento matemático y a pesar de sus limitaciones ha expandido enormemente el rango de problemas donde se aplican las redes neuronales artificiales.
  • 44.
    44 Al parecer elalgoritmo fue ideado a principios de los 70 por Werbos, y redescubierto a principios de los 80 por Parker y Rumelhart independientemente. Sin embargo, no se hizo popular hasta 1986, cuando Rumerlhart, Hinton y Williams presentaron una descripción clara y concisa del mismo. Y es que en un primer momento no se valoró como se merecía. El hecho de que permaneciera en el olvido tanto tiempo también debe ser una consecuencia de la condición interdisciplinar del campo, repartido entre las matemáticas y ciencias de la computación, las neurociencias y la psicología. Desde la fecha clave de 1986 han surgido nuevas versiones que han tratado de aumentar la velocidad de convergencia del algoritmo y han tratado de superar algunos de sus inconvenientes, como la tendencia a alcanzar mínimos locales y no globales. Descripción matemática del algoritmo de retropropagación Se explica una versión del algoritmo (Hinton, 1992) para redes con las siguientes características: - No recurrentes - Función de activación sigmoidal - Capas totalmente interconectadas - Operación totalmente síncrona - 1. Aleatorizamos los pesos de las conexiones. 2. Presentamos un patrón de entrada y calculamos la salida. 3. Dada una unidad j-ésima de la capa de salida y unidades i-ésimas de la capa oculta inmediatamente anterior, calculamos la entrada total ponderada y la salida o activación de la misma.
  • 45.
    45 4. Una vezcomputadas las actividades de todas las unidades de salida se calcula una estimación del error, generalmente una función cuadrática de los errores individuales cometidos por cada unidad, siendo cada error individual la diferencia entre la salida deseada y la obtenida. siendo dj la salida deseada para la unidad j-ésima 5. Cómputo de la rapidez de variación del error al cambiar la actividad de cada unidad de salida (EA, error respecto a la actividad) Es justamente la diferencia entre la salida deseada y la salida real obtenida, es decir, la diferencia entre la actividad deseada y la actividad real.
  • 46.
    46 6. Cómputo dela rapidez de variación del error al cambiar la entrada total que recibe cada unidad de salida. Es igual a la tasa de variación del error al variar su activación multiplicado por la tasa de variación de la activación al cambiar su entrada ( que es justamente la derivada de la función sigmoidal). 7. Cómputo de la rapidez de variación del error al ser modificado un peso de la conexión aferente a una unidad de salida. Es igual a la tasa de variación del error al variar su entrada, por la tasa de variación de la entrada al variar ese peso. Hasta ahora sabemos calcular el EA sólo para las unidades de salida, ¿ qué pasa con las unidades ocultas?. En este caso no tenemos una estimación directa del error aportado por cada unidad oculta; aquí es donde interviene la retropropagación o propagación hacia atrás del error:
  • 47.
    47 La unidad i-ésimade la capa oculta afecta a todas las unidades de salida, por lo tanto, para estimar como varía el error al variar la actividad de esa unidad oculta, habrá que sumar los efectos individuales de su actividad sobre todas las neuronas de salida. Cada efecto individual sobre la variación del error, será igual a la tasa de variación del error de la unidad de salida al cambiar su entrada total, multiplicado por la tasa de variación de su entrada al variar la actividad de la unidad oculta. 8. Conociendo EA para las unidades de cualquier capa podemos calcular d y EP con las expresiones ya conocidas. 9. Disponiendo de la tasa de variación del error respecto al peso de una conexión (EP), podemos usar distintas reglas para modificar ese peso en aras a reducir dicho de error.
  • 48.
    48 Una de lasprimeras reglas que aprovechó este algoritmo es la regla delta generalizada, que calcula el incremento a aplicar a un peso como una proporción directa de la tasa de variación del error, siendo h el coeficiente de aprendizaje, típicamente con valores comprendidos entre 0.01 y 1.0 Valoración El algoritmo de retropropagación presenta ciertos problemas, algunos referentes a su dudosa plausibilidad neurofisiológica, y otros referentes a ciertos aspectos computacionales, que son los que vamos a comentar a continuación: - Los resultados dependen de los valores iniciales, aleatorios, de las conexiones. Esto hace que sea conveniente entrenar varias redes con distintas valores iniciales y elegir la que mejor funcione. - A veces se requiere mucho tiempo para obtener soluciones sencillas. Este problema se reduce gracias al aumento de potencia de los procesadores y al uso de nuevas tecnologías, sin embargo, el tiempo de cómputo aumenta mucho al aumentar el tamaño de la red. Si bien el volumen de cálculo es proporcional al número total de conexiones. En la práctica, al aumentar el tamaño de la red, hacen falta más ejemplos de aprendizaje, y eso provoca un aumento
  • 49.
    49 aumenta mucho mayordel tiempo de aprendizaje. Para incrementar la velocidad de convergencia se han desarrollado diferentes modificaciones del algoritmo. - La "interferencia catastrófica" o empeoramiento en el rendimiento del sistema, como consecuencia de la incorporación de nuevos ejemplos de aprendizaje. - La parálisis: esto sucede cuando los pesos quedan ajustados a valores muy grandes, esto hace operar a las unidades de proceso con una activación muy próxima a 1, y por lo tanto, el gradiente del error, tiende a 0???, en consecuencia no se producen modificaciones en los pesos, el aprendizaje queda detenido. Por eso es conveniente aleatorizar los pesos de las conexiones con valores pequeños y usar la tasa de aprendizaje, también pequeña???, a pesar de que se ralentice el aprendizaje. - Inestabilidad temporal. Si usamos un coeficiente de aprendizaje elevado, se van a producir incrementos grandes en los pesos, de manera que es fácil pasarse de incremento y tener que tratar de compensarlo en el siguiente ciclo, de manera que se producirían oscilaciones continuas. Esto se soluciona usando un coeficiente pequeño, o, para no tener un aprendizaje muy lento, modificar dicho coeficiente adaptativamente (aumentarlo si el error global disminuye, y disminuirlo en caso contrario). - El problema de los mínimos locales. El algoritmo de retropropagación usa un técnica por gradiente descendiente, esto significa que sigue la "superficie del error" siempre hacia abajo, hasta alcanzar un mínimo local, pero no garantiza que se alcance una solución
  • 50.
    50 globalmente óptima. Sinembargo, se ha comprobado que el hecho de alcanzar mínimos locales no impide que se consigan resultados satisfactorios. Por otro lado, se han desarrollado métodos para solventar este problema, como el modo de operación asíncrono o probabilístico y el uso de métodos estadísticos. Podemos considerar el error como una superficie llena de desniveles, si soltamos una pelota caerá en algún valle, pero no necesariamente en el más hondo, sino en el más cercano (un mínimo local). Una idea intuitiva para solucionar esto, sería aplicarle cierta energía a esa superficie agitándola o haciéndola vibrar (momentum), esto haría saltar a la pelota de valle en valle, como de los valles más profundos es más difícil salir, tendería a estar en valles cada vez más profundos. Si dejamos de agitar esa superficie poco a poco, al final tendremos la pelota en el valle más profundo de la superficie. Otras técnicas que pueden ayudar a no caer en mínimos locales consisten en añadir cierto nivel de ruido a las modificaciones de los pesos de las conexiones. Otra medida propuesta es añadir ruido a las conexiones, pero esto es más útil para darle robustez y aumentar la capacidad de generalización de la red. Estas medidas, por contra, aumentan el tiempo de aprendizaje.
  • 51.
    51 Validación Necesidad de validación Unavez tenemos nuestro modelo, es necesario probarlo ante diferentes situaciones y circunstancias. Es preciso asegurarse de que nuestra red funciona correctamente, ya que podría no hacerlo por diferentes motivos. Los más usuales son los siguientes: - Entrenamiento insuficiente - Conjunto de datos no representativo - Sobreentrenamiento Punto óptimo para parar el entrenamiento Dentro de las técnicas de validación, uno de los principales objetivos que se persigue es encontrar cuál es exactamente el punto en el que debemos parar nuestro entrenamiento. Generalmente, se suelen seguir los siguientes criterios: - Al llegar a evaluar un número determinado de ejemplos - Cuando el error alcanza un mínimo - Si la reducción del error es inferior al estipulado convenientemente. Método de validación simple Este es el método conocido como “hold-out”.
  • 52.
    52 Su metodología divideel conjunto de datos en 3 grupos, que deberán estar claramente diferenciados y escogidos a conciencia: - Datos para el entrenamiento: serán los datos con los que se entrenará nuestra red, y a través de los que se realizará el aprendizaje. - Datos para la validación: serán los datos que servirán como comprobación de que nuestra red neuronal funciona adecuadamente y en la manera que esperábamos. - Datos para el test: serán un conjunto reducido de datos, escogidos al azar, que darán finalmente un resultado del trabajo de nuestra red. Método de validación cruzada Es más conocido como “cross-validation”. Este método de validación busca eliminar la dependencia del azar a la hora de seleccionar los conjuntos de datos para la validación. Así, en cada serie de conjuntos de datos, se seleccionará uno de ellos para formar parte de la validación. Produce mayor fiabilidad en la validación, aunque consume un tiempo algo superior. Otros métodos de validación Simplemente, mencionar otros métodos usuales en la validación de redes neuronales: - Bootstrapping - Stacked generalization
  • 53.
    53 ¿Por qué validary cómo? Es de gran importancia comprobar que nuestra red funciona correctamente con unos ejemplos con los que no ha sido entrenada (pensemos en que, como papagayos, podría haber aprendido únicamente los ejemplos con los que ha sido entrenada). Para llevar a buen puerto esta tarea, tendremos que tener un conjunto de datos general que represente adecuadamente el problema para el que estamos trabajando con nuestra red neuronal. Con todo el proceso de validación, tendremos que comprobar si nuestro modelo de cómputo se ajusta fielmente a las situaciones reales que le presentamos y para lo que, en definitiva, ha sido concebido.
  • 54.
  • 55.
    55 Las principales fuentesbibliográficas son sitios de la red:  URL: www.iiia.csic.es  URL: www.gc.ssr.upm.es  URL: www.monografias.com  URL: http:// decsai.ugr.es/~castro/MCII  URL: http://ohm.utp.edu.co  URL: www.lfcia.org  URL: www.gui.uva.es  URL: http://electronica.com.mx  URL: www.google.es  URL: www.ugr.es  Transparencias sobre Redes Neuronales – Juan Luis Castro Peña