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