Lab_S3_RNA

download Lab_S3_RNA

of 2

Transcript of Lab_S3_RNA

  • 8/8/2019 Lab_S3_RNA

    1/2

    ResumenEl Perceptrn Multicapa (MLP) surge como unaposible solucin a los problemas de clasificacin no lineales quepresentaba el Perceptrn simple. En el presente informe sepresentan algunos problemas de clasificacin que no son

    linealmente separables (XOR) y algunas redes entrenadas paraaprender ciertas funciones

    Palabras ClavesPerceptrn Multicapa (MLP), Mtodos deAprendizaje, Backpropagation, Validacin, Generalizacin, UV-SRNA.

    I. INTRODUCCINEl Perceptrn Multicapa es una modificacin de la estructura del

    Perceptrn Simple, ya que en vez de usar solo dos capas (Capa deentrada y capa de salida) introduce una capa de neuronas entre lascapas mencionadas, denominada CAPA OCULTA. Para elentrenamiento del MLP se formulo el algoritmo de aprendizaje de

    Backpropagation. El algoritmo de aprendizaje de Backpropagation

    trabaja bajo aprendizaje supervisado ya que es necesario aplicarpatrones de entrenamiento (Patrones de Entradas y Patrones deSalidas Deseadas). Es denominado Backpropogation o de

    propagacin inversa, debido a que el error se propaga inversamente alfuncionamiento normal de la red, es decir que se propaga hacia atrsel error de la capa de salida para estimar el error en la capa oculta.Para lograr un proceso de aprendizaje exitoso el algoritmo busca

    actualizar todos los pesos sinpticos de la red minimizando el errorcuadrtico medio.

    II. DESARROLLODELLABORATORIO1. Solucin del problema de la funcin XOR con MatlabEn este punto se implementa el cdigo descrito en la gua (function

    xorback (mtodo, n)) con el fin de verificar como cambia la calidad

    del aprendizaje segn el mtodo de aprendizaje seleccionado. En laTabla No. 1 se muestran los resultados obtenidos segn el mtodoseleccionado con un numero de iteraciones fijado en 100.

    Mtodo Error Calidad1 9,921E-02 Baja

    2 2,568E-13 Aceptable

    3 4,445E-02 Aceptable

    4 3,343E-04 Buena

    TABLA 1.RESULTADOS OBTENIDOS PARA LA XORMtodos usados:

    1. Gradiente descendente2. Gradiente descendente con eta variable3. Gradiente descendente con momentum

    4. Gradiente descendente con momentum y eta variable

    Visualizando la superficie de separacin que genera la red, hemos

    establecido segn nuestra perspectiva que tan buena es la calidad delaprendizaje. En el Anexo 1 se encuentran las superficies deseparacin obtenidas de la red.

    2. Aprendizaje de una funcin seno con MatlabPara la verificacin de la calidad de la generalizacin que tiene la redentrenada se propone el siguiente mtodo:1) Entrenar la red y guardar la red mejor entrenada2) Aplicar a la red nuevas entradas, diferentes a los patrones de

    entrada usados en el entrenamiento, teniendo en cuenta el rango

    de la funcin, es decir, que las nuevas entradas se encuentrendentro del rango de la funcin original.

    3) Mediante la expresin (1) determinar el error que se produce alintroducir la nueva entrada

    Donde: =La salida deseada, que representa la nueva entrada.=La salida generada por la nueva simulacin de la red

    En el Anexo 2 se encuentra la verificacin del comportamiento de lared cuando se varan el nmero de neuronas en la capa oculta y elmtodo de aprendizaje. Donde la se tiene que el mejor mtodo es el

    No. 5 y que entre 5 a 7 neuronas es la menor variacin.

    III. EJERCICIOSPara las redes entrenadas de las funciones seno se utiliza el mismomtodo de validacin descrito en la funcin senoback. Para las redesentrenadas de reconocimiento se hace la validacin mediante laintroduccin de ruido a la grilla, es decir, distorsionando lainformacin que brinda la grilla par el debido reconocimiento.

    Adems para todas las redes entrenadas se tiene que los primerosmtodos usados anteriormente se conservan, exceptuando el nmero5, que es reemplazado por el Algoritmo de Aprendizaje LevenbergMarquardt.

    1. Entrenar una red MLP tanto en MATLAB como en UV-SRNA que aprenda la funcin (Seno1)(0.5*sin(x)+0.5*sin(2*x)) de tal forma que x est en el rango < x < . Para validar el entrenamiento verifique lageneralizacin de la red entrenada.

    Trainlm(5,9,100)

    mse Rango Error%Traing

    (2,7,100)mse Rango Error %

    1.1 0,3478 0,8034 21,65 1.1 0,2386 0,8266 14,43

    1.5 0,3471 0,7984 21,74 1.5 0,2365 0,822 14,39

    0.5 0,3514 0,8034 21,87 0.5 0,2436 0,8237 14,79

    0.3 0,3521 0,8034 21,91 0.3 0,2484 0,8292 14,98

    TABLA NO 2 RESULTADOS DEL ENTRENAMIENTO Y VALIDACINPARA LA FUNCIN SENO1

    Las celdas en color amarillo nos indican que la red estamemorizando. El mejor mtodo de entrenamiento es el LevenbergMarquardt, mientras que los peores se encuentra el mtodo 1 y 3. Enel A nexo 3 se encuentra la informacin mas detallada de lo

    experimentado.

    2. Entrenar una red MLP en MATLAB que aprenda la funcin(Seno2) Seno(x)/x de tal forma que x est en el rango 10< x

    < 10. Para validar el entrenamiento verifique lageneralizacin de la red entrenada.Las caractersticas de esta funcin fueron muy similares a losobtenidos para la anterior funcin (seno1), exceptuando por el error

    obtenido en el mtodo 5. En el Anexo 4 se encuentra la informacinmas detallada de lo experimentado.

    Mtodo Generalizacin Errorpromedio

    1 Mala -----

    2 Regular 0,7

    3 Mala -----

    4 Regular 0,39

    5 Excelente 0

    TABLA NO 3RESULTADOS GENERALES DE LA FUNCIN SENO2

    Diseo y simulacin de un Perceptrn multicapa (MLP) conMatlab y UV-SRNA

    Luz Karime Ramrez 0711078,

    Ivn Hernando Gonzlez - 0611129IEEE, Universidad del Valle, Cali, Colombia

    Email: {mime214, espartaco113}@hotmail.com

  • 8/8/2019 Lab_S3_RNA

    2/2

    3. Entrene una red neuronal tipo MLP tanto en MATLABcomo en UV-SRNA que sirva para reconocer las vocales.

    En la Tabla 4 se muestran los resultados obtenidos al entrenar la redmediante los diferentes mtodos de aprendizaje:

    Mtodo Neuronas Iteraciones1 10 5002 10 1003 20 3004 10 100

    5 10 50TABLA 4.RESULTADOS DE LA RED EN MATLAB

    Para la red mejor entrenada, en nuestro caso la red entrenada yguardada con el mtodo 5, se llevo a cabo la validacin de la red,

    introduciendo 15 ruidos a la grilla, los ruidos consistan en introducirun patrn en la grilla que para el usuario pueda representar una vocal.

    Vocal Aciertos Fallas %GeneralizacinA 11 4 73.33

    E 13 2 86.67

    I 15 0 100

    O 11 4 73.33

    U 10 5 66.67

    TABLA NO 5RESULTADOS DE GENERALIZACIN PARA LA RED

    La generalizacin de la red, se determino, mediante la cantidad deaciertos que se obtuvieron sobre la totalidad de ruidos introducidos.De esta manera se puede observar que a mayor porcentaje mejor es la

    generalizacin, as que la red en general es capaz de generalizar en un80% de los patrones introducidos despus del entrenamiento.Para UV-SRNA se obtuvo:

    Datos Significado10 Numero de Patrones de entrenamiento

    35 Numero de entradas de cada patrn

    4 Numero de salidas de cada patrn

    9 Numero de patrones de Validacin

    GD Mejor mtodo de entrenamiento

    LM La red se sobre entreno (Memorizo)

    8 Aciertos

    1 Fallos

    99% Eficiencia

    TABLA NO 6RESULTADOS OBTENIDOS EN UV-SRNA

    4. Entrene una red neuronal tipo MLP tanto en MATLABcomo en UVSRNA que sirva para reconocer los dgitos del 0-9.

    De igual manera que en las vocales, para los dgitos se presenta lastablas que representan los mejores entrenamientos para cada mtodoy la capacidad de generalizacin.

    Mtodo Neuronas Iteraciones1 20 5002 10 1003 20 5004 10 1005 5 100

    TABLA NO 7 RESULTADOS DE LA RED EN MATLAB

    Para la red mejor entrenada (con el Mtodo 5), se llevo a cabo la

    validacin de la red, introduciendo para este caso 5 ruidos a la grilla.

    Digito Aciertos %Generalizacin Digito Aciertos %Generalizacin0 1 20 5 0 0

    1 3 60 6 4 80

    2 1 20 7 1 20

    3 2 40 8 1 20

    4 0 0 9 0 0

    TABLA NO 8RESULTADOS FINALES DE LA FUNCIN SENO2

    La generalizacin de la red, se determino, mediante la cantidad deaciertos que se obtuvieron sobre la totalidad de ruidos introducidos.

    La red en general es capaz de generalizar en un 32.5% de los patrones

    introducidos despus del entrenamiento. Para UV-SRNA los datosobtenidos se adjuntan en el Anexo 6.

    5. Entrene una red MLP en MATLAB que aprenda lasiguiente funcin de dos variables que se muestra en lafigura 3.10 de la gua de laboratorio. Verifique lageneralizacin de la red entrenada.

    Para la realizacin de esta funcin, se tomo como referencia el cdigomostrado en la gua para el aprendizaje de lasilla de montar; se usoel algoritmo de Levenberg Marquardt, siendo este el de mejorrespuesta. Tambin podemos decir que los mtodos como el

    gradiente descendente e igual con eta variable, es muy difcil llegar ala respuesta deseada. En el Anexo 5 se encuentra la tabla completa:

    Intervalo mse rango Error %

    0.01 0,1038 7,4382 0,70

    0.2 0,1104 7,3758 0,75

    0.8 0,0784 6,5048 0,60

    1.0 0,1307 5,8271 1,12

    TABLA NO 9RESULTADOS PARA LA FIGURA 3-10

    IV. OBSERVACIONES Para cada mtodo se fijaba un nmero de neuronas de 10, luego

    se incrementaban las iteraciones, desde 50 hasta 800, y en caso

    tal de que no se obtuviera una buena validacin se incrementabael nmero de neuronas en la capa oculta. Finalmente se

    guardaba la red que quedara bien entrenada teniendo en cuentaque es mejor tener mas iteraciones que neuronas, por la cargacomputacional de la red.

    Para la figura 3_10 se uso un error de entrenamiento igual a 0.1;para efecto de pruebas y ver el comportamiento de la red en unmodo real.

    Para la funcin seno2 cuando se utilizo el mtodo 5, se obtuvo lamejor validacin y posterior generalizacin, esto se debe a que

    cuando realizamos el mtodo de entrenamiento esta logro

    realizar la cantidad de iteraciones propuestas y se ubico en elmnimo global que por suerte fue el error deseado

    V. CONCLUSIONES Para determinar el nmero de capas ocultas y el nmero de

    neuronas que debe contener cada una de ellas no existe unatcnica determinada, ya que depende del problema por tanto la

    eleccin es determinada por la experiencia de la persona queeste diseando la red.

    Los mejores resultados de entrenamiento se obtuvieron con elmtodo del algoritmo de Levenberg-Marquardt debido a que se

    utilizaron pocas neuronas en la capa oculta y pocas iteraciones,lo cual disminuye la carga computacional de la red.

    En cuanto a la generalizacin de las redes de reconocimiento depatrones (vocales y dgitos), se logro un mejor desempeo en la

    red de vocales, debido a que la calidad de los datos deentrenamiento fueron mejores a los utilizados en la red dedgitos. Lo cual se evidencia en los porcentajes degeneralizacin: Vocales: 80% y Dgitos: 32.5%

    VI. BIBLIOGRAFA[1] Gua de Laboratorio No.3. Diseo y Simulacin de un Perceptrnmulticapa (MLP) con Matlab y UV-SRNA Perceptrn. Universidaddel Valle. 2010.

    [2] Caicedo, Eduardo. Lpez, Jess. Una Aproximacin a las RedesNeuronales Artificiales. Programa Editorial Universidad del Valle.2010.