control inteligente

5
PROBLEMA Supongamos que un Perceptrón (ver figura) de dos entradas tiene pesos iniciales 0, 0.4 y umbral 0.3. Se requiere que este Perceptrón aprenda la función lógica AND. Suponga una razón de aprendizaje α de 0.25. Usando el algoritmo anterior complete la tabla hasta que encuentre convergencia. Resolviendo por matlab: A. Usando comandos del perceptron. %data x=[0 0 1 1 0 1 0 1 ]; t=[0 0 0 1]; w1=0;w2=0.4; %pesos iniciales b=0.3; %bias w=[w1 w2]; %matriz de pesos n=1; %factor de aprendizaje por defecto S=1; %numero de neuronas %creando la red PR=minmax(x);%DIM Rx2 net=newp(PR,S); %valores de los pesos y bias net.iw{1,1}=w; net.b{1}=b; %espacio de patrones plotpv(x,t) axis([-1 2 -1 2]) grid h=plotpc(w,b)%hiperplano hold %entrenado net=train(net,x,t); wf=net.iw{1,1};%pesos final bf=net.b{1};%bias final}

Upload: guille-roque-luna

Post on 06-Sep-2015

19 views

Category:

Documents


0 download

DESCRIPTION

perceptron

TRANSCRIPT

PROBLEMASupongamos que un Perceptrn (ver figura) de dos entradas tiene pesos iniciales 0, 0.4 y umbral 0.3. Se requiere que este Perceptrn aprenda la funcin lgica AND. Suponga una razn de aprendizaje de 0.25. Usando el algoritmo anterior complete la tabla hasta que encuentre convergencia.

Resolviendo por matlab:A. Usando comandos del perceptron.%datax=[0 0 1 1 0 1 0 1 ];t=[0 0 0 1];w1=0;w2=0.4; %pesos inicialesb=0.3; %biasw=[w1 w2]; %matriz de pesosn=1; %factor de aprendizaje por defectoS=1; %numero de neuronas %creando la redPR=minmax(x);%DIM Rx2net=newp(PR,S);%valores de los pesos y biasnet.iw{1,1}=w;net.b{1}=b;%espacio de patrones plotpv(x,t)axis([-1 2 -1 2])gridh=plotpc(w,b)%hiperplanohold%entrenadonet=train(net,x,t);wf=net.iw{1,1};%pesos finalbf=net.b{1};%bias final}pause(2)plotpc(wf,bf,h)%resultadoswfbf

Resultado:

Obteniendo pesos y bias final:

B. Usando el algoritmo de perceptron%datax=[-1 -1 -1 -1 0 0 1 1 0 1 0 1 ];t=[0 0 0 1];w1=0;w2=0.4; %pesos inicialesb=0.3; %biasw=[b w1 w2]; %matriz de pesosalpha=0.25; %factor de aprendizajeit=0;emse=1;y=zeros(1,4);e=zeros(1,4);pesos=zeros(1,3);error=zeros(1,4);emsef=zeros(1);while emse~=0 it=it+1; for k=1:4 n=w*x(:,k) ; y(:,k)=hardlim(n); e(:,k)=t(:,k)-y(:,k); w=w+alpha*e(:,k)*x(:,k)'; end emse=mse(e) ; pesos(it,:)=w; error(it,:)=e; emsef(it)=emse;endpesos,error,emsef,e,itwf=pesos(it,2:3)bf=pesos(it,1)subplot(1,2,1)plotpv(x(2:3,:),t)plotpc(wf,-1*bf,'g')hold onplot([0 wf(1)],[0 wf(2)],'k','LineWidth',2)%xaxis([-0.5 1.3 -0.5 2])text(0.25,0.2,'w') gridsubplot(1,2,2)k=0:it-1;plot(k,emsef,'r','LineWidth',2)axis([0 3.5 0 0.5])gridtitle('error')

Resultado:

Obteniendo los valores de los pesos, bias y error: