Você está na página 1de 22

PONTIFICIA UNIVERSIDAD CATLICA DEL ECUADOR FACULTAD DE INGENIERA

Apuntesde InteligenciaArtificial
Laboratorio:Redescon Conexioneshaciaadelante
JORGEAGUILARJARAMILLO

83 JorgeAguilarJ.

LABORATORIO: REDES CON CONEXIONES HACIA ADELANTE

OBJETIVOS

Poner en prctica los conocimientos adquiridos sobre el perceptrn multicapa Aprender cmo usar los algoritmos de retro propagacin para entrenar redes con conexiones hacia adelante. Conocer que funciones implementa Matlab, para este objetivo y usarlas Conocer los fundamentos para crear conjuntos de entrenamiento que permitan entrenar bien las redes. Entrenar la red para que simule una respuesta hacia nuevas entradas.

MARCO TERICO REDES CON RETRO PROPAGACIN El algoritmo de retropropagacin es una generalizacin de la regla de aprendizaje WidrowHoff. Esta adaptacin es para redes multicapa y funciones de transferencia diferenciables no lineales. La retropropagacin estndar es un algoritmo de gradiente descendiente, que como en la regla de aprendizaje de WidrowHoff los pesos de la red son modificados a lo largo del negativo de la funcingradientededesempeo. El trmino de retropropagacin se refiere a la forma en la que el gradiente se calcula para redes multicapa no lineales. Existe un nmero de variaciones en el algoritmo bsico que se basan en otras tcnicas estndar de optimizacin, tales como la gradiente conjugada y los mtodos de Newton. El Neural Network de Matlab implementa algunas de estas variaciones. Las redes con retropropagacin bien entrenadas tienden a brindar soluciones razonables al recibir entradas totalmentedesconocidas Este tipo de redes, con bias, una capa sigmuidal y una capa de salida lineal son susceptibles de aproximarcualquierfuncinenunnmerofinitodediscontinuidades.

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 84

ARQUITECTURA DE LA RED CON RETROPROPAGACIN La arquitectura de red neuronal ms utilizada para el algoritmo de retropropagacin es la red multicapaconconexioneshaciadelante Elmodelodeunaneurona es como se muestra en el siguiente grafico.

Ilustracin1NeuronaelementalconRentradas.(Fuente,Matlab)

Cada entrada est representada por un valor apropiado, que Matlab lo simboliza con p. La suma ponderada, , de los pesos y el bias (umbral) con los datos de entrada forma la entrada a la funcin de transferencia f. Las neuronas deben usar cualquier funcin diferenciable para generar sussalidas.

FuncinSigmuidalgenerasalidas entre0y1 FuncinTangencial:Salidasentre1 y1 FuncinLineal,lasalidapuedeser cualquiervalor

Ilustracin2.Funcionesdetranferencia(Matlab)

Las funciones ms usadas por este tipo de redes son: la funcin sigmuidal logsig , tangencial (tansig)ylineal(purelin).

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 85

Si la ltima capa de una red multicapa tiene neuronas sigmuidales, entonces la red se limita a un rango pequeo entre 0 y 1. Si se utilizan neuronas lineales en la capa de salida, tericamente los resultados pueden tomar cualquier valor. En retro propagacin es importante calcular las derivadasdelasfuncionesdetransferenciautilizadas. Cada una de las funciones de transferencia mencionadas contiene una derivada correspondiente: Matlab las implementa como: dtansig, dlogsig, y dpurelin. Para obtener el nombre de la derivada de una funcin de transferencia se debe invocar a la funcin de transferencia con la cadena:

Cdigo 1.- Comando para obtener la derivada de una funcin de transferencia

REDES CON CONEXIN HACIA ADELANTE Las redes Conexin hacia adelante tienen frecuentemente una o ms capas ocultas de neuronas sigmuidales seguidas de una capa de salida de neuronas lineales. Muchas capas de neuronas con funciones de transferencia no lineales permiten a la red aprender relaciones lineales y no lineales entrevectoresdeentradaysalidas.Lacapalinealdesalidapermitealaredproducirvaloresfuera delrangode1a+1.Porotraparte,sisenecesitalimitarlassalidasdelaredaunvalorespecfico, entonces la capa de salida debe usar una funcin sigmuidal de transferencia (como logsig.) Este tipoderedesnospermitirtenerunrangoespecialderespuestas.

Ilustracin3Redconfunciones:tansigypurelin

Esta red puede ser utilizada como un aproximador general de funciones. Ya que puede aproximar cualquier funcin que tenga un nmero finito de discontinuidades, teniendo el suficiente nmero deneuronasenlacapaoculta. Paraentrenarunared,generalmentesetienen4pasosenelprocesodeentrenamiento 1. Configurarlosdatosdeentrenamiento JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 86

2. Crearelobjetored:funcinnewff 3. Entrenarlared:funcintrain 4. Simularlarespuestadelaredparanuevasentradas:funcinsim

CONFIGURAR LOS DATOS DE ENTRENAMIENTO Enunproyectoderedesneuronales,elllegaralconjuntofinaldedatos,puedeconsumirel60%de todoelproyecto.Perounavezobtenidoslosdatos,enMatlab,estosdebendefinirsecomoendos variables: una para los datos de entrada y la segunda variable en la que consten los respectivos valoresdesalida. CREANDO UNA RED CON CONEXIN HACIA ADELANTE (NEWFF) Una vez que se tiene los datos de entrada y salida deseada, para entrenar una red con conexin hacia adelante necesitamos crear el objeto red. La funcin newff crea una red con conexin haciaadelanteyrequieredecuatroargumentosdeentradasydevuelveelobjetodered. 1. El primer argumento es una matriz de los mnimos y mximos b1 de las Ni entradas (Nix2 valores,paracadaunodelosNelementosdelvectordeentrada). 2. Elsegundoargumentoesunarregloquecontienelostamaosdecadacapa. 3. El tercer argumento es un arreglo que contiene los nombres de las funciones de transferenciaqueseusarnencadacapa. 4. Elltimoargumentocontieneelnombredelalgoritmodeentrenamientoaserusado. Veamosunejemplo:
Cdigo 2.- creacin de una red neuronal en Matlab

Asignamos al objeto net, la estructura de la red: Una red de dos capas2, dos vectores. Los valores para el primer elemento del vector de entrada estn en el rango de 1 hasta 2, los valores del segundo elemento del vector estn entre 0 y 5. Existen tres neuronas en la primera capa (capa oculta)yunaneuronaenlasegundacapa(desalida).
1
2

Matlab implementa la funcin mm=minmax(X) que obtiene estos valores, X representa los datos de entrada Ya que las neuronas de entrada solamente reciben los datos, Matlab, no la trata como una capa de neuronas

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 87

Lafuncindetransferenciaenlaprimeracapaestansigylafuncindetransferenciaenlacapade salidaeslinealyelalgoritmodedeentrenamientoestraingd. Este comando crea el objeto red y adems inicializa los pesos y los bias de la red, entonces la red seencuentralistaparaentrenar. Reinicializando los pesos Aunque la funcin anterior ya inicializa los pesos y bias, si se requiere una reinicializacin de los mismos puede hacrselo con el comando init. Esta funcin toma un objeto red como entrada y devuelveunobjetoredcontodoslospesosylosbiasreinicializados. Aquvemoscomounaredpuedeserinicializada(oreinicializada): ENTRENAMIENTO Una vez que los pesos y los bias han sido inicializados, la red est lista para ser entrenada. La red puedeserentrenadaparaaproximacindefunciones(regresinnolineal),asociacindepatrones o clasificacin de patrones. El proceso de entrenamiento requiere un conjunto de ejemplos que tenga un comportamiento apropiado para la red entradas p ( X) y salidas t ( Yd). Durante el entrenamiento los pesos y los bias de la red son ajustados iterativamente para minimizar la funcin de costo o error de la red net.performFcn. La funcin de desempeo predeterminada para redes con conexines hacia adelante es el error medio cuadrtico mse, el promedio del erroralcuadradoentrelassalidasdelaredaylosobjetivost. Todos los algoritmos de entrenamiento usan la funcin del gradiente de desempeo para determinar cmo ajustar los pesos, la gradiente es determina usando una tcnica llamada retro propagacin, que involucra la realizacin de hacer clculos hacia atrs de la red. Los clculos de retropropagacinsederivanusandolaregladelacadena. ALGORITMO DE RETROPROPAGACIN Hay muchas variaciones del algoritmo de retro propagacin, la implementacin ms simple de aprendizaje por retro propagacin actualiza los pesos y los bias de la red en la direccin en la que la funcin de desempeo decrezca ms rpido el negativo de la gradiente.Unaiteracindelalgoritmopuedeescribirsedelasiguientemanera:

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 88

E Ecuacin1..- Una Iterac cin del Algo oritmo de Retropropag R acin Donde Wijes un vec ctorde pesos y bias conc currentes. eslatasa adeaprendiz zaje. dos formas diferentes d de e implement tar el algorit tmo de gradi iente descen ndente; el Existen d modo inc cremental y por lotes. En E el modo incremental, el gradien nte es calculado y los pesos son actualizados despus de que cada a ejemplo se e aplica a la red. En el modo m por plos (una po oca) son aplicadas a la red r antes de que se actu ualicen los lotes todos los ejemp pesos. es e el gradienteactual y u

ENTR RENAMIENT TO POR LOT TES Aqu lospesosylosbiasdela aredseactu ualizarnni icamentedespusdequetodoelconjuntode entre enamiento h ha sido aplicado a la red. Los gradientes g calculados c e en cada eje emplo de entre enamientoso onsumadosparadeterm minarelcamb bioenlospe esosylosbias. Grad diente descen ndente: En el entrenamie ento por lot tes la funcin de gradien nte descendente ms empinadaestrai ingd.Lospe esosylosbia assonactualizadosendir reccindeln negativodelgradiente d Siserequiereentrenarunaredusandoestafun ncinsedebe ecambiar delafuncindedesempeo. d de trainF Fcn a traing gd, entonce es llamar a la l funcin t train. Existe solo una fu uncin de la red entre enamientoas sociadaaunaredenpar rticular. Exist ten siete pa armetros de entrenam miento asociados a trai ingd: epoch hs, show, go oal, time, min_ _grad, max_f fail, y lr. La tasa de apr rendizaje lr se multiplica a cada vez c con el negat tivo de la gradiente para de eterminar lo os cambios a realizarse a los pesos y a los bias. Mientras m s grande m grande es el salto. Si la tasa de d aprendiza aje es muy grande g el sea la tasa de aprendizaje ms lveinestable eysilatasade d aprendiza ajeesmuype equea,elalgoritmosedemorar d algoritmosevuel onverger. El estado de aprendizaje a se mostrar en cada ite eracin del a algoritmo. Lo os dems en co parm metrosdeter rminarncua andosedete endrelentr renamiento. El entrenamiento o finalizar si el nmero de iteracion nes excede al a parmetro o epochs, si la funcin esempeo e encuentra su u meta, si la magnitud de d la gradien nte es meno or a min_gra ad, o si el de de tiemp podeentren namientoesmayorquetime t segundo os. El sig guiente cdig go crea un conjunto c de entradas p y objetivos t. Para entrenamiento por lotes todos slosvectore esdeentrada aserncoloc cadosenuna amatriz. JorgeAg guilarJ.|Lab boratorio:Re edesconCon nexioneshac ciaadelante 89

Cdigo 3.- Valores iniciales de entrenamiento por lotes para una red de retropropagacin

Luego crearemos la red con conexin hacia adelante. Aqu usaremos la funcin minmax para determinarelrangodelasentradasausarseenlacreacindelared.
Cdigo 4.- Creacin de la red con conexin hacia adelante

Enestepunto,podremosmodificaralgunosdelosvalorespredeterminadosdeentrenamientos

Cdigo 5.- Modificacin de los valores iniciales predeterminados

Sinoserequierecambiarlosvalorespredeterminadosdeentrenamientoloscomandosanteriores nosernnecesarios.Estamoslistosparaentrenarlared.

Cdigo 6.- - Entrenamiento de la red

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 90

El registro de entrenamiento tr contiene la informacin acerca del progreso del entrenamiento. Ahora la red entrenada puedeser simulada para obtener su respuesta a las entradasdel conjunto deentrenamiento.

Cdigo 7.- Despliegue de las salidas de la red luego del entrenamiento

GRADIENTE DESCENDIENTE CON MOMENTO: Adicional a traingd, existe otro algoritmo por lotes para redes con conexin hacia adelante que frecuentemente provee mayor convergencia: traingdm. El momento permite a la red responder no solo al gradiente local sino tambin a las tendencias ms recientes en la superficie de error. Actuando como un filtro pasa bajos el momento permite a la red ignorar las pequeas imperfecciones de la superficie de error. Sin un momento la red puede atascarse en un mnimo localimpidiendosulabor. Elmomentopuedeaadirsealaprendizajeconretropropagacinrealizandocambiosenlospesos igualesalasumadelafraccindelltimocambiodepesosyelnuevocambiosugeridoporlaregla de retro propagacin. La magnitud del efecto que ltimo cambio de pesos permite tener es mediada por una constante de momento, mc, que puede ser cualquier nmero entre 0 y 1. Cuandolaconstantedemomentoes0,elcambiodepesosesbasadonicamenteenlagradiente. Cuando la constante de momento es 0, el nuevo cambio de pesos se iguala al ltimo cambio de pesosyelgradienteseignorasimplemente. Lagradienteescalculadasumandolosgradientescalculadosencadaejemplodeentrenamientoy lospesosylosbiassonactualizadosnicamentecuandotodoslosejemplosdeentrenamientohan sido presentados. Si la nueva funcin de entrenamiento en alguna iteracin excede la funcin de desempeo en una previa iteracin con un valor mayor a un valor predefinido max_perf_inc (comnmente 1.04), los nuevos pesos y bias son descartados y el coeficiente de momento se vuelvecero. Esta funcin se llama con el comando traingdm, y contiene los mismos argumentos usados para traingd excepto que los parmetros de aprendizaje mc (coeficiente de momento), lr (tasa de aprendizaje) y max_perf_inc (mximo incremento del desempeo) pueden ser personalizados. En el siguiente cdigo se recrea la red anterior y se la entrena con la funcin de gradiente descendente con momento. (Los parmetros de entrenamiento son reiniciados a los valores predeterminadoscadavezquenet.trainFcnsecambiaatraingdm.) JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 91


Cdigo 8.- - Inicializacin de la red Con conexin hacia adelante

Cdigo 9.- Entrenamiento de la red

Notemosquedesdequesereinicializaronlospesosylosbiasantesdelentrenamiento(llamandoa newff nuevamente), obtenemos diferente error medio cuadrtico de lo que obtuvimos usando traingd. Si reiniciaramos nuevamente la red con traingdm podramos obtener incluso un error medio cuadrtico distinto. La opcin al azar de pesos y bias iniciales afectara el desempeo del algoritmo. Si se desea comparar el desempeo de diferentes algoritmos se debe probar cada vez usando diferentes conjuntos de pesos y bias iniciales y establecer una media de las diferentes corridashechas3. En resumen, la arquitectura de una red multicapa no est completamente limitada al problema a serresuelto.Elnmerodecapasentrelasentradasalaredylacapadesalidaascomoeltamao
3

Unamuestraestadsticamentesignificativaesdemnimo30corridas JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 92

de las capas son cuestin del diseador. La red de dos capas sigmuidal / lineal puede representar cualquier relacin funcional entre las entradas y las salidas si la capa sigmuidal tiene la cantidad suficientedeneuronas. ALGORITMOS IMPLEMENTADOS POR MATLAB: De los algoritmos revisados en teora, solamente los cuatro primeros tienen que ver con ella. El restodealgoritmosqueimplementaMatlabselosimplementaenformadiferente. Funcin traingd Descripcin Gradientedescendentebsico,puedeusarseenentrenamientodemodoincremental

traingdm Gradiente descendente con momentun. Generalmente ms rpido que traingd. Puede usarseenentrenamientodemodoincremental. traingdx trainrp traincgf Tasa de aprendizaje adaptativa. Entrenamiento ms rpido que traingd, pero solo puedeserusadoenmododeentrenamientobatch(porlotes). Backpropagation flexible. Simple algoritmo de entrenamiento en modo batch, con rpidaconvergenciaymnimosrequerimientosdealmacenamiento. Algoritmo de gradiente conjugado FletcherReeves. Tiene los Requerimientos de almacenamientomenoresdelosalgoritmosdegradienteconjugado.

traincgp Algoritmo de gradiente conjugado PolakRibire. Requerimientois de almacenamiento ligeramente mayores que traincgf. CXonvergencia ms rpida sobre algunos problemas. traincgb Algoritmo de gradiente conjugado, PowellBeale. Requerimientois de almacenamiento ligeramentemayoresquetraincgp.Generalmenteconvergenciamsrpida. trainscg Algoritmo de gradiente conjugado escalado (Scaled conjugate gradient). Solo el algoritmo de gradiente conjugado que no requiere bsqueda lineal. Un algoritmo de entrenamientodepropsitogeneral,muybueno. BFGS mtodo quasiNewton. Requiere almacenamiento de la Hessian matrix aproximadaytienemsclculoencadaiteracin,perousualmenteconvergeenpocas iteraciones Mtodo One step secant. Compromiso entre los mtodos gradiente conjugado mtodosquasiNewton. Algoritmo LevenbergMarquardt. El algoritmo de entrenamiento ms rpido para redes de tamao moderado. Tiene caractersticas de reduccin de memoria para conjuntosdeentrenamientograndes. JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 93

trainbfg

trainoss trainlm

trainbr trainlm

Regularizacin Bayesiana. Modificacin del algoritmo de entrenamiento Levenberg Levenberg Marquardt para producir redes que generalizan bien. Reduce la dificultad dedeterminarlaarquitecturaptimadelared.
Tabla 1.- Algoritmos que implementa Matlab para un PMC

La tabla 1, presenta una lista que resume las funciones para entrenamiento de redes con retro propagacinquecontieneelNeuralNetworkToolboxdeMatlab: SOBRE ENTRENAMIENTO Un problema que puede ocurrir al entrenar redes neuronales es que la red puede sobredimensionar el conjunto de entrenamiento y no realizar bien la generalizacin para datos diferentesal conjuntodeentrenamiento.Estopuedeprevenirserealizandounentrenamientocon trainbr, adems puede prevenirse usando una detencin temprana con cualquier otra rutina de entrenamiento, esto requiere que el usuario pase un conjunto de validaciones al algoritmo de entrenamiento adicional al conjunto de entrenamiento. Para producir un mejor entrenamiento es muytilanalizarsilarespuestadelareddespusdelentrenamientoestcompleta.

Matriz de confusin. En el campo de Inteligencia Artificial se usa la matriz de confusin enelaprendizajesupervisado.Enlaquelascolumnasrepresentanlasinstanciaspredichas (lasalidadelsistema,Y)ylasfilaslasinstanciasreales(losyd).Deestaformaesmuyfcil saber que clase est confundiendo el sistema. Para aclarar este concepto, revise el ejercicio1ylosresultadosdelatabla2y3
REVISIN DE ALGUNOS DEMOS DE MATLAB: Realizarlossiguientesdemosycontestarlaspreguntasplanteadas. GENERALIZACIN EN REDES CON RETROPROPAGACIN Existeelproblemaquealtenermuchasneuronasocultas,laredpierdelacapacidaddegeneralizar yseprestaaerrores,lademostracinnnd11gn,ilustraestehecho.Paraprobarestademostracin basta con modificar el nmero de neuronas ocultas y el grado de dificultad de manera que se visualicequelaredtiendea aprenderenforma exacta los datosdeentrenamiento,peropierde la capacidaddegeneralizar,comoseilustraenlafiguraacontinuacin

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 94


Resultadoparaunaredcon3neuronasocultas Resultadoparaunaredcon9neuronasocultas

Ilustracin4.Alaumentarennmerodeneuronaslaredaprendemuybienlosdatosconlosque aprendi,peropierdelacapacidaddegeneralizacin,esdecircometeerrorescondatosnuevos

Pregunta:Quocurrecuandoseaumentalacomplejidaddelproblema,comoloexplica? FUNCIN DE GRADIENTE DESCENDIENTE (MS EMPINADA) RETRO PROPAGACIN

Ilustracin5.GradienteDescendienteW1(1,1)W2(1,1)EsquinaInferiorDerecha

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 95

Esta aplicacin muestra tres superficies de error, aqu se puede observar como el algoritmo alcanzaelprimermnimoqueencuentra.Probarcadaregin. Preguntas: Identifiquelaarquitecturadelareddelailustracin7? Pruebeenlasregionessinlneas,silarespuestanosedesplaza:quesignificaestoycmo seexplica? Qusignificalasuperficie,qurepresenta?

FUNCIN DE GRADIENTE DESCENDIENTE CON MOMENTO RETROPROPAGACIN Estealgoritmo,eselmismoanterior,solamentequeseaadeeltrminodemomento.

Ilustracin6.GradienteDescendienteconMomento

Preguntas: 1. Enqulugaresseaceleralaconvergenciaconeltrminomomentoyenculesnoocurre lomismo?Cmoloexplica? 2. Porlogeneral,seaconsejautilizarunvalordelatasadeaprendizaje(u)menora1,como explicaelusodevaloresmsaltos? JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 96

3. Cmo influye la tasa de aprendizaje en el desempeo de una red con Funcin de GradienteDescendienteconMomento?

TAREA DE LABORATORIO: PERCEPTRON MULTICAPA Y CLASIFICACIN DE PATRONES UN PEQUEO PROBLEMA. 1. Genere un conjunto que representen dos clases con aproximadamente el mismo nmero de datos para cada clase. La primera clase que sean los datos que se posicionen dentro de un crculo y las fuera del circulo la clase 2.
a) Veamos el cdigo en Matlab para generar los datos. cont1=0; % definimos dos contadores para la primera y segunda clase cont2=0; xc=2.5/2; % definimos un radio de 2.5 para que el nmero de datos sea aproximadamente el mismo para cada clase. hold on; X= rand(2,500)*2.5; % generacin aleatoria de nmeros (x1 y x2) entre 0 y 2.5 for i = 1:500 % Verificamos si caen dentro del circulo y le asignamos la clase 0 (o -1) if (sqrt((X(1,i)-xc)^2 + (X(2,i)-xc)^2 )) > 1; cont1=cont1+1; Yd(i) = 0; plot(X(1,i),X(2,i),'bo'); elseif (sqrt((X(1,i)-xc)^2 + (X(2,i)-xc)^2 )) <1; % Si no es as le asignamos como clase 1 cont2=cont2+1; Yd(i) = 1; plot(X(1,i),X(2,i),'r*'); end end

Veamos los resultados Para esta corrida, el nmero de datos de la clase 1 es 248 y el de la segunda es 252

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 97

2.5

2.5

Ilustracin7Datosgeneradosquerepresentanlaclase1(rojo)ylaclase1(azul).

a) Una vez que tenemos los datos tanto de entrada (variable X) y de salida (variable Yd), separemos el 50% para datos de entrenamiento, 25% para validacin y 25% para prueba y entrenemos la red.
Q=500; % En primer lugar definimos los ndices para las 3 tipos de datos iprueba = 2:4:Q; ivalida = 4:4:Q; ientren = [1:4:Q 3:4:Q]; % Con estos ndices separamos los datos respectivos val.P = X(:,ivalida); val.T = Yd(:,ivalida); pru.P = X(:,iprueba); pru.T = Yd(:,iprueba); entX = X(:,ientren); entYd = Yd(:,ientren); red = newff(minmax(entX),[5 1],{'tansig' 'logsig'},'traingd'); % En este punto podemos redefinir los parmetros de la red % Dejemos los parmetros sin modificar y Entrenamos la red. [red,tr]=train(red,entX,entYd,[],[],val,pru);

Losparmetrosdefinidospordefectonosonlosmejoresparaestealgoritmo,porloquela respuestadelaredesmuymala.Luegodeentrenarlared,seobtieneelgraficodelafigura

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 98

10

Performance is 0.186483, Goal is 0

Training-Blue Validation-Green Test-Red 10


-1

100

200

300

400 500 600 1000 Epochs

700

800

900

1000

Ilustracin8.Comopuedeobservarselosdatosdeentrenamientonormalmentegeneranunerrormenor, peroenestecasohemosmodificadoelnmerodepocas.

b) Finalmente simulemos la red para observar que tan bien est generalizando para los datos de entrenamiento y validacin y prueba.
Yt=sim(red,entX); Yv=sim(red,val.X);

2.5

1.5

c) Grafique los datos para cada conjunto y verifique si clasifica bien Como se observa en el grafico, la clasificacin es muy pobre

0.5

0.5

1.5

2.5

d) Cul es el nmero de datos clasificados correctamente y fallidos para cada conjunto.

Clase 1 Clase 2

Clase 1 42 24

Clase 2 78 106

Tabla 2.- La matriz muestra que la red clasifica bien como clase 1 solo 42 datos y falla en 78, mientas que 106 como clase 2 y falla en 24

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 99

Aumente el nmero de pocas a 10000 y pruebe nuevamentelosresultadosyentrenenuevamentelaredy verifiquelasrespuestasdelamisma. Los resultados son mejores pero an se pueden mejorar. En este punto hay que trabajar con diferentes hacer pruebasconlosdiferentesparmetrosdelared.

2.5

1.5

0.5

0 Otra opcin es cambiar de algoritmo. Uno de los mejores 0 0.5 1 1.5 2 2.5 algoritmos para estas redes es el LevenbergMarquardt. Si entrenamos con este algoritmo, la red prcticamente clasifica el 100% de los datos de manera correcta tanto de los datos de entrenamiento como los de validacin. No es necesario realizar cambiosalosparmetrosdefinidospordefecto.

red = newff(minmax(entX),[5 1],{'tansig' 'logsig'},'trainlm');

Entrenadoysimulandolaredsetienenlossiguientesresultados.
Entrenamiento Clase 1 Clase 2 Validacin Clase 1 Clase 2

Clase 1 Clase 2

120 0

0 130

Clase 1 Clase 2

62 1

0 62

Tabla 3.- matriz de confusin tanto para los datos de entrenamiento y los datos de validacin. Como se observa la red clasifica muy bien todos los datos a excepcin de uno de la clase 2 que lo clasifica como clase 1.

TRABAJO A REALIZAR 2. Qu cambia si en vez de dos clases se tiene 3 clases. Genere un problema de 3 clases e intente resolverlo. a. NOTA. Tenga en cuenta la codificacin b. Reporte resultados, para entrenamiento y validacin.

3. Descarge el archivo de datos lab2train1, y el archivo de prueba lab2test1 del servidor. Cada ejemplo contiene un vector de 4 datos (una fila en el archivo). Los dos primeros elementos de cada vector da las coordenadas del dato y el tercer elemento es el valor objetivo (0 or 1). Use los datos de entrenamiento para entrenar una red PMC. Entonces pruebe la red entrenada con los datos de prueba. Usted debe usar el algoritmo desarrollado en clase. Para cada experimento descrito luego debe repetir el mismo experimento 10 veces y reportar la media y desviacion estndar del resultado. Los sigueintes parmetros sern usados, a menos que se diga lo contrario.
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 100

Maximo nmero de pocas usadas para el entrenamiento = 1000, net.trainParam.epochs=1000 Datos de entrada sern escalados a [5, 5], y las muestras de salida a [0.2 0.8]. La tasa de aprendizaje por defecto = 0.1 (net.trainParam.lr) y momento = 0.8. net.trainParam.mc Las neuronas ocultas usan funciones de activacin tangente hyperbolica y las de salida funcin de activacin sigmuidal. La configuracin del PMC ser 2-2-2 (dos neuronas de entrada, 2 ocultas y 2 de salida). Consideremos el primer caso: Tabule el valor medio y la desviacin estndar del conjunto de prueba para una tasa de aprendizaje de = 0.01, 0.1, 0.2, 0.4, 0.8. Para cada valor de use dos valores diferentes de momento: = 0 y 0.8. Recuerde que para cada combinacin de u y se debe realizar 10 ensayos. Discuta los resultados brevemente. El siguiente programa en Matlab nos permite realizar esta tarea: En este cdigo no est considerado el hecho de escalar los datos de entrada ni de salida.
datE=load('lab2train1.txt'); datP=load('lab2test1.txt'); xE=datE(:,1:2); ydE=datE(:,3:4); xP=datP(:,1:2); ydP=datP(:,3:4); for k=1:2 if k==1 beta=0; else beta=0.8; end for j=1:5 for i=1:10 if j==1 net = newff(minmax(xE'),[2 2],{'tansig' 'logsig'},'traingdm'); net.trainParam.epochs=1000; net.trainParam.lr=0.01; net.trainParam.mc=beta; net=train(net,xE',ydP'); y=sim(net,xP'); [C, R] = CONFMAT(y', ydP); rate(i,j+5*(k-1))=R(1); else net = newff(minmax(xE'),[2 2],{'tansig' 'logsig'},'traingdm'); net.trainParam.epochs=1000; net.trainParam.lr=0.1*(j-1); net.trainParam.mc=beta; net=train(net,xE',ydP'); y=sim(net,xP');

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 101

[C, R] = CONFMAT(y', ydP); rate(i,j+5*(k-1))=R(1); end end end end m=mean(rate); ds=std(rate); x=[0.01, 0.1, 0.2, 0.4, 0.8]; subplot(2,1,1) plot(x,m(1:5),x(1:5),m(1:5)+ds(1:5),'m',x(1:5),m(1:5)ds(1:5),'m'); title('Perceptrn Multicapa'); xlabel('u'); ylabel('tasa de aciertos'); subplot(2,1,2) plot(x,m(6:10),x,m(6:10)+ds(6:10),'m',x,m(6:10)-ds(6:10),'m'); xlabel('u'); ylabel('tasa de aciertos');

Perceptrn Multicapa: caso a) beta=0 100

80

60

40

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

Perceptrn Multicapa: caso b) beta=0.8 80 70 60 50 40

0.1

0.2

0.3 0.4 0.5 taza de aprendizaje: u

0.6

0.7

0.8

Ilustracin9.resultadosdepromediar10corridasparaloscincovaloresdeuconlosdosvaloresdebeta.

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 102

a) Tabule el valor medio y la desviacin estndar de la tasa de clasificacin del conjunto de prueba cuando se tiene un PMC 2-h-2 donde el nmero de neuronas ocultas h = 2, 5, 20. Discuta los resultados brevemente. b) Tabule el valor medio y la desviacin estndar de la tasa de clasificacin para el conjunto de prueba cuando la configuracin del PMC contiene ms de una capa oculta. Realice experimentos especficamente para las siguientes: 2-3-2, 2-3-3-2, 2-3-3-3-2. Discuta los resultados brevemente. c) Basado en los resultados experimentales llevados en (a) - (c), determine cul ser la mejor seleccin de y y la configuracin del PMC que de resultados satisfactorios. Brevemente justifique su seleccin d) Para la red seleccionada en la parte (d), ilustre la regin de decisin de cada clase en el espacio de entrada 2D x1-x2. Un camino es evaluar la salida del PMC sobre una malla de puntos dentro de una regin cuadrada con fronteras (10, 10) y (10, 10). En Matlab, la funcin meshgrid ser til para generar el grafico
NOTA. Para la tasa de clasificacin puede usar la matriz de confusin codificada en el archivo confmat.m (Ian T Nabney , 2001), descargue el archivo del directorio de laboratorio : [C, Tasa] = confmat(Y, Yd) Donde Y es la salida calculada por la red y Yd la salida conocida. C es la matriz de confusin y Tasa es un vector con dos nmeros: El porcentaje de datos correctamente clasificados y el nmero de datos.

4. Entrene al PMC usando validacin en tres formas Descarge los archivos vino1.txt, vino2.txt, y vino3.txt del servidor. Estas son 3 particiones de los datos para el propsito de reconocimiento de vino. El espacio de entrada o de caractersticas es de dimensin 13, y hay 3 clases. El objetivo de este problema es encontrar la configuracin ptima de un PMC con una capa oculta, usando la validacin de tres formas. La funcin de activacin para la capa de salida ser sigmoidal y para la capa oculta ser tangente hyperbolica (tangencial). Para cada valor de h, lleve los siguientes pasos de entrenamientos y prueba: Entrene con vino1, vino2, y pruebe la red entrenada usando vino3. Entrene con vino2, vino3, y pruebe la red entrenada usando vino1. Entrene con vino3, vino1, y pruebe la red entrenada usando vino2. Revise el ejemplo que viene en Matlab en la seccin Sample Training Session del captulo de Backpropagation. Aqu se hace un pre-anlisis de los datos.
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 103

Los resultados de prueba sern promediados anadiendo la correspondiente matriz de confusin y calcule la tasa de clasificacin de la matriz de confusin combinada. Nuestro objetivo es seleccionar el valor de h, 1 h 10 que rinda la clasificacin ms alta y calcule de acuerdo al siguiente mtodo. (a) (1.0 puntos) Discuta los pasos que realiz para llevar el anlisis de los datos y preprocesamiento antes de aplicarlos al algoritmo de entrenamiento del PMC. (b) (1.0 puntos, CC) Suministre una tabla que liste el valor de h, versus la correspondiente clasificacin. Discuta brevemente la ventaja potencial y desventaja de esta aproximacin

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 104

Você também pode gostar