Descargar la presentación
La descarga está en progreso. Por favor, espere
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.