Download w - Centro de Inteligencia Artificial

Document related concepts

Perceptrón wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Red neuronal prealimentada wikipedia , lookup

Perceptrón multicapa wikipedia , lookup

Red neuronal artificial wikipedia , lookup

Transcript
Universidad
de Oviedo
Centro de
Inteligencia Artificial
SISTEMAS INTELIGENTES
T10: Redes Neuronales
www.aic.uniovi.es/ssii
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Índice
•  Redes Neuronales Artificiales
° 
Fundamentos biológicos
•  Perceptrón
° 
Funciones de activación
•  Redes de neuronas
•  Entrenamiento:
° 
Perceptrón
Descenso de gradiente: regla delta
° 
Backpropagation
° 
Sistemas Inteligentes - T10: Redes Neuronales
Universidad
de Oviedo
Centro de
Inteligencia Artificial
Redes de Neuronas Artificiales (ANNs)
•  Están inspiradas en los sistemas neuronales biológicos
•  Neurona: célula cerebral encargada de recoger, procesar y
transmitir señales eléctricas
•  No alcanzan su nivel de complejidad (ni de prestaciones L)
° 
° 
° 
° 
° 
° 
° 
° 
Número de neuronas en el cerebro humano: ~1010
Tiempo de activación/inhibición: ~10-3
Conexiones (sinapsis) por neurona: ~104–105
Reconocimiento de escenas: 0.1 segundos
Procesamiento no lineal
Masivo grado de paralelismo
Representaciones distribuidas
Adaptativo
•  Tratan de capturar este modelo de funcionamiento, pero:
° 
° 
Normalmente, menos de 1000 neuronas
No capturan todo el comportamiento neuronal
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Neuronas humanas
• 
Soma: contiene el núcleo
celular
• 
Dendritas: entradas
• 
Axon/Sinapsis: conexión entre
neuronas
• 
La información fluye
unidireccionalmente
• 
El soma a través de axon/
sinapsis puede mandar un
mensaje de excitación/
inhibición (neurotransmisión)
• 
Éste será captado por las
dendritas de otra neurona
• 
A lo largo del tiempo
(aprendizaje), la conexión
entre dos neuronas se hará
más fuerte o más débil
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Definición y propiedades
sistema compuesto por múltiples unidades de
proceso que operan en paralelo y cuya
funcionalidad depende de la estructura de la
red, de la fuerza de las conexiones, y del
procesamiento realizado en cada
nodo [DARPA, 98]
•  Propiedades:
° 
° 
° 
° 
Formadas por conjuntos de neuronas individuales
activadas por umbral
Muchas conexiones con pesos entre las neuronas
Procesamiento distribuido y paralelo
El aprendizaje consistente en ajustar los pesos de las
conexiones entre las neuronas
Sistemas Inteligentes - T10: Redes Neuronales
Universidad
de Oviedo
Centro de
Inteligencia Artificial
Tipos de problemas adecuados
•  Entradas formadas por vectores de valores
discretos o reales
•  Pueden ser problemas de clasificación o
regresión
•  Puede producir vectores de valores
•  Los usuarios finales no quieren obtener
explicaciones: no producen conocimiento
inteligible (caja negra)
•  Los datos de entrenamiento pueden contener
errores
Sistemas Inteligentes - T10: Redes Neuronales
Universidad
de Oviedo
Centro de
Inteligencia Artificial
ALVINN
Pesos entre capa oculta
y la salida (1 neurona)
Pesos entre la entrada
y la capa oculta
(1 neurona)
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Perceptrón
x1
w1
x2
w2
x0 = 1
n
w0
i i
Σ
xn
∑w x
 

  ⎧ 1 si w ⋅ x > 0
h( x ) = sgn( w ⋅ x ) = ⎨
⎩− 1 en otro caso
i =0
wn
 
H = w | w ∈ ℜn+1
{
}
Representa UNA neurona
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Funciones de Activación
A tramos
Lineal
y=x
Signo
⎧− 1 x < −l
⎪
y = ⎨ x − l ≤ x ≤ l
⎪ 1 x > l
⎩
Sigmoide
y = sgn(x)
1
y=
1 + e−x
Gaussiana
y = Ae − Bx
Sistemas Inteligentes - T10: Redes Neuronales
Universidad
de Oviedo
Centro de
Inteligencia Artificial
Definición de Red de Neuronas
•  Conjunto de neuronas artificiales conectadas
entre sí mediante una serie de arcos llamados
conexiones
•  Estas conexiones tienen números reales
asociados, llamados pesos de la conexión
•  Las neuronas generalmente se distribuyen en
capas de distintos niveles, con conexiones que
unen las neuronas de las distintas capas
(pueden ser también de la misma capa)
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Ejemplo de Red de Neuronas
Valor calculado usando
Los valores de entrada
CAPA DE ENTRADA
CAPAS OCULTAS
Se escoge la clase
que produce un valor mayor
CAPA DE SALIDA
CLASE
2.7
7.1
4.2
3.0
2.1
0.2
-0.8
-1.3
-1.2
A
1.1
0.3
2.7
LOS VALORES SE PROPAGAN POR LA RED
Sistemas Inteligentes - T10: Redes Neuronales
SALIDA
ENTRADA
1.1
B
C
Universidad
de Oviedo
Centro de
Inteligencia Artificial
Aprendizaje en una red de neuronas
•  Aprendizaje: la red modifica los pesos de las conexiones
para que las salidas de la red se vayan adaptando de
manera paulatina al funcionamiento que se considera
correcto
•  La modificación de los pesos depende del paradigma de
aprendizaje que estemos usando:
° 
° 
Aprendizaje supervisado: para cada ejemplo presentado a la
red existe una respuesta deseada. La respuesta de la red se
compara con su salida esperada, y en base a esa comparación
se ajustan los pesos de la red
Aprendizaje no supervisado: no se especifica a la red cuál es
la respuesta correcta. La red descubre las relaciones
presentes en los ejemplos
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
La red más simple
•  Una neurona artificial
•  Aprendizaje de conceptos: ejemplos puntos en el
espacio Un, con su clase asociada
•  Separador lineal: dado un conjunto de ejemplos
determina el hiperplano capaz de discriminar los
ejemplos en dos clases
h( x) = w0 + w1 x1 + w2 x2 + ... + wn xn
•  Es interesante estudiarlo porque nos permite diseñar
redes con más neuronas
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Separador Lineal
+
+
+
+
w
-
-
+
-
-
+
•  Problema: el conjunto puede no ser linealmente
separable (Ejemplo XOR)
•  Solución: emplear redes multicapa
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Aprendizaje Perceptrón
Algoritmo Aprendizaje Perceptron(w,X): w es
Inicialización aleatoria del vector de pesos <w0, . . . ,wn>
Mientras (no se cumpla la condición de parada) hacer
Para cada ejemplo de entrada <(x1,...,xn), f(x1,...,xn)>
Se calcula la salida de la red: h(x1,...,xn)= x1w1+ … + xnwn + w0
Si ( h(x1,...,xn) != f(x1,...,xn) ) entonces
Se actualizan los pesos <w0, . . . ,wn>
Fin si
Fin Para
Fin Mientras
Retornar w
Fin Algoritmo
•  Para actualizar los pesos se siguen conceptos
expuestos por Hebbian (si dos neuronas están
activas, su conexión se refuerza)
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Perceptrón: regla de entrenamiento
wi = wi + Δwi
donde:
Δwi = η [f(x) – h(x)] xi
° 
f(x) es el valor de la función objetivo en el ejemplo x
h(x) es la salida del preceptrón
° 
η es una pequeña constante que controla el ritmo de
° 
aprendizaje (decrece con el tiempo)
• 
Función de activación: con umbral
• 
Los pesos se actualizan para cada ejemplo
• 
El algoritmo converge si:
° 
los ejemplos de entrada son linealmente separables
° 
η is suficientemente pequeña
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Descenso de gradiente (I)
•  Converge sólo asintóticamente al mínimo aún cuando el problema no es
linealmente separable
•  Es la base del algoritmo Backpropagation
•  Descenso de gradiente: consideremos una neurona lineal sin umbral
(salida continua)
h(x)=w0 + w1 x1 + … + wn xn
•  Entrenamiento: minimizar el error cuadrático
E[w0,…,wn] = ½
Σx∈X (f(x) –h(x))2
•  ¿Cómo minimizarlo?
° 
° 
Nos movemos en la dirección que más reduce el error
Dirección negativa del vector gradiente
•  Diferencias:
° 
° 
° 
° 
Perceptrón función de activación con umbral, Gradiente no
Perceptrón actualización por ejemplo, Gradiente todos los datos
Perceptrón: minimiza w
Gradiente: minimiza error
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Descenso de gradiente (II)


Δw = −η∇E [w ]
(w1,w2)
(w1+Δw1,w2 +Δw2)

⎡ ∂E ∂E
∂E ⎤
∇E [w ] ≡ ⎢
,
,… ,
⎥
∂
w
∂
w
∂
w
0
1
n ⎦
⎣
∂E
Δw i = −η
∂w i
∂E
∂
=
∂w i ∂w i
∂E
1
=
∂w i 2
∂E
1
=
∂w i 2
⎡ 1
⎢ 2
⎣
2 ⎤
(
(
)
(
)
)
f
x
−
h
x
∑
⎥
x ∈X
⎦
⎡ ∂
2 ⎤
(
(
)
(
)
)
f
x
−
h
x
∑ ⎢
⎥
x ∈D ⎣ ∂w i
⎦
  ⎤
⎡
⎤
⎡
∂
∂
(
(
(
)
(
)
)
(
(
)
(
)
)
(
(
)
(
)
)
(
)
2
f
x
−
h
x
f
x
−
h
x
=
f
x
−
h
x
f
x
−
w
⋅ x )⎥
∑
⎢
⎥ ∑ ⎢
∂
w
∂
w
x∈X ⎣
i
i
⎦ x∈X ⎣
⎦
∂E
= ∑ [(f (x ) − h(x ))(− x i )]
∂w i x∈X
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Descenso de gradiente (III)
Algoritmo Aprendizaje Gradiente(w,X): w es
Inicialización aleatoria del vector de pesos <w0, . . . ,wn>
Mientras (no se cumpla la condición de parada) hacer
Δwi ← 0 para todo i
Para cada ejemplo de entrada <(x1,...,xn), f(x1,...,xn)>
Se calcula la salida de la red: h(x1,...,xn)= x1w1+ … + xnwn + w0
Para cada peso wi hacer
Δwi ← Δwi + η ( f(x1,...,xn) - h(x1,...,xn) ) xi
Fin Para
Fin Para
wi ← w i + Δ w i
Fin Mientras
Retornar w
Fin Algoritmo
Sistemas Inteligentes - T10: Redes Neuronales
Universidad
de Oviedo
Centro de
Inteligencia Artificial
Descenso de gradiente (IV)
•  Es un paradigma muy importante de aprendizaje
•  Su estrategia de búsqueda en espacios de hipótesis
infinitos puede ser aplicada cuando:
° 
° 
el espacio de hipótesis contiene hipótesis que pueden
parametrizarse de una forma continua (e.g. pesos de
una función lineal)
podemos derivar el error respecto a los parámetros de
la hipótesis
•  Dificultades:
° 
° 
converger al mínimo puede ser lento
si hay mínimos locales no se garantiza alcanzar el
mínimo global
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Algunas consideraciones
•  Importancia de la constate η que controla el
ritmo de aprendizaje
° 
° 
° 
Dado que sólo existe un mínimo global, el algoritmo
converge aunque no sea LS, siempre que η sea
suficientemente pequeña
Si es demasiado grande, el algoritmo puede saltarse el
mínimo
Se suele ir reduciendo su valor para evitarlos
•  Problemas:
° 
° 
Si η es pequeña el algoritmo es más lento
Si hay varios mínimos locales, el algoritmo puede
quedarse atrapado en ellos y no alcanzar el mínimo
global
•  ¿Cuándo se debe parar el aprendizaje?
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Descenso de gradiente incremental
•  Es una aproximación estocástica
•  Incremental: actualiza el peso tras cada ejemplo
Δwi = η ( f(x1,...,xn) - h(x1,...,xn) ) xi
•  Puede aproximar el método del gradiente si la
constate η es suficientemente pequeña
•  Es mucho más rápido
•  Aunque existan varios mínimos locales, el
método incremental puede evitarlos ya que usa
los grandientes de cada ejemplo (varios)
•  La fórmula anterior se denomina también Regla
Delta/LMS (Widrow-Hoff)
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Redes Multicapa (MLP)
•  Definición: una red multicapa está formada por
una capa de entrada, una o más capas
intermedias, y una capa de salida
•  Sólo las capas ocultas y la de salida contienen
perceptrones
•  Permiten representar funciones no lineales
•  Dificultad para diseñarlas
•  Se requiere mucho tiempo de entrenamiento
•  Usan funciones de activación no lineales:
sigmoide
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Backpropagation
Algoritmo BackPropagation es
Inicialización aleatoria de todos los pesos de la red (valores pequeños)
Mientras (no se cumpla la condición de parada) hacer
Para cada ejemplo de entrada <(x1,...,xn), f(x1,...,xn)>
Se calcula la salida de cada neurona s de salida hs(x1,...,xn)
Propagar los errores a través de la red
Para cada neurona s de la capa de salida se calcula su error hacer
δs=hs(1-hs)(fs-hs)
Para cada neurona o de la capa oculta hacer
δo=ho(1-ho)Σswso δs
Para todos los pesos de la red
wji ← wji + Δwji
donde Δwji = wji + η δoxji
Fin Mientras
Retornar pesos
Fin Algoritmo
Sistemas Inteligentes - T10: Redes Neuronales
Centro de
Inteligencia Artificial
Universidad
de Oviedo
Características
•  Usa el gradiente sobre toda la red de pesos
•  Fácil de generalizar para otros grafos dirigidos
•  Encuentra un mínimo local, no necesariamente global
•  A pesar de ello, es efectivo en la práctica
•  No hay desarrollos teóricos para garantizar la convergencia
•  Se han desarrollado heuríticos para mejorar el proceso
° 
Añadir momentum en el cálculo de los pesos
Δwi,j(n)= η δj xi,j + α Δwi,j (n-1)
° 
° 
° 
Usar el gradiente estocástico o incremental
Entrenar la misma red con diferentes pesos iniciales, se selecciona
la que produzca un error menor en un conjunto de validación
Se podría combina la salidad de todas las redes
•  Entrenamiento muy lento
Sistemas Inteligentes - T10: Redes Neuronales