Está en la página 1de 22

83 JorgeAguilarJ.

Apuntesde
InteligenciaArtificial
Laboratorio:Redescon
Conexioneshaciaadelante
JORGEAGUILARJARAMILLO
PONTIFICIA UNIVERSIDAD CATLICA DEL ECUADOR
FACULTAD DE INGENIERA

JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 84

LABORATORIO:REDES CON CONEXIONESHACIA 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

REDESCONRETROPROPAGACIN
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.
Eltrminoderetropropagacinserefierealaformaenlaqueelgradientesecalculapararedes
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 85

ARQUITECTURADELAREDCONRETROPROPAGACIN
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)
Cadaentradaestrepresentadaporunvalorapropiado,queMatlablosimbolizaconp.Lasuma
ponderada, , de los pesos y el bias (umbral) con los datos de entrada forma la entrada a la
funcindetransferenciaf.Lasneuronasdebenusarcualquierfuncindiferenciableparagenerar
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 86

Silaltimacapadeunaredmulticapatieneneuronassigmuidales,entonceslaredselimitaaun
rango pequeoentre0y1.Siseutilizanneuronaslinealesen la capa desalida, tericamentelos
resultados pueden tomar cualquier valor. En retro propagacin es importante calcular las
derivadasdelasfuncionesdetransferenciautilizadas.
Cadaunadelasfuncionesdetransferenciamencionadascontieneunaderivadacorrespondiente:
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


REDESCONCONEXINHACIAADELANTE
Las redes Conexin hacia adelante tienen frecuentemente una o ms capas ocultas de neuronas
sigmuidalesseguidasde una capade salida deneuronaslineales. Muchascapasde neuronas con
funcionesdetransferencianolinealespermitenalaredaprenderrelacioneslinealesynolineales
entrevectoresdeentradaysalidas.Lacapalinealdesalidapermitealaredproducirvaloresfuera
delrangode1a+1.Porotraparte,sisenecesitalimitarlassalidasdelaredaunvalorespecfico,
entonces la capa de salida debe usar una funcin sigmuidal de transferencia (como logsig.) Este
tipoderedesnospermitirtenerunrangoespecialderespuestas.

Ilustracin3Redconfunciones:tansigypurelin
Estaredpuedeserutilizadacomounaproximadorgeneraldefunciones.Yaquepuedeaproximar
cualquierfuncinquetengaunnmerofinitodediscontinuidades,teniendoelsuficientenmero
deneuronasenlacapaoculta.
Paraentrenarunared,generalmentesetienen4pasosenelprocesodeentrenamiento
1. Configurarlosdatosdeentrenamiento
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 87

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

CONFIGURARLOSDATOSDEENTRENAMIENTO
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.

CREANDOUNAREDCONCONEXINHACIAADELANTE(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. Elprimerargumentoesunamatrizdelosmnimosymximos b
1
delasNientradas(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


Asignamosalobjetonet,laestructuradelared:Unareddedoscapas
2
,dosvectores.Losvalores
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
Matlab implementa la funcin mm=minmax(X) que obtiene estos valores, X representa los datos de entrada
2
Ya que las neuronas de entrada solamente reciben los datos, Matlab, no la trata como una capa de neuronas
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 88

Lafuncindetransferenciaenlaprimeracapaestansigylafuncindetransferenciaenlacapade
salidaeslinealyelalgoritmodedeentrenamientoestraingd.
Estecomandocreaelobjetoredyademsinicializalospesosylosbiasdelared,entonceslared
seencuentralistaparaentrenar.
Reinicializando los pesos
Aunque la funcin anterior ya inicializa lospesos y bias, si se requiereuna reinicializacin de los
mismospuedehacrseloconelcomandoinit.Estafuncintomaunobjetoredcomoentraday
devuelveunobjetoredcontodoslospesosylosbiasreinicializados.
Aquvemoscomounaredpuedeserinicializada(oreinicializada):

ENTRENAMIENTO
Unavezquelospesosylosbiashansidoinicializados,laredestlistaparaserentrenada.Lared
puedeserentrenadaparaaproximacindefunciones(regresinnolineal),asociacindepatrones
o clasificacin de patrones. El proceso de entrenamiento requiere un conjunto de ejemplos que
tengauncomportamientoapropiadoparalaredentradasp(X)ysalidast(Yd).Duranteel
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.

ALGORITMODERETROPROPAGACIN
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:


ENTR
Aqu
entre
entre
Grad
empi
dela
la red
entre
Exist
min_
gradi
sea l
algor
en co
parm
El en
de de
tiemp
El sig
todos
E
DondeW
eslatasa
Existend
modo inc
pesos so
lotestod
pesos.
RENAMIENT
lospesosy
enamiento h
enamientoso
diente descen
nadaestrai
funcinded
d de trainF
enamientoas
ten siete pa
_grad, max_f
ente para de
a tasa de a
itmosevuel
onverger. El
metrosdeter
trenamiento
esempeo e
podeentren
guiente cdig
slosvectore
JorgeAg
Ecuacin1..-
W
ij
esunvec
adeaprendiz
dosformasd
cremental y
n actualizad
oslosejemp
TOPORLOT
losbiasdela
ha sido apl
onsumados
ndente: En e
ingd.Lospe
desempeo.
Fcn a traing
sociadaaun
armetros d
fail, y lr. La
eterminar lo
prendizaje m
lveinestable
estado de a
rminarncua
o finalizar s
encuentra su
namientoes
go crea un c
esdeentrada
guilarJ.|Lab
- Una Iterac
ctordepeso
zaje.
diferentesde
por lotes. E
os despus
plos(unapo
TES
aredseactu
icado a la
paradeterm
l entrenamie
esosylosbia
Siserequie
gd, entonce
aredenpar
e entrenam
tasa de apr
os cambios a
ms grande
eysilatasad
aprendizaje
andosedete
i el nmero
u meta, si la
mayorquet
conjunto de
aserncoloc
boratorio:Re
cin del Algo
sybiasconc
eimplement
En el modo
de que cada
oca)sonapl
ualizarnni
red. Los g
minarelcamb
ento por lot
assonactual
reentrenar
es llamar a l
rticular.
miento asoci
rendizaje lr
a realizarse a
es el salto.
deaprendiza
se mostrar
endrelentr
de iteracion
magnitud d
timesegundo
entradas p
cadosenuna
edesconCon

oritmo de R
currentes.
tarelalgorit
incrementa
a ejemplo se
icadasalar
icamentede
gradientes c
bioenlospe
tes la funci
izadosendir
unaredusa
la funcin t
ados a trai
se multiplica
a los pesos y
Si la tasa d
ajeesmuype
en cada ite
renamiento.
nes excede a
de la gradien
os.
y objetivos
amatriz.
nexioneshac

Retropropag
ese
tmodegradi
l, el gradien
e aplica a la
redantesde
spusdequ
calculados e
esosylosbia
n de gradien
reccindeln
ndoestafun
train. Existe
ingd: epoch
a cada vez c
y a los bias.
de aprendiza
equea,ela
eracin del a

al parmetro
nte es meno
t. Para ent
ciaadelante
acin
elgradiente
ientedescen
nte es calcul
red. En el m
queseactu
etodoelco
en cada eje
s.
nte descend
negativodel
ncinsedebe
solo una fu
hs, show, go
con el negat
Mientras m
aje es muy g
lgoritmosed
algoritmo. Lo
o epochs, si l
or a min_gra
renamiento
89
actualyu
ndente;el
ado y los
modo por
ualicenlos
njuntode
emplo de
ente ms
gradiente
ecambiar
uncin de
oal, time,
tivo de la
s grande
grande el
demorar
os dems
a funcin
ad, o si el
por lotes
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 90

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 91

El registro de entrenamiento tr contiene la informacin acerca del progreso del entrenamiento.


Ahoralaredentrenadapuedesersimuladaparaobtenersurespuestaalasentradasdelconjunto
deentrenamiento.

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

GRADIENTEDESCENDIENTECONMOMENTO:
Adicional a traingd, existe otro algoritmo por lotes para redes con conexin hacia adelante que
frecuentemente proveemayor 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
sidopresentados. Si la nueva funcindeentrenamiento enalgunaiteracin excede la funcinde
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.
Estafuncinsellamaconelcomandotraingdm,ycontienelosmismosargumentosusadospara
traingd excepto que los parmetros de aprendizaje mc (coeficiente de momento), lr (tasa de
aprendizaje)ymax_perf_inc(mximoincrementodeldesempeo)puedenserpersonalizados.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 92

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 sedesea comparar eldesempeodediferentes algoritmossedebeprobarcada vez
usando diferentes conjuntos de pesos y bias iniciales y establecer una media de las diferentes
corridashechas
3
.

Enresumen,laarquitecturadeunaredmulticapanoestcompletamentelimitadaalproblemaa
serresuelto.Elnmerodecapasentrelasentradasalaredylacapadesalidaascomoeltamao

3
Unamuestraestadsticamentesignificativaesdemnimo30corridas
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 93

delascapassoncuestindeldiseador.Lareddedoscapassigmuidal/linealpuederepresentar
cualquier relacin funcional entre las entradas y las salidas si la capa sigmuidal tiene la cantidad
suficientedeneuronas.
ALGORITMOSIMPLEMENTADOSPORMATLAB:
De los algoritmos revisados en teora, solamente los cuatro primeros tienen que ver con ella. El
restodealgoritmosqueimplementaMatlabselosimplementaenformadiferente.

Funcin Descripcin
traingd Gradientedescendentebsico,puedeusarseenentrenamientodemodoincremental
traingdm Gradientedescendenteconmomentun.Generalmentemsrpidoquetraingd.Puede
usarseenentrenamientodemodoincremental.
traingdx Tasa de aprendizaje adaptativa. Entrenamiento ms rpido que traingd, pero solo
puedeserusadoenmododeentrenamientobatch(porlotes).
trainrp Backpropagation flexible. Simple algoritmo de entrenamiento en modo batch, con
rpidaconvergenciaymnimosrequerimientosdealmacenamiento.
traincgf 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 Algoritmodegradienteconjugado,PowellBeale.Requerimientoisdealmacenamiento
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.
trainbfg BFGS mtodo quasiNewton. Requiere almacenamiento de la Hessian matrix
aproximadaytienemsclculoencadaiteracin,perousualmenteconvergeenpocas
iteraciones
trainoss Mtodo One step secant. Compromiso entre los mtodos gradiente conjugado
mtodosquasiNewton.
trainlm Algoritmo LevenbergMarquardt. El algoritmo de entrenamiento ms rpido para
redes de tamao moderado. Tiene caractersticas de reduccin de memoria para
conjuntosdeentrenamientograndes.
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 94

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:

SOBREENTRENAMIENTO
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
diferentesalconjuntodeentrenamiento.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
entrenamientoadicionalalconjuntodeentrenamiento.Paraproducirunmejorentrenamientoes
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

REVISINDE ALGUNOSDEMOSDEMATLAB:
Realizarlossiguientesdemosycontestarlaspreguntasplanteadas.
GENERALIZACINENREDESCONRETROPROPAGACIN
Existeelproblemaquealtenermuchasneuronasocultas,laredpierdelacapacidaddegeneralizar
yseprestaaerrores,lademostracinnnd11gn,ilustraestehecho.Paraprobarestademostracin
basta con modificar el nmero de neuronas ocultas y el grado de dificultad de manera que se
visualicequelaredtiendeaaprenderenformaexactalosdatosdeentrenamiento,peropierdela
capacidaddegeneralizar,comoseilustraenlafiguraacontinuacin
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 95

Resultadoparaunaredcon3neuronasocultas Resultadoparaunaredcon9neuronasocultas
Ilustracin4.Alaumentarennmerodeneuronaslaredaprendemuybienlosdatosconlosque
aprendi,peropierdelacapacidaddegeneralizacin,esdecircometeerrorescondatosnuevos

Pregunta:Quocurrecuandoseaumentalacomplejidaddelproblema,comoloexplica?
FUNCINDEGRADIENTEDESCENDIENTE(MSEMPINADA)RETROPROPAGACIN

Ilustracin5.GradienteDescendienteW1(1,1)W2(1,1)EsquinaInferiorDerecha
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 96

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

FUNCINDEGRADIENTE DESCENDIENTECONMOMENTORETROPROPAGACIN
Estealgoritmo,eselmismoanterior,solamentequeseaadeeltrminodemomento.

Ilustracin6.GradienteDescendienteconMomento

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

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


GradienteDescendienteconMomento?

TAREADE LABORATORIO: PERCEPTRONMULTICAPAYCLASIFICACINDEPATRONES

UNPEQUEOPROBLEMA.
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 cdi go en Mat l ab par a gener ar l os dat os.

cont 1=0; %def i ni mos dos cont ador es par a l a pr i mer a y segunda cl ase
cont 2=0;
xc=2. 5/ 2; %def i ni mos un r adi o de 2. 5 par a que el nmer o de dat os
sea apr oxi madament e el mi smo par a cada cl ase.

hol d on;
X= r and( 2, 500) *2. 5; %gener aci n al eat or i a de nmer os ( x1 y x2)
ent r e 0 y 2. 5
f or i = 1: 500 %Ver i f i camos si caen dent r o del ci r cul o y l e
asi gnamos l a cl ase 0 ( o - 1)
i f ( sqr t ( ( X( 1, i ) - xc) ^2 + ( X( 2, i ) - xc) ^2 ) ) > 1;
cont 1=cont 1+1;
Yd( i ) = 0;
pl ot ( X( 1, i ) , X( 2, i ) , ' bo' ) ;
el sei f ( sqr t ( ( X( 1, i ) - xc) ^2 + ( X( 2, i ) - xc) ^2 ) ) <1;
%Si no es as l e asi gnamos como cl ase 1
cont 2=cont 2+1;
Yd( i ) = 1;
pl ot ( 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 98


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 pr i mer l ugar def i ni mos l os ndi ces par a l as 3 t i pos de dat os
i pr ueba = 2: 4: Q;
i val i da = 4: 4: Q;
i ent r en = [ 1: 4: Q 3: 4: Q] ;
%Con est os ndi ces separ amos l os dat os r espect i vos
val . P = X( : , i val i da) ; val . T = Yd( : , i val i da) ;
pr u. P = X( : , i pr ueba) ; pr u. T = Yd( : , i pr ueba) ;
ent X = X( : , i ent r en) ; ent Yd = Yd( : , i ent r en) ;
r ed = newf f ( mi nmax( ent X) , [ 5 1] , {' t ansi g' ' l ogsi g' }, ' t r ai ngd' ) ;
%En est e punt o podemos r edef i ni r l os par met r os de l a r ed
%Dej emos l os par met r os si n modi f i car y Ent r enamos l a r ed.
[ r ed, t r ] =t r ai n( r ed, ent X, ent Yd, [ ] , [ ] , val , pr u) ;

Losparmetrosdefinidospordefectonosonlosmejoresparaestealgoritmo,porloquela
respuestadelaredesmuymala.Luegodeentrenarlared,seobtieneelgraficodelafigura
0 2.5
0
2.5
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 99


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 =si m( r ed, ent X) ; Yv=si m( r ed, val . X) ;


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


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

Cl ase 1 Cl ase 2
Cl ase 1 42 78
Cl ase 2 24 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
0 100 200 300 400 500 600 700 800 900 1000
10
-1
10
0
1000 Epochs
T
r
a
i
n
i
n
g
-
B
l
u
e


V
a
l
i
d
a
t
i
o
n
-
G
r
e
e
n


T
e
s
t
-
R
e
d
Performance is 0.186483, Goal is 0
0 0.5 1 1.5 2 2.5
0
0.5
1
1.5
2
2.5
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 100

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.

Otra opcin es cambiar de algoritmo. Uno de los mejores
algoritmos para estas redesesel 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.

r ed = newf f ( mi nmax( ent X) , [ 5 1] , {' t ansi g' ' l ogsi g' }, ' t r ai nl m' ) ;

Entrenadoysimulandolaredsetienenlossiguientesresultados.

Ent r enami ent o Cl ase 1 Cl ase 2


Cl ase 1 120 0
Cl ase 2 0 130
Val i daci n Cl ase 1 Cl ase 2
Cl ase 1 62 0
Cl ase 2 1 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.

TRABAJOAREALIZAR

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.
0 0.5 1 1.5 2 2.5
0
0.5
1
1.5
2
2.5
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 101


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.

dat E=l oad( ' l ab2t r ai n1. t xt ' ) ;
dat P=l oad( ' l ab2t est 1. t xt ' ) ;
xE=dat E( : , 1: 2) ;
ydE=dat E( : , 3: 4) ;
xP=dat P( : , 1: 2) ;
ydP=dat P( : , 3: 4) ;
f or k=1: 2
i f k==1
bet a=0;
el se
bet a=0. 8;
end
f or j =1: 5
f or i =1: 10
i f j ==1
net = newf f ( mi nmax( xE' ) , [ 2 2] , {' t ansi g' ' l ogsi g' }, ' t r ai ngdm' ) ;
net . t r ai nPar am. epochs=1000;
net . t r ai nPar am. l r =0. 01;
net . t r ai nPar am. mc=bet a;
net =t r ai n( net , xE' , ydP' ) ;
y=si m( net , xP' ) ;
[ C, R] = CONFMAT( y' , ydP) ;
r at e( i , j +5*( k- 1) ) =R( 1) ;
el se
net = newf f ( mi nmax( xE' ) , [ 2 2] , {' t ansi g' ' l ogsi g' }, ' t r ai ngdm' ) ;
net . t r ai nPar am. epochs=1000;
net . t r ai nPar am. l r =0. 1*( j - 1) ;
net . t r ai nPar am. mc=bet a;
net =t r ai n( net , xE' , ydP' ) ;
y=si m( net , xP' ) ;
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 102

[ C, R] = CONFMAT( y' , ydP) ;


r at e( i , j +5*( k- 1) ) =R( 1) ;
end
end
end
end

m=mean( r at e) ;
ds=st d( r at e) ;
x=[ 0. 01, 0. 1, 0. 2, 0. 4, 0. 8] ;
subpl ot ( 2, 1, 1)
pl ot ( x, m( 1: 5) , x( 1: 5) , m( 1: 5) +ds( 1: 5) , ' m' , x( 1: 5) , m( 1: 5) -
ds( 1: 5) , ' m' ) ;
t i t l e( ' Per cept r n Mul t i capa' ) ;
xl abel ( ' u' ) ;
yl abel ( ' t asa de aci er t os' ) ;
subpl ot ( 2, 1, 2)
pl ot ( x, m( 6: 10) , x, m( 6: 10) +ds( 6: 10) , ' m' , x, m( 6: 10) - ds( 6: 10) , ' m' ) ;
xl abel ( ' u' ) ;
yl abel ( ' t asa de aci er t os' ) ;

Ilustracin9.resultadosdepromediar10corridasparaloscincovaloresdeuconlosdosvaloresdebeta.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
40
60
80
100
Perceptrn Multicapa: caso a) beta=0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
40
50
60
70
80
Perceptrn Multicapa: caso b) beta=0.8
taza de aprendizaje: u
JorgeAguilarJ.|Laboratorio:RedesconConexioneshaciaadelante 103

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 x
1
-x
2
. 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 104

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 pre-
procesamiento 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

También podría gustarte