Sunteți pe pagina 1din 16

Robtica e Inteligencia Artificial

UNIVERSIDAD TCNICA DEL NORTE. Facultad de Ingeniera en Ciencias Aplicadas


Integrantes: Luis Ledesma Harold Carrasco Fecha: 23 01 2013. Escuela: MECATRONICA

PRACTICA N3
TEMA:

REDES NEURONALES
OBJETIVOS: Programar una red neuronal capaz de aprender os nmeros del 0 al 9

ESPECIFICOS
Almacenar en matrices columnas los patrones a ser entrenados. Entrenar una red neuronal con la matriz columna de datos. Cargar archivos .jpg para pixelarlos y cargar la matriz en una variable. Evaluar el aprendizaje de las neuronas mediante la comprobaci n del sistema distorsionando los datos de entrada.

Robtica e Inteligencia Artificial! p"g. #

TEORA Y DESARROLLO: TEMA. ENTRENAMIENTO DE NEURONAS

$.$. Estructura de un sistema neuronal arti%icial Como se dijo anteriormente! las redes neuronales son modelos matem"ticos &ue intentan reproducir el comportamiento del cerebro humano. El principal objetivo de este modelo es la construcci n de sistemas capaces de presentar un cierto comportamiento inteligente. Esto implica la capacidad de aprender a realizar una determinada tarea. 'as caracter(sticas principales &ue reproducen las redes neuronales arti%iciales se pueden reducir a los siguientes tres conceptos) procesamiento paralelo! distribuido y adaptativo. *+el ,rio y -anz .olina! $00$/ El verdadero poder de este modelo radica en el procesamiento paralelo realizado por las neuronas arti%iciales. 'a neurona arti%icial es un elemento de procesamiento simple y constituye el elemento principal de un sistema neuronal arti%icial. Estas neuronas arti%iciales se combinan en estructuras denominadas capas. 0na red neuronal arti%icial esta un compuesta por un conjunto de capas. +e esta manera! la in%ormaci n se encuentre distribuida a lo largo de las sinapsis de la red! d"ndole a este sistema cierta tolerancia a %allos. A su vez! las redes neuronales arti%iciales son capaces de adaptar su %uncionamiento a distintos entornos modi%icando sus conexiones entre neuronas. +e esta manera pueden aprender de la experiencia y generalizar conceptos. Por ltimo! un conjunto de redes neuronales! junto con las inter%ases de entrada y salida! y los m dulos l gicos adicionales con%orman un sistema neuronal arti%icial. $.1. .odelo de neurona arti%icial 'a neurona arti%icial es un elemento de procesamiento simple &ue a partir de un vector de entradas produce una nica salida. En general podemos encontrar tres tipos de neuronas arti%iciales! donde cada una de las cuales tiene su contraparte en el sistema nervioso) #. 'as &ue reciben in%ormaci n directamente desde el exterior! a las cuales se las denomina neuronas de entrada. $. 'as &ue reciben in%ormaci n desde otras neuronas arti%iciales! a las cuales se las denomina neuronas ocultas. Es en estas neuronas! en particular en sus sinapsis! donde se realiza la representaci n de la in%ormaci n almacenada. 1. 'as &ue reciben la in%ormaci n procesada y las devuelven al exterior. A estas neuronas se las denomina neuronas de salida. 'a %igura $.$ muestra los elementos &ue componen una neurona arti%icial)

Robtica e Inteligencia Artificial! p"g. $

Conjunto de entradas! xj2t3. Estas pueden ser provenientes del exterior o de otras neuronas arti%iciales. 4 Peso sin"pticos! 5ij. 6epresentan el grado de comunicaci n entre la neurona arti%icial j y la neurona arti%icial i. Pueden ser excitadores o inhibidores 4 6egla de propagaci n! 7i25ij! xj2t33. 8ntegra la in%ormaci n proveniente de las distintas neuronas arti%iciales y proporciona el valor del potencial postsin"ptico de la neurona i. 4 9unci n de activaci n! %i2ai2t:#3! hi2t33. Provee el estado de activaci n actual de la neurona i. 4 9unci n de salida! 9i2ai2t33. 6epresenta la salida actual de la neurona i. +e esta %orma! la salida producida por una neurona i! para un determinado instante de tiempo t puede ser escrita en %orma general de la siguiente manera y 2t3 9 2 % *a 2t #3! 25 ! x 2t33/3i; i i i< 7 i ij j 2$.#3 A continuaci n se estudian cada uno de los puntos introducidos anteriormente. $.1.#. Entradas y salidas 'as entradas y salidas de una neurona pueden ser clasi%icadas en dos grandes grupos! binarias o continuas. 'as neuronas binarias 2digitales3 s lo admiten dos valores posibles. En general en este tipo de neurona se utilizan los siguientes dos al%abetos =0!#> o =:#!#>. Por su parte! las neuronas continuas 2anal gicas3 admiten valores dentro de un determinado rango! &ue en general suele de%inirse como *:#! #/. 'a selecci n del tipo de neurona a utilizar depende de la aplicaci n y del modelo a construir. $.1.$. Pesos sin"pticos El peso sin"ptico 5ijde%ine la %uerza de una conexi n sin"ptica entre dos neuronas! la neurona presin"ptica i y la neurona postsin"ptica j. 'os pesos sin"pticos pueden tomar valores positivos! negativos o cero. En caso de una entrada positiva! un peso positivo acta como excitador! mientras &ue un peso negativo acta como inhibidor. En caso de &ue el peso sea cero! no existe comunicaci n entre el par de neuronas.

Robtica e Inteligencia Artificial! p"g. 1

.ediante el ajuste de los pesos sin"pticos la red es capaz de adaptarse a cual&uier entorno y realizar una determinada tarea. $.1.1. 6egla de propagaci n 'a regla de propagaci n determina el potencial resultante de la interacci n de la neurona i con las ? neuronas vecinas. El potencial resultante hi se puede

EVA UACION EN MAT A!


Matla": t##l"#$ de redes neur#nales
Para trabajar con redes neuronales! seguramente podremos encontrar con una simple bs&ueda en 8nternet un gran nmero de AP8@s y %rame5orAs &ue implementen por nosotros la estructura de la mayor parte de los tipos de redes y la %unciones necesarias para trabajar con ellas. 0no de estos %rame5orAs es el Boolbox &ue matlab posee! &ue nos o%rece una implementaci n genCrica de redes neuronales! as( como implementaciones de redes neuronales concretas como las perceptr n! bacApropagation! -om! etc. Estructura .atlab utiliza una estructura nica &ue nos dar" acceso a todas las propiedades de la red neuronal! independientemente del tipo &ue esta sea! de manera &ue utilizando esta propiedad podremos modi%icar las entradas! capas! conexiones! pesos! etc. +e esta manera una vez con%igurada la red neuronal segn nuestras necesidades invocaremos las %unciones de manipulaci n de redes neuronales disponibles en matlab! 2simulaci n! entrenamiento! inicializaci n! etc.3! pas"ndole como par"metro la estructura de la red neuronal. net ; net5orAD -i ejecutamos el comando anterior y visualizamos el contenido de la variable my?et5orA se nos vializar" la estructura mencionada! la cual se puede dividir en cinco secciones) Ar&uitectura) +e%ine las caracter(sticas b"sicas de la red neuronal! nmero de entradas! capas! conexiones de bias! etc. -ubobjetos) Contiene re%erencias a las subestructuras de la red neuronal! &ue nos permitir"n con%igurar las propiedades de los distintos componentes &ue %orman la red 2capas! entradas! salidas! etc.3. 9unciones) 9unciones principales de la red neuronal! utilizadas para ejecutar las operaciones de inicializaci n! entrenamiento o simulaci n. Par"metros)

Robtica e Inteligencia Artificial! p"g. E

Con%iguraci n de los par"metros asociados a las %unciones seleccionadas en el blo&ue de %unciones. Falores) A&u( se de%inen las matrices con los valores de los pesos de entrada! conexiones entre capas y b(as. 9unciones 0na vez creada la red neuronal! para trabajar con la misma! podremos utilizar las siguientes %unciones para realizar las operaciones t(picas) 8nicializaci n 2net ; init2net33) .ediante la %unci n de inicializaci n! obtenemos una red neuronal con los valores de los pesos y bias actualizados segn las %unciones de inicializaci n &ue le hayamos asociado a la red! mediante su propiedad net.init9cn! o bien net.layers=i>.init9cn y net.biases=i>.init9cn. Entrenamiento 2*net! tr! G! E! P%! A%/ ; train2net! P! B! Pi! Ai! FF! BF3D3) 6ealiza el entrenamiento de la red neuronal! modi%icando los pesos asociados a las conexiones entre las di%erentes capas y neuronas de la misma. Para esto! debemos indicar unos patrones de entrada a la red 2P! matriz de dimenesiones .x? siendo . la suma de los tamaHos de las capas de entrada de la red neuronal! y ? el nmero de patrones &ue deseamos aplicar en el entrenamiento3. En caso de ser un entrenamiento supervisado tambiCn indicaremos los targets 2B! matriz de .x?3! con estos datos la matriz de patrones se aplica a la red neuronal! y el toolbox utilizando las %unciones de entrenamiento &ue le hemos indicado en las propiedades Itrain9cnJ se encargar" de actualizar los pesos asociados a las conexiones de la red. 'os resultados del entrenamiento los obtendremos en la variable de retorno G y los errores para cada patr n de entrada respecto a la salida esperada en la variable de retorno E. -imulaci n 2*G! P%! A%! E! per%/ ; sim2net! P! Pi! Ai! B33) 9unci n parecida a la anterior pero &ue no actualizar" los pesos de la red neuronal. 0na vez &ue tengamos entrenada la red neuronal y esta o%rezca unos resultado v"lidos! utilizaremos esta %unci n para analizar nuevos patrones de entrada. 6edes neuronales conocidas ?ormalmente a la hora de trabajar con redes neuronales! &uerremos trabajar con un tipo de red neuronal concreto! el cual se ajuste mejor a nuestras necesidades. En este caso en vez de utilizar la %unci n Inet5orAJ para la creaci n de la estructura base! podemos utilizar %unciones espec(%icas para cada tipo de red neuronal! de manera &ue la estructura base &ue matlab nos devuelva tenga una con%iguraci n de capas de entrada! ocultas! conexiones etc apropiada para el tipo de red neuronal deseado. Perceptron) ne5p2P!-3 ,acApropagation) ne5%%2P! *-#!K.! -n/3

Robtica e Inteligencia Artificial! p"g. L

6adiales) ne5grnm2P!B3 .apas Autoorganizados) ne5som2P!-3

FUNCIONAMIENTO
close all %% lectura de la imagen imagen=imread('33.jpg'); %% obser acion de la imagen subplot(!"#"!);ims$o%(imagen); %% con esion de la imagen a escalas de grises if si&e(imagen"3)==3 % R'( image imagen=rgb)gra*(imagen); end subplot(!"#"));ims$o%(imagen) %% +on ierte la imagen a binaria (! ,) t$res$old = gra*t$res$(imagen); imagen =-im)b%(imagen"t$res$old); subplot(!"#"3);ims$o%(imagen) %% remue e los objetos imagen = b%areaopen(imagen".,,,); pause(!) %% isuali&a la imagen negada subplot(!"#"/); ims$o%(-imagen); title('I0agen') %% 1abel connected components 21 3e4=b%label(imagen); %% crea las propeidades de las imagenes propied=regionprops(1"'(ounding(o5'); $old on %% dibuja el rectangulo for n=!6si&e(propied"!) rectangle('7osition'"propied(n).(ounding(o5"'8dge+olor'"'g'"'1ine9idt$'") ) end $old off pause (!) %%%%%%% imagen=-imagen %%%%%%%%%%%%%% %% e5trae los objetos for n=!63e 2r"c4 = find(1==n); n!=imagen(min(r)6ma5(r)"min(c)6ma5(c)); subplot(!"#".);ims$o%(-n!);

Robtica e Inteligencia Artificial! p"g. M

pause(,..) end I5=-n!; %%con ersion :,, .,, pi5eles I5=imresi&e(I5"2:,, .,,4); %%con ersion a matri& 2m"n4=si&e(I5) Ib=ones(:".); %Region ! Ib(!"!)=sum(sum(I5(!6!,,"!6!,,)));!,,,, ims$o%(Ib) Ib(!"))=sum(sum(I5(!6!,,"!,!6),,)));!,,,, ims$o%(Ib) Ib(!"3)=sum(sum(I5(!6!,,"),!63,,)));!,,,, ims$o%(Ib) Ib(!"/)=sum(sum(I5(!6!,,"3,!6/,,)));!,,,, ims$o%(Ib) Ib(!".)=sum(sum(I5(!6!,,"/,!6.,,)));!,,,, ims$o%(Ib) %Region ) Ib()"!)=sum(sum(I5(!,!6),,"!6!,,)));!,,,, ims$o%(Ib) Ib()"))=sum(sum(I5(!,!6),,"!,!6),,)));!,,,, ims$o%(Ib) Ib()"3)=sum(sum(I5(!,!6),,"),!63,,)));!,,,, ims$o%(Ib) Ib()"/)=sum(sum(I5(!,!6),,"3,!6/,,)));!,,,, ims$o%(Ib) Ib()".)=sum(sum(I5(!,!6),,"/,!6.,,)));!,,,, ims$o%(Ib) %Region 3 Ib(3"!)=sum(sum(I5(),!63,,"!6!,,)));!,,,, ims$o%(Ib) Ib(3"))=sum(sum(I5(),!63,,"!,!6),,)));!,,,, ims$o%(Ib) Ib(3"3)=sum(sum(I5(),!63,,"),!63,,)));!,,,, ims$o%(Ib) Ib(3"/)=sum(sum(I5(),!63,,"3,!6/,,)));!,,,, ims$o%(Ib)

Robtica e Inteligencia Artificial! p"g. N

Ib(3".)=sum(sum(I5(),!63,,"/,!6.,,)));!,,,, ims$o%(Ib) %Region / Ib(/"!)=sum(sum(I5(3,!6/,,"!6!,,)));!,,,, ims$o%(Ib) Ib(/"))=sum(sum(I5(3,!6/,,"!,!6),,)));!,,,, ims$o%(Ib) Ib(/"3)=sum(sum(I5(3,!6/,,"),!63,,)));!,,,, ims$o%(Ib) Ib(/"/)=sum(sum(I5(3,!6/,,"3,!6/,,)));!,,,, ims$o%(Ib) Ib(/".)=sum(sum(I5(3,!6/,,"/,!6.,,)));!,,,, ims$o%(Ib) %Region . Ib(."!)=sum(sum(I5(/,!6.,,"!6!,,)));!,,,, ims$o%(Ib) Ib(."))=sum(sum(I5(/,!6.,,"!,!6),,)));!,,,, ims$o%(Ib) Ib(."3)=sum(sum(I5(/,!6.,,"),!63,,)));!,,,, ims$o%(Ib) Ib(."/)=sum(sum(I5(/,!6.,,"3,!6/,,)));!,,,, ims$o%(Ib) Ib(.".)=sum(sum(I5(/,!6.,,"/,!6.,,)));!,,,, ims$o%(Ib) %Region # Ib(#"!)=sum(sum(I5(.,!6#,,"!6!,,)));!,,,, ims$o%(Ib) Ib(#"))=sum(sum(I5(.,!6#,,"!,!6),,)));!,,,, ims$o%(Ib) Ib(#"3)=sum(sum(I5(.,!6#,,"),!63,,)));!,,,, ims$o%(Ib) Ib(#"/)=sum(sum(I5(.,!6#,,"3,!6/,,)));!,,,, ims$o%(Ib) Ib(#".)=sum(sum(I5(.,!6#,,"/,!6.,,)));!,,,, ims$o%(Ib) %Region : Ib(:"!)=sum(sum(I5(#,!6:,,"!6!,,)));!,,,, ims$o%(Ib) Ib(:"))=sum(sum(I5(#,!6:,,"!,!6),,)));!,,,, ims$o%(Ib)

Robtica e Inteligencia Artificial! p"g. O

Ib(:"3)=sum(sum(I5(#,!6:,,"),!63,,)));!,,,, ims$o%(Ib) Ib(:"/)=sum(sum(I5(#,!6:,,"3,!6/,,)));!,,,, ims$o%(Ib) Ib(:".)=sum(sum(I5(#,!6:,,"/,!6.,,)));!,,,, ims$o%(Ib) %pone a , * unos segun el promedio obtenido for i=!6: for j=!6. if(Ib(i"j)<=,.=) Ib(i"j)=! else Ib(i"j)=, end end end 5=Ib(:".) %figure;ims$o%(Ib) %%%%%adicional Io=Ib>,.,=; %Io=Ib>,.# % en la foto de la ? Io=$ardlim(Io) r=Io' %e aluacion 5)=&eros(3."!) Io!=Io'; for i=!63. 5)(i)=Io!(i) end %% 7R@'RA0A (7ARAI36 %% 8ste 7R@'RA0A tiene una 017 con algoritmo de aprendi&aje de retro> propagacin entrenado en lote %% 8sta 017 tiene en la capa oculta neuronas con funciones de acti acin %% logBsticas * una capa de salida con funciones de acti acin lineales. %% 56 son las entradas %% t6 son las salidas deseadas (target outputs) %% si&e(5) = (patterns"inputs) %% si&e(t) = (patterns"outputs) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %5=25) 5)C,.DErand(3."!)4; % +onjunto de entrenamiento %t=25) 5)4; % FA1IGAF G8F8AGAF 5=2

Robtica e Inteligencia Artificial! p"g. 9

%, ! ) %!>>>>> , , , ! , ! ! , ! ! ! ! , , , %)>>>>>> ! , ! , , , , ! , , ! , ! , ! %3>>>>>> ! , , , ! , , , , , ! , ! , ! %/>>>>>>> ! , , , , , , , ! , ! ! ! , , %.>>>>>>> ! , , , , ! , , , , ! , ! , , %#>>>>>>> ! , ! , , , , , , , ! , ! , , %:>>>>>>> , , ! ! , ! ! , ! ! ! ! , , !

3 / . # : D = , ! ! ! , ! , , , ! , , , , ! , , ! ! , , , , , ! ! , , , ! , ! ! ! , ! , , , ! ! , , , ! ! , , , ! ! ! ! ! ! , , , , ! , , , , ! , , , , ! ! ! ! ! ! ! , , , , ! , , , , ! ! ! ! ! , , , , ! , , , , , ! ! ! ! ! ! ! ! ! ! ! , , , , ! , , , , ! ! ! ! ! ! , , , ! ! , , , , ! ! ! ! ! ! ! ! ! ! , , , , ! , , , , ! , , , ! , , , ! , , , ! , , , ! , , , , ! ! ! ! ! ! , , , ! ! , , , ! ! ! ! ! ! ! , , , ! ! , , , ! ! ! ! ! ! !; !; !; !; !; !; ,; ,; ,; !; !; ,; ,; ,; !; !; !; !; !; !; ,; ,; ,; ,; !; ,; ,; ,; ,; !; ,; ,; ,; ,; !4 ;

5=25 5C,.)Erand(3."!,)4 t=2

%, ! ) %!>>>>> , , , ! , ! ! , ! ! ! ! , , , %)>>>>>> ! , !

3 / . # : D = , ! ! ! , ! , , , ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !; !; !; !; !;

! ! ! ! , ! !;

Robtica e Inteligencia Artificial! p"g. #0

, , , , ! , , ! , ! , ! %3>>>>>> ! , , , ! , , , , , ! , ! , ! %/>>>>>>> ! , , , , , , , ! , ! ! ! , , %.>>>>>>> ! , , , , ! , , , , ! , ! , , %#>>>>>>> ! , ! , , , , , , , ! , ! , , %:>>>>>>> , , ! ! , ! ! , ! ! ! ! , , !

, , , ! , , , , ! , , ! ! , , , , , ! ! , , , ! , ! ! ! ,

, , , ! ! , , , ! ! ! ! ! ! , , , , ! , , , , ! , , , , !

, , , , ! , , , , ! ! ! ! ! , , , , ! , , , , , ! ! ! ! !

, , , , ! , , , , ! ! ! ! ! ! , , , ! ! , , , , ! ! ! ! !

, , , ! , , , , ! , , , ! , , , ! , , , ! , , , ! , , , ,

, , , ! ! , , , ! ! ! ! ! ! ! , , , ! ! , , , ! ! ! ! ! !

,; ,; ,; !; !; ,; ,; ,; !; !; !; !; !; !; ,; ,; ,; ,; !; ,; ,; ,; ,; !; ,; ,; ,; ,; !4 ;

t=2t t4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $idden = input('+uHntas neuronas desea en la capa ocultaI '); sc = input('Ingrese el mJtodo de escalado6 &score=&" linear=l" none=n I 2&"l"n46'"'s'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 7arametros por defecto6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fprintf('KnKn1os parHmetros por defecto son6KnKn'); fprintf('Aolerancia en el error de salida (R0F) = .!Kn'); R0FL'oal = . !; fprintf('0H5imo nMmero de ciclos de entrenamiento= .,,,.Kn'); ma5c*cles = .,,,; fprintf('1a tasa inicial de aprendi&aje es = ,.!.Kn'); lr = ,.!; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 7ermitir al usuario cambiar los parHmetros por defecto6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c$oice = input('8stH satisfec$o con estos parHmetrosI 2*"n46'"'s');

Robtica e Inteligencia Artificial! p"g. ##

if c$oice == 'n' R0FL'oal = input('Aolerancia en el error de salida (R0F)6 '); ma5c*cles = input('0H5imo nMmero de ciclos de entrenamiento6 '); lr = input('1a tasa inicial de aprendi&aje6 '); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 85tra*endo dimensiones de los datos de entrada6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2inputs"patterns!4=si&e(5); 2outputs"patterns4=si&e(t); if patterns! -= patterns error('8l nMmero de elementos de entrada tieneNue ser el mismo Nue el de salidas deseadas.') end fprintf('Kn8sta red tiene6KnKn'); fprintf(' %,.f neuronas de entradaKn'"inputs); fprintf(' %,.f neuronas en la capa ocultaKn'"$idden); fprintf(' %,.f neuronas de salidaKnKn'"outputs); fprintf('Oa* %,.f pares de entradas;salidas.KnKn'"patterns); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 8scalado de las entradas6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if sc == '&' 25n" 5m" 5s4 = &score(5); elseif sc == 'l' 25n" 5m" 5s4 = scale(5); else 5n=5; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Iniciali&acin de pesos a peNuePos nMmeros randmicos6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 9!=,..Erandn($idden"inputsC!); % Initiali&e output la*er %eig$t matri5. 9)=,..Erandn(outputs"$iddenC!); % Initiali&e $idden la*er %eig$t matri5. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 8ntrenamiento de la red usando el algoritmo de bacQpropagation6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 29! 9) R0F 1R4=bacQpropLcurso(5n"t"9!"9)"R0FL'oal"lr"ma5c*cles); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 'rHfica de la e olucin del error en el entrenamiento6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% subplot()"!"!); semilog*(R0F); title('Resultados en el entrenamiento por retro>propagacin'); *label('8rror R0F')

Robtica e Inteligencia Artificial! p"g. #$

subplot()"!")); plot(1R) *label('Aasa de aprendi&aje') 5label('+iclos'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +riterio de tolerancia no encontrado6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c*cles=lengt$(R0F); if c*cles == ma5c*cles fprintf('KnKnEEE 8ntrenamiento (7 completo" error no conseguidoR') fprintf('KnEEE R0F = %e KnKn'"min(R0F)) else %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +riterio de tolerancia encontrado6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fprintf('KnEEE EEE'"c*cles) fprintf('KnEEE end 8ntrenamiento (7 completado en %,.f epocasR R0F = %e KnKn'"min(R0F))

%sa e 98I'OAF 9! 9) 5m 5s sc R0F 1R function 29!"9)"R0F"1R4=bacQpropLcurso (5"t"9!"9)"R0FL'oal"lr"ma5c*cles) % (A+S7R@7L+TRF@ 8ntrena una red 017 de dos capas (logistic;1inear) % 29!"9)"R0F"1R4=bacQpropLcurso(5"t"9!"9)"R0FL'oal"lr"ma5c*cles) % % A$e 017 tiene6 capa oculta6 funciones de acti acin logisticas % capa de salida6 funciones de acti acin lineales. % % 5 6 matri& de datos de las entradas. % t 6 matri& de salidas deseadas. % 9! 6 0atri& de pesos de la capa oculta. % 9) 6 0atris de pesos de la capa de salida. % R0FL'oal 6 Root 0ean FNuared 8rror meta. % lr 6 Aasa de aprendi&aje. % ma5c*cles 6 0a5imo nMmero de iteraciones de entrenamiento. % 1R 6 Oistrico de la tasa de aprendi&aje durante el entrenamiento. % R0F 6 Oistrico del R0F durante el entrenemiento. % % Uer bptrainLcurso para el entrenemiento. 2inputs"patterns!4=si&e(5); 2outputs"patterns4=si&e(t); 2$idden"inputs!4=si&e(9!); 2outputs!"$idden!4=si&e(9)); if outputs! -= outputs error('9! no encajan con el end ector de salidas deseadas.')

if inputs! -= inputsC! error(' 9) does no encajan con el

ector de entrada.')

Robtica e Inteligencia Artificial! p"g. #1

end if $idden! -= $iddenC! error('9! * 9) no coinciden.') end terms=outputsEpatterns; R0F=&eros(!"ma5c*cles); 1R=&eros(!"ma5c*cles); V=2ones(!"patterns); 54; $=logsig(9!EV); % salida de la capa oculta O=2ones(!"patterns);$4; output =(9)EO); % ector de salida e = t>output; % error de salida R0F(!) = sNrt(sum(sum(e.W)));terms); % error R0F. fprintf('8poca = !" lr = %f" R0F 8rror = %fKn'"lr"R0F(!)) for i=)6ma5c*cles delta) = e; delL9) = lrEdelta)EO'; delta! = $.E(!>$).E(9)(6")6$iddenC!)'Edelta)); delL9! = lrEdelta!EV'; ne%L9! = 9!CdelL9!; % Actuali&acin de pesos de la capa oculta ne%L9) = 9)CdelL9); % Actuali&acin de pesos de la capa de salida. ne%L$ = logsig(ne%L9!EV); ne%LO = 2ones(!"patterns);ne%L$4; % Falida de la capa oculta ne%Loutput =(ne%L9)Ene%LO); % ector de salida ne%Le = t>ne%Loutput; % 8rror de salida R0F(i) = sNrt(sum(sum(ne%Le.W)));terms);% error R0F. if R0F(i)XR0F(i>!) 9! = ne%L9!; 9) = ne%L9); e=ne%Le; $=ne%L$; O=ne%LO; lr=lrE!.!; else lr=lrE..; end % Incremente la tasa de aprendi&aje. % 8rror decrement" entonces actualice los pesos.

% Gecremente la tasa de aprendi&aje.

1R(i)=lr; % Almacenar la e olucin de la tasa de aprendi&aje. if R0F(i)XR0FL'oal; breaQ;end % +riterio de error encontrado. if rem(i".,)==," fprintf('8poca = %i" lr = %f" R0F 8rror = %fKn'"i"1R(i)"R0F(i))"end end R0F=non&eros(R0F); 1R=non&eros(1R); 2g $4=si&e(5)) output = 9)E2ones(!"$);logsig(9!E2ones(!"$);5)4)4; G8 1A R8G close all plotc$ar(5)) figure %plotc$ar(output) % @(A8380@F 1A FA1IGA

Robtica e Inteligencia Artificial! p"g. #E

plotc$ar($ardlim(output>,..))

Robtica e Inteligencia Artificial! p"g. #L

BIBLIOGRAFA
http)PP555.math5orAs.comP ) p"gina o%icial de matlab. http)PP555.math5orAs.comPproductsPneuralnetP ) documentaci n o%icial del toolbox de redes neuronales.

Robtica e Inteligencia Artificial! p"g. #M

S-ar putea să vă placă și