Download w - Centro de Inteligencia Artificial
Document related concepts
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