You are on page 1of 7

Aprendizaje Automtico: Redes de Neuronas Articiales

Enrique J. Carmona Surez


ecarmona@dia.uned

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

2. Requisitos previos

3. Objetivos

4. Material

5. Actividades

6. Conclusiones

7. Evaluacin

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

simple

regla de Hebb. Posteriormente, Rosenblatt contribuye al campo con la idea del perceptrn
ADALINE (1960). En los aos

(1958) y, un poco ms tarde, Widrow y Ho desarrollan el

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

algoritmo de aprendizaje de retropropagacin del

aos 80, principalmente debido a la aportacin del

error (1986) ideado por


perceptrn multicapa.

McClelland y Rumelhar y su incorporacin al desarrollo del denominado

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.

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


nica capa oculta, de

2.

neuronas, la

neuronas y, la capa de salida de una nica neurona.

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)
b)
c)

Usando todos los ejemplos del chero de entrada


Dividiendo el chero de entrada en ejemplos de entrenamiento y test
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 virtual).

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 compone 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 conveniente 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 depender, 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 algoritmo MultilayerPerceptron

(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 MoTest options ). Concretamente, ejecute este anlisis para

reOptions... situado en la caja

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 instancias correctamente clasicadas para cada experimento realizado y conteste a las siguientes 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 continuacin 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

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

validation

(10

folds ).

Realizar la ejecucin del algoritmo para distintos valores del parmetro

Cross-

hiddenLayers.

Utilice los siguientes valores para este parmetro: {'a'}, {'i'}, {'o'}, {'t'} y {2,3}. Obsrvese 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

root mean square error ) en funcin de los valores

clasicadas correctamente y el RMSE (

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

el RMSE en funcin de los valores del parmetro analizado. De los resultados obtenidos, 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 posteriormente 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

Save Model ).

salvar modelo (

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


Load model y cargue el modelo guardado

el rea vaca de esta caja. Seleccione la opcin


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

Result List ) y,
Re-evaluate model on current test

Site el cursor encima del modelo que se est usando (dentro de la caja
con el botn derecho del ratn, seleccione la opcin

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 .
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 determinar 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 , 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

-p 5 indica que se desea predecir un valor para el


-l especica la ruta del directorio y el nombre del
Finalmente, la opcin -T (en mayscula) especica el

En el comando anterior, la opcin


atributo nmero 5 (

class ),

la opcin

archivo del modelo a utilizar.


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 presentada 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 aplicando 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
5 Es

posible tambin invocar comandos WEKA desde otros programas tales como C, MATLAB, Perl...
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\").

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. Comprobar 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).
(Espaa): Sanz y Torres.

Aprendizaje Automtico. Madrid

You might also like