Unsupervised Feature Learning and Deep Learning(UFLDL) Exercise 总结
7.27 暑假开始后,稍有时间,“搞完”金融项目,便开始跑跑 Deep Learning的程序
Hinton 在Nature上文章的代码 跑了3天 也没跑完 后来Debug 把batch 从200改到20 勉强跑出结果
后来开始看 文章等 感觉晕晕乎乎
又翻到:Deep Learning Tutorials 装Theano等,但是python 代码 Debug真是好生恶心
再后来翻到 UFLDL,看着有Exercise 便做了起来。
用了5天刷了9个Exercises。
大概年后吧,在微博上看到 @邓侃 组织翻译 Andrew Ng 执笔的 Deep Learning 系列(UFLDL)
当时 就泼了冷水 那个时候在读 Machine Learning的书 清一色英文 觉得英文不是问题 为什么要翻译呢?
我觉得读书 应该读经典 读好书;国内很多书的内容质量大家都懂的。
学习一个新方向(比如ML/CV/IP等)我的方法是:先找一本中文书(可以是翻译的)熟悉知识的框架/关键字;然后找些经典书籍(多数是英文,偶尔会有不错的中文书)来读,再深入就要 Code 读Paper等;Code也可以在读书的时候进行,我在读PRML的时候,看完一章节,就合上书自己推导/Code,收获很多。
现在来看邓前辈组织的翻译,特别符合我入门DL的需求,而且Ng的Exercise做得很用心,难度不大。
为一开始的不敬,愧疚。向翻译团队致敬!
============================================
1.Sparse Autoencoder
关于Sparse/Low-rank model,看过20多篇计算机视觉的文章,还Code过几个算法。
在Neural Networks中,通过约束隐含层的平均激活度 来实现稀疏
Exercise Result:
展示的是 第一层系数W每一行 reshape成 patch 大小的图像。联想到了EignFaces...
-----------------------------------------------------------------------------------------
2.Vectorization
向量化编程;matlab中for循环很慢,如果在cost函数中包含for循环,那么优化将变得很慢。
一开始我不以为意,没去做这事;在后面的一个Exercise中,程序跑得很慢,便优化了Sparse Autoencoder的代码,去掉了所有for循环,速度提高了8倍左右。
-----------------------------------------------------------------------------------------
3.PCA and Whitening
Whitening部分对我来说虽然较新,却不难;做降维的时候,PCA就是一个主要方法;PCA重建这事自己也探索过;
白化在PRML上看到过,没太留意。图形的预处理还是很重要的。
-----------------------------------------------------------------------------------------
4.Softmax Regression
Logistic Regression 多分类的直接推广。关于这个还有个小故事,曾经以对LR的理解,看出了豆瓣某工程师对SR推导的错误。
MNIST:
这个准确率 跟前段时间 玩Kaggle时用 one-vs-all logistic regression差不多(91.x%)
-----------------------------------------------------------------------------------------
5.Self-Taught Learning
使用5-9的MNIST数据 train 一个 Autoencoder 得到参数W1 b1
reshape W1:
使用W1 b1 来 Extract 0-4的Features
接着使用softmax regression训练一个分类器(偷了个懒 Autoencoder只迭代了200次)
-----------------------------------------------------------------------------------------
6.Implement Deep Learning Networks for Digital Classification
真正意义上构建的的第一个深层网络:前两层用Sparse Autoencoder训练feature I II,最后使用softmax regression对feature II进行分类。
迭代的次数 需要自己设定 所以多少有些出入
-----------------------------------------------------------------------------------------
7.Linear Decoders with Autoencoders
由于sigmoid/tanh函数的取值范围限制,输入数据x也只能在相同范围内
在输出端 使用线性激励函数 就可以克服此问题.
-----------------------------------------------------------------------------------------
8.Convolution and pooling
-----------------------------------------------------------------------------------------
9.Sparse Coding
稀疏模型 不多说了 搞过;咔咔,解析解需要用到矩阵求导 利用trace(AA')求导即可 加入收敛条件
从其提供的代码来看,cost function的第一项重建差 需要除以patch数目,其实这种除可以相应scale lambda gamma达到一样的效果,cosnt*f(x)与f(x)最优解是一致的。
================================================
再次感谢 翻译团队 对母语的理解 还是要比英文顺畅得多
在此之前 只code过一次 Neuron Network,
——做Exercise6的时候,胸口疼了一会,真正在做多层网络啦!
接下来 读一些 readlist 上的文章,丰富Neuron Networks的知识。
Autoencoder知识UF的一种...
Unsupervised Feature Learning and Deep Learning(UFLDL) Exercise 总结的更多相关文章
- UFLDL(Unsupervised Feature Learning and Deep Learning)
UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...
- paper 124:【转载】无监督特征学习——Unsupervised feature learning and deep learning
来源:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio c ...
- 转:无监督特征学习——Unsupervised feature learning and deep learning
http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio clas ...
- [转] 无监督特征学习——Unsupervised feature learning and deep learning
from:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio ...
- A Gentle Introduction to Transfer Learning for Deep Learning | 迁移学习
by Jason Brownlee on December 20, 2017 in Better Deep Learning Transfer learning is a machine learni ...
- deep learning 以及deep learning 常用模型和方法
首先为什么会有Deep learning,我们得到一个结论就是Deep learning需要多层来获得更抽象的特征表达. 1.Deep learning与Neural Network 深度学习是机器学 ...
- 应该如何入门deep learning呢?从UFLDL开始!
抱歉,大家,这里不是要分享如何学习deep learning,而是想要记录自己学习deep learning的小历程,算是给自己的一点小动力吧,希望各位业内前辈能够多多指教! 看到有网友提到,Andr ...
- 转:UFLDL_Tutorial 笔记(deep learning绝佳的入门资料 )
http://blog.csdn.net/dinosoft/article/details/50103503 推荐一个deep learning绝佳的入门资料 * UFLDL(Unsupervised ...
- Deep Learning(深度学习)学习笔记整理
申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...
随机推荐
- 汇编语言中,SP,BP ,SI,DI作用?
这个很简单: sp:表示栈顶指针,指向栈顶地址.与SS相配合使用.ss为栈段. bp:是基址指针,段地址默认在SS中.可以定位物理地址,比如:"mov ax,[bp+si+6]/mov ax ...
- UVALive - 4287 Proving Equivalences
给定n个命题之间的已经证明的关系如 a b表示已经证明蕴含式a→b,要求还需要再作多少次证明使得所有的命题都是等价的.将每个命题看成一个点,已经证明的命题之间连一条边,问题转化为添加多少条单向边使得图 ...
- Visual Assist X
老师推荐的一款vc++6.0插件 visual assistx_百度百科 http://baike.baidu.com/view/4439152.htm?fr=aladdin 下载 VC++6.0助手 ...
- 内核驱动中常见的miscdevice、platform_device、platform_driver
最近在看驱动模型,是越看越糊涂,以前接触比较多的都是一些字符驱动,对字符驱动的框架有一定的了解.后来因为想在驱动中实现设备文件的创建,又了解了一下,sysfs文件系统和udev设备文件系统(这两个是两 ...
- 【HDOJ】1230 火星A+B
个人觉得这道题没那么水,wa了几次,才发现自己居然没有给srcb数组reset,打错了.搞死啊. #include <stdio.h> #include <string.h> ...
- hadoop2.2编程: 数据压缩
本文主要讨论hadoop的数据压缩与解压缩代码的书写 Compressing and decompressing streams with CompressionCodec import org.ap ...
- LFS 中文版手册发布:如何打造自己的 Linux 发行版
您是否想过打造您自己的 Linux 发行版?每个 Linux 用户在他们使用 Linux 的过程中都想过做一个他们自己的发行版,至少一次.我也不例外,作为一个 Linux 菜鸟,我也考虑过开发一个自己 ...
- 关于SharePoint 2010体系架构的几个话题
转:http://www.cnblogs.com/chenxizhang/archive/2011/12/18/2291658.html?ADUIN=85650109&ADSESSION=13 ...
- C# 根据Word模版生成Word文件
指定的word模版 2,生成word类 添加com Microsoft word 11.0 Object Library 引用 using System; using System.Collectio ...
- MySQL运行原理与基础架构
1.MySQL基础 MySQL是一个开放源代码的关系数据库管理系统.原开发者为瑞典的MySQL AB公司,最早是在2001年MySQL3.23进入到管理员的视野并在之后获得广泛的应用. 2008年My ...