Вы находитесь на странице: 1из 17

Perceptron Simple en MATLAB Reconocimiento de Formas Facultad de Informtica

Neural Network Toolbox La utilizacin del Neural Network Toolbox de MATLAB puede simplificar enormemente la construccin de aplicaciones de Reconocimiento de Formas basadas en Clasificado res de redes. El Perceptron es un procedimiento sencillo para entrenar un clasificador lineal.

Perceptron simple Funcin de transferencia Conjunto de Perceptrones

Creacin net = newp(pr,s,tf,lf) Donde pr es una matriz de valores mximos y mnimos de las en tradas, s es el nmero de perceptrones simples (multiclasico), tf es la funcin de t ransferencia no lineal, hardlim por defecto, y lf la funcin de aprendizaje. net = newp([0 1; -2 2],1); hardlim = {0,1} hardlims = {-1,1} min, max

Ejecucin O = sim(net,I); Donde I es un vector columna con las entradas a la caja negra del perceptron y O la salida, vector columna en el caso de varios perceptrones. Para resetear una red: net = init(net);

Entrenamiento net.trainParam.epochs = 20 net = train(net,p,t); Donde epochs es el nmero de vece s que se recorre el dataset, p son los puntos de entrada y t los valores de sali da. net = newp([-2 2;-2 +2],1); p = [[2;2] [1;-2] [-2;2] [-1;1]] t =[0 1 0 1] net = train(net,p,t);

Entrenamiento Se pueden conocer los pesos net.IW net.b pesos trmino independiente La funcin de aprendizaje de defecto es learnp, la tradicional basada en gradiente . La alternativa es learnpn til en el caso de gran dispersin de los valores de los atributos.

Funcin Objetivo Igualmente se puede entrenar un Perceptron simple sin utilizar el Toolbox, const ruyendo una funcin que realice tal tarea. Para simplificar se puede utilizar la f uncin de optimizacin basada en el mtodo de Quasi-Newton x = fminunc(funcion,x0) Donde x0 es un solucin inicial, por ejemplo arbitraria y funcion es la funcin objetivo.

Funcin objetivo function f = perceptron(A,Y,B) T = Y*A-B; %f = 0.5*sum(abs(T)-T); f = sum((abs(T )-T).^2); Donde A es un vector columna con los coeficientes del clasificador, si endo el ltimo elemento el trmino independiente. Utilizando una funcin annima: A = fm inunc(@(A) perceptron(A,Y,B),A0)

1 2 AY-B 1 1

X = [0,0;0,1;1,0;1,1]; C = [1;1;1;2]; B = 0.1*ones(4,1) Y = [X,ones(4,1)]; index = find(C==2); Y(index,:)= -Y(index,:); A = fminunc(@(A)perceptron(A,Y,B),rand(3 ,1));

Mtodo del Gradiente El Mtodo del Gradiente es uno de los procedimientos ms eficientes y sencillos de r esolver el problema de encontrar el mximo/mnimo de una funcin objetivo J(a) respect o al vector de incgnitas a: a(k + 1) = a(k) - (k) J(a(k)) Donde J(a(k)) es el gra diente de J y k es una iteracin

Mtodo del Gradiente Algorithm 1 (Basic gradient descent) 2 do k 3a k+1 a - (k) J(a) 4 until (k) J(a) < 5 return a 6 end

1 begin initialize a, criterion , (), k = 0

Mtodo del Gradiente El parmetro (k) de proporcionalidad puede hacerse constante, o bien ajustase segn el punto de trabajo. Donde H es el hessiano, que contiene las derivadas segundas Valor ptimo

Mtodo Quasi-Newton Una alternativa es el mtodo quasi-Newton que se expresa como: Algorithm 2 (Newton descent) 1 begin initialize a, criterion 2 do J(a) 4 until H^(-1) J(a) < 5 return a 6 end

3a a - H^(-1)

Mtodo Quasi-Newton Este procedimiento es ms efectivo generalmente por que converge ms rpidamente (negr o) que el mtodo con factor constante (rojo)

Вам также может понравиться