UFLDL深度学习笔记 (三)无监督特征学习

1. 主题思路

UFLDL 无监督特征学习”本节全称为自我学习与无监督特征学习,和前一节softmax回归很类似,所以本篇笔记会比较简化,主题思路和步骤如下:

  • 把有标签数据分为两份,先对一份原始数据做无监督的稀疏自编码训练,获得输入层到隐藏层的最优化权值参数\(W, b\);
  • 把另一份数据分成分成训练集与测试集,都送入该参数对应的第一层网络(去掉输出层的稀疏自编码网络);
  • 用训练集输出的特征作为输入,训练softmax分类器;
  • 再用此参数对测试集进行分类,计算出分类准确率。

后面两个步骤和前一节softmax回归相同,区别仅仅是输入变成了原始数据的稀疏自编码隐藏层激活值。

特征提取网络组合形态

2. 本节练习不需要公式推导

3. 代码实现

根据前面的步骤描述,我们要实现对有监督数据的特征提取,为了报出稀疏自编码模块sparseAutoencoderCost.m的独立性,单独写一个feedForwardAutoencoder.m模块来实现。代码是不是非常简单?

function [activation] = feedForwardAutoencoder(theta, hiddenSize, visibleSize, data)
W1 = reshape(theta(1:hiddenSize*visibleSize), hiddenSize, visibleSize);
b1 = theta(2*hiddenSize*visibleSize+1:2*hiddenSize*visibleSize+hiddenSize);
m = size(data,2);
activation = sigmoid(W1*data + repmat(b1,1,m));
end
function sigm = sigmoid(x)
sigm = 1 ./ (1 + exp(-x));
end

从UFLDL原有代码中可以发现分类标签从0-9移动到了1-10,原因在于matlab的数组索引从1开始,最后做softmax判决时,找最大概率的分类的类别号得到的是1-10,所以才做移动的。

此外练习说明中将类别为6-10作为无监督学习的素材,1-5作为有监督softmax回归的素材,无非就是为了判决出类别号后,统计准确率时可以将softmaxPredict.m输出的类别号与测试集的真实label直接比较,不用考虑偏移的问题。

4.图示与结果

数据集仍然来自Yann Lecun的笔迹数据库,再瞜一眼原始MMIST数据集的笔迹。

设定与练习说明相同的参数,运行完整代码https://github.com/codgeek/deeplearning 可以看到预测准确率达到98.35%。达到了练习的标准结果。

回过来看一下,无监督学习到底学习到了什么呢?

类似稀疏自编码对边缘的学习,上图的特征其实还是稀疏自编码学习到的阿拉伯数字的笔迹基本特征,各种弧线样式。另外一点有点讲究的是对总数据集合拆分两组,也可以不按照1-5、6-10来拆,如果按照数据集的前一半后一段拆成两组。这样无监督训练数据就是所有0-9的数字笔迹,softmax判决的也是0-9的数字笔迹。代码见stlExercise.m% 拆分无监督学习和softmax监督学习方法二 部分。

结果有些意外又可以解释:准确率为95.8%。 可以解释为稀疏自编码、softmax有监督学习对每个分类的数据量都减少了,在1E5量级上,数据量对结果好坏有明显的影响。

UFLDL深度学习笔记 (三)无监督特征学习的更多相关文章

  1. paper 124:【转载】无监督特征学习——Unsupervised feature learning and deep learning

    来源:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio c ...

  2. 转:无监督特征学习——Unsupervised feature learning and deep learning

    http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio clas ...

  3. [转] 无监督特征学习——Unsupervised feature learning and deep learning

    from:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio ...

  4. Liunx学习笔记(三) 文件权限

    一.文件权限 1.查看文件权限 (1)文件权限 在 Linux 中对于文件有四种访问权限,列举如下: 可读取:r,Readable 可写入:w,Writable 可执行:x,Execute 无权限:- ...

  5. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  6. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  7. CVPR2020:三维点云无监督表示学习的全局局部双向推理

    CVPR2020:三维点云无监督表示学习的全局局部双向推理 Global-Local Bidirectional Reasoning for Unsupervised Representation L ...

  8. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  9. Deep Learning 学习随记(四)自学习和非监督特征学习

    接着看讲义,接下来这章应该是Self-Taught Learning and Unsupervised Feature Learning. 含义: 从字面上不难理解其意思.这里的self-taught ...

随机推荐

  1. 动态规划 001 - 编辑距离(Levenshtein Distance)问题

    问题 字符串的编辑距离也被称为距Levenshtein距离(Levenshtein Distance),属于经典算法,常用方法使用递归,更好的方法是使用动态规划算法,以避免出现重叠子问题的反复计算,减 ...

  2. RTM CU CTP

    .RTM: Released To Manufacturing,也就是新产品的正式发布版本,比如SQL 2008 RTM.其后的补丁都是基于这个之上的. .CU: Cumulative Update, ...

  3. Python中的XMLRPC(Calendar)

    XMLRPC服务器端代码,定义了三个方法名,getMonth获取所给月份的日历,getYear获取一年的日历,getDict测试返回字典的效果. xmlrpc_server.py: #!/usr/bi ...

  4. 针对访问uri 限制ip

    在虚拟主机配置文件中加入如下字段: <filesmatch "(.*)admin(.*)">            Order deny,allow           ...

  5. 关于宏:container_of和 offsetof以及list_for_each_entry

    1.offsetof(TYPE, MEMBER) #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) offse ...

  6. Linux查看目录大小

    du -ah --max-depth=1 a表示显示目录下所有的文件和文件夹(不含子目录) h表示以人类能看懂的方式 max-depth表示目录的深度

  7. 经典的排序算法java实现版

    /** * * @author yuzhiping * @version 1.0 * 功能说明:计算机领域经典的算法 * */ public class sortAlgorithm<T exte ...

  8. Windows虚拟内存如何设置

    当我们在运行一些大型的软件,或者是刚刚退出游戏的时候经常会提示"你的虚拟内存过低"的提示,出现这种情况一般是:一:你的物理内存比较小,运行大的软件比较吃力:二:你运行了许多窗口或者 ...

  9. php装饰器

    <?php /* * 用一个类来装饰另一个类,动态的给一个对象增加一些额外功能,这些功能一般是在这个对象调用方法前或方法后 * 比如我们要给User类增加一个登陆日志的功能 */ // 抽象构件 ...

  10. 最美应用-从Android研发project师的角度之[最美时光]

    最美应用-从Android研发project师的角度之最美时光 @author ASCE1885的 Github 简书 微博 CSDN 近期发现最美应用这样一个站点.它会定期推介一些非常有意思的app ...