si sciagi, sciaga si


Funkcje aktywacji:

function[a] = skok(we, b)

[S, Q]=size(we);

we=we+b*ones(1, Q);

a=(we>=0);

function[a] = signum(we,b)

[S, Q]=size(we);

we=we+b*ones(1, Q);

% a=(we>=0);

% a=a+~a*(-1);

a=(we>=0)+(we<0)*(-1);

function[a] = sigmoidalna(we, b, beta)

[S, Q]=size(we);

we=we+b*ones(1, Q);

a=1./(1+exp(-2*beta*we));

=============================

function [dw,db] = korekta (wu, we, bl)

dw=wu*we*bl';

[r,q]=size(we);

db=wu*bl*ones(q,1);

function [bl] = blad (rodz,wy,bl,wa)

%rodz s lub t

if nargin==3

if rodz=='s'

bl= wy.*(1-wy).*bl;

else

bl= (1-wy.^2).*bl;

end

elseif nargin==4

if rodz=='s'

bl= wy.*(1-wy).*(wa*bl);

else

bl= (1-wy.^2).*(wa*bl);

end

else

disp('blad');

bl=NaN;

end

MADALINE XOR 2 NEURONY

%2 neurony w 1 warstwie

p=[0 1 0 1;

0 1 1 0];

% p=[2x4] RxQ

t=[0 0 1 1];

% t=[1x4] SxQ

w1=rands(2,2);

w2=rands(2,1);

b1=rands(2,1);

b2=rands(1,1);

lr=0.2;

ME=5000;

tr=[];

for i=1 : ME

a1=sigmoidalna(w1'*p,b1);

a2=sigmoidalna(w2'*a1,b2);

e=t-a2;

SSE=sum(sum(e.^2));

tr=[tr SSE];

if (SSE < 0.01)

break;

else

d2= a2.*(1-a2).*e;

d1= a1.*(1-a1).*(w2*d2);

dw2=lr*a1*d2';

dw1=lr*p*d1';

db2=lr*d2*ones(4,1);

db1=lr*d1*ones(4,1);

w1=w1+dw1;

b1=b1+db1;

w2=w2+dw2;

b2=b2+db2;

end

end

MOMENTUM ADAPTACJA
p = [-1:0.1:1];

t = [-.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 .3072 .3960 .3449 .1816 -.0312 -.2189 -.3201];

tn=(t-min(t))./(max(t)-min(t));

w1=rands(1,4);

b1=rands(4,1);

w2=rands(4,1);

b2=rands(1,1);

beta=0.5;

% ***momentun+adaptacja***

oldSSE=10^6;

mc=0.1;

olddw1=0;

olddb1=0;

olddw2=0;

olddb2=0;

lr=0.65;

lr2=0.65;

ME=10000;

tr3=[];

for i=1:ME

a1=sigmoidalna(w1'*p,b1,beta);

a2=sigmoidalna(w2'*a1,b2,beta);

e=tn-a2;

SSE=sum(sum(e.^2));

tr3=[tr3 SSE];

if SSE<0.05

break

else

d2=blad2('s',a2,e);

d1=blad2('s',a1,d2,w2);

if oldSSE>SSE

lr=lr*1.05;

lr2=lr2*1.05;

else

lr=lr*0.95;

lr2=lr2*0.95;

end

[dw2,db2]=korekta(lr2,a1,d2);

[dw1,db1]=korekta(lr,p,d1);

w1=w1+(1-mc)*dw1+mc*olddw1;

b1=b1+(1-mc)*db1+mc*olddb1;

w2=w2+(1-mc)*dw2+mc*olddw2;

b2=b2+(1-mc)*db2+mc*olddb2;

olddw1=dw1;

olddb1=db1;

olddw2=dw2;

olddb2=db2;

oldSSE=SSE;

end

end

---------------------------------------------

function [bl]= blad2(czy,wy,bl,wa)

switch czy

case 't'

if (nargin>3)

bl=(1-wy.^2).*(wa*bl);

else

bl=(1-wy.^2).*bl;

end

case 's'

if (nargin>3)

bl=wy.*(1-wy).*(wa*bl);

else

bl=wy.*(1-wy).*bl;

end

otherwise

disp('podaj t albo s')

end

MADALINE

p=[1 0 0 0.5 -2 2 3 1;

0 1 0 0.5 -1 2 1 2;

0 0 1 0 -6 2 1 1 ];

% p=[3x8]

t=[1 1 1 1 1 0 0 0;

1 1 1 1 1 0 0 0;

1 1 1 1 1 0 0 0;

1 1 1 1 1 0 0 0 ];

% t=[4x8]

w=rands(3,4);

b=rands(4,1);

lr=0.6;

ME=100;

tr=[];

for i=1 : ME

a=skok(w'*p,b);

e=t-a;

SSE=sum(sum(e.^2));

tr=[tr SSE];

if SSE == 0

break;

else

dw=lr*p*e';

db=e*ones(8,1);

w=w+dw;

b=b+db;

end

end

function[a]=tanh(we, b)

[S, Q]=size(we);

we=we+b*ones(1, Q);

y=(1-exp(-we))./(1+exp(-we))

function [N] = wektor(M)

[w, k]=size(M);

N=reshape(M,1,w*k)';



Wyszukiwarka

Podobne podstrony:
ściąga z fizyki, dc, GPF, Fizyka lab, Ściągi, sciąga z fizyki
salwinski ściągi Ściąga pytania
sciagi, Sciaga geo
ŚCIĄGI, 4 ściąga od pleśni i wyżej, W sklad komorki drozdzy wchodzi sciana kom
ŚCIĄGI, Sciaga 1, Mechanika płynów - część mechaniki teoretycznej, zajmuje się badaniem ruchu płynów
ściągi, 4 ściąga - projekt, 5
Biologia ściągi, ściąga bio, Biologiczne metody oczyszczania ścieków:
Sciągi ściąga z zadań
ściagi, ściaga 26.02
Ściągi, Ściąga 7, ZADANIE 1
wytrzymka ściągi, sciąga z wytrzymki w czerni, 1
Biologia sciagi sciaga biologia Nieznany
Marketing sciągi sciaga
ściągi, Ściąga - Filtracja, FILTRACJA POD STAŁYM CIŚN
sciagi, ściaga, RONDA ELEM
Dokumenty i ściągi, ściaga owce
Marketing sciągi, ściąga marketing, 1

więcej podobnych podstron