Download Introduccion a las redes neuronales artificiales y sus aplicaciones
Document related concepts
Transcript
RBF Redes Neuronales con Base Radial (Poggio y Girosi,1990) Introducción a las Redes Neuronales Artificiales RBF Esquema de trabajo: •Estructura de una RBF •Problema de clasificación (otra vez) •Ejemplo XOR •Teorema de Cover (número de neuronas) •Problema de Interpolación (aproximación) de funciones •Aproximadores universales •RBF •RRBF •GRBF •Entrenamiento •Comparación MLP vs RBF •Resumen •Practica Introducción a las Redes Neuronales Artificiales RBF Estructura de la red: Capa de entrada: tiene tantos dispositivos como dimensionalidad de la data. Capa oculta: Hay una sola, neuronas nolineales usualmente con funciones de activación radial. El número de neuronas depende de la aplicación. Todas las neuronas son distintas. Capa de salida Capa salida: neurona lineal. Los pesos entre la capa oculta y esta deben ser determinados Capa de entrada Capa oculta Estos pesos tienen la particularidad que no se calculan, ellos están determinados por la función distancia Introducción a las Redes Neuronales Artificiales RBF Funciones de Activacion capa oculta: φ (r ) = e − r2 2σ 2 σ > 0 con r ∈ ℜ (σ=0.5,1.0,1.5) Introducción a las Redes Neuronales Artificiales RBF Problema de clasificación Sea H el conjunto de patrones de entrada que pertenecen a una clase. H=H1 U H2. ={x1,x2, ...,xN} Se dice que el conjunto es ϕ-separable si para un conjunto de funciones {ϕ1ϕ2,.....,ϕm1}, existe un vector W en Rm1 tal que Wtϕ(x) > 0, Wtϕ(x) < 0, x pertenece a H1 x pertenece a H2 Las funciones ϕi serán en un futuro las funciones de capa oculta Wtϕ(x)=0 es la superficie de separación. ϕ(x) = [ϕ1 (x) ϕ2 (x) ,.....,ϕm1(x) ]t Introducción a las Redes Neuronales Artificiales RBF Ejemplo:XOR Sean (1,1) 0 (0,0) (0,1) 1 ϕ1(x)= exp(-||x-x1||) ϕ2(x)= exp(-||x-x2||) ϕ1 (1,0) Σ X ϕ2 ϕ1 ϕ2 (1,1) 1 0.1353 (0,1) 0.3678 0.3678 (0,0) 0.1353 1 (1,0) 0.3678 0.3678 ϕ2 b=0.9 -1 -1 (1,1) (0,0) (0,1) (1,0) ϕ1 Introducción a las Redes Neuronales Artificiales RBF Cuantas Neuronas hacen falta en la capa oculta? El teorema de Cover nos dice que mientras mas neuronas coloquemos en la capa oculta la probabilidad de que una dicotomía (particion binaria) sea ϕ – separable aumenta. ∑ a i1 i 2 Λ 0 ≤ i1 ≤ i 2 ≤ Λ ≤ i r ≤ m 0 ir x i1 x i Λ x i r = 0 2 ϕ(x)= xi1xi2.....xir son funciones no lineales (variedad racional de orden r) r=1 Æ hiperplanos; r=2 Æ hiperparabolas r=2 + cond. En coeficientes Æ hiperesferas Introducción a las Redes Neuronales Artificiales RBF Cuantos patrones son separables con m1 neuronas? Si X1,X2,.....,XN es una secuencia de patrones. Sea N el mayor entero tal que la secuencia es ϕ - separable ⎛ 1 ⎞ ⎛ n −1 ⎞ ⎟⎟ P ( N = n ) = ⎜ ⎟ ⎜⎜ ⎝ 2 ⎠ ⎝ m1 − 1⎠ n E(N)=2m1 Con el problema del O exclusivo bastó con dos neuronas. Cuantas Neuronas hacen falta en la capa oculta? OJO: OJO: Aunque Aunquelas las formas formasde delaladem. dem. No Noson soniguales igualesalal de delas lasfunciones funciones radiales, radiales,elel argumento argumentopuede puede mantenerse. mantenerse. Muchas! Asintóticamente N=2m1 (si tengo m1 neuronas puedo esperar separar hasta 2m1 patrones) Introducción a las Redes Neuronales Artificiales RBF Problema de Interpolación z Es una técnica para hacer ajustes de funciones o superficies z Utiliza la data para hacer tal aproximación z Interpola la data restante (nueva) { Queremos encontrar para N puntos X ∈ ℜ m 0 i {d i ∈ ℜ} distintos con salida deseada Una función F :ℜ → ℜ N F ( X i ) = di } 1 tal que i = 1,2,...., N Introducción a las Redes Neuronales Artificiales RBF Un aproximador universal es buscar F de la forma F ( X ) = ∑ wiφ ( X − X i N {φ ( X − X ) i y ) i = 1,2,3..., N i =1 i = 1,2,3..., N } Funciones no-lineales arbitrarias Nuevo dato Funcion desconocida Data de Entrenamiento x Introducción a las Redes Neuronales Artificiales RBF Los Xi son los centros, por esto decimos que todas las neuronas son distintas, que es una diferencia importante de los perceptrones multicapas visto anteriormente. F ( X i ) = di i = 1,2,...., N F (X ) = ∑ wφ( X N i =1 w1φ11 + w2φ12 + w1φ21 + w2φ22 + Μ Μ w1φ N 1 + w2φ N 2 + Con ( Λ Λ Λ Λ φ ji = φ x j − xi i − Xi ) + wN φ1N = d1 + wN φ2 N = d 2 Μ + wN φ NN = d N ) Introducción a las Redes Neuronales Artificiales RBF ⎡ φ11 φ12 Λ ⎢φ φ Λ 21 22 ⎢ ⎢ Μ Μ Μ ⎢ ⎣φ N 1 φ N 2 Λ ⎡ φ11 φ12 Λ ⎢φ ⎢ 21 Φ= ⎢ Μ ⎢ ⎣φ N 1 φ N 2 Λ φ1N ⎤ ⎥ φ2 N ⎥ ⎡ w1 ⎤ ⎡ d1 ⎤ ⎢w ⎥ ⎢d ⎥ 2⎥ 2⎥ ⎢ ⎢ = ⋅ Μ ⎥ ⎢ Μ⎥ ⎢ Μ⎥ ⎥ ⎢ ⎥ ⎢ ⎥ φ NN ⎦ ⎣ wN ⎦ ⎣d N ⎦ φ1N ⎤ ⎥ φ2 N ⎥ Matriz de interpolación Μ⎥ ⎥ φ NN ⎦ Introducción a las Redes Neuronales Artificiales RBF Realmente puedo hacer esto? Es invertible la matriz? Teorema (Micchelli, 1986): La matriz Φ es nosingular si todos los valores de la data son distintos y las funciones ϕ son de un cierta clase amplia (que incluyen las multicuadráticas, multicuádraticas inversas y las gausianas) Introducción a las Redes Neuronales Artificiales RBF • Multicuadrática φ (r ) = (r + c 2 2 ) 1 2 c > 0 con r ∈ ℜ • Multicuadrática Inversa φ (r ) = (r 1 2 +c 2 ) 1 c > 0 con r ∈ ℜ 2 • Gausiana φ (r ) = e − r2 2σ 2 σ > 0 con r ∈ ℜ Introducción a las Redes Neuronales Artificiales RBF Resumen • Ajusta el 100% de la data de entrenamiento (error=0) • Entrenamiento (en dos etapas) no iterativo. En Enlalapráctica práctica podemos podemostener tener sistemas sobre sistemas sobre determinados. determinados.El El sistema sistemapodría podría ajustar data ajustar datacon con ruido (agrega ruido (agrega incertidumbre). incertidumbre). • Primera etapa: determinar las neuronas (usando unicamente los datos). • Segunda etapa:Determinar los pesos resolviendo el sistema de ecuaciones. • Qué ocurre con la generalización? Introducción a las Redes Neuronales Artificiales RBF Si entrenamos con una data que contiene ruido, la función que interpola exactamente es altamente oscilatoria (poco deseable). Queremos una función mas suave. Modificaciones: 1. 2. 3. 4. El número de funciones no es exactamente el número de datos. Los centros no necesariamente son los mismos datos. Los parametros de las neuronas ( σ ) no tienen que ser los mismos para cada neurona. Incluimos el sesgo (compensa con el valor promedio de las funciones de activación y los correspondientes valores deseados). Ahora tenemos una RBF (Radial Basis Function) o Red de Base Radial Introducción a las Redes Neuronales Artificiales RBF 1 Salida lineal Capa de entrada Funciones de base radial y (X)=Σ wjϕj(x) + w0 = Σ wjϕj(x) con j=0..M < N ϕj(x)= exp( - ||x-tj||2 / 2σj2 ) Introducción a las Redes Neuronales Artificiales RBF Tenemos un sistema de la forma Y=WΦ Podemos encontrar los pesos, mediante la minimización de la función de error cuadrático. Con las neuronas fijas (los centros y el parámetro de dispersión), podemos buscar minimizar la función de error con respecto a los pesos. Esto resulta en resolver la ecuación: (ver tarea) ΦTΦwT= ΦTD (1) La solución involucra la pseudoinversa de Φ = [ ( ΦΤΦ )−1 ΦΤ ]. En la práctica el sistema (1) se resuleve usando descomposición en valores singulares. Introducción a las Redes Neuronales Artificiales RBF Otra forma de garantizar regularización (usando todos los datos) es... 2 N 1 1 min E ( F ) = ∑ [d i − F ( xi )] + λ DF 2 i =1 2 Error de aproximación 2 Penalización D es un operador lineal diferencial, λ es un parámetro de regularización La solución es de la forma: Fλ ( x) = N 1 λ ∑ [d i =1 i − F ( xi )]∗ G ( x, xi ) Introducción a las Redes Neuronales Artificiales RBF Fλ ( x) = N 1 λ ∑ [d i =1 i − F ( xi )]∗ G ( x, xi ) En esta ecuación las G(x,xi) son las funciones de Green asociadas con el operador diferencial L, definido como ~ L = DD Las funciones de Green forman una base N-dimensional para la clase de funciones suaves. Si el operador diferencial D tiene las propiedad de ser translacionalmente invariante (depende solo de la distancia entre los argumentos) y rotacionalmente invariante (igual para cualquier radio o distancia), entonces G ( x, xi ) = G ( x − xi ) Introducción a las Redes Neuronales Artificiales RBF Redes Regularizadas 1 Salida lineal Capa de entrada Funciones de Green Introducción a las Redes Neuronales Artificiales RBF Si D = ∑ n ⎛ ∂ ∂ ⎜ + + 2 2 ⎜ ∂x2 n !2 ⎝ ∂ x 1 σ 2n i n 2 2 ∂ + ∂ x m2 0 2 Λ ⎞ ⎟ ⎟ ⎠ n Entonces, ⎛ 1 G ( x, xi ) = exp⎜⎜ − 2 x − xi ⎝ 2σ i ⎞ ⎟⎟ ⎠ Introducción a las Redes Neuronales Artificiales RBF wi es el i - esimo elemento de W = (G + λI ) −1 ρ d con ⎡ G11 G12 Λ ⎢G 21 ⎢ G= ⎢ Μ ⎢ ⎣GN 1 GN 2 Λ y G1N ⎤ ⎥ G2 N ⎥ Μ⎥ ⎥ GNN ⎦ Gij = G ( xi , x j ) = G ( x j , xi ) Además es positiva definida para ciertas clases de funciones (D), luego es invertible. Si λ =0, entonces G= Φ para el caso de funciones de green radiales. Introducción a las Redes Neuronales Artificiales RBF GRBF (Redes de base radial generalizadas) Al igual que antes, una de las dificultades es el gran número de neuronas en la capa oculta, lo cual requiere de un gran número de operaciones para hacer la inversión de la matriz. (Dato: número de op. para invertir una matriz NxN es O(N3)!!!!) La idea es hacer una aproximación con una red sub-óptima, en el sentido de que el error cometido es distinto de cero. Esto se logra reduciendo la complejidad de la red, haciendo la expansión sobre una familia de funciones (reducidas) linealmente independientes (como hicimos antes). m1 F * ( x) = ∑ wiϕi ( x) con mi < N i =1 Introducción a las Redes Neuronales Artificiales RBF m1 F * ( x) = ∑ wiϕi ( x) con mi < N i =1 Una escogencia natural son la funciones de base radial ϕ i ( x ) = G ( x − ti ) Con los centros ti a ser determinados. (Si N=m1 y ti=xi, tenemos la solución anterior). 2 N Queremos minimizar; E ( F *) = ∑ [d i − F * ( xi )] + λ DF 2 i =1 ( ) 2 ⎡ ⎤ = ∑ ⎢d i − ∑ w j G xi − t j ⎥ + λ DF i =1 ⎣ j =1 ⎦ N m1 2 Introducción a las Redes Neuronales Artificiales RBF Esto se logra con la resolución del siguiente sistema de ecuaciones: Con: (G G + λG )w = G d T T 0 ⎡ G(x1, t1) G(x1, t2 ) Λ G(x1, tm1 ) ⎤ ⎢G(x , t ) ⎥ ( , ) G x t 2 1 2 m1 ⎥ ⎢ G= ⎢ Μ Μ ⎥ ⎢ ⎥ ⎢⎣G(xN , t1) G(xN , t2 ) Λ G(xN , tm1 )⎥⎦ ⎡ G(t1, t1) G(t1, t2 ) Λ G(t1, tm1 ) ⎤ ⎢ G(t , t ) ⎥ ( , ) G t t 2 1 2 m1 ⎥ G0 = ⎢ ⎢ Μ Μ ⎥ ⎢ ⎥ ( , ) ( , ) ( , ) G t t G t t G t t Λ ⎢⎣ m1 1 m1 2 m1 m1 ⎥ ⎦ Introducción a las Redes Neuronales Artificiales RBF Ejemplo:XOR Sean (1,1) 0 (0,0) (0,1) 1 ϕ1(x)= exp(-||x-x1||) ϕ2(x)= exp(-||x-x2||) ϕ1 (1,0) Σ X ϕ2 ϕ1 ϕ2 (1,1) 1 0.1353 (0,1) 0.3678 0.3678 (0,0) 0.1353 1 (1,0) 0.3678 0.3678 ϕ2 b=0.9 -1 -1 (1,1) (0,0) (0,1) (1,0) ϕ1 Introducción a las Redes Neuronales Artificiales RBF Planteamos el sistema de ecuaciones…. G ( x1 − t1 G ( x2 − t1 G ( x3 − t1 G ( x4 − t1 )w + G( x )w + G( x )w + G( x )w + G( x 1 1 1 1 − t2 2 − t2 3 − t2 4 − t2 1 )w )w )w )w + b = d1 2 + b = d2 2 + b = d3 2 + b = d4 2 RBF-OExcl.m Introducción a las Redes Neuronales Artificiales RBF Estrategias para la escogencia de los centros 1. Centros fijos seleccionados al azar. •Mas sencillo de todos los métodos •Tips: •Escoger ( G x − ti 2 ) = exp ⎛⎜⎜ − dm ⎝ 1 x − ti max 2 ⎞ ⎟⎟ ⎠ Con m1 =número de centros, dmax=distancia máxima entre los centros •Usar centros con gausianas mas anchas donde hay poca data (requiere hacer experimentación con la data) •Experimentar con distintos números de neuronas. Introducción a las Redes Neuronales Artificiales RBF 2. Selección de centros por clusters • Busca centros apropiados donde existe similaridad en data y agruparlos. Se quiere lograr que los centros sean aproximadamente la media del “cluster” . Hacer la actualización de los pesos. • Algortimo 1. Escoger m1 centros aleatoriamente, {tk(0)}, k=1,…,m1 2. Mientras ||tk(n+1)-tk(n)|| < tolerancia 1. Escoger patron x al azar 2. K(x)=argmin{||x - tk(n)||}, k=1,…,m1 tk(n) + α [ x - tk(n) ], k=k(x) 3. tk(n+1)= tk(n) caso contrario Luego puedo usar la pseudoinversa para calcular los pesos o usar LMS pensando en estas como entradas a un ADALINE. Introducción a las Redes Neuronales Artificiales RBF 3. Selección supervisada de centros. Idea: Adaptar los parametros libres (pesos,centros, y parametros de dispersion) usando LMS (descenso de gradiente) para minimizar ( ) 1 1 ⎛ ⎞ 2 E = ∑ e j = ∑ ⎜ d − ∑ wi G x j − ti ⎟ 2 j =1 2 j =1 ⎝ i =1 ⎠ N N M 2 Cada actualización requiere del gradiente de la función con respecto al parámetro en cuestión. Introducción a las Redes Neuronales Artificiales RBF Actualización de los pesos ( N ∂E (n) = ∑ e j (n)G x j − ti (n) ∂wi (n) j =1 ) wi ( n + 1) = wi ( n ) − η1 ∂E ( n ) ∂wi ( n ) Actualización de los centros ( [) N x j − ti ( n) ∂E (n) = wi (n)∑ e j (n)G ′ x j − ti (n) ∂ti (n) 2 x j − ti j =1 ] ∂E ( n ) t i ( n + 1) = t i ( n ) − η 2 ∂t i ( n ) Introducción a las Redes Neuronales Artificiales RBF Para las dispersiones ( ) N ∂E (n) = − wi (n)∑ e j (n)G′ x j − ti (n) σ i−1 (n) ∂σ i (n) j =1 ∂E ( n ) σ i ( n + 1) = σ i ( n ) − η 3 ∂σ i ( n ) Se hace tan computacionalmente intensivo como las MLP!! Se puede usar un entrenamiento como los descrito anteriormenete y hacer la entonación de los parámetros con este proceso. Introducción a las Redes Neuronales Artificiales RBF 4. Selección no-supervisada de centros (redes Kohonen). Se representan los datos en una malla y se ejecuta un algoritmo auto-organizativo para determinar los centros. Introducción a las Redes Neuronales Artificiales RBF RBF MLP Tiene una sola capa oculta Puede tener mas de una capa oculta La función de transferencia en la capa oculta es distinta (dependencia de centros) Tipicamente las neuronas en las capas escondidas tienen la misma neurona Capa oculta es no lineal Las MLP todas las mientras que la de salida es neuronas pueden ser lineal nolineales (puede variar según aplicación) El argumento de capa oculta calcula norma euclidea entre entrada y centro La función de activación recibe el producto interno entre los pesos y la entrada Aproximador local Aproximador global Introducción a las Redes Neuronales Artificiales RBF Introducción a las Redes Neuronales Artificiales RBF Como calcular λ Sea 1 2 I − A(λ ) y V (λ ) = N 2 ⎤ ⎡1 [ ] tr I A ( λ ) − ⎥⎦ ⎢⎣ N Fλ = A( λ ) y con N ⎛ ⎞ ⎜ Fλ ( x k ) = ∑ a ki ( λ ) y i ⎟ i =1 ⎝ ⎠ El λ que minimiza V esta suficientemente cercano al λ que minimiza 1 R (λ ) = N N 2 [ ] f ( x ) − F ( x ) ∑ i λ i i =1 cuando queremos aproximar yi = f ( xi )+ ∈i Introducción a las Redes Neuronales Artificiales