Clase 7

Anuncio
CI5438. Inteligencia Artificial II
Clase 6: Redes Multicapas - Backpropagation
Cap 20.5 Russel & Norvig
Cap 4 Mitchell
Ivette C. Martı́nez
Universidad Simón Bolı́var
8 de Octubre de 2008
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Redes Multicapas de Unidades Sigmoidales
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Unidades Sigmoidales
σ(x) es la función sigmoidal
1
1 + e −x
Buena propiedad: dσ(x)
dx = σ(x)(1 − σ(x))
Podemos derivar reglas del descenso de gradiente para entrenar:
Una unidad sigmoidal
Redes multicapa de unidades sigmoidales → Backpropagation
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Gradiente del error para una Unidad Sigmoidal
δE
δwi
=
=
=
=
=
δ 1P
2
d (td − od )
δwP
i 2
δ
1
2
2 Pd δwi (td − od )
1
δ
− od )
d ) δwi (t
d 2(td − o
2
d
P
δod
d (td − od ) − δwi
P
δod δnetd
− d (td − od ) δnet
d δwi
Pero sabemos que:
δσ(netd )
δod
=
= od (1 − od )
δnetd
δnetd
δnetd
δ(~(w ).~(xd ))
=
= xi,d
δwi
δwi
Entonces:
X
δE
=−
(td − od )od (1 − od )xi,d
δwi
d
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Algoritmo de Backpropagation
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Más sobre Backpropagation
Descenso del gradiente sobre el vector de pesos de la red
completo
Fácilmente generalizable para grafos dirigidos arbitrários
Se encontrará un mı́nimo local del error, no necesariamente el
mı́nimo error global
En la práctica, casi siempre funciona bien (se pueden realizar
múltiples corridas)
Algunas veces se incluye un momentun de los pesos
∆wi,j (n) = ηδj xi,j + α∆wi,j (n − 1)
Minimiza el error sobre los ejemplos de entrenamiento
Generalizará bien para ejemplos posteriores?
El entrenamiento puede tomar miles de iteraciones →
lento!
El uso de la red despues del entrenamiento es muy rápido
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Representaciones en las capas ocultas
Sea la siguiente función objetivo?
Input
Output
10000000 → 10000000
01000000 → 01000000
00100000 → 00100000
00010000 → 00010000
00001000 → 00001000
00000100 → 00000100
00000010 → 00000010
00000001 → 00000001
Puede ser aprendida?
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Representaciones en las capas ocultas
Una Red
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Representaciones en las capas ocultas
Representación aprendida en la capa intermedia:
Input
10000000
01000000
00100000
00010000
00001000
00000100
00000010
00000001
→
→
→
→
→
→
→
→
Hidden
Values
.89 .04 .08
.01 .11 .88
.01 .97 .27
.99 .97 .71
.03 .05 .02
.22 .99 .99
.80 .01 .98
.60 .94 .01
Ivette C. Martı́nez
Output
→
→
→
→
→
→
→
→
10000000
01000000
00100000
00010000
00001000
00000100
00000010
00000001
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Representaciones en las capas ocultas
Entrenamiento:
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Representaciones en las capas ocultas
Codificación en la capa intermedia
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Representaciones en las capas ocultas
Pesos de las entradas a una unidad intermedia
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Convergencia de Backpropagation
Descenso del gradiente a algún mı́nimo local
Quizás no sea un mı́nimo global...
Agregar momentum
Descenso del gradiente estocástico
Entrenar varias redes con pesos iniciales diferentes
Naturaleza de la convergencia
Inicializar pesos cerca de cero
Luego, las redes iniciales son casi-lineales
A medida que el entrenamiento progresa, incrementalmente se
hacen posibles funciones no-lineales
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Expresividad de las Redes Multicapas
Funciones Booleanas:
Cualquier función booleana puede ser representada por una
red con una sola capa oculta
pero puede requerie un número exponencial (en el número de
entradas) de unidades ocultas
Funciones Contı́nuas:
Toda función contı́nua acotada puede ser aproximada con un
un error arbitráriamente pequeño, por una red con una capa
oculta [Cybenko 1989; Hornik et al. 1989]
Cualquier función puede ser aproximada con una precición
arbitraria por una red con dos capa ocultas [Cybenko 1988]
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Overfitting 1
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Overfitting 2
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Reconocimiento de caras
Aprendizaje de la pose facial con 90 % de precición, y
Ivette C. Martı́nez
reconocimiento de 1-de-20
caras CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Ejemplo: Reconocimiento de caras
http://www.cs.cmu.edu/ tom/faces.html
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Backpropagation
Ivette C. Martı́nez
CI5438. Inteligencia Artificial II Clase 6: Redes Multicapas - Back
Descargar