Download Introducción al programa JOONE
Document related concepts
Transcript
Introducción al programa JOONE Estas primeras páginas permiten crear una simple red en JOONE con el objetivo de familiarizarse con el software (solo crear, no entrenar ni ejecutar, esas tareas la veremos inmediatamente después) conectando un nivel de archivo de entrada (file input layer) conteniendo cuatro líneas de dos valores de entrada a un nivel de archivo de salida (file output layer), utilizando como intermedio un nivel lineal (lineal layer) conteniendo dos neuronas. Un layer es un nivel de la red neuronal. File Input Layer linear Layer File Output layer 1. Usando un editor de textos crea un archivo c:/rnas/rna01.txt que contiene cuatro lineas: 0.2;0.3 0.4;0.5 0.6;0.8 0.9;1.0 2. Invoca Joone y crea un new linear layer. Clic derecho sobre el layer creado y luego clic en propiedades. Configura: rows = 2 4. Crea un File Input layer a la izquierda del linear layer. Clic derecho sobre el layer creado y luego clic en propiedades. Configura: Advanced Column Selector = 1,2 fileName = c:/rna/rna01e.txt Deja firstRow = 1 y lastRow = 0 Para indicar que el input layer leerá todas las filas del archivo. 5. Conecta el input layer al linear layer dibujando una línea desde el pequeño círculo al lado derecho del input layer, arrastrando el mouse hasta el linear layer. 6. Crea un File Output layer a la derecha del linear layer. Clic derecho sobre el layer creado y luego clic en propiedades. Configura: fileName = c:/rna/rna01s.txt 7. Conecta el linear layer con el File Output layer. 8. Hasta aquí debes tener lo siguiente: 9. Clic en Tools Control Panel y configura: epochs = 1 (el archivo se procesará una vez) training patterns = 4 (número de filas del archivo de entrada) Deja el resto de parámetros como están. 10. Clic el botón Run (de color verde) 11. Se ha creado el archivo c:/rna/rna01s.txt Los valores actuales no significan mucho pues nuestro objetivo solo mostrar el procedimiento básico de crear una red. 12. Para grabar la red File Save As 13. Para invocar la red posteriormente File Open. Relación entre el modelo grafico de RNA y JOONE 2 neuronas de entrada, 3 ocultas, 1 de salida Capa de entada Capa oculta Pesos sinápticos Capa de salida Pesos sinápticos Creando una simple RNA (caso XOR) Una red clásica y básica es la solución al problema XOR (eXclusive-OR). El requerimiento se describe Entrada Entrada Salida en la tabla de verdad mostrada a la derecha. 1 2 Falso Falso Falso Para implementar la solución se requieren tres Falso Verdad Verdad neuronas. El problema trata datos binarios, verdad verdadero y falso generalmente representados como Verdad Falso 1 y 0, por lo que la neurona tipo sigmoide resulta Verdad Verdad Falso ideal. La red se construye de tres niveles: 1 Un input layer de dos entradas (entrada) Un hidden layer de tres neuronas (oculta) Un output layer de una salida (salida) Crea una nueva red File New Localiza tres sigmoid layer en el panel de desarrollo. Deberías tener algo como esto: Edita cada uno de los layer y configúralos según la tabla de la derecha. (para editar hacer clic derecho sobre el layer y seleccionar propiedades) Clic sobre el layer Entrada, aparece un círculo azul, Clic y arrastrar una conexión hacia el layer Oculta. Repetir para el layer Oculta y el layer Salida. Deberías tener algo como esto: Layer Layer Name Rows 1 Entrada 2 2 Oculta 3 3 Salida 1 Entrenando la red Para entrenar la red se requieren datos que representen el comportamiento deseado. Crearel archivo texto c:\joone\xor.txt y digita los siguientes datos: 0;0;0 0;1;1 1;0;1 1;1;0 Observa que tenemos 3 columnas, las dos primeras representan las entradas y la tercera representa la salida. Parameter Value Adiciona un File Input layer al Archivo entrada proyecto que permita ller los Name datos de entrenamiento y Advanced Column Selector 1-2 configura de acuerdo a la tabla File Name c:\joone\xor.txt de la derecha. Esto significa leer las dos primeras columnas del archivo de datos xor.txt Conecta Archivo entrada con Entrada, deberías tener algo como la figura de la derecha. Para entrenar la red se require un teacher layer. Adiciona un teacher layer y Parameter Value Name Teacher configuralo de acuerdo a la tabla: Conecta Salida con Teacher, deberías tener algo como: El teacher layer requiere datos de referencia. Estos datos se encuentran en la tercera columna del archivo texto Parameter Value c:\joone\xor.txt . Para ello agregamos Datos deseados un segundo file input sobre Teacher.C Name Configura de acuerdo a la tabla de la Advanced Column Selector 3 File Name c:\joone\xor.txt derecha. Conecta Datos deseados con Teacher. Esta vez inicia la flecha en Teacher y dirígela hacia Datos deseados. La línea generada es de color amarillo. De deberías tener algo como: La red está ahora preparada para ser entrenada selecciona Tools Control Panel. Configura el entrenamiento de la red con 4 filas de datos 1,000 veces: epochs = 1000. training patterns = 4. learning rate = 0.7 momentum = 0.6 learning = TRUE. Para iniciar el entrenamiento Clic Run (de color verde). El control panel muestra los ciclo completados y el error de la red. El valor final del error RMSE debe ser muy pequeño (menor que 0.1). Si esto no ocurre trata nuevamente seleccionando Tools Randomize para reiniciar la red y seleccionar Tools Add Noise para que la red encuentre nuevas opciones. Ejecutando la red Es necesario ahora probar la red entrenada. Parameter Value Agrega un file output y configura según la Name Resultados tabla de la derecha: File Name c:\joone\resultados.txt Conecta Salida con Resultados. Deberías tener algo como: Para ejecutar la red selecciona Tools Control Panel. En el control panel, configura: learning = FALSE. epochs = 1. Click Run en el control panel. Se crea el archivo resultados.txt que contiene la siguiente información (con RMSE = 0.0069719062……ojo que en tu caso este valor 0uede variar): 0.00782259788449157 0.9905340183609834 0.9905215898790795 0.01217463386704878 Como se puede observar los valores coinciden con la columna tres de la tabla (0.00782259788449157 equivale a 0 y 0.9905340183609834 equivale a 1). Completando la información de la red La información de la red se completa con los pesos sinápticos (weights). Los pesos se encuentran en las cajas que aparecen entre los layer. Pesos sinápticos Para visualizar los pesos: Clic derecho en la sinapsis, seleccionar Inspect. En el caso de la sinapsis entre Entrada y Oculta tenemos: Entre Oculta y Salida tenemos: