Download Introducción al programa JOONE

Document related concepts

Propagación hacia atrás wikipedia , lookup

Angelic Layer wikipedia , lookup

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: