You are on page 1of 5

Prácticas en MATLAB de Redes Neuronales

PERCEPTRON
hardlim; hardlims; initp; learnp; plotc; plotpv; simup; trainp; trainpn

hardlim:
Función de transferencia Escalón

Esta función de transferencia proporciona el valor de la salida de una neurona igual a 1 si la entrada
supera un valor umbral, y si no lo supera la salida toma el valor 0.

hardlim (N): Obtiene una matriz de vectores de salida para una capa de neuronas con una matriz de N
entradas con umbral 0.
hardlim (N,θ): Obtiene una matriz de vectores de salida para una capa de neuronas con una matriz de N
entradas con umbral -θ. Esta función en la versión 5.3 de Matlab produce un Warning para evitarlo
puede ser utilizada la operación: hardlim(netsum(n, θ)).
Para evitar que los WARNINGS aparezcan en pantalla se puede poner: nntwarn off
EJEMPLO:
N = [-1.0 -0.5 0.0;
1.0 2.0 3.0];
b=[ -0.15;
-1.15];
hardlim (N) ==== 0 0 1 hardlim (N,b) === 0 0 1 hardlim(netsum(N,b))
111 011

hardlims:
Función de transferencia Hard limit Simétrica

Esta función de transferencia proporciona el valor de la salida de una neurona igual a 1 si la entrada
supera un valor umbral, y si no lo supera la salida toma el valor -1.

hardlims (N): Obtiene una matriz de vectores de salida para una capa de neuronas con una matriz de N
entradas con umbral 0.
hardlims (N,θ): Obtiene una matriz de vectores de salida para una capa de neuronas con una matriz de
N entradas con umbral θ. Esta función en la versión 5.3 de Matlab produce un Warning para evitarlo
puede ser utilizada la operación: hardlims(netsum(n, θ))
EJEMPLO:
N = [-1.0 -0.5 0.0;

Perceptron 1
Prácticas en MATLAB de Redes Neuronales
1.0 2.0 3.0];
b=[ -0.15;
-1.15];
hardlims (N) ==== -1 -1 1 (hardlims(netsum(n,b)) hardlims (N,b) === -1 -1 1
111 -1 1 1

initp:
La utilizaremos para inicializar una capa de Percepton.
[W,b]= initp (R,S): Utiliza el número de entradas R y el número de neuronas S y obtiene los pesos y
umbrales para un perceptron de una capa con S neuronas.
[W,b]= initp (P,T): Alternativamente bien R o S pueden ser reemplazados por una matriz de vectores de
entrada P y una matriz de vectores destino T respectivamente. El número de entradas y salidas será el
número de filas de P y T.
EJEMPLO:
p = [-2.2; 0.5];
[W, b] = initp (p,3)
W = 0.5678 -0.5322 b= 0.4567
0.3432 0.2321 -0.2234
-0.5462 -0.8382 0.6756

learnp:
Regla de aprendizaje del perceptron.

La regla de aprendizaje del perceptron ajusta los pesos y umbrales de unas capa para obtener una
clasificación correcta de los vectores de entrada.
learnp (P,E): Proporciona la matriz de cambio de pesos para una capa dada una matriz de vectores de
entrada P y un vector de error E.
[dW,db] = learnp (P,E) devuelve la matriz de cambio de pesos y el vector de cambio de umbral.

La aplicación estandar de la regla de aprendizaje del Perceptron en problemas donde los vectores de
entrada tienen valores muy diferentes puede ser demasiado lenta . En estos casos es conveniente la
normalización de vectores y para ello se trabaja con la denominada regla de aprendizaje del percetron
normalizada, cuya descripción es learnpn (P,E).

Perceptron 2
Prácticas en MATLAB de Redes Neuronales

plotpc:
Dibuja la línea de clasificación dada por el perceptron.

Las neuronas hard limit realizan la clasificación dividiendo el espacio de entradas en dos regiones con
una línea (si la neurona tiene dos entradas) un plano (si tiene tres entradas) y un hiperplano (para más
de tres entradas).

plotpc(W,b): Dibuja la línea de clasificación para una capa de 2 o 3 entradas de neuronas hard-limit con
matriz de pesos W y vector umbral b. Esta función devuelve el handle a la línea de clasificación para que
pueda ser usado en llamadas sucesivas.
plotc(W,b,h): toma el h obtenido en aplicaciones previas de plotpc y borra la línea vieja obteniendo la
nueva línea de clasificación.

plotpv:
Dibuja vectores de entrada con salidas 0/1.

A menudo es conveniente dibujar los vectores de entrada para el adiestramiento de una capa de
neuronas asi como la clasificicación en un momento dado hecha por la red.
plotpv(P,T): dibuja vectores de entrada de 2 o tres elementos de la matriz P con símbolos
correspondientes a la salida deseada dentro de la matriz T. Si T contiene vectores de un solo elemento
entonces las salidas deseadas 0 se dibujan como o’s y las salidas 1 como +’s. Si T contiene vectores de
dos elementos las entradas son mapeadas como: [0,0]es mapeado como o, [0,1] como +, [1,0]como*, y
[1,1]como x.
plotpv(P,T,v): difiere solamente en que la escala de los ejes viene dada por un vector columna de cuatro
valores v : [x_min, x_max, y_min, y_max].
Esta función solamente es válida para capas de tres o menos neuronas con tres o menos entradas.

simup:
Simula una capa de perceptrones.
Una capa de perceptrones consta de un conjunto de neuronas hard-limit. Las capas de perceptrones
pueden ser entrenadas rápidamente, siendo útilies para tareas simples de clasificación.

simup(P,W,b): toma una matriz de vectores de entrada P la matriz de pesos W y el vector umbral b de
una capa de perceptron, y proporciona las salidas de la capa.

EJEMPLO:

Perceptron 3
Prácticas en MATLAB de Redes Neuronales
[W,b] = initp ([0 1;-5 5],3) crea una capa de perceptron con tres neuronas cuyas salidas están en los
intervalos [0 1] y [-5 5] respectivamente.
La respuesta de la capa a una entrada de [2;-3] puede ser calculada como:
a = simup ([2;3], W, b)
La respuesta es:
a= 0
0
1

trainp y trainpn:
Adiestra una capa de perceptron con la regla delta
Una capa de neuronas es entrenada para producir vectores destino booleanos cuando se le presentan los
correspondientes vectores de entrada.

[W, b, te] = trainp (W, b, P, T, tp) Proporciona una nueva matriz de pesos y un nuevo vector umbral
después del entrenamiento con la matriz de pesos, el umbral inicial y el vector de salida deseada
utilizando el parámetro de entrenamiento tp. Los parámetros opcionales tp son:
tp(1) iteraciones entre los pasos de adaptación (por defecto toma el valor 1).
tp(2) máximo número de iteraciones para el entrenamiento (por defecto 100)
[W, b, te] = trainpn (W, b, P, T, tp) se diferencia de la anterior en que se utiliza la regla del perceptron
normalizada.
EJEMPLO:
P=[-0.5 -0.5 0.3 0.0; T = [1 1 0 0];
-0.5 0.5 -0.5 1.0];
[W,b]= initp(P,T);
[W,b, iteraciones]= trainp(W,b,P,T,[1,20]);
A = simup(P,W,b);

Perceptron 4
Prácticas en MATLAB de Redes Neuronales

Ejecrcios de la práctica n.1


1. Utilizando la función learnp, simular un perceptron con dos neuronas de entrada y
una neurona binaria de salida, y entrenarlo para clasificar 7 vectores de entrada en dos
posibles clases.
a) Utilizar como patrones de entrenamiento:
x1 = (-0.3,0.3) d1 = 0
x2 = (0.1,0.3) d2= 1
x3 = (0.2,0.5) d3= 1
x4 = (-0.1, 0.4) d4 = 0
x5 = (0.5, -0.5) d5 = 0
x6 = (0.1, 0.1) d6 = 0
x7 = (0.7, 0.5) d7 = 1
En el diseño se ha de dibujar la frontera de decisión obtenida para cada modificación de
pesos.
b) En el programa obtenido en el apartado anterior cambiar el patrón
x7 = (0.7, 0.5) por x7 = (40,16) y comprobar que ocurre.

2. Efectuar el mismo diseño del apartado anterior pero utilizando la función trainp.

3. Comprobar, en ambos casos, el funcionamiento para todos los patrones de entrada y


determinar la salida que proporciona la red diseñada para los patrones:
p1 = (-0.3, -0.8)
p2 = (0.9, 0.3)
p3 = (0.24, 0.15)
p4 = (-0.1, -0.9)

4. Diseñar un Perceptron con 3 neuronas de entrada y una neurona de salida que permita
clasificar 12 vectores en dos categorías, utilizando como patrones de entrenamiento 8
vectores con valores bipolares.

Perceptron 5

You might also like