Download Red neuronal prealimentada

Document related concepts

Perceptrón multicapa wikipedia , lookup

Perceptrón wikipedia , lookup

Red neuronal prealimentada wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Adaline wikipedia , lookup

Transcript
Análisis de Datos
Perceptrón multicapa
Profesor: Dr. Wilfrido Gómez Flores
1
Introducción
•
De acuerdo con el consejo de la IEEE Neural Networks de 1996, inteligencia
artificial (IA) es el estudio de cómo hacer que las computadoras hagan cosas
que los humanos hacemos mejor hasta ahora.
•
Inteligencia computacional es una rama de la IA que estudia mecanismos
adaptativos inspirados en la naturaleza para habilitar comportamiento
inteligente en ambientes complejos y cambiantes.
Sistemas
inmunes
artificiales
Modela el sistema inmune
humano
Modela los sistemas
neuronales biológicos
Redes
neuronales
artificiales
Computación
evolutiva
Modela la selección
natural
Modela la interacción
de los organismos con
el ambiente
Sistemas
difusos
Inteligencia
de enjambre
Modela el
comportamiento
social de organismos
Modelos
probabilísticos
Paradigmas de inteligencia computacional
2
Neurona biológica
• La neurona es una célula nerviosa cuya función es recolectar y
procesar señales eléctricas.
• Las neuronas presentan una morfología típica: un cuerpo celular
llamado soma, prolongaciones cortas que transmiten impulsos
hacia el soma denominadas dendritas y una prolongación larga
llamado axón que conduce impulsos desde el soma hacia otras
neuronas u órganos.
Dendrita
Terminal del axón
Soma
Núcleo
Axón
Mielina
Modelo de una neurona biológica.
3
Neurona biológica
• El cerebro humano posee aproximadamente 1012 neuronas
conectadas por aproximadamente 1014 sinapsis.
• La sinapsis es el enlace electro-químico para la transmisión del
impulso nervioso entre neuronas.
• Las redes neuronales en el cerebro forman un sistema de
procesamiento paralelo de información masiva.
• El aprendizaje puede deberse al cambio en la fuerza en las
conexiones neuronales, es decir, agregar o eliminar conexiones
(plasticidad sináptica).
• La eficacia de la sinapsis puede cambiar debido a la experiencia,
dotando de memoria y aprendizaje a través de la potenciación a
largo plazo.
4
Neurona artificial
• Tres trabajos sentaron las bases de las redes neuronales artificiales
(RNA) actuales:
‣ McCulloch & Pitts (1943). Primer modelo neuronal
simplificado. Podía resolver las operaciones lógicas AND, OR y
NOT.
‣ Hebb (1949). Propone un modelo matemático que incluye el
concepto de aprendizaje por medio de refuerzo o asociación.
‣ Rosenblatt (1959, 1962). Origen del concepto “machine
learning”. Propuso el modelo perceptrón, el cual al ser entrenado
converge en un número finito de iteraciones.
5
Neurona de McCulloch-Pitts
•
McCulloch y Pitts (1943) propusieron el primer modelo simplificado de
una neurona artificial con comportamiento binario, es decir, dado un
umbral de activación, θ, la respuesta de la neurona sufre un cambio
abrupto de estado de 0→1 ó viceversa:
Entradas
excitatorias
a2
a1
an
Σ
b1
Entradas b2
inhibitorias
θ
y
bm
donde la respuesta de la neurona es:
n
⎧
⎪ 1
si ∑ i =1 ai ≥ θ y
y=⎨
⎪⎩ 0 otro caso
∑
m
b =0
j =1 j
McCulloch & Pitts (1943), “A Logical Calculus and the Ideas Immanent in the Nervous Activity,” Bulletin of Mathematical Biophysics, vol. 5, pp. 115-133.
(1)
6
Neurona de McCulloch-Pitts
• La implementación de las
funciones lógicas AND, OR y
NOT utiliza la siguiente
configuración de la neurona:
a1
a2
b1
0
1
0
1
0
0
1
1
0
0
0
0
AND
θ=2
0
0
0
1
OR
θ=1
0
1
1
1
a1
θ
Σ
a2
y
b1
a1
a2
b1
1
1
0
0
0
1
NOT
θ=1
1
0
• Las principales limitantes del modelo de McCulloch-Pitts son:
‣ Los umbrales son determinados analíticamente, es decir, no
existe un mecanismo de aprendizaje.
‣ Únicamente trabaja con problemas binarios
7
Teoría Hebbiana
• La teoría Hebbiana describe el mecanismo básico de plasticidad
sináptica, el valor de una conexión sináptica se incrementa si las
neuronas de ambos lados de la sinapsis se activan repetidas veces
de forma simultánea y se debilita si se activan por separado.
Conexión fuerte
Marca
Apple
Conexión débil
Fruta
Probablemente, en países de habla hispana, la palabra “Apple” esté
más relacionada con la marca de computadoras que con la fruta.
8
Perceptrón simple
El modelo de aprendizaje Hebbiano establece cómo modificar los pesos
sinápticos, w=[w0,w1,…,wd], entre neuronas y se aplica para entrenar la
neurona artificial de McCulloch-Pitts (1943), dando origen al modelo
perceptrón introducido por Rosenblatt en 1958:
Entradas
•
x1
w1
x2
w2
x3
w3
xd
wd
w0
Función de
transferencia
φ
Σ
f
donde la respuesta de la neurona para un patrón x es:
d
⎞
⎛
f (x) = ϕ ⎜ w0 + ∑ wi x i ⎟
⎠
⎝
(2)
i =1
9
Perceptrón simple
• El proceso de aprendizaje de una neurona consiste en adaptar los
pesos sinápticos para realizar un mapeo entrada→salida:
1 n
w j = ∑ yi x i,j ,
n i =1
j = 1,…,d
(3)
donde n es el número de muestras de aprendizaje y yi es la salida
deseada del patrón xi=[1,xi,1,xi,2,…,xi,d]T (aumentado).
• La función de transferencia define la salida de la neurona como:
⎧ +1 si z > θ
ϕ(z) = ⎨
⎩ −1 otro caso
(4)
donde θ es un umbral predeterminado.
10
Perceptrón simple
• La implementación de las funciones lógicas AND, OR y NOT
utiliza la siguiente configuración de la neurona:
w0
w1
x1
wAND = [−0.5, 0.5, 0.5]
T
wOR = [0.5, 0.5, 0.5]T
wNOT = [0, 0, −1]T
x1
x2
−1 −1
−1
1
1
1
−1
1
w2
x2
AND
wTx
−1.5
−0.5
−0.5
0.5
Σ
OR
f
−1
−1
−1
1
wTx
f
θ=0
NOT
f
−0.5
−1
0.5
1
0.5
1
1.5
1
wTx
f
1
1
−1
−1
11
Perceptrón simple
• El perceptrón simple es un clasificador lineal, donde los pesos
pueden ser ajustados mediante un algoritmo de descenso de
gradiente.
x2
x2
1
1
−1
1
−1
x1
−1
1
x1
−1
Fronteras de decisión generadas por el perceptrón simple para los
problemas AND (izquierda) y OR (derecha).
12
Perceptrón simple
• Uno de los resultados mostrados en el trabajo de Minsky y Papert
(1969) fue que el perceptrón simple no es capaz de representar la
compuerta XOR, ya que no existe separabilidad lineal entre clases.
x2
1
−1
1
−1
x1
x1
x2
XOR
−1
−1
−1
1
1
1
−1
1
1
1
−1
−1
En el problema XOR no existe una única recta que separe a
los puntos negros de los blancos.
*M. L. Minsky & S. A. Papert (1969). Perceptrons. Cambridge, MA: MIT Press.
13
Perceptrón multicapa
AND
0.5
x1
0.5
Σθ
0.5
−0.5
Σθ
−0.5
0.5
x2
0.5
Capa de
entrada
Σθ
Capa
oculta
0
0.5
−0.5
1
OR
f
x2
−1
1
x1
−1
Capa de
salida
La capa de entrada distribuye las variables del patrón de entrada
hacia la capa oculta. En la capa oculta se entrenan dos perceptrones
para resolver la compuerta AND (rojo) y OR (negro) cuyas
respuestas son combinadas en la capa de salida generando una
solución bilineal al problema XOR. El umbral θ=0 para todos los
perceptrones.
14
Perceptrón multicapa
• Aunque el perceptrón multicapa es capaz de resolver el problema
XOR, surge un problema en la generalización a problemas no
linealmente separables: ¿cómo calcular los pesos sinápticos de las
neuronas ocultas sin conocer su salida deseada?
• En 1974 P. Werbos planteó una solución para el entrenamiento del
perceptrón multicapa, aunque fue hasta 1986 cuando Rumelhart
propuso un algoritmo similar al que llamó retropropagación del
error (backpropagation algorithm).
• El algoritmo backpropagation está basado en el método de descenso
de gradiente para minimizar el error. Es un algoritmo ampliamente
utilizado para entrenamiento supervisado de RNA.
P. J. Werbos. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, 1974.
D. E. Rumelhart, G. E. Hinton, R. J. Williams, "Learning representations by back-propagating errors". Nature 323 (6088): 533–536, 1986.
15
Red neuronal prealimentada
•
El perceptrón multicapa da origen a la red neuronal prealimentada
(feedforward neural network, FNN) que utiliza el algoritmo backpropagation en
el entrenamiento.
x1
x1
z
x2
x1
x2
x1
x2
z
x2
Una red de dos capas sólo genera fronteras de decisión lineales, mientras que
una red con dos o más capas produce fronteras de decisión arbitrarias.
16
Red neuronal prealimentada
x1
x2
xi
xd
w ji
x1
x2
y1
y2
wkj
Salida de
la red
z1
z2
y3
zk
xi
yj
zc
xd
Referencia
t1
t2
tk
tc
yh
Entrada
Oculta
Salida
Una red FNN d-h-c totalmente conectada de tres capas y la notación
utilizada para la derivación del algoritmo backpropagation.
17
Función de activación
• Un nodo oculto o nodo de salida genera una respuesta no lineal a
una variable de entrada ponderada con un peso sináptico.
• Dicha respuesta no lineal está dada por una función de activación,
siendo la función sigmoidal la más utilizada en FNN y se define
como:
1
σ (x) =
1 + exp(−x)
(5)
y su primera derivada es:
σ (x )′ = σ (x)(1 − σ (x))
(6)
• Se asume la misma no linearidad para todos los nodos ocultos y de
salida.
18
Aprendizaje de la FNN
• El entrenamiento de la FNN consiste en encontrar el conjunto de
pesos que reduzca el error de entrenamiento entre la salida de la
red y la referencia (etiqueta de clase):
1 c
1
2
J(w) ≡ ∑ (tk − zk ) = t − z
2 k =1
2
2
(7)
donde t y z son los vectores de referencia (target) y salida de la red
y w representa todos los pesos en la red.
• La regla de entrenamiento backpropagation está basada en descenso
de gradiente. Los pesos se inicializan aleatoriamente y cambian en
la dirección que reduce el error:
∂J
Δw = −η
∂w
(8)
donde η es la taza de aprendizaje. Entonces la regla de
actualización en la iteración t es:
w(t + 1) = w(t) + Δw(t)
(9)
19
Aprendizaje de la FNN
• Tomando el problema de entrenamiento de una FNN con tres
capas, primero se derivan los pesos de las capas oculta→salida
mediante la regla de la cadena:
∂J
∂J ∂zk
=
∂wkj ∂zk ∂wkj
(10)
∂J
∂ ⎡1
2⎤
=
⎢ (tk − zk ) ⎥ = −(tk − zk )
∂zk ∂zk ⎣ 2
⎦
(11)
• Derivando J se tiene:
y derivando zk se tiene:
∂zk
∂wkj
donde y! j = wkj y j .
=
∂σ (y! j )
∂wkj
(12)
= σ (y! j )(1 − σ (y! j ))y j
20
Aprendizaje de la FNN
• Entonces sustituyendo (11) y (12) en (10) se obtiene la regla de
aprendizaje para los pesos de las capas oculta→salida:
Δwkj = η(tk − zk )σ (y! j )(1 − σ (y! j ))y j
= ηδ ky j
(13)
donde δk es la sensibilidad de la neurona k y describe cómo el error
cambia con la activación de la neurona.
• Derivando los pesos de las capas entrada→oculta se vuelve aplicar
la regla de la cadena:
∂J
∂J ∂y j
=
∂w ji ∂y j ∂w ji
(14)
21
Aprendizaje de la FNN
•
Derivando J se tiene:
∂J
∂
=
∂y j ∂y j
k =1
k =1
j
(15)
∂zk ∂y! j
= − ∑ (tk − zk )
= − ∑ (tk − zk )σ (y! j )(1 − σ (y! j ))wkj
∂y! j ∂y j
k =1
k =1
Derivando yj se tiene:
∂y j
∂σ (x!i )
∂x!i
=
= σ (x!i )(1 − σ (x!i ))
(16)
∂w ji
∂w ji
∂w ji
c
•
c
⎞
⎛1 c
∂zk
2
⎜⎝ 2 ∑ (tk − zk ) ⎟⎠ = − ∑ (tk − zk ) ∂y
c
= σ (x!i )(1 − σ (x!i ))x i
donde x!i = w jix i . Entonces, la regla de aprendizaje para los pesos
de las capas entrada→oculta es:
c
⎡
Δw ji = η ⎢ ∑ k =1 wkj δ k ⎤⎥ σ (x!i )(1 − σ (x!i ))x i
⎣
⎦
= ηδ j x i
(17)
22
Aprendizaje de la FNN
• El cálculo del bias involucra una entrada ficticia cuyo valor es
siempre la unidad para cada neurona de la red, de modo que todos
los pesos bias se actualizan exactamente igual que los pesos
sinápticos durante las iteraciones.
1
x1
z
x2
Se considera una entrada unitaria para el cálculo del bias.
23
Aprendizaje de la FNN
•
En el algoritmo backpropagation, todos patrones de entrenamiento se
presentan primero para generar una salida de la red con los pesos
actuales y sólo entonces se actualizan los pesos. Este proceso se itera
hasta que se cumpla una condición de paro.
Algoritmo backpropagation.
Begin initialize: w, n←#patrones, umbral θ, η, t←0
do t←t+1 // Incrementa la época
p←0; ∆wji←0; ∆wkj←0
do p←p+1
xp← selecciona un patrón
∆wji←∆wji + ηδjxi
∆wkj←∆wkj + ηδkyj
until p=n
wji←wji + ∆wji
wkj←wkj + ∆wkj
until ||∇J(w)||<θ
return w
end
24
Conjunto de validación
• Para evitar el sobreentrenamiento de la red, adicionalmente al
conjunto de entrenamiento, se debe usar un conjunto
independiente denominado conjunto de validación, de modo que
el entrenamiento se detiene en el mínimo error de validación.
J/n
validación
ent
r
ena
m
ien
to
prueba
épocas
Una curva de entrenamiento muestra la función de costo en función del
número de épocas. Los errores de validación y prueba son generalmente
más altos que el error de entrenamiento.
25
Funciones discriminantes
• Para clasificar un patrón desconocido, se tendrán c neuronas de
salida, una para cada clase, y la señal de cada neurona de salida es la
función discriminante gk(x).
• Para un patrón de entrada x la respuesta de la k-ésima neurona de
salida para una FNN d-h-c es:
⎛ h
⎞
⎞
⎛ d
gk (x) ≡ zk = σ ⎜ ∑ wkjσ ⎜ ∑ w ji x i + w j 0 ⎟ + wk 0 ⎟
⎠
⎝ i =1
⎝ j =1
⎠
(18)
• Entonces, el patrón x es clasificado en ωp, p=1,…,c, si
g p (x) > gq (x),
∀p ≠ q
(19)
26
Funciones discriminantes
x1
x1
FNN 2-3-1
x1
x2
x2
x1
FNN 2-10-1
x2
x2
27
Ventajas de las RNAs
•
Las RNAs son relativamente fáciles de implementar y presenta las
siguientes ventajas:
‣ No linealidad. Dependiendo de la función de activación, una
neurona puede tener una respuesta no lineal, de manera que con la
interconexión de varias neuronas se pueden generar fronteras de
decisión no lineales.
‣ Relación entrada-salida. Las RNAs aprenden de ejemplos, los
cuales son introducidos como un conjunto de muestras etiquetadas
donde a cada entrada le corresponde una salida.
‣ Adaptabilidad. Debido a su capacidad de aprendizaje continuo, las
RNAs tienen la habilidad de adaptarse a problemas no estacionarios
en el tiempo, adaptando sus pesos al entorno que las rodea.
‣ Tolerancia a fallos. El alto grado de paralelismo les confiere una
gran robustez, ya que si una neurona o peso sináptico falla, el daño se
ve amortiguado por las neuronas vecinas.
28
Desventajas de las RNAs
• Por otro lado, las RNAs presentan los siguientes problemas:
‣ Sobreentrenamiento. Cuando la red no es capaz de
generalizar, es decir, que calcule correctamente las relaciones
entrada-salida para muestras no presentadas durante el
entrenamiento, se dice que se ha sobreentrenado.
‣ Número de neuronas. No existe una forma sencilla de definir
el número adecuado de neuronas y capas ocultas.
‣ Mínimos locales. Durante el entrenamiento existe la
posibilidad de caer en un mínimo local, es decir, la solución no
alcanzó el mínimo error posible.
29