Practica RNAs

Embed Size (px)

DESCRIPTION

Practicas sobre redes neuronales de la UNED

Citation preview

  • Aprendizaje Automtico: Redes de Neuronas Articiales

    Enrique J. Carmona Surez

    [email protected]

    Primera versin: 01/10/2015 ltima versin: 02/10/2015

    Dpto. Inteligencia Articial, ETS de Ingeniera Informtica, Universidad Nacional de Educacin a

    Distancia (UNED), C/Juan del Rosal, 16, 28040-Madrid (Spain)

    ndice

    1. Introduccin 1

    2. Requisitos previos 2

    3. Objetivos 2

    4. Material 2

    5. Actividades 3

    6. Conclusiones 7

    7. Evaluacin 7

    1. Introduccin

    Las redes de neuronas articiales (RNA) son un paradigma de aprendizaje con una fuerte

    inspiracin biolgica. Bsicamente, una RNA es un sistema de interconexin de nodos o neuronas,

    organizados en capas, que produce una salida en funcin del valor de las entradas.

    Los primeros modelos de redes neuronales datan de 1943 por los neurlogos McCulloch y Pitts.

    Aos ms tarde, en 1949, Hebb realiza una nueva aportacin conocida por la regla que lleva su

    nombre, la regla de Hebb. Posteriormente, Rosenblatt contribuye al campo con la idea del perceptrn

    simple (1958) y, un poco ms tarde, Widrow y Ho desarrollan el ADALINE (1960). En los aos

    siguientes, se hacen patentes ciertas limitaciones de los modelos propuestos y, en particular, del

    perceptron simple por su incapacidad de clasicar conjuntos que no son linealmente separables, tal

    y como es el caso de la sencilla funcin XOR. El resurgir de las RNAs se produce a partir de los

    aos 80, principalmente debido a la aportacin del algoritmo de aprendizaje de retropropagacin del

    error (1986) ideado por McClelland y Rumelhar y su incorporacin al desarrollo del denominado

    perceptrn multicapa.

    El perceptrn multicapa (PM) es una ampliacin del perceptrn simple, al que, adems de la

    capa de entrada y de salida de este ltimo, se le aaden una serie de capas intermedias, denominadas

    capas ocultas, que permiten realizar una transformacin no lineal sobre las variables de entrada y,

    por tanto, solucionar as la gran limitacin del perceptrn simple. En el PM, todas las neuronas

    de una capa se conectan a las de la capa anterior

    1

    y el aprendizaje de los pesos de cada conexin

    se realiza mediante el ya mencionado algoritmo de retropropagacin.

    1

    Existen otras arquitecturas posibles para un perceptrn multicapa como, por ejemplo, aquellas que permiten la

    conexin de todas o de ciertas neuronas de una determinada capa a neuronas de la capa no inmediatemente anterior

    o, tambin, aquellas otras en las que existen neuronas de una capa que no tienen conexin con las de la siguiente

    capa.

    1

  • Aunque, dentro del aprendizaje supervisado, existen otros tipos de redes neuronales como, por

    ejemplo, las redes de base radial o las redes recurrentes, esta actividad se centrar en el estudio

    practico del perceptrn multicapa, principalmente por ser uno de los paradigmas ms utilizados

    dentro de esta categora de aprendizaje.

    Figura 1: Ejemplo de perceptrn multicapa en el que la capa de entrada consta de n neuronas, lanica capa oculta, de m neuronas y, la capa de salida de una nica neurona.

    2. Requisitos previos

    1. Haber estudiado los captulos 1 y 2 del texto base [Borrajo et al., 2006].

    2. Haber estudiado la seccin 9.1 (Captulo 9), Redes Neuronales, del texto base [Borrajo et al., 2006].

    3. Objetivos

    1. Familiarizarse con el uso de RNAs.

    2. Experimentar con el perceptrn multicapa implementado en Weka.

    3. Experimentar con el valor de los parmetros del perceptrn.

    4. Analizar diferentes formas de evaluar un modelo:

    a) Usando todos los ejemplos del chero de entrada

    b) Dividiendo el chero de entrada en ejemplos de entrenamiento y test

    c) Usando validacin cruzada.

    5. Utilizar el modelo aprendido para clasicar instancias con valor de clase desconocido.

    6. Evaluar el modelo aprendido mediante un conjunto de datos distinto al conjunto usado para

    construir el modelo.

    4. Material

    Programa Weka.

    Archivos de datos: iris.ar, iris-new.ar y iris-test.ar (descargables desde el curso vir-

    tual).

    2

  • 5. Actividades

    1. Cargar el chero iris.ar desde el panel Preprocess de Explorer (ver gura 2). El contenido

    de este archivo es una coleccin de instancias que representan tres variedades de lirio. Se com-

    pone de cinco atributos. Los cuatros primeros corresponden a diversas medidas morfolgicas

    de la planta (anchura y longitud de spalos y de ptalos) y el quinto corresponde al valor

    de la clase (tipo de lirio). Para ms detalle, abra el archivo con cualquier editor de textos y

    consulte la informacin de cabecera de dicho archivo.

    Figura 2: Panel de Preprocesado del Explorer de Weka.

    2. Desde un punto de vista general, como paso previo a la creacin del modelo, es muy conve-

    niente analizar el conjunto de datos a utilizar. La idea es decidir si se hace necesaria una etapa

    de procesado, anterior a la construccin del modelo. La aplicacin de esta etapa puede de-

    pender, por ejemplo, de la necesidad de acomodar el tipo de variables de entrada (numricas,

    nominales, binarias) al tipo de variables requerido por el algoritmo a utilizar o, tambin, de la

    conveniencia de tener que normalizar o no dichas variables. La etapa de preprocesado podra

    ser tambin necesaria para eliminar ejemplos ruidosos o atributos irrelevantes. Dicho esto,

    asumiremos que el conjunto de datos que vamos a utilizar aqu no requerir de preprocesado.

    3. En la ventana Explorer, seleccione el panel Classify y escoja el algoritmoMultilayerPerceptron

    (versin Weka del perceptrn multicapa). Para el primer estudio, todos sus parmetros de

    conguracin (ver gura 3) se quedarn al valor por defecto. Con esta conguracin, ejecute

    las siguientes acciones:

    Experimento 3.1: Seleccione la opcin Use training set en la caja Test options. Ejecute

    el algoritmo.

    Experimento 3.2: Seleccione ahora la opcin Percentaje split y rellene el campo% con el

    valor 66. Esto har que se utilice 2/3 de la base de datos para entrenamiento y el resto

    (1/3) para validacin. Realice varias ejecuciones, variando cada vez el valor de la semilla

    responsable de obtener diferentes particiones de los conjuntos entrenamiento/validacin

    (este parmetro, Random seed for XVal/%Split, est accesible pulsando el botn Mo-

    reOptions... situado en la caja Test options). Concretamente, ejecute este anlisis para

    los siguientes valores de la semilla: 1, 2, 3, 4 y 5.

    Experimento 3.3: Seleccione la opcin Cross-validation y rellene el campo Folds a 10.

    Ejecute el algoritmo.

    Documentacin a entregar: Representar en una tabla el tanto por ciento de instan-

    cias correctamente clasicadas para cada experimento realizado y conteste a las siguien-

    tes preguntas: (1) Por qu el menor error se debera obtener en el primer experimento;

    (2) Por qu ucta el error en los distintas ejecuciones del segundo experimento; (3) Por

    qu se dice que el resultado ms able es el obtenido en el tercer experimento, a conti-

    nuacin el obtenido en el segundo y el menos able corresponde al primero; (4) Indique

    con qu conjunto o subconjunto de datos se construye el modelo de RNA mostrado por

    3

  • Figura 3: Conjunto de parmetros que permiten congurar el perceptrn multicapa de Weka para

    el aprendizaje de RNAs.

    Weka en cada uno de los experimentos realizados; (5) Interprete los resultados de la

    matriz de confusin obtenida en el experimento 3.3.

    4. Interprete grcamente el modelo de RNA aprendido en cualquiera de los experimentos

    realizados anteriormente. Para ello, construya un grco con la RNA obtenida, etiquetando

    cada nodo de la red con la notacin usada en el modelo dado por Weka. Seguidamente,

    seleccione al azar un nodo de la capa oculta y otro de la capa de salida y etiquete tambin,

    con nmeros, los pesos de las conexiones que llegan a cada uno de estos nodos de acuerdo con

    la informacin del modelo obtenido. Indique tambin qu signica el parmetro threshold,

    asociado a cada nodo, y represntelo convenientemente en cada uno de los dos nodos elegidos

    anteriormente.

    Documentacin a entregar: Mostrar el grco que representa el modelo de la RNA.

    5. Hasta ahora se ha utilizado el valor por defecto de los distintos parmetros del perceptrn.

    A continuacin, se plantean los siguientes experimentos:

    En esta batera de experimentos, mantenga siempre seleccionada la opcin de Cross-

    validation (10 folds).

    Realizar la ejecucin del algoritmo para distintos valores del parmetro hiddenLayers.

    Utilice los siguientes valores para este parmetro: {'a'}, {'i'}, {'o'}, {'t'} y {2,3}. Ob-

    srvese que el valor {'a'} corresponde al valor por defecto.

    Documentacin a entregar: Explique cmo queda conformada la capa oculta, en

    trminos de nmero de capas y de neuronas por capa, para cada uno de los valores

    del parmetro analizado. Mostrar en una grca cmo vara el porcentaje de instancias

    clasicadas correctamente y el RMSE (root mean square error) en funcin de los valores

    del parmetro analizado. Finalmente, en virtud del valor de RMSE, seleccione la RNA

    ganadora.

    Para la RNA ganadora del apartado anterior, aplique distintos valores (10, 100, 500,

    1000 y 10000) al parmetro trainingTime. Obsrvese que el valor 500 corresponde al

    valor por defecto.

    Documentacin a entregar: Explique qu es el trainingTime. Seguidamente, mues-

    tre en una grca cmo vara el porcentaje de instancias clasicadas correctamente y

    4

  • el RMSE en funcin de los valores del parmetro analizado. De los resultados obteni-

    dos, justique cul es el valor ms indicado para el parmetro trainingTime. La RNA

    obtenida con este valor se considerar la RNA ganadora.

    Para la RNA ganadora del apartado anterior, aplique distintos valores (0.001, 0.01, 0.1,

    0.3, 1 y 10) al parmetro learningRate. Obsrvese que el valor 0.3 corresponde al valor

    por defecto.

    Documentacin a entregar: Explique qu es el learningRate. Seguidamente, mues-

    tre en una grca cmo vara el porcentaje de instancias clasicadas correctamente y

    el RMSE en funcin de los valores del parmetro analizado. Justique los resultados

    obtenidos. Finalmente, en virtud del valor de RMSE, seleccione la RNA ganadora.

    Para la RNA ganadora del apartado anterior, aplique distintos valores (0.001, 0.01, 0.1,

    0.2 y 1) al parmetro momentum. Obsrvese que el valor 0.2 corresponde al valor por

    defecto.

    Documentacin a entregar: Explique cmo acta el parmetro momentum. Segui-

    damente, muestre en una grca cmo vara el porcentaje de instancias clasicadas

    correctamente y el RMSE en funcin de los valores del parmetro analizado. Justique

    los resultados obtenidos. Finalmente, en virtud del valor de RMSE, seleccione la RNA

    ganadora.

    6. Para aplicaciones prcticas de clasicacin, el objetivo de crear un modelo es usarlo pos-

    teriormente para clasicar instancias nuevas. Weka permite guardar la RNA generada para

    utilizarla posteriormente cuantas veces se quiera. Para ello, realice las siguientes acciones:

    Haciendo clic con el botn derecho del ratn, abra la ventana de opciones en Result List

    asociada a la mejor RNA obtenida en el ltimo experimento del paso 5 y elija la opcin

    salvar modelo (Save Model). Una vez asignado un nombre al modelo y guardado, lo

    tendremos ya disponible para tantas veces como se quiera.

    Abra nuevamente la ventana de opciones en Result List, pero esta vez haciendo clic en

    el rea vaca de esta caja. Seleccione la opcin Load model y cargue el modelo guardado

    previamente. Una vez cargado, se mostrar toda la informacin asociada a la RNA.

    Obsrvese que, esta vez, en el panel Classier Output, no aparecen estadsticas, puesto

    que lo nico que se guarda es el modelo, es decir, los datos no se salvan con el modelo.

    7. Se utilizar ahora la RNA cargada en el paso anterior para predecir la clasicacin de un

    conjunto de ejemplos de clasicacin desconocida almacenados en el chero "iris-new.ar".

    Si se edita este archivo

    2

    , puede comprobarse que la seccin de la cabecera es idntica a la de

    los datos del chero utilizado para construir el modelo. Sin embargo, en la seccin de datos,

    el valor del atributo clase est etiquetado con la marca '?' (valor desconocido). Realice las

    siguientes acciones:

    Marque la opcin Supplied test set de la caja Test options y, a continuacin, pulse el

    botn Set... Esto le permitir cargar en memoria el chero indicado de ejemplos de

    clasicacin desconocida y dejarlo preparado para ser la entrada al modelo.

    Site el cursor encima del modelo que se est usando (dentro de la caja Result List) y,

    con el botn derecho del ratn, seleccione la opcin Re-evaluate model on current test

    set. Esto producir la evaluacin del modelo con los datos del mencionado chero, pero

    no se generar ningn tipo de estadstica, dado que se desconoce el valor de clase de

    cada una de las instancias.

    Para saber cmo nuestro modelo clasic los nuevos casos, se seleccionar la opcin

    Visualize Classier Error, accesible desde la ventana emergente obtenida como resultado

    de hacer clic con el botn derecho del ratn sobre el modelo reevaluado. Esto provocar la

    aparicin de una nueva ventana que muestra un plot con todas las instancias implicadas

    3

    .

    En ella, podr analizar visualmente los resultados de la clasicacin, congurando al

    gusto las variables que se representarn en los ejes coordenados. A continuacin, utilice

    2

    Se puede editar con cualquier editor de textos

    3

    Si se hace clic con el botn izquierdo del ratn, sobre cualquiera de las instancias representadas en el plot, se

    puede conocer la prediccin de clasicacin (ver atributo predictedClass) realizada por el modelo.

    5

  • el botn Save de dicha ventana para guardar todas las instancias en un archivo. Ahora,

    si se edita el archivo generado, podr comprobarse que el contenido coincide con el

    archivo original con la salvedad de que se ha aadido un nuevo atributo, denominado

    predictedClass, que muestra la clasicacin predicha por el modelo para cada ejemplo.

    Documentacin a entregar: muestre el contenido del archivo generado para deter-

    minar la prediccin de los ejemplos de clasicacin desconocida.

    8. Mientras que el entorno de ventanas Explorer de WEKA permite realizar todo el proceso de

    prediccin de un conjunto de datos de clasicacin desconocida de una forma ms amigable,

    existe una forma alternativa, ms directa y exible de realizar lo mismo mediante la lnea de

    comandos (panel Simple CLI de Weka). De hecho, se puede utilizar el Explorer para crear la

    lista de parmetros del algoritmo a utilizar y despus utilizar esos parmetros en la lnea de

    comandos. Recuerde que esta forma de ejecucin puede ser muy til para llamar cualquier

    algoritmo de aprendizaje Weka desde cualquier otro programa o entorno software.

    Suponiendo que el modelo ya ha sido creado y guardado desde el GUI de Weka, el coman-

    do, utilizando JAVA

    4

    , para realizar el proceso de clasicacin de instancias desconocidas

    es:

    java weka.classiers.functions.MultilayerPerceptron -p 5 -l directorypath\RNA.model-T directorypath\iris-new.ar

    En el comando anterior, la opcin -p 5 indica que se desea predecir un valor para el

    atributo nmero 5 (class), la opcin -l especica la ruta del directorio y el nombre del

    archivo del modelo a utilizar. Finalmente, la opcin -T (en mayscula) especica el

    nombre y la ruta de directorio

    5

    del archivo que contiene los datos de clase desconocida.

    La ejecucin del comando da lugar a una salida de cuatro columnas similar a la presen-

    tada en la gura 4. La primera columna es un identicador asignado por Weka a cada

    uno de los casos existentes en el archivo de entrada. La segunda columna es el valor

    de clase actual. La tercera columna es la clase que predice el modelo. Finalmente, la

    cuarta columna muestra el valor prediccin para cada caso. Obsrvese, por tanto, que la

    salida producida ejecutando este anlisis desde la lnea de comandos tiene la ventaja de

    producir ms informacin (valor de prediccin) que la obtenida desde el GUI de Weka.

    Figura 4: Ejemplo de prediccin de clasicacin de instancias de valor de clase desconocida apli-

    cando un modelo desde la lnea de comandos de Weka.

    Documentacin a entregar: muestre el resultado de predecir la clase de los ejemplos

    del archivo "iris-new.ar" mediante el uso del comando anteriormente mencionado desde

    la lnea de comandos. Analice el error de prediccin de los resultados obtenidos.

    9. Tambin pudiera ser interesante evaluar las prestaciones del modelo generado a partir de otro

    conjunto de datos ajeno a la construccin del modelo y de los que esta vez s se conoce su

    clasicacin. El proceso es muy parecido al seguido en el paso 7. Ahora bien, en esta ocasin,

    al realizar el anlisis, s se obtendrn estadsticas, dado que se comparar los resultados de

    prediccin del modelo con los valores reales de clase de cada ejemplo. Realice las siguientes

    acciones:

    Cargue el modelo que se salv en el paso 6 o seleccinelo si est disponible en la caja

    Result List.

    4

    Es posible tambin invocar comandos WEKA desde otros programas tales como C, MATLAB, Perl...

    5

    Es muy importante que el "DirectoryPath" no haya nombres de carpeta con espacios porque esto producira

    un error. Si as fuese, reubique, por ejemplo, la posicin de ambos archivos (el del modelo y el de los datos) en el

    directorio raz ("C:\") o en un directorio temporal ("C:\temp\").

    6

  • Marque la opcin Supplied test set de la caja Test options y, a continuacin, pulse el

    botn Set... para cargar el archivo "iris-test.ar", que contiene el conjunto de datos de

    clase conocida.

    Re-evale el modelo siguiendo el mismo procedimiento utilizado en el paso 7. Compro-

    bar que ahora s se generan estadsticas.

    Documentacin a entregar: Compare el RMSE obtenido al aplicar el modelo a este

    nuevo conjunto de datos con el RMSE que se obtuvo (mediante validacin cruzada) al

    crear el modelo que se est reevaluando. Se puede armar que la estimacin del error

    mediante validacin cruzada es comparable con el error obtenido al aplicar el modelo a

    un conjunto de datos no utilizado en el entrenamiento? Justique la respuesta.

    6. Conclusiones

    En la documentacin a entregar, incluya tambin las conclusiones derivadas de los resultados

    prcticos obtenidos con la realizacin de esta prctica y que estn relacionados con los objetivos

    planteados inicialmente.

    7. Evaluacin

    Consultar documento auxiliar (Rbrica AA.pdf) donde se detalla la rbrica que se utilizar

    para evaluar esta prctica.

    Referencias

    [Borrajo et al., 2006] Borrajo, D., Gonzlez, J., & Isasi, P. (2006). Aprendizaje Automtico. Madrid

    (Espaa): Sanz y Torres.

    7