ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Introduccion A La Red Neuronal


Enviado por   •  8 de Febrero de 2012  •  669 Palabras (3 Páginas)  •  838 Visitas

Página 1 de 3

Introducción a las Redes Neuronales

En esta práctica utilizaremos el toolbox de neuronales que viene incorporado 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:

Necesitamos una red neuronal con dos neuronas de entrada y una de salida. Como la función XOR no es un problema separable linealmente, intentaremos resolver el problema con una capa oculta en la que colocaremos dos neuronas.

El modelo de neurona que utiliza matlab, existen dos posibilidades con o sin bias:

Existen diferentes funciones de activación de las neuronas:

De tal forma que el modelo de red neuronal que utiliza matlab es el siguiente:

Para crear la red utilizaremos la función newff (fed-forward). Es una red que se propaga hacia-adelante.

>> help 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 ([2 1]) y la función de activación de cada capa ({‘logsig’,’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 “0 0” debemos escribir. Los vectores de entrada a la red deben ser vectores columna, por tanto hacemos una matriz con los 4 vectores de entrada:

>> 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]

Con el comando plot podemos ver el objetivo y lo que hemos conseguido hasta el momento:

>> plot(target, 'o')

>> hold on

>> plot(output, '+r')

Objetivo (círculos en azul) y solución obtenida sin entrenar la red (+ en verde)

Parece que con los pesos

...

Descargar como (para miembros actualizados) txt (4 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com