%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:演示深度学习算法在计算机视觉中的应用
%训练DBN用于分类;
%环境:Win7,Matlab2018a
%Modi: C.S
%时间:2022-04-05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function DeepLearning()
%% load training data
clear;
data = load('../data/mnist.mat');
train_x = double(data.train_x) / 255;
train_y = double(data.train_y);
test_x = double(data.test_x) / 255;
test_y = double(data.test_y);
clear('data');
%% setup DBN model
input_dim = size(train_x, 2);
output_dim = size(train_y, 2);
hidden_sz1 = 100;
hidden_sz2 = 100;
dbn.sizes = [input_dim, hidden_sz1, hidden_sz2];
dbn_opts.numepochs = 50;
dbn_opts.batchsize = 100;
dbn_opts.momentum = 0.5;
dbn_opts.alpha = 1;
for i = 1:numel(dbn.sizes)-1
dbn.rbm{i}.alpha = dbn_opts.alpha;
dbn.rbm{i}.momentum = dbn_opts.momentum;
dbn.rbm{i}.W = zeros(dbn.sizes(i+1), dbn.sizes(i));
dbn.rbm{i}.vW = zeros(dbn.sizes(i+1), dbn.sizes(i));
dbn.rbm{i}.b = zeros(dbn.sizes(i), 1);
dbn.rbm{i}.vb = zeros(dbn.sizes(i), 1);
dbn.rbm{i}.c = zeros(dbn.sizes(i+1), 1);
dbn.rbm{i}.vc = zeros(dbn.sizes(i+1), 1);
end
%% layer-wise pretrain DBN model
x = train_x;
rng('default');
dbn.rbm{1} = rbmtrain(dbn.rbm{1}, x, dbn_opts);
for i = 2:numel(dbn.sizes)-1
x = sigm(repmat(dbn.rbm{i-1}.c', size(x, 1), 1) + x * dbn.rbm{i-1}.W');
dbn.rbm{i} = rbmtrain(dbn.rbm{i}, x, dbn_opts);
end
%% use DBN to initialize NN to peform fine-tuning
nn.sizes = [dbn.sizes, output_dim];
nn.n = numel(nn.sizes);
nn.learning_rate = 0.1;
nn.momentum = 0.5;
nn_opts.numepochs = 50;
nn_opts.batchsize = 100;
rng('default');
for i = 1:numel(dbn.rbm)
nn.W{i} = [dbn.rbm{i}.c, dbn.rbm{i}.W];
nn.vW{i} = zeros(size(nn.W{i}));
end
i = nn.n - 1;
nn.W{i} = (rand(nn.sizes(i+1), nn.sizes(i)+1) - 0.5) * 2 * 4 * sqrt(6 / (nn.sizes(i+1) + nn.sizes(i)));
nn.vW{i} = zeros(size(nn.W{i}));
nn = nntrain(nn, train_x, train_y, nn_opts);
[err_rate, ~] = nntest(nn, test_x, test_y);
% With 50 epochs, the error rate: could be around 5%.
disp(['Final classification error rate: ' num2str(err_rate*100), '%.']);
end
function X = sigm(P)
X = 1./(1+exp(-P));
end
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
计算机视觉-深度学习MATLAB源码 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。 深度学习目标在于学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。 深度学习算法在2016年开始随着阿尔法狗的人机大战,热度不断上升,而在喧嚣之后人们总算开始理性起来,人工智能还是人工智障依然还有许多的工作要做。
资源详情
资源评论
资源推荐
收起资源包目录








共 5 条
- 1





















mozun2020
- 粉丝: 8929
- 资源: 130
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0