matlab 实现 stacked Autoencoder 解决图像分类问题
Train Stacked Autoencoders for Image Classification
1. 加载数据到内存
[train_x, train_y] = digitTrainCellArrayData;
% 并随机选择显示 100 副图像,
n = 100;
idx = randi([1, size(train_x, 2)], n);
for i=1:n
subplot(10, 10, i), imshow(train_x{idx(i)});
end
2. 定义并训练 autoencoder 网络模型
简单起见,这里仅给出一个具有一个单隐层(隐层的神经元节点数为 100)的堆栈式自编码器,
rng('default');
num_hid1 = 100;
% 因为是自编码器,也属于无监督学习算法,因此不需要目标值 train_y 的参与
ae1 = trainAutoencoder(train_x, num_hid1, ...
'MaxEpochs', 400, ...
'L2WeightRegularization', .004, ...
'SparsityRegularization', 4, ...
'SparsityProportion', .15, ...
'ScaleData', false);
定义网络拓扑结构的过程,也是训练的过程。
3. 过程及中间变量的可视化
- 可视化模型拓扑:
view(ae1) - 可视化学到的权值矩阵:
plotWeights(ae1)
4. 训练第二个 autoencoder
% 使用第一个自编码器得到其对应的压缩编码,
feat1 = encode(ae1, train_x);
num_hid2 = 50;
ae2 = trainAutoencoder(feat1, num_hid2, ...
'MaxEpochs', 100, ...
'L2WeightRegularization', .002, ...
'SparsityRegularization', 4, ...
'SparsityPropotion', .1, ...
'ScaleData', false);
view(ae2);
% 使用第二个自编码器得到其对应的压缩编码
feat2 = encode(ae2, feat1);
5. 应用于分类问题
softnet = trainSoftmaxLayer(feat2, train_y, 'MaxEpochs', 400);
view(softnet)
6. 组建 stacked autoencoder
deepnet = stack(ae1, ae2, softnet);
view(deepnet)
matlab 实现 stacked Autoencoder 解决图像分类问题的更多相关文章
- 栈式自动编码器(Stacked AutoEncoder)
起源:自动编码器 单自动编码器,充其量也就是个强化补丁版PCA,只用一次好不过瘾. 于是Bengio等人在2007年的 Greedy Layer-Wise Training of Deep Netw ...
- 4. Stacked AutoEncoder(堆栈自动编码器)
1. AutoEncoder介绍 2. Applications of AutoEncoder in NLP 3. Recursive Autoencoder(递归自动编码器) 4. Stacked ...
- terminal崩溃打不开的一种原因以及ubuntu下matlab权限不够的解决办法
为了解决点击matlab图标闪退的问题,我往.bashrc添加了如下命令: source /usr/local/MATLAB/R2015b/bin/matlab 结果导致打开新的terminal闪退. ...
- C#调用matlab出错r6034错误解决方法[转载]
在c#调用MATLAB时,在运行第一次会出现r6034错误. 解决方法如下: 1.在MCR安装目录下D:\Program Files\MATLAB\MATLAB Compiler Runtime\v7 ...
- MATLAB安装libsvm无法使用解决办法(转)
buaasuozi 这是原作者: 安装libsvm 不成功有可能是你的MATLAB版本或者是编译文件版本的问题,但是不要急着换其他版本....说不定就有别的解决办法呢 首先感谢Lin教授及其实验室提 ...
- 不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题
2006年,机器学习界泰斗Hinton,在Science上发表了一篇使用深度神经网络进行维数约简的论文 ,自此,神经网络再次走进人们的视野,进而引发了一场深度学习革命.深度学习之所以如此受关注,是因为 ...
- MATLAB与Carsim联合仿真时提示matlab not found的解决方法(CarSim在联合仿真时提示找不到MATLAB的解决方法)
CarSim8.02并没有提供选择联合仿真的MATLAB/Simulink的版本的功能,CarSim总是与最后安装的MATLAB/Simulink进行联合仿真,如果安装有多个matlab版本则只打开最 ...
- matlab 相同函数名解决
http://jingyan.baidu.com/article/1612d500a23a8ce20e1eee07.html
- matlab下利用K-Means进行图像分类
FIRST & BEST SOLUTION clear all; clc; I_rgb=imread('dog.jpg'); figure();imshow(I_rgb);title('原始图 ...
随机推荐
- IIS7性能优化
http://www.03389.com/BLOG/user1/qq66565841/archives/2014/2014112143553.html IIS7性能优化 IIS7 优化-网站请求并发数 ...
- 6.在单机上实现ZooKeeper伪机群/伪集群部署
转自:https://blog.csdn.net/poechant/article/details/6633923
- Python 极简教程(四)变量与常量
变量和常量 在 Python 中没有 常量 与 变量 之分.只有约定成俗的做法: 全大写字母的名称即为 常量: PI = 3.1415926 全小写字母的名称为 变量: name = 'nemo' 变 ...
- 利用Socket进行大文件传输
分类: WINDOWS 最近接触到利用socket进行大文件传输的技术,有些心得,与大家分享.首先看看这个过程是怎么进行的(如下图): 所以,我们需要三个socket在窗体加载的时候初始化: ...
- Android应用开发-小巫CSDN博客client之获取评论列表
Android应用开发-小巫CSDN博客客户端之获取评论列表 上一篇博客介绍了博文具体内容的业务逻辑实现,本篇博客介绍小巫CSDN博客客户端的最后一项功能.获取评论列表,这个功能的实现跟前面获取文章列 ...
- 2019年Angular7——安装搭建路由
Angular 中文官方:https://www.angular.cn/ 为什么要看Angular?我也不知道,因为公司有个Angular的项目要维护.听说Angular的版本已经到7了.以前没怎么玩 ...
- POJ 1932 XYZZY (ZOJ 1935)SPFA+floyd
http://poj.org/problem?id=1932 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1935 题目大 ...
- 全面详细介绍一个P2P网贷领域的ERP系统的主要功能
一般的P2P系统,至少包括PC网站的前端和后端.前端系统的功能,可以参考"P2P系统哪家强,功能其实都一样" http://blog.csdn.net/fansunion/ ...
- 如何使用SVN协调代源代码,多人同步开发
转自linFen原文如何使用SVN协调代源代码,多人同步开发 1.什么是SVN SVN是一种版本管理系统,前身是CVS,是开源软件的基石.即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱 ...
- Declarative Widgets is a QML plugin that adds Qt Widgets support to QML
05.04.2018 Nathan Collins 8 comments FacebookTwitterGoogle+LinkedInEmail Declarative Widgets is a ...