Redes neuronales artificiales

Páginas: 7 (1726 palabras) Publicado: 26 de junio de 2011
Práctica 10
Redes Neuronales

En esta práctica trabajaremos con un sistema de aprendizaje basado en ejemplos que ya hemos visto con anterioridad (k-vecinos) y una implementación de las redes neuronales.

1 Redes neuronales
Aunque son muchos los toolboxes de redes neuronales para MATLAB que se pueden encontrar por Internet, para esta práctica utilizaremos el toolbox de neuronales que vieneincorporado en la instalación de MATLAB (Neural Network Toolbox).

1.1 Aprendiendo la función XOR
Para comprender mejor las redes neuronales vamos a ver un ejemplo que resuelve la función XOR: A 1 1 0 0 B 1 0 1 0 A xor B 0 1 1 0

Necesitamos una red neuronal con dos neuronas de entrada y una de salida. No es un problema separable linealmente, por tanto, necesitamos una capa oculta en la quecolocaremos dos neuronas. [NOTA] Os vendría bien hacer un script para no tener que volver a repetir todos lo pasos cuando tengáis que modificar algo. Para crear la red utilizaremos la función newff:
net = newff([0 1; 0 1],[2 1],{'logsig','logsig'})

Como parámetros necesita el rango de valores de las neuronas de entrada ([0 1; 0 1]), el número de celdas en la capa oculta y en la de salida ([21]) y la función de activación de cada capa ({‘logsig’,’logsig’} en este caso, ver figura 1).

Figura 1.- La función de activación logsig

Podríamos haber utilizado otras funciones de activación (ver figura 2):

Figura 2.- Otras funciones de activación

Las funciones de activación tienen que estar acordes con el tipo de número que van a recibir en la capa de entrada. Si reciben algo en[0,1] ponemos logsig, si es algo entre [1,1] ponemos tansig. Lo mismo sucede con la capa de salida: si queremos devolver algo en [-1,1] ponemos tansig y si es entre [0,1] ponemos logsig. Vamos a ver cómo es de “buena” la red sin entrenar. Necesitamos una matriz con las entradas. Las entradas de la red son las columnas de la matriz. Si queremos una matriz con las entradas: “1 1”, “1 0”, “0 1” y “00” debemos escribir:
>> input = [1 1 0 0; 1 0 1 0] input = 1 1 0 0 1 0 1 0

Veamos qué salidas obtenemos si le damos esta entrada a la red:
>> output=sim(net,input) output = 0.3394 0.0659 0.0769

0.1025

La función sim se utiliza para simular la red y así calcular las salidas. La salida no es muy buena. Lo deseable era (0 1 1 0) y nos hemos encontrado con (0.3394 0.0659 0.0769 0.1025).Esto es así porque los pesos se han inicializado aleatoriamente y la red no ha sido entrenada (seguramente que cuando lo ejecutes tú saldrán otros valores). El objetivo de esta red es ser capaz de producir:
>> target = [0 1 1 0] target = 0 1 1

0

Con el comando plot podemos ver el objetivo y lo que hemos conseguido hasta el momento:
>> plot(target, 'o') >> hold on >> plot(output, '+r') Veamos el resultado en la figura 3:

Figura 3.- Objetivo (círculos en azul) y solución obtenida sin entrenar la red (+ en rojo)

Parece que con los pesos que tiene la red sin entrenar no se obtiene una buena solución. Veamos los pesos que hay entre la capa de entrada y la capa oculta:
>> net.IW{1,1} ans = 7.7055 1.8290 -7.9089 -0.4123

7.7055 -7.9089 1.8290 -0.4123 Figura 4.- La red conlos pesos iniciales

Podríamos cambiar cualquier peso de la red:
>> net.IW{1,1}(1,2)=5; >> net.IW{1,1} ans = 7.7055 5.0000 -7.9089 -0.4123

Los pesos entre la capa oculta y la capa de salida se almacenan en LW:

>> net.LW{2,1} ans = 4.6527 3.1164

Así la red con todos los pesos sería (incluyendo el cambio realizado):

7.7055 4.6527 -7.9089 5.0000 3.1164 -0.4123 Figura 5.- La red contodos los pesos iniciales

Hemos cambiado un peso, así que podemos volver a evaluar la red:
>> output=sim(net,input) output = 0.6645 0.0659 0.0846 >> plot(output,'g*')

0.1025

En la figura vemos que las salidas han cambiado ligeramente:

Figura 6.- Objetivo (círculos en azul) y solución obtenida sin entrenar la red (+ en rojo). En (* verde) las salidas habiendo modificado un peso a mano....
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Redes Neuronales Artificiales Kohonen
  • Redes Neuronales E Inteligencia Artificial
  • Redes neuronales artificiales
  • Redes Neuronales Artificiales
  • Red Neuronal Artificial Antologia
  • Perceptron Simple En Redes Neuronales Artificiales
  • Linea del tiempo redes neuronales artificiales
  • REDES NEURONALES ARTIFICIALES APLICADAS EN LOS MEDIOS DE TRANSPORTE

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS