⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rbf_s.m

📁 径向基神经网络,使用的算法梯度下降法,比较清晰,适合于初学神经网络的用户
💻 M
字号:
function [y,out,m,b,w,ff,gg]=RBF_s(center,Data)

x=Data(:,1:end-1);
x=x';
[p1,p2]=size(x);
y=Data(:,end);
y=y';
b=center(:,1:end-1);
b=b';
[m2,k]=size(b);
w=center(:,end);
w=w';
for i=1:p1,
    for j=1:k,
        if j==1,
            m(i,j)=abs(b(i,1)-b(i,2))/(2.8284*((-log(0.4)).^(1/2)));
        else
            m(i,j)=abs(b(i,j)-b(i,j-1))/(2.8284*((-log(0.4)).^(1/2)));
        end
    end
end

for q=1:p2;
    for i=1:p1,
        for j=1:k;
            u(i,j)=gaussmf(x(i,q),[m(i,j),b(i,j)]);
        end
    end
    for i=1:k;
        v(i)=1;
        j=1;
        while j<=p1,
            v(i)=v(i)*u(j,i);
            j=j+1;
        end
    end
    out1(q)=w*v';
    e(q)=(y(q)-out1(q));
end
out=out1;
E=(1/2)*sumsqr(y-out);

EE=E;
lr=0.1;
r=1;
p=1;
s=500;

while p<=s & EE>1e-10,

    wc=zeros(1,k);  
    for i=1:p1,
        for j=1:k;
            u(i,j)=gaussmf(x(i,r),[m(i,j),b(i,j)]);
        end
    end
    for i=1:k;
        v(i)=1;
        j=1;
        while j<=p1,
            v(i)=v(i)*u(j,i);
            j=j+1;
        end
    end
    for i=1:k;
        wc(i)=lr*e(r)*v(i);
    end
    mc=zeros(p1,k);
    for i=1:p1,
        for j=1:k;
            mc(i,j)=lr*e(r)*w(j)*v(j)*((x(i,r)-b(i,j)).^2)/(b(i,j).^3);
        end
    end

    bc=zeros(p1,k);
    for i=1:p1;
        for j=1:k;
            bc(i,j)=lr*e(r)*w(j)*v(j)*(x(i,r)-b(i,j))/(b(i,j).^2);
        end
    end

    m=m+mc;
    b=b+bc;
    w=w+wc;

    for q=1:p2;
        for i=1:p1;
            for j=1:k;
                u(i,j)=gaussmf(x(i,q),[m(i,j),b(i,j)]);
            end
        end
        for i=1:k;
            v(i)=1;
            j=1;
            while j<=p1;
                v(i)=v(i)*u(j,i);
                j=j+1;
            end
        end
        out1(q)=w*v';
    end
    out=out1;
    p=p+1;
    EE=(1/2)*sumsqr(y-out);
    E(p)=EE;
    r=r+1;
    if r>p2
        r=1;
    end
    e(r)=(y(r)-out(r));

end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -