资源简介
神经元节点的个数,隐藏层的个数,都是可以调节的,Optimer优化器有'SGD','mSGD','nSGD','AdaGrad','RMSProp','nRMSProp','Adam',激活函数有relu和sigmoid
代码片段和文件信息
function [dnn] = backprop(xlabeldnnparameter)
%UNtitleD2 此处显示有关此函数的摘要
% parameter 是结构体,包括参数:
% learning_rate: 学习率
% momentum: 动量系数一般为0.5,0.9,0.99
% attenuation_rate: 衰减系数
% delta:稳定数值
% step: 步长 一般为 0.001
% method: 方法{‘SGD‘‘mSGD‘‘nSGD‘‘AdaGrad‘‘RMSProp‘‘nRMSProp‘‘Adam‘}
%
L = size(dnn2)+1;
m = size(x2);
[y Y] = forwordprop(dnnx);
g = -label./y + (1 - label)./(1 - y);
method = {‘SGD‘‘mSGD‘‘nSGD‘‘AdaGrad‘‘RMSProp‘‘nRMSProp‘‘Adam‘};
persistent global_step;
if isempty(global_step)
global_step = 0;
end
global_step = global_step + 1;
% fprintf(“global_step %d\n“global_step)
global E;
E(global_step) = sum(sum(-label.*log(y)-(1 - label).*log(1 - y)))/m;
persistent V;
if isempty(V)
for i = 1:L-1
V{i}.vw = dnn{i}.W*0;
V{i}.vb = dnn{i}.b*0;
end
end
if strcmp(parameter.method method{11})
for i = L : -1 : 2
if strcmp(dnn{i-1}.function‘relu‘)
g = g.*(Y{i} > 0);
end
if strcmp(dnn{i-1}.function ‘sigmoid‘)
g = g.*Y{i}.*(1 - Y{i});
end
dw = g*Y{i - 1}.‘/m;
db = sum(g2)/m;
g = dnn{i-1}.W‘*g;
dnn{i-1}.W = dnn{i-1}.W - parameter.learning_rate*dw;
dnn{i-1}.b = dnn{i-1}.b - parameter.learning_rate*db;
end
end
if strcmp(parameter.method method{12})
for i = L : -1 : 2
if strcmp(dnn{i-1}.function ‘relu‘)
g = g.*(Y{i} > 0);
end
if strcmp(dnn{i-1}.function ‘sigmoid‘)
g = g.*Y{i}.*(1 - Y{i});
end
dw = g*Y{i - 1}.‘/m;
db = sum(g2)/m;
g = dnn{i-1}.W‘*g;
V{i-1}.vw = parameter.momentum*V{i-1}.vw - parameter.learning_rate*dw;
V{i-1}.vb = parameter.momentum*V{i-1}.vb - parameter.learning_rate*db;
dnn{i-1}.W = dnn{i-1}.W + V{i-1}.vw;
dnn{i-1}.b = dnn{i-1}.b + V{i-1}.vb;
end
end
if strcmp(parameter.method method{13}) % 未实现
for i = L : -1 : 2
if strcmp(dnn{i-1}.function ‘relu‘)
g = g.*(Y{i} > 0);
end
if strcmp(dnn{i-1}.function ‘sigmoid‘)
g = g.*Y{i}.*(1 - Y{i});
end
dw = g*Y{i - 1}.‘/m;
db = sum(g2)/m;
g = dnn{i-1}.W‘*g;
V{i-1}.vw = parameter.momentum*V{i-1}.vw - parameter.learning_rate*dw;
V{i-1}.vb = parameter.momentum*V{i-1}.vb - parameter.learning_rate*db;
dnn{i-1}.W = dnn{i-1}.W + V{i-1}.vw;
dnn{i-1}.b = dnn{i-1}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5783 2019-04-26 14:52 backprop.m
文件 977 2019-04-26 14:26 creatnn.m
文件 391 2019-04-26 14:36 forwordprop.m
文件 14735220 2018-08-25 09:50 mnist_uint8.mat
文件 2503 2019-04-24 13:30 NN_in.mat
文件 18702 2019-04-24 13:30 NN_out.mat
文件 115 2018-08-24 15:51 relu.m
文件 116 2018-08-24 15:52 sigmoid.m
文件 1569 2019-04-27 09:19 Threenn.m
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论