Redes Neuronales (2)

4
4 4. Funciones de MATLAB para el Perceptrón Multicapa. MATLAB dispone de un toolbox (conjunto de herramientas) para la resolución de problemas aplicando redes neuronales llamado Neural Network Toolbox. A continuación, veremos algunas funciones que nos serán de utilidad a la hora de construir una red neuronal. 4.1 Declaración de la topología de la red Para declarar la arquitectura de la red e inicializar de forma aleatoria sus pesos y umbrales utilizaremos la función NEWFF: newff (new feed-forward network) Crea una red con conexiones hacia delante y con retropropagación de errores. Sintaxis: net=newff(PR,[S1 S2 …SN1],{TF1 TF2 …TFN1},BTF) Descripción: Net - nombre asignado a la red PR - es una matriz (Rx2) donde aparecen los máximos y mínimos de los R elementos de entrada. Si – tamaño de la capa iésima, para un total de N1 capas TFi – Función de transferencia de la capa iésima. Por defecto = tansig (otras posibilidades: logsig o purelin). BTF – Algoritmo de retropropagación de error. Por defecto = traingdx (otras posibilidades: traingd, traingdm, traingda). 4.2 Aprendizaje Existen varias funciones en MATLAB para el aprendizaje de una red neuronal. En esta práctica trabajaremos con cuatro funciones de aprendizaje basadas en el método backpropagation: TRAINGD, TRAINGDM, TRAINGDA y TRAINGDX. Esta funciones, quedan fijadas cuando definimos la arquitectura de la red con la función NEWFF (ver punto 5.1). Una vez definidas, se ejecutan todas con la función TRAIN:

description

tratado de redes neuronales

Transcript of Redes Neuronales (2)

4 4. Funciones de MATLAB para el Perceptrn Multicapa. MATLABdisponedeuntoolbox(conjuntodeherramientas)paralaresolucinde problemasaplicandoredesneuronalesllamadoNeuralNetworkToolbox.A continuacin, veremos algunas funciones que nos sern de utilidad a la hora de construir una red neuronal. 4.1 Declaracin de la topologa de la red Paradeclararlaarquitecturadelaredeinicializardeformaaleatoriasuspesosy umbrales utilizaremos la funcin NEWFF: newff(new feed-forward network) Crea una red con conexiones hacia delante y con retropropagacin de errores. Sintaxis: net=newff(PR,[S1 S2 SN1],{TF1 TF2 TFN1},BTF) Descripcin: Net - nombre asignado a la red PR-esunamatriz(Rx2)dondeaparecenlosmximosymnimosdelosR elementos de entrada. Si tamao de la capa isima, para un total de N1 capas TFi Funcin de transferencia de la capa isima. Por defecto = tansig (otras posibilidades: logsig o purelin). BTF Algoritmo de retropropagacin de error. Por defecto = traingdx (otras posibilidades: traingd, traingdm, traingda). 4.2 AprendizajeExisten varias funciones en MATLAB para el aprendizaje de una red neuronal. En esta prcticatrabajaremosconcuatrofuncionesdeaprendizajebasadasenelmtodo backpropagation:TRAINGD,TRAINGDM,TRAINGDAyTRAINGDX.Esta funciones,quedanfijadascuandodefinimoslaarquitecturadelaredconlafuncin NEWFF (ver punto 5.1). Una vez definidas, se ejecutan todas con la funcin TRAIN: 5train(Train network) La funcin TRAIN entrena la red neuronal de acuerdo con el algoritmo de aprendizaje definido como parmetro BTF en NEWFFSintaxis: [net,TR]= train(net,P,T) net Red neuronalP - RxN matriz de entradas.T - SxN matriz de salidas objetivos y devuelve los siguientesparmetros de aprendizaje: net Red neuronal entrenada TR Valores de entrenamiento: n de iteraciones realizadas, errores en la ultima iteracin, etc. Algoritmos de aprendizaje: TRAINGD (Gradient descent backpropagation) LafuncinTRAINGDimplementaelmtodoclsico(gradientedescendente)de backpropagation: Antes de proceder al entrenamiento, es preciso fijar los parmetros de aprendizaje, que en casode utilizar TRAINGD son: net.trainParam.shownmero de iteraciones entre dos mensajes de proceso net.trainParam.epochsnmero mximo de iteraciones net.trainParam.lrvelocidad de aprendizaje net.trainParam.goalcota mxima de error n nij ijnijerror( )w ( )=w ( -1)-wkk k6 TRAINGDM (Gradient descent with momentum backpropagation) La funcin TRAINGDM implementa el algoritmo de backpropagation con un trmino adicional de momento: El nuevo trmino tiene en cuenta el incremento que sufri el parmetro en la iteracin anterior: n nij ijw ( -1)-w ( -2) k k , cada vez quehace un nuevo cambio en pesos o umbrales. Esto proporciona una mayor estabilidad al algoritmo. Los parmetros de aprendizaje son los mismos que los utilizados con TRAINGD, pero es preciso aadir la constante de momento: net.trainParam.mcconstante de momento TRAINGDA (Gradient descent with adaptative learning rate backpropagation) La funcin TRAINGDA implementa el algoritmo de backpropagation con velocidad de aprendizaje variable, intentando moverse por la superficie de error con el mayor paso posible, pero manteniendo la estabilidad.El valor inicial de la velocidad viene dado por net.trainParam.lr.Sielerrorcometidoenunciclodeaprendizaje,superaalerror cometido en el ciclo anterior en una cantidad igual o superior a max_perf_inc, entonces losnuevosparmetros(pesosyumbrales)sedescartan,lavelocidaddeaprendizajese reduce en un factor lr_dec. En caso contrario, se mantienen los nuevos pesos y umbrales y la velocidad de aprendizaje se incrementa un factor lr_inc. Los nuevos parmetros que es preciso definir son: net.trainParam.lr_incfactor de incremento de la velocidad de aprendizaje net.trainParam.lr_decfactor de decremento de la velocidad de aprendizaje net.trainParam.max_perf_incmximoincremento de error admisible entre dos ciclos de entrenamiento consecutivos TRAINGDX(Gradientdescentwithmomentumandadaptativelearningrate backpropagation) LafuncinTRAINGDXimplementaelalgoritmodebackpropagationcontrmino adicionaldemomentoyvelocidaddeaprendizajevariable.Esunalgoritmode convergenciarpida.Debenincluirsetodoslosparmetroscorrespondientesa TRAINGDM y TRAINGDA. n n n nij ij ij ijnijerror( )w ( )=w ( -1)- w ( -1)-w ( -2)wkk k k k + 7 4.3 Simulacin Unavezentrenadalared,tenemosquecomprobarquelaredhaaprendido correctamente, es decir, que la salida obtenida se ajusta a la salida objetivo en todos los casos. Para ello, simularemos la red con el mismo patrn de aprendizaje para comprobar que la salida es la esperada. Simular una red neuronal consiste proporcionar una entrada a la red ya entrenada (con lospesosyumbralesdefinitivos)yobtenerlasalida.Existenvariasfuncionesde simulacin. Nosotros utilizaremos la funcin de simulacinSIM: sim (Simulate a neural network) La funcin SIM simula la red neuronal con los pesos y umbrales obtenidos tras el entrenamiento de la misma con la funcin TRAIN.Sintaxis: a= sim(net, P)net red neuronal P - Matriz de entrada.Devuelve la salida a obtenida por la redpara la entrada P. 4.4 Validacin Unavezentrenadalaredycomprobadoquefuncionaparaelconjuntodeejemplosde entrenamiento,tenemosquecomprobarquelaredhaaprendidocorrectamente,es decir,quelasalidaobtenidaseajustatambinalasalidaobjetivoparatodoslos patronesdelconjuntodevalidacin.Paraello,simularemoslaredconcadaunode ellosutilizandolafuncinSIM.Silosresultadossoncorrectos,podemosconsiderar que la red est dispuesta para su explotacin. 5.Caso particular: Deteccin de complejos QRS en ECG. Hagamos algunas consideraciones preliminares respecto a la implementacin de una RNA destinada a la deteccin de ondas R en ECG: I.Arquitectura N de neuronas en la capa de entrada: Los ECG estn recogidos en ficheros de texto (ECG*.txt)constituidosporunasucesinde1024valoresnumricosque