RNA.pdf

Anuncio
Aprendizaje Automatizado
Redes Neuronales
Artificiales
Introducción
Otra forma de emular características propias
de los humanos: memorizar y asociar hechos.
Se aprende de la experiencia.
El cerebro humano es el ejemplo más perfecto
de sistema capaz de adquirir conocimiento.
Se modela artificialmente ese sistema.
Definición
Una red neuronal es "un nuevo sistema para el
tratamiento de la información, cuya unidad
básica de procesamiento está inspirada en la
célula fundamental del sistema nervioso
humano: la neurona".
Las neuronas son un componente
relativamente simple pero conectadas de a
miles forman un poderoso sistema.
Descripción
Unidades de procesamiento que intercambian
datos o información.
Se utilizan para reconocer patrones,
incluyendo imágenes, manuscritos, tendencias
financieras, etc.
Tienen la capacidad de aprender y mejorar su
funcionamiento.
Fundamentos - El modelo biológico
El cerebro humano
contiene más de cien
mil millones de
neuronas.
La clave para el
procesamiento de la
información son las
conecciones entre ellas
llamadas sinápsis.
Estructura biológica
Las dendritas son la vía de entrada de las señales
que se combinan en el cuerpo de la neurona.
El axón es el camino de salida de la señal generada
por la neurona.
En las terminaciones de las sinápsis se encuentran
unas vesículas que contienen unas sustancias
químicas llamadas neurotransmisores, que propagan
señales electroquímicas de una neurona a otra.
La neurona es estimulada por sus entradas y cuando
alcanza cierto umbral, se dispara o activa pasando una
señal hacia el axón.
Estructura artificial
Están inspiradas en el cerebro
humano.
Elementos de una red neuronal
Se interconectan neuronas en tres tipos de
capas:
–
–
–
De entrada: reciben estímulos externos.
Oculta: elementos internos de procesamiento (se
pueden estructurar en varias capas).
De salida: reciben la información procesada y
retornan la respuesta del sistema al exterior.
Elementos de una red neuronal
Elementos de una red neuronal
Las neuronas están conectadas por canales
unidireccionales con peso.
El peso wij está asociado al canal que conecta
la neurona j con la neurona i.
La entrada total de la neurona j es netj = Σwijyi.
La salida de la neurona j es yj = f(netj).
f es la función de activación
Elementos de una red neuronal
θi representa un desplazamiento o umbral de
activación (sesgo o bias).
Se puede pensar θi como el peso w0i que conecta una
neurona imaginaria x0 con a0(t) = 1.
Funciones de activación escalón y
signo
Funciones de activación identidad
y lineal-mixta
Función de activación sigmoidal
Regla de aprendizaje
Biológicamente se acepta que la información
memorizada en el cerebro se relaciona con los
valores sinápticos de las conexiones.
En las RNA se considera que el conocimiento
se encuentra representado en los pesos de las
conexiones.
El proceso de aprendizaje se basa en cambios
en estos pesos.
Formas de conexión entre neuronas
Las salidas de las neuronas se convierten en
entradas de otras neuronas.
Cuando ninguna salida de las neuronas es
entrada de neuronas del mismo nivel o de
niveles precedentes, la red se describe como
propagación hacia adelante (feedforward) o
unidireccional.
En caso contrario la red se describe como
propagación hacia atrás (feedback).
Características de las RNA
Topología.
–
–
–
Número de capas.
Número de neuronas por capa.
Tipo de conexiones. Normalmente, todas las
neuronas de una capa reciben señales de la capa
anterior (más cercana a la entrada) y envían su
salida a las neuronas de la capa posterior (más
cercana a la salida de la red).
Tipo de aprendizaje.
Redes feedforward
Cada círculo representa una neurona.
Cada neurona recibe señales desde las
neuronas situadas a su izquierda y envía
señales a las neuronas situadas a la derecha.
Redes feedforward
Las más conocidas son:
–
–
–
–
Perceptrón
Adaline
Madaline
Backpropagation
Son útiles en aplicaciones de reconocimiento o
clasificación de patrones.
Mecanismo de Aprendizaje
Los cambios en el proceso de aprendizaje se
reducen a destrucción, modificación y creación
de conexiones entre las neuronas.
La creación de una conexión implica que el
peso de la misma pasa a tener un valor distinto
de cero.
Una conexión se destruye cuando su valor
pasa a ser cero.
Redes con aprendizaje supervisado
El tipo de aprendizaje puede ser supervisado o
no supervisado.
El proceso de aprendizaje supervisado se
realiza mediante el control de un agente
externo (supervisor) que determina la
respuesta que debería generar la red a partir
de una entrada determinada.
En el caso de no coincidir se modifican los
pesos con el fin de aproximarse al valor
deseado.
Aprendizaje por corrección del
error. Algoritmo
Paso 1: Asignar valores aleatorios a los pesos
de la red.
Paso 2: Mientras no se alcance un nivel
deseado de predicción:
–
–
Tomar un dato de entrenamiento x y obtener una
salida y.
Si y no es el valor deseado para x entonces
actualizar los pesos.
Regla de aprendizaje delta o MEC
Los algoritmos actualizan los pesos mediante:
w´= w + ∆w
La variación entre los distintos métodos está
en la forma de calcular ∆w.
Se define una medida de error para cada
patrón de entrenamiento p:
E = (d − y )
p
1
2
p
p 2
Regla de aprendizaje delta o MEC
Se deben encontrar los wi que minimicen el
error cuadrático:
E=
p
E
∑ =
p∈D
1
2
p
p 2
(
d
−
y
)
∑
∂E
Para esta regla de aprendizaje, ∆wi = −η
∂wi
La idea es definir un vector gradiente
∂E ∂E
∂E
∇⋅E =
,
,...,
∂w1 ∂w2
∂wm
Regla de aprendizaje delta o MEC
El error es una
función
vectorial
(vector w de
pesos)
Regla de aprendizaje delta o MEC
Se debe encontrar la dirección que más
rápidamente hace disminuir el error E.
Algunas fórmulas útiles (función lineal):
∂E ∂E ∂y
=
⋅
∂wi ∂y ∂wi
∂y
= xi
∂wi
∂E
= −( d p − y p )
∂y
Las redes Adaline y Madaline utilizan esta
regla de aprendizaje.
Regla delta generalizada
La regla delta se puede aplicar a una capa de
neuronas.
Se puede generalizar a más capas.
La idea central es que los errores de las
unidades ocultas se propagan hacia atrás.
Se aplica en la red Backpropagation.
Redes Neuronales - Resumen (I)
Capacidad de representación: muy alta.
Fronteras de representación no lineales.
Legibilidad: ninguna. El modelo resultante
consiste en vectores de pesos para las
conexiones entre neuronas.
Tiempo de cómputo on-line: Rápido. Las
operaciones son sumas y multiplicaciones.
Redes Neuronales - Resumen (II)
Tiempo de cómputo off-line: muy lento. Gran
cantidad de pesos a ajustar iterativamente.
Parámetros a ajustar: complicado. Se debe
ajustar la estructura de la red, el tamaño del
paso (learning rate), condiciones de
terminación, etc.
Robustez ante ejemplos de entrenamiento
ruidosos: alta.
Sobreajuste: puede ocurrir. Se debe controlar.
Neural Network Toolbox (I)
>> load house_dataset
La red backpropagation más comunmente utilizada
posee una capa oculta con 20 neuronas.
>> newff(houseInputs, houseTargets, 20);
La cantidad de neuronas de entrada tanto como la de
salida quedan determinadas por las características del
dataset.
>> net = train(net, houseInput, houseTargets)
Neural Network Toolbox (II)
Neural Network Toolbox (III)
El dataset es dividido aleatoriamente en tres
conjuntos:
–
–
–
60% de los datos se utilizan para entrenamiento.
20% de los datos se utilizan para validación.
20% de los datos se utilizan para test.
El entrenamiento continúa mientras se reduce
el error de validación.
Esta es una técnica muy utilizada para evitar el
sobreentrenamiento.
Neural Network Toolbox (IV)
Una vez entrenada la red, se la puede utilizar:
>> y = sim(net, p);
Para un conjunto de nuevos datos se espera
un error similar al calculado para el conjunto
de test.
Se puede mejorar la precisión de una red.
Neural Network Toolbox (V)
Se puede inicializar nuevamente la red para
volver a entrenar:
>> net.IW{1, 1}(1:2, 1:2)
-0.5815
0.2696
-0.2799
-0.4926
>> net = init(net);
>> net.IW{1, 1}(1:2, 1:2)
-0.0047
0.2063
0.4592
-0.4419
Neural Network Toolbox (VI)
Una segunda estrategia es cambiar el número
de capas y neuronas internas.
–
Se puede agregar como cuarto argumento un
arreglo con los nombres de las funciones
transferencia a usar en cada capa.
Por último, usar datos adicionales
generalmente mejora el aprendizaje.
Bibliografía
Machine Learning - Tom Mitchell – McGrawHill
Neural Network Toolbox (For Use with MATLAB®) Howard Demuth, Mark Beale, Martin Hagan
(http://www.mathworks.com/access/helpdesk/help/pdf_
doc/nnet/nnet.pdf).
Curso de doctorado "Aprendizaje Automatizado y Data
Mining" Grupo de Ingeniería de Sistemas y Automática
(Universidad Miguel Hernández)
http://isa.umh.es/asignaturas/aprendizaje/index.html
Descargar