1. Índice
!! Introducción
Redes Neuronales !! Perceptrón
!! Regla de Perceptrón, Regla Delta
!! Perceptrón Multicapa
!! Backpropagation
Métodos de Aprendizaje Automático - InCo 2
Introducción Problemas Adecuados para ANN
!! Modelo y método de aprendizaje para aproximar !! Instancias son representadas por vectores atributo-valor.
funciones reales y discretas.
!! La salida de la función puede ser discreta, real o vector
!! Uno de los métodos más efectivos para interpretar real o discreto.
datos ruidosos como imágenes y sonido.
!! Paradigma conexionista, inspirado por la observación !! Los datos de entrenamiento pueden contener errores.
del sistema nervioso biológico.
!! Largos tiempos de entrenamiento son aceptables.
!! En síntesis, consiste en la interconexión de unidades
simples (neuronas), donde cada una posee entradas !! Rápido tiempo de ejecución de la red.
reales y produce una salida real.
!! La necesidad de interpretar la función aprendida no es
relevante.
Métodos de Aprendizaje Automático - InCo 3 Métodos de Aprendizaje Automático - InCo 4
2. Perceptrón Perceptrón
!! Es el sistema de ANN más simple.
!! Dada una entrada en forma de vector (x1,…,xn), la
salida o(x1,…,xn) se calcula como:
!! El aprendizaje de un perceptrón consiste en encontrar
los pesos w0,…,wn que produzcan la salida deseada dada
!! Donde cada wi es un valor real constante o peso que una entrada.
determina la contribución de la entrada xi en la
salida. !! Por lo tanto, el espacio de hipótesis consiste en el
!! w0 es el umbral que debe superar la combinación conjunto de vectores reales:
lineal de las entradas para que el perceptrón
devuelva 1.
Métodos de Aprendizaje Automático - InCo 5 Métodos de Aprendizaje Automático - InCo 6
Perceptrón Perceptrón
!! Puede verse como un hiperplano superficie de decisión en un
espacio n-dimensional. !! Un perceptrón puede representar operaciones
booleanas básicas, ej: AND, OR, NOT.
El perceptrón devuelve 1 si la instancia está de un lado del plano
!!
!! Asumiendo true = 1, false = -1, una
y -1 si está del otro.
compuerta AND puede implementarse por
ejemplo, con un perceptrón de dos entradas y
!! No siempre es posible separar las instancias positivas y negativas
(ejemplo (b)), en los casos en que sí es posible se le llama pesos w0 = -0.8, w1 = w2 = 0.5.
linealmente separable(ejemplo (a)). !! La operación XOR no es posible representarla
mediante un perceptrón ya que no es
linealmente separable.
!! Sin embargo, es claro que cualquier función
booleana puede representarse como una red
interconectada de perceptrones.
Métodos de Aprendizaje Automático - InCo 7 Métodos de Aprendizaje Automático - InCo 8
3. Regla de Perceptrón Regla de Perceptrón
!! Esta regla permite ajustar los pesos de un !! La regla de perceptrón:
perceptrón para lograr la salida deseada para cada
ejemplo de entrenamiento.
!! Los pesos del perceptrón son inicializados con
valores aleatorios.
!! t es el valor deseado de la salida
!! Iterativamente se aplica la regla para ajustar los
pesos para cada ejemplo de entrenamiento. !! o es el valor de la salida generada por el perceptrón.
!! El proceso se finaliza cuando el perceptrón clasifica !! ! es una constante positiva llamada constante de
correctamente todos los ejemplos. aprendizaje, su rol es moderar el grado de ajuste de
cada iteración (usualmente un valor pequeño, ej: 0.1).
Métodos de Aprendizaje Automático - InCo 9 Métodos de Aprendizaje Automático - InCo 10
Descendiente por Gradiente: Regla Delta Descendiente por Gradiente: Regla Delta
!! La regla de Perceptrón ajusta con éxito funciones !! Se considera una medida de error de entrenamiento:
linealmente separables, pero falla en converger si los
ejemplos no son linealmente separables.
!! La regla delta soluciona este problema, converge a la
mejor aproximación al concepto objetivo.
!! Siendo D el conjunto de ejemplos de entrenamiento, td es
el valor deseado para el ejemplo d, y od el valor de la salida
!! La idea es utilizar descendiente por gradiente, para devuelta por el perceptrón aplicado al ejemplo d.
esto se considera un perceptrón sin umbral o unidad
lineal, cuya salida es:
!! E es la mitad del cuadrado de la diferencia entre el valor
deseado y el valor obtenido, sumada para cada ejemplo de
entrenamiento.
Métodos de Aprendizaje Automático - InCo 11 Métodos de Aprendizaje Automático - InCo 12
4. Descendiente por Gradiente: Regla Delta Descendiente por Gradiente: Regla Delta
!! La idea es modificar el vector de pesos en la dirección !! Cada ejemplo es un par (x,t), donde x es el vector
que produce el mayor decremento del error, hasta llegar
al mínimo error posible. de valores de entrada y t la salida deseada, el
!! Se logra derivando E con respecto a cada componente del algoritmo queda:
vector w (gradiente de E respecto a w): !! Inicializar cada wi con valores aleatorios
!! Inicializar cada "wi en 0
!! Hasta tener un error aceptable, repetir:
!! Para cada ejemplo (x,t):
!! Computar la salida o dado x#
!! El opuesto de este vector indica la dirección de mayor
!! Para cada "wi:
decremento del error.
!! La regla de ajuste queda: !! "wi = "wi+ !(t-o)xi(1)
!! Para cada peso wi:
!! wi = wi+ "wi(2)
Métodos de Aprendizaje Automático - InCo 13 Métodos de Aprendizaje Automático - InCo 14
Descendiente por Gradiente Incremental Perceptrón Multicapa
!! La convergencia puede ser lenta. !! Un solo perceptrón puede expresar solamente superficies
de decisión lineales.
!! Si hay múltiples mínimos locales, la convergencia al
mínimo global no está garantizada. !! Una red interconectada de perceptrones puede representar
superficies de decisión no lineales.
!! Variación: descendiente por gradiente incremetal.
!! ¿Qué tipo de unidad utilizar como base?
!! En vez de actualizar los pesos luego de analizar todos los !! Unidades lineales: producen redes multicapa que solo
ejemplos, se hace incrementalmente, en cada ejemplo. En pueden representar funciones lineales.
el algoritmo anterior, se elimina (2) y se cambia (1) por: !! Perceptrón con umbral: su discontinuidad no lo hace
diferenciable, no es apropiado para descendiente por
gradiente.
wi = wi+ !(t-o)xi#
!! Unidad Sigmoid: solución.
Métodos de Aprendizaje Automático - InCo 15 Métodos de Aprendizaje Automático - InCo 16
5. Perceptrón Multicapa: Unidad Sigmoid Perceptrón Multicapa: Unidad Sigmoid
!! Es una unidad cuya salida es una función diferenciable no !! La salida de la unidad varía entre 0 y 1.
lineal de sus entradas. !! Crece monótonamente con la entrada.
!! Primero computa la combinación lineal de sus entradas y !! Mapea un gran rango a un pequeño rango: squashing
luego computa la función sigmoid: function.
!! Su derivada se calcula fácilmente:
!! El término e-y se puede cambiar por e-ky donde k es
constante positiva que ajusta el paso del umbral.
!! La función tanh (tangente hiperbólica) también suele ser
utilizada, devuelve valores entre -1 y 1.
Métodos de Aprendizaje Automático - InCo 17 Métodos de Aprendizaje Automático - InCo 18
Algoritmo de Backpropagation Algoritmo de Backpropagation
!! Se utiliza para aprender los pesos de una red multicapa. !! Nuevamente se utiliza descendiente por gradiente para
!! Utiliza descendiente por gradiente para minimizar el minimizar E.
cuadrado del error entre el valor de salida y el valor
deseado. !! La superficie de error puede tener varios mínimos locales,
!! Ahora se considera el error producido por multiples por lo tanto, no está garantizada la convergencia al
salidas: mínimo global.
!! Este algoritmo se aplica a redes de capas feedforward,
en esta arquitectura, la capa n conecta sus entradas con
!! Donde salidas es el conjunto de unidades de salida, tkd y okd salidas de la capa n-1 y sus salidas con entradas de la capa
son la salida deseada y obtenida asociadas a la k-esima n+1.
unidad y el ejemplo d.
Métodos de Aprendizaje Automático - InCo 19 Métodos de Aprendizaje Automático - InCo 20
6. Algoritmo de Backpropagation Algoritmo de Backpropagation: Dos Capas
!! Ejemplo arquitectura feedforward: !! Cada ejemplo es un par (x,t), donde x y t son vectores de
entrada y salida respectivamente.
!! ! es la constante de aprendizaje.
!! nin es el número de entradas de la red
!! noculta es el número de unidades en la capa oculta.
!! nsalidaes el número de unidades de salida
!! La entrada de la unidad i hacia la j se denota xji, y el peso
de i a j se denota wji.
Métodos de Aprendizaje Automático - InCo 21 Métodos de Aprendizaje Automático - InCo 22
Algoritmo de Backpropagation: Dos Capas Algoritmo de Backpropagation: General
!! Crear la red de nin entradas, noculta unidades ocultas y nsalida !! El algoritmo anterior se generaliza fácilmente para redes
unidades de salida. con una profundidad arbitraria.
!! Inicializar los pesos con valores aleatorios pequeños.
!! Hasta tener un error aceptable, repetir !! La regla para computar los pesos de las unidades de salida
!! Para cada (x,t) en los ejemplos de entrenamiento:
!! Propagar entrada hacia delante: dada la entrada x en la red, computar cada salida de es igual.
cada unidad de la red.
!! Propagar errores hacia atrás:
!! Para cada unidad de salida k calcular el error $k#
!! La regla para computar los errores en las unidades
ocultas:
!! Para cada unidad oculta, calcular su error $h:
!! Actualizar cada peso wji:
!! El error $r para la unidad r de la capa m se computa a
partir de los error $ de la siguiente capa m+1.
Métodos de Aprendizaje Automático - InCo 23 Métodos de Aprendizaje Automático - InCo 24
7. Algoritmo de Backpropagation: Momento Diseño de una Red
!! Una variación en la regla de actualización de pesos: !! Puntos a considerar:
agregar momento. !! Entradas: ¿qué atributos, propiedades del dominio considerar? ¿Normalizar?
!! La actualización del peso en la n-esima iteración depende ¿Discretaso reales? ¿Rango? ¿Cuántas? ¿Course of dimensionality?
parcialmente de la n-1 iteración:
!! Arquitectura: ¿Cuántas capas? ¿Cómo interconectarlas?
!! Función de activación: ¿Cuál utilizar? ¿Con qué umbral?¿En qué rango?
!! "wji(n) es la actualización de un peso en la n-esima !! Salidas: ¿Cuántas? ¿Qué devuelven? ¿En qué rango? ¿Discreto o real?
iteración.
!! % es una constante llama momentum, con 0!%<1. !! Ejemplos de entrenamiento: ¿De dónde los obtengo? ¿Cómo los represento?
¿Cuántos tengo? ¿Qué tan confiables son?
!! El efecto es dar inercia a la trayectoria de descendiente,
mantenerse moviendo en superficies planas e incrementar !! Algoritmo de entrenamiento: ¿Backpropagation u otro? ¿Cuándo parar de
la velocidad de convergencia. entrenar? ¿Offline u online? ¿Batch o incremental?
!! Constante de aprendizaje: ¿Cuándo corresponde utilizarla? ¿Qué valor usar?
¿Hay que decrementarlo a medida que avanza el entrenamiento?
Métodos de Aprendizaje Automático - InCo 25 Métodos de Aprendizaje Automático - InCo 26