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 总结的更多相关文章

  1. UFLDL(Unsupervised Feature Learning and Deep Learning)

    UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...

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

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

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

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

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

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

  5. 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 ...

  6. deep learning 以及deep learning 常用模型和方法

    首先为什么会有Deep learning,我们得到一个结论就是Deep learning需要多层来获得更抽象的特征表达. 1.Deep learning与Neural Network 深度学习是机器学 ...

  7. 应该如何入门deep learning呢?从UFLDL开始!

    抱歉,大家,这里不是要分享如何学习deep learning,而是想要记录自己学习deep learning的小历程,算是给自己的一点小动力吧,希望各位业内前辈能够多多指教! 看到有网友提到,Andr ...

  8. 转:UFLDL_Tutorial 笔记(deep learning绝佳的入门资料 )

    http://blog.csdn.net/dinosoft/article/details/50103503 推荐一个deep learning绝佳的入门资料 * UFLDL(Unsupervised ...

  9. Deep Learning(深度学习)学习笔记整理

    申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...

随机推荐

  1. UVA 658 It's not a Bug, it's a Feature!

    这个题目巧妙之处在于用二进制的每个位1,0分别表示bug的有无,以及实施补丁对相应bug的要求以及实施后的对bug的影响. 软件bug的状态:1表示相应bug仍然存在,0表示已经修复.这样可以将软件的 ...

  2. 使用NSURLSession获取网络数据和下载文件

    使用NSURLSession获取网络数据 使用NSURLSession下载文件

  3. 第五章 HID设备

    5.1 HID介绍 为简化USB设备的开发过程,USB提出了设备类的概念.所有设备类都必须支持标准USB描述符和标准USB设备请求.如果有必要,设备类还可以自行定义其专用的描述符和设备请求,这分别被称 ...

  4. 6个常见的 PHP 安全性攻击

    了解常见的PHP应用程序安全威胁,可以确保你的PHP应用程序不受攻击.因此,本文将列出 6个常见的 PHP 安全性攻击,欢迎大家来阅读和学习. 1.SQL注入 SQL注入是一种恶意攻击,用户利用在表单 ...

  5. 在Myeclipse buildpath 加server lib

    把eclipse下的工程复制过来后,发现缺少Server Runtime.本想直接在buildpath里加lib,在Myeclipse里找了一圈,恁是没发现在哪里可以添加,虽然在preference里 ...

  6. 结构体dict_table_t

    typedef struct dict_table_struct dict_table_t; /** Data structure for a database table. Most fields ...

  7. BZOJ_1180_[CROATIAN2009]_OTOCI_(LCT)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1180 三种操作: 1.询问x,y是否连通,如果不连通,建一条边x,y 2.把x节点的权值改为t ...

  8. WordPress FunCaptcha插件跨站脚本漏洞

    漏洞名称: WordPress FunCaptcha插件跨站脚本漏洞 CNNVD编号: CNNVD-201311-431 发布时间: 2013-11-29 更新时间: 2013-11-29 危害等级: ...

  9. android 利用数字证书对程序签名

    签名的必要性 1.  防止你已安装的应用被恶意的第三方覆盖或替换掉. 2.  开发者的身份标识,签名可以防止抵赖等事件的发生. 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样 ...

  10. win8系统开发者预览版安装中文软件报错怎么办

    相信大家看到这边博客时,应该也是遇到类似的问题,这个可能是win8的一个bug.最直接的解决方法是,将目前语言环境由中文改为英文,再安装运行软件应该就不会有问题了. 但是,我们下次在安装应用程序时依然 ...