You are on page 1of 9

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 Capa de salida

Pesos Pesos
sinápticos sinápticos
Creando una simple RNA (caso XOR)
Una red clásica y básica es la solución al problema
Entrada Entrada
XOR (eXclusive-OR). El requerimiento se describe Salida
1 2
en la tabla de verdad mostrada a la derecha.
Falso Falso Falso
Para implementar la solución se requieren tres Falso Verdad Verdad
neuronas. El problema trata datos binarios, Verdad Falso verdad
verdadero y falso generalmente representados como 1
1 y 0, por lo que la neurona tipo sigmoide resulta Verdad Verdad Falso
ideal. La red se construye de tres niveles:

• 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.
Adiciona un File Input layer al Parameter Value
proyecto que permita ller los Name Archivo entrada
datos de entrenamiento y
Advanced Column Selector 1-2
configura de acuerdo a la tabla de
la derecha. File Name c:\joone\xor.txt

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
c:\joone\xor.txt . Para ello agregamos Parameter Value
un segundo file input sobre Teacher.C Name Datos deseados
Configura de acuerdo a la tabla de la Advanced Column Selector 3
derecha.
File Name c:\joone\xor.txt
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
tabla de la derecha: Name Resultados
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:

You might also like