参数自适应的单层 bp 神经网络
来源:互联网 发布:打印出库单软件 编辑:程序博客网 时间:2024/05/22 08:26
% R^m->R^1
%
sigmoid=@(x,a,b)b./(1+exp(-a*x)); % activation function
% input : X,T
x1=linspace(-1,1,5);x2=x1;
[x2,x1]=meshgrid(x2,x1);
X=[x1(:).';x2(:).'];
T=sigmoid(3*X(1,:)+2*X(2,:)-1,3,1);
% or X=[[1;1],[1;0],[0;1],[0;0]];T=[1,0,0,0];
% set the options
tol=0.001;
lr=0.1; % learning rate
% alpha=0.2;
[m,N]=size(X);
W=rand(1,m);theta=rand(1);
b=1;a=1;
Y=sigmoid(W*X-repmat(theta,1,N),a,b);
E=T-Y;
k=0;
%DW0=zeros(1,m);DT0=0;
%Da0=0;Db0=0;
while(norm(E)>tol&&k<10000)
% lr=0.01/(1+k/500);
DW=lr*a/b*((T-Y).*Y.*(b-Y))*X.'; DT=lr*a/b*sum((T-Y).*Y.*(b-Y),2);
Db=lr*sum((T-Y).*Y,2)/b;
Da=lr*sum((T-Y).*Y.*(b-Y).*(W*X),2)/b;
W=W+DW;
theta=theta-DT;
a=a+Da; b=b+Db;
Y=sigmoid(W*X-repmat(theta,1,N),a,b);
E=T-Y;
k=k+1;
end
x1=linspace(-1,1,20);x2=x1;
[x2,x1]=meshgrid(x2,x1);
y=sigmoid(W(1)*x1+W(2)*x2-theta,a,b);
mesh(x1,x2,y);hold on;
%
sigmoid=@(x,a,b)b./(1+exp(-a*x)); % activation function
% input : X,T
x1=linspace(-1,1,5);x2=x1;
[x2,x1]=meshgrid(x2,x1);
X=[x1(:).';x2(:).'];
T=sigmoid(3*X(1,:)+2*X(2,:)-1,3,1);
% or X=[[1;1],[1;0],[0;1],[0;0]];T=[1,0,0,0];
% set the options
tol=0.001;
lr=0.1; % learning rate
% alpha=0.2;
[m,N]=size(X);
W=rand(1,m);theta=rand(1);
b=1;a=1;
Y=sigmoid(W*X-repmat(theta,1,N),a,b);
E=T-Y;
k=0;
%DW0=zeros(1,m);DT0=0;
%Da0=0;Db0=0;
while(norm(E)>tol&&k<10000)
% lr=0.01/(1+k/500);
DW=lr*a/b*((T-Y).*Y.*(b-Y))*X.'; DT=lr*a/b*sum((T-Y).*Y.*(b-Y),2);
Db=lr*sum((T-Y).*Y,2)/b;
Da=lr*sum((T-Y).*Y.*(b-Y).*(W*X),2)/b;
W=W+DW;
theta=theta-DT;
a=a+Da; b=b+Db;
Y=sigmoid(W*X-repmat(theta,1,N),a,b);
E=T-Y;
k=k+1;
end
x1=linspace(-1,1,20);x2=x1;
[x2,x1]=meshgrid(x2,x1);
y=sigmoid(W(1)*x1+W(2)*x2-theta,a,b);
mesh(x1,x2,y);hold on;
plot3(X(1,:),X(2,:),T,'ro');
xlabel('x_1');ylabel('x_2');title('Y/T');
0 0
- 参数自适应的单层 bp 神经网络
- BP神经网络的自适应步长问题
- BP神经网络的推导及其参数统计
- 单层卷积神经网络的实现
- 单层神经网络
- 有关BP神经网络参数的一些学习经验
- 8.3 TensorFlow BP神经网络构建与超参数的选取
- BP神经网络的优缺点
- BP神经网络的基本原理
- BP神经网络的实现
- BP神经网络的学习
- BP神经网络的理解
- BP神经网络的分类
- BP神经网络的应用
- BP神经网络的结构
- BP神经网络的优缺点
- BP神经网络的讲解
- BP神经网络的缺点
- Android的生命周期(三)
- opencv findContours使用问题
- 添加view
- jQuery的prop和attr方法之间区别
- 10000 pcs free gift of chinese top grade brown film faced plywood
- 参数自适应的单层 bp 神经网络
- 019:函数:我的地盘听我的
- mac 下安装android studio
- opencv2的安装、在VS上的配置以及第一个示例
- POJ 1284-Primitive Roots(欧拉函数求原根个数)
- 面试:机器学习--k均值聚类(K-means)
- string char 等字符减去字符0(’0‘)就得到了,该字符的整形
- 第一篇:C++11关键字
- VC 多线程编程