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('原始图 ...
随机推荐
- install-软件安装跟push的区别
今天在做项目的时候,需要往一个user版本的手机中安装一个应用,就在网上查了相应的方法,可以使用如下命令 adb install -r out/target/product/vanzo6752_lwt ...
- 需求:在浏览器加载完毕后,自动播放视频:出现play() failed because the user didn't interact with the document first.错误
解决方法:给video标签加入<video muted></video> 静音即可. Chrome 66为了避免标签产生随机噪音. 参考链接:https://juejin.im ...
- 【CS Round #43 B】Rectangle Partition
[链接]https://csacademy.com/contest/round-43/task/rectangle-partition/ [题意] 水题 [题解] 横着过去,把相邻的边的宽记录下来. ...
- 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares
P1206 [USACO1.2]回文平方数 Palindromic Squares 题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2< ...
- [D3] Reuse Transitions in D3 v4
D3 transitions start executing as soon as they’re created, and they’re destroyed once they end. This ...
- Something-Summary
1.Combinatorial Mathematics 1.1 Bell Number: \(B_n\)表示元素个数为n的集合划分成若干个不相交集合的方案数. \(B_{n + 1} = \sum_{ ...
- flask的使用(一)
1.程序基本的说明 #-*-encoding=utf--*- 从flask中引入类 from flask import Flask ,render_template import config 初始化 ...
- 使用doxygen为C/C++程序生成中文文档
文章来自:http://www.fmddlmyy.cn/text21.html 依照约定的格式凝视源码,用工具处理凝视过的源码产生文档.通过这样的方式产生文档至少有下面优点: 便于代码和文档保持同步. ...
- POJ 3086 Triangular Sums (ZOJ 2773)
http://poj.org/problem?id=3086 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1773 让你计算两 ...
- 27、从零写UVC驱动之分析数据传输(设置ubuntu通过串口打印,指定打印到文件,ubuntu切换root用户)
A. 设置ubuntu让它从串口0输出printk信息a. 设置vmware添加serial port, 使用文件作为串口(在vmware中设置,文件是保存在windows中)b. 启动ubuntu, ...