Redes Neuronales Multicapa Introducción al Reconocimiento de Patrones IIE - FING - UdelaR 2015 Outline Redes neuronales multicapa (MLNN) Las funciones discriminantes lineales puras tienen limitaciones: las fronteras de decisión son hiperplanos. Con funciones no lineales φ se pueden obtener fronteras de decisión complejas: mayor poder de expresión. ¿Cómo determinar o aprender las no linealidades φ para lograr bajos errores de clasificación? Idea de MLNN: aprender las no-linealidades al mismo tiempo que los discriminantes lineales. Estructura de una red multicapa Ejemplo: red de 3 capas – entrada, capa oculta y capa de salida. Redes de 3 capas Cada unidad de la capa oculta: netj = d X wji xi + wj0 = i=1 yj = f (netj ), d X wji xi = wjt x i=0 e.g. f : función signo o sigmoide. Unidades de la capa de salida: idem pero tomando las salidas de la capa oculta como entradas: netk = nH X wkj yj + wk0 = wkt y j=1 zk = f (netk ), f : en general (no necesariamente) igual a las de la capa oculta. Redes de 3 capas 6.2. FEEDFORWARD OPERATION AND CLASSIFICATION 7 Ejercicio Problema XOR: mostrar que se resuelve con esta red. z 1 0 1 -1 0 -1 0 -1 1 zk output k y1 -1 1 0 1 -1 0 -1 0 -1 1 .5 hidden j 1 1 1 1 0 -1.5 bias y2 -.4 wkj .7 1 -1 0 -1 0 1 wji -1 1 input i x2 x1 x2 z= -1 R2 z=1 R2 R1 x1 z= -1 (2-2-1 fully connected) Figure 6.1: The two-bit parity or exclusive-OR problem can be solved by a three-layer network. At the bottom is the two-dimensional feature space x1 − x2 , and the four Feedforward (clasificación) La forma general de las salidas de una red de tres capas es: ! nH d X X wji xi + wj0 + wk0 gk (x) = zk = f wkj f j=1 i=1 Interesa saber la capacidad expresiva de esta formulación: ¿Se puede aproximar cualquier función? Poder de expresión Teorema de Kolmogorov: Para toda función g : [0, 1]n → R continua (n ≥ 2), existen funciones Ξj y ψij tales que g(x) = 2n+1 X j=1 Ξj d X ! ψij (xi ) . i=1 Asegura viabilidad teórica, pero de poco utilidad práctica: En general las Ξj y ψij son complejas y muy irregulares. El teorema no nos dice mucho sobre como elegirlas o aprenderlas de los datos, ni como elegir n. While we can be confident that a complete set of functions, such as all polynomials, can represent any function it is nevertheless a fact that a single functional form also suffices, so long as each component has appropriate variable parameters. In the absence of information suggesting otherwise, we generally use a single functional form for the transfer functions. While these latter constructions show that any desired function can be implemented by a three-layer network, they are not particularly practical because for most problems we know ahead of time neither the number of hidden units required, nor the proper weight values. Even if there were a constructive proof, it would be of little use in pattern recognition since we do not know the desired function anyway — it is related to the training patterns in a very complicated way. All in all, then, these results on the expressive power of networks give us confidence we are on the right track, but shed little practical light on the problems of designing and training neura networks — their main benefit for pattern recognition (Fig. 6.3). Aproximando cualquier función Intuitición Poder de expresión x2 fl Two"layer R1 R2 x1 x2 x1 x2 R1 Three"layer ... R2 R2 R1 x1 x2 x1 Figure 6.3: Whereas a two-layer network classifier can only implement a linear decision boundary, given an adequate number of hidden units, three-, four- and higher-layer networks can implement arbitrary decision boundaries. The decision regions need not be convex, nor simply connected. Backpropagation - Aprendizaje t: salida objetivo; z: salida de la red. Función de error a minimizar: c 1X 1 J(w) = (tk − zk )2 = kt − zk2 2 2 k=1 La minimización se hace evaluando patrones conocidos (feedforward), y corrigiendo los pesos en base a la diferencia con lo esperado (aprendizaje). Backpropagation - Aprendizaje Hay que corregir los pesos para disminuir el error. Haciendo el descenso por el gradiente, la corrección es: ∆w = −η ∂J , ∂w ∆wpq = −η ∂J ∂wpq w(m + 1) = w(m) + ∆w(m) Backpropagation - Aprendizaje Pesos de la capa oculta a la capa de salida: ∂netk ∂J ∂J ∂netk = = −δk ∂wkj ∂netk ∂wkj ∂wkj ∂J es la sensibilidad del nodo k. donde δk = − ∂net k ∂netk = yj , ∂wkj δk = − ∂J ∂J ∂zk =− = (tk − zk )f 0 (netk ) ∂netk ∂zk ∂netk ⇒ ∆wkj = ηδk yj = η(tk − zk )f 0 (netk )yj Backpropagation - Aprendizaje Pesos de la capa de entrada a la capa oculta: ∂J ∂J ∂yj ∂netj ∂J 0 = = f (netj )xi ∂wji ∂yj ∂netj ∂wji ∂yj c 1X (tk − zk )2 2 ∂J ∂ = ∂yj ∂yj =− c X k=1 ! =− c X k=1 (tk − zk )f 0 (netk )wjk = − k=1 c (tk − zk ) c X X ∂zk ∂netk ∂zk =− (tk − zk ) ∂yj ∂netk ∂yj k=1 wkj δk k=1 Sensibilidad, nodo de capa oculta: δj = f 0 (netj ) ⇒ ∆wji = ηxi δj = ηxi f 0 (netj ) c X k=1 Pc k=1 wkj δk . wkj δk Backpropagation - Aprendizaje Capa Oculta δk = (tk − zk )f 0 (netk ), δj = f 0 (netj ) c X k=1 wkj δk Backpropagation - Aprendizaje La regla se puede generalizar para los casos: Los nodos de entrada están conectados directamente a los de la salida. Más de una capa oculta Se usan distintas f en distintas capas Cada nodo tiene una f distinta Cada nodo tiene un paso de aprendizaje diferente Backpropagation - Protocolos de Aprendizaje Tres esquemas básicos de aprendizaje: Estocástico: se elige un subconjunto aleatorio de los patrones Batch: se usan todos los patrones En línea: uno a uno a medida que aparecen Esquema Estocástico Esquema Batch Backpropagation Se considera todos los patrones y se actualiza con una suma del aporte de todos, es decir tomando como error: n X p=1 Jp Backpropagation - Curvas de Aprendizaje Se busca un mínimo de J que se puede ver como una superficie de error. Si tiene muchos mínimos locales, puede quedarse en uno. Si es muy suave el descenso es muy lento. En dimensiones grandes es muy probable obtener mínimos locales. En la práctica se suele llegar a un mínimo local, mover los pesos de ese punto y volver a iterar. Backpropagation como un mapeo del espacio de caractesrísticas Como la última etapa es un discriminante lineal, el entrenamiento se puede ver como una deformación del espacio en otro separable. Graficamente para el XOR: Backpropagation - Interpretación de los pesos aprendidos Los pesos en uno de los nodos de la capa oculta representan los valores que dan máxima respuesta de ese nodo. Se puede explicar la solución como haber encontrado los pesos que corresponden a un filtro matcheado. Backpropagation - Bayes, probabilidad Se puede probar que en el límite con infinitos datos, la red entrenada aproxima en mínimos cuadrados las probabilidades a posteriori: gk (x, w) ≈ P (wk |x) ¡Pero asumiendo que hay suficientes nodos en la capa oculta! Backpropagation - Bayes, probabilidad La salida de la red se puede interpretar como una probabilidad: Tomando: f (netk ) ∝ enetk y normalizando para que sean probabilidades: enetk netm m=1 e zk = Pc Backpropagation - Consejos y Mejoras La función de transferencia: f (.) debe ser: No lineal Que sature (acotada) Continua y derivable (para poder hacer descenso por el gradiente) monotonía Polinomios: hacen inestables la solución. Se suele usar la sigmoide. Backpropagation - Sigmoide f (net) = a tanh(b.net) = a 2a 1 − eb.net = −a b.net 1+e 1 + e−b.net Backpropagation - Consideraciones Normalizar la entrada: es conveniente modificar la entrada para que las caracterísiticas tengan igual media y varianza. Entrenar con ruido: puede ser útil entrenar agregando ruido de hasta 10% en la entrada para evitar sobre-entrenamiento. Transformar los datos de entrada: si se conoce transformaciones que describan la variabilidad de los datos: por ej en OCR: rotación, escala,negrita... entonces se puede hacer crecer el conjunto de entrenamiento aplicando estas transformaciones. Backpropagation - Tamaño de la capa oculta Relacionada con la complejidad de la superficie de decisión. En general funciona bien la regla empírica: Tantos nodos para que haya n/10 parámetros por determinar. Backpropagation - Inicialización de los pesos Se quiere aprender las clases a la misma velocidad: Elección de pesos dist uniforme: −ŵ < w < ŵ con ŵ de forma que la salida de los nodos ocultos esté en un rango no saturado, −1 < neti < 1, si no es dificil que esos nodos se ajusten en el aprendizaje. Ejemplo, d entradas: 1 ŵ = √ d Lo mismo se aplica a los pesos de la capa final: inicializar con √ √ −1/ nH < wkj < 1/ nH Backpropagation - Velocidad de aprendizaje Se considera el óptimo como el que lleva al mínimo local en una aproximación cuadrática: ∂2J ∂J ∆w = 2 ∂w ∂w Oteniendo: ηopt = ∂2J ∂w2 −1 Backpropagation - Velocidad de aprendizaje Backpropagation - Momento o inercia Para evitar estancarse en mesetas: w(m + 1) = w(m) + ∆w(m) + α∆w(m − 1) en general con α cercano a 1. Backpropagation - Paso variable Weight Decay: wnew = wold (1 − ε), 0 < ε < 1. Se puede probar que es equivalente a tomar un nuevo J: Jef (w) = J(w) + 2ε t ww η Tiene el efecto de regularizar la frontera ( Porqué? ). Backpropagation - Hints Poner como salida una categorización jerárquica ayuda a aprender mejor a la red. Esas salidas luego se descartan. Backpropagation - Métodos de segundo orden Se puede usar técnicas más elaboradas para llegar al mínimo: Hessiana (aproximación de segundo orden) Quickprop (aproximación rápida de segundo orden) Gradiente conjugado (mantiene la dirección de descenso) Otros tipos de redes Las funciones no lineales son RBF. TDNN (Time Delay) (con memoria). Recursivas.