La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Redes Perceptron Mg. Samuel Oporto Díaz

Presentaciones similares


Presentación del tema: "Redes Perceptron Mg. Samuel Oporto Díaz"— Transcripción de la presentación:

1 Redes Perceptron Mg. Samuel Oporto Díaz soportod@uni.edu.pe

2 Tabla de Contenido Redes de nivel simple Redes de nivel múltiple Análisis de redes de retro-propagación Efectividad del clasificador

3 Mapa Conceptual del Curso Redes Neuronales Arquitectura de RN Aprendizaje Métodos de Aplicación Ejercicios Clasificación de Alumnos Clasificación de Imágenes Pronóstico de Demanda Clasificación de Minucias Primera SesiónSegunda Sesión

4 Mapa Conceptual de la Sesión Neuronas Naturales Neuronas Artificiales Aprendizaje Reconocimiento de Patrones Arquitectura de las redes neuronales Aplicaciones No Recurrentes Recurrentes Aprendizaje supervisado Aprendizaje no supervisado Red Perceptron Red de retro-propagación Método de Trabajo

5 Objetivo de la Sesión Exponer los aspectos básicos de las redes neuronales. Exponer los conceptos acerca de las redes neuronales. Exponer los conceptos del aprendizaje natural y automático. Exponer los conceptos de reconocimiento de patrones. Plantear el modelo de redes neuronales artificiales. Exponer las arquitecturas de las redes neuronales.

6 REDES DE NIVEL SIMPLE

7 Perceptrón Separa espacio con hiperplanos y = f ( w 1 u 1 + w 2 u 2 +... + w n u n ), f(s) = { 1 si s 0, 0 si s<0 } Puede incluir offset w 0. Importante históricamente –estudiado muy detalladamente (Minsky y Papert 69) Es un clasificador lineal en 2 clases. –bueno si los patrones son linealmente separables –problema XOR w t.u =0 u1u1 u2u2

8 Arquitectura del Perceptrón Una capa de entrada y una capa de salida. Obedece la siguiente regla: w1w1 Θ w2w2 Y x1x1 x2x2 Entrada SumadorFunción de Transferencia Umbral Salida 1 if Σ entrada i * weight i > umbral -1 if Σ entrada i * weight i < umbral Salida =

9 Ejercicio 8 Diga si los siguientes patrones son linealmente separables

10 XOR El perceptron no puede aprender un XOR

11 Aprendizaje Perceptrón Se aplica la siguiente regla de aprendizaje perceptron: Donde: Es la velocidad de aprendizaje. Es el gradiente

12 Aprendizaje Perceptron Lo que busca el gradiente es minimizar el error E. E(w) w1w1 Decrecimiento de E(w) W(t)W(t+1)

13 Aprendizaje Perceptron La velocidad de aprendizaje, indica el tamaño del salto. pequeño grande

14 DESARROLLO DE APLICACIONES CON REDES NEURONALES

15 Ejercicio 9 - Perceptron Desarrolle una red neuronal – perceptrón simple - para aprender el siguiente patrón de comportamiento Pruebe la red entrenada y diga a que clase pertenecen los siguientes registros. X1X2clase 320 520 630 510 251 441 471 271 X1X2clase 42 34 26 65 61

16 Procedimiento de solución Recolección de datos Train Test Pre- procesamiento Entrenamiento W Pesos Definir la arquitectura Pruebaerror Parámetros

17 Épocas. Un paso de todos los patrones por el algoritmo de entrenamiento constituye una época. net.trainParam.epochs = epochs; Desempeño del entrenamiento Máximo error aceptable. net.trainParam.goal = goal; Visualización Cada cuantas épocas visualizar el error de entrenamiento net.trainParam.show = epochs;

18 Errores Error de entrenamiento E = |D train - Y| 2 / N Error del clasificador E = 1 – exitos / N E = |D test - Y| 2 / N Error para variables continuas Error = |D - Y| / D

19 function lab_11_perceptron_simple clc % PARAMETROS epochs = 5000; % RECOLECCION data = xlsread([pwdup, 'class_data.xls'],2,'A3:C10'); entrada = data(:,[1:2]); salida = data(:,3); entrada = entrada'; salida = salida'; %plotdata (entrada, salida, {'X1', 'X2'}) % PRE-PROCESAMIENTO % ----------------- % DEFINE ARQUITECTURA DE LA RED % neuronas neuronas_entrada = Rows(entrada); neuronas_salida = Rows(salida); %crea la red neuronal net = newp(minmax(entrada), neuronas_salida); % asigna pesos aleatorio net = init(net); % asignar parametros de configuracion a la red net.trainParam.epochs = epochs; % ENTRENA LA RED net = train(net, entrada, salida); % PRUEBA O SIMULACION datatest = xlsread([pwdup, 'class_data.xls'],2,'A16:B20'); entradatest = datatest(:,[1:2]); entradatest = entradatest'; % simulación result = sim(net,entradatest); disp([entradatest' result']) %plotdata (entrada, salida, entradatest, result, {'X1', 'X2'}) % ERROR % ----- Algoritmo

20 Ejercicio Prepare los datos para la tabla de verdad del AND y del OR para 2, 3 y 4 variable Verifique si el espacio es linealmente separable Diseñe la arquitectura de una red neuronal para cada caso. Verifique si la red es capaz de aprender. Identifique los pesos de la red.

21 REDES DE MÚLTIPLE NIVEL

22 Perceptrón Multicapa Red lineal Activaciones dependen: –entradas –activaciones de neuronas precedentes Derivadas ordenadas backpropagation 1 2 3 4 5 7 6 W ij 1 W ij 2 u1u1 u2u2 y1y1 y2y2 W ij 3 u1u1 u2u2 y1y1 y2y2 1234567

23 Perceptrón Multicapa w11=1 w12=1 w21=1 w22=1 w31=1 w32=-1.5 b1=0.5 b2=1.5 b3=0.5

24 MAPEADOR UNIVERSAL

25 Mapeo Universal Pregunta: –¿Qué tipo de funciones puedo representar con una RN? –La RN puede representar una función de N variables como combinación lineal de funciones en una variable (bajar dimensionalidad del problema) áreaperímetrocompacidadresultado 101522.50 Cuadro 101522.50 Paralelogramo 81321.13 Circulo 913.520.25 Pentágono 61120.17 Triangulo R 3 R 1

26 Mapeo Universal Idea: – Usando red con 2 capas ocultas es posible crear funciones tipo localizadas que combinadas pueden formar cualquier función suave Prueba intuitiva: – Fácil de ver en R 2 R. – Red: y = ANN (x 1,x 2 ) Paso 1: – Que mapeo obtengo con una sola neurona? y = logsig(.x 1 ) y = logsig(.x 2 )

27 Mapeo Universal Paso 2: – Uso Perceptron Multicapa – Puedo lograr pico en cualquier valor de x 1 con red de 1 sola capa oculta el ancho del pico depende del valor de b. – Puedo hacer lo mismo con x 2. x1x1 1 y b b b -b 1 1

28 Mapeo Universal Paso 3: – Agrupo redes en cada entrada en una sola red para combinar picos en x 1 y x 2. – Ajustando parámetros puedo obtener un pico bien definido centrado en cualquier punto de R 2. x1x1 1 y b b b -b 1 1 -2 x2x2 1 b b b -b 1 1

29 Mapeo Universal Paso 4: – Agregando una capa adicional 2 capas ocultas – Combinando estos picos se puede aproximar cualquier función de R 2 R con el grado de error que desee. x1x1 1 a b1 c1 -a 1 1 -2 x2x2 1 a d1 e1 -a 1 1 x1x1 1 a bn cn -a 1 1 -2 x2x2 1 a dn en -a 1 1 y f1f1 fnfn

30 Mapeo Universal

31 RED DE RETROPROPAGACION

32 Problema no separable linealmente Se busca obtener un algoritmo más general que permita integrar el aprendizaje entre las dos capas. 32

33 33 Problema no separable linealmente ¿Cuál es el tamaño de cada capa?

34 Problema no separable linealmente Aplicar descenso en la dirección del gradiente de error expresada como una función de los pesos. Tomar en cuenta los pesos de los arcos que unen AMBAS capas. Las neuronas de la capa intermedia no tienen una salida deseada. D X ¿D?

35 35 Retropropagation. Arquitectura

36 Retropropagación f() entradas Pesos k = capa sumatoria constante b función de transferencia resultado net =o k (n) salida calculada y k (n) x 1 (n) w k1 (n) x 2 (n) x 3 (n) w k2 (n) w k3 (n) e k (n) = d k (n) – y k (n) salida deseada d k (n) e k (n)

37 Función de transferencia

38 Regla de Aprendizaje Si j es una unidad de salida Si no

39 Aprendizaje entrada neta a i j i salida de i error de la salida k error total regla de aprendizaje η: velocidad de aprendizaje

40 Propiedades Discriminante universal: –Generar regiones para clasificar datos Generalización: –Inferir resultados sobre valores de entrada no usados anteriormente. –Interpolación y extrapolación Robustez: –Almacenamiento distribuido. –Al error de alguna neurona. Adaptabilidad: –Parámetros (Wij) –Estructura de la red. interpolación extrapolación

41 Ejercicio 10 Desarrolle una red neuronal de retro-propagación para aprender números entregados como imágenes binarias de tamaño 7x6 proporcionadas en la hoja del archivo de datos.

42 Procedimiento de solución Recolección de datos Train Test Pre- procesamiento Entrenamiento W Pesos Definir la arquitectura Pruebaerror Parámetros

43 Arquitectura de la Red 1

44 function error = lab_1a_retropropagacion % PARAMETROS epochs = 500; goal = 0.001; % RECOLECCION data = xlsread([pwdup, 'class_data.xls'], 3, 'C3:P81'); % PRE-PROCESAMIENTO %prepara la data [entrada, salida] = preparadata(data); entrada = entrada'; salida = salida'; % DEFINE ARQUITECTURA DE LA RED % neuronas neuronas1 = Rows(entrada); neuronas2 = 10; neuronas3 = Rows(salida); Si = [neuronas2 neuronas3]; % neuronas por capa TFi = {'tansig' 'purelin'}; % función transferencia %crea la red neuronal net = newff(minmax(entrada), Si, TFi); % asigna pesos aleatorio net = init(net); % asignar parametros de configuracion a la red net.trainParam.epochs = epochs; net.trainParam.goal = goal; % ENTRENA LA RED net = train(net, entrada, salida); % PRUEBA DE MEMORIA result = sim(net, entrada); result = round(result); error = 1 - exito(result, salida); % error de aprendizaje disp([salida' result']) disp(['error = ' num2str(error)]) % PRUEBA DE APRENDIZAJE dataT = xlsread([pwdup, 'class_data.xls'], 3, 'U3:AP81'); [entradaT, salidaT] = preparadata(dataT); entradaT = entradaT'; salidaT = salidaT'; result = sim(net, entradaT); result = round(result); error = 1 - exito(result, salidaT); disp([salidaT' result']) disp(['error = ' num2str(error)]) Ejercicio 10

45 function [entrada,salida] = preparadata(data) nums = round(Cols(data)/8); r = 0; entrada = []; salida = []; for s = 0:9 E1 = []; E2 = []; E3 = []; for i = 1:7 r = r + 1; if 1 <= nums; E1 = [E1, data(r,[ 1: 6])]; end, if 2 <= nums; E2 = [E2, data(r,[ 9:14])]; end; if 3 <= nums; E3 = [E3, data(r,[17:22])]; end; end r = r + 1; entrada = [entrada; E1; E2; E3]; salida = [salida ; s*ones(nums,1)]; end function E = exito(deseado, resultado) E = sum(1 - sign(abs(deseado - resultado)))/Cols(deseado); function P = pdwup P = pwd; P = P(1,[1:max(findstr(P,'\'))]); function c = Cols(m) [aux, c] = size(m); function r = Rows(m) [r, aux] = size(m); Ejercicio 10

46 Ejercicio 11 Diseñe un programa en matlab para determinar el número de neuronas de la capa intermedia que máximize el desempeño de la red. Verifique si a medida que se incrementa el número de neuronas de la capa intermedia el error se reduce. Verifique si a medida que se incrementa el número de épocas el rendimiento se incrementa.

47 Ejercicio 11 function lab_1b_perceptron_simple % PARAMETROS epochs = 50; goal = 0.001; %DATA ENTRENAMIENTO data = xlsread([pwdup, 'class_data.xls'],3,'C3:P81'); [entrada,salida] = preparadata(data); entrada = entrada'; salida = salida'; % DATA PRUEBA dataT = xlsread([pwdup, 'class_data.xls'],3,'U3:AP81'); [entradaT,salidaT] = preparadata(dataT); entradaT = entradaT'; salidaT = salidaT'; X = [], Y =[]; for neurons = 2:15 error = lab_1b_perceptron_simple_sub(entrada, salida, entradaT, salidaT, neurons, epochs, goal); X = [X; neurons]; Y = [Y; error]; end plot(X, Y);

48 Ejercicio 11 function error = lab_1b_perceptron_simple_sub(entrada, salida, entradaT, salidaT, neurons, epochs, goal) % DEFINE ARQUITECTURA DE LA RED neuronas1 = Rows(entrada); neuronas2 = neurons; neuronas3 = Rows(salida); %crea la red neuronal Si = [neuronas2 neuronas3]; % neuronas por capa TFi = {'tansig' 'purelin'}; % función transferencia net = newff(minmax(entrada), Si, TFi); net = init(net); % asignar parametros de configuracion a la red net.trainParam.epochs = epochs; net.trainParam.goal = goal; % ENTRENA LA RED net = train(net, entrada, salida); % SIMULACION result = sim(net,entradaT); result = round(result); error = 1 - exito(result, salidaT); disp(['error = ' num2str(error)])

49 ANALISIS DE LAS ANN

50 Velocidad de aprendizaje El maneja la velocidad de aprendizaje. Si es alto la red puede desestabilizarse. Incorporar a la modificación de los pesos, un término que incluya una proporción del último cambio realizado. Este término se denomina momento. es la contribución del momento.

51 ¿Mínimo local o global? El problema se resuelve utilizando la dirección del gradiente junto con un componente aleatorio que permita salir de los mínimos locales (subiendo en lugar de bajar). 51

52 Teorema de Kolmogorov Dada cualquier función continua f: [0 1] n R m, y = f(x), f puede ser implementada exactamente por una red neuronal de tres capas sin retroalimentación que tiene una capa de entrada de n elementos que unicamente copian las entradas a la siguiente capa, (2n + 1) elementos de procesamiento en la capa intermedia y me elementos de procesamiento en la capa de salida

53 Sobreajuste y subajuste La red de retropropagación es un método de ajuste de curvas. La red entrenada implementa un mapeo no lineal entre el espacio de entradas y salidas de manera que entradas cercanas entre sí producen salidas cercanas, por lo tanto una ANN es interpolativa. A mayor cantidad de neuronas en la capa oculta, la red puede variar más rápido en respuesta a los cambios de la entrada.

54 Subajuste La red produce un mapeo mas sencillo de lo que se requiere para implementar la relación entrada/salida Sintoma. Error alto. Solución. Aumentar los ciclos de entrenamiento, más neuronas capa intermedia, más capas

55 Sobreajuste La red produce un mapeo más complicado de lo que se requiere para implementar la relación entrada/salida. Síntoma. Error ante patrones de entrenamiento pequeño y error ante patrones de prueba alto. Solución. Menos ciclos de entrenamiento, menos capas, menos neuronas

56 Offset de f Las funciones de transferencia sigmoidal o tangente hiperbólica se pueden saturar, se saturan cuando los valores absolutos de sus entradas son grandes. Dado que la derivada participa en la regla de aprendizaje, puede suceder que ya no aprendan. Normalización de datos

57 EFECTIVIDAD DEL CLASIFICADOR

58 Validación Cruzada de k-conjuntos características... Entrenamiento eficacia 1 Promedio eficacia 2 eficacia 3 eficacia K Experimento 1 Experimento 2 Experimento 3 Experimento K total de ejemplos pruebaentrenamiento

59 Referencias Pattern Classication. R. O.Duda,P. E. Hart, and D.G.Stork. John Wiley & Sons, 2nd ed., 2001. Pattern Recognition and Machine Learning, C. M. Bishop, Springer, 2006. (An additional useful book)

60 PREGUNTAS

61 Mg. Samuel Oporto Díaz soporto@wiphala.net http://www.wiphala.net/oporto


Descargar ppt "Redes Perceptron Mg. Samuel Oporto Díaz"

Presentaciones similares


Anuncios Google