Deep learning:三十一(数据预处理练习)
摘要:前言: 本节主要是来练习下在machine learning(不仅仅是deep learning)设计前的一些数据预处理步骤,关于数据预处理的一些基本要点在前面的博文Deep learning:三十(关于数据预处理的相关技巧)中已有所介绍,无非就是数据的归一化和数据的白化,而数据的归一化又分为尺度归一化,均值方差归一化等。数据的白化常见的也有PCA白化和ZCA白化。 实验基础: 本次实验所用的数据为ASL手势识别的数据,数据可以在网站http://personal.ee.surrey.ac.uk/Personal/N.Pugeault/index.php?section=Finger...
阅读全文
posted @
2013-04-24 09:47
tornadomeet
阅读(17444)
推荐(1) 编辑
Deep learning:三十(关于数据预处理的相关技巧)
摘要:前言: 本文主要是介绍下在一个实际的机器学习系统中,该怎样对数据进行预处理。个人感觉数据预处理部分在整个系统设计中的工作量占了至少1/3。首先数据的采集就非常的费时费力,因为这些数据需要考虑各种因素,然后有时还需对数据进行繁琐的标注。当这些都有了后,就相当于我们有了元素的raw数据,然后就可以进行下面的数据预处理部分了。本文是参考的UFLDL网页教程:Data Preprocessing,在该网页的底部可以找到其对应的中文版。 基础知识: 一般来说,算法的好坏一定程度上和数据是否归一化,是否白化有关。但是在具体问题中,这些数据预处理中的参数其实还是很难准确得到的,当然了,除非你对对应...
阅读全文
posted @
2013-04-20 21:05
tornadomeet
阅读(18754)
推荐(2) 编辑
Deep learning:二十九(Sparse coding练习)
摘要:前言 本节主要是练习下斯坦福DL网络教程UFLDL关于Sparse coding那一部分,具体的网页教程参考:Exercise:Sparse Coding。该实验的主要内容是从2w个自然图像的patches中分别采用sparse coding和拓扑的sparse coding方法进行学习,并观察学习到的这些图像基图像的特征。训练数据时自然图片IMAGE,在给出的教程网站上有。 实验基础 Sparse coding的主要是思想学习输入数据集”基数据”,一旦获得这些”基数据”,输入数据集中的每个数据都可以用这些”基数据”的线性组合表示,而稀疏性则体现在这些线性组合系数是系数的,即大部分的...
阅读全文
posted @
2013-04-16 16:41
tornadomeet
阅读(19987)
推荐(3) 编辑
Deep learning:二十八(使用BP算法思想求解Sparse coding中矩阵范数导数)
摘要:前言: 关于Sparse coding目标函数的优化会涉及到矩阵求数问题,因为里面有好多矩阵范数的导数,加上自己对矩阵运算不熟悉,推导前面博文Deep learning:二十六(Sparse coding简单理解)中关于拓扑(非拓扑的要简单很多)Sparse coding代价函数对特征变量s导数的公式时,在草稿纸上推导了大半天也没有正确结果。该公式表达式为: 后面继续看UFLDL教程,发现这篇文章Deriving gradients using the backpropagation idea中已经给出了我想要的答案,作者是应用BP神经网络中求网络代价函数导数的思想,将上述代价函...
阅读全文
posted @
2013-04-15 16:26
tornadomeet
阅读(9881)
推荐(1) 编辑
Deep learning:二十七(Sparse coding中关于矩阵的范数求导)
摘要:前言: 由于在sparse coding模型中求系统代价函数偏导数时需要用到矩阵的范数求导,这在其它模型中应该也很常见,比如说对一个矩阵内的元素值进行惩罚,使其值不能过大,则可以使用F范数(下面将介绍)约束,查阅了下矩阵范数求导的相关资料,本节就简单介绍下。 首先,网络上有大把的人把2范数和F=2时的范数混为一谈,或者说把矩阵p范数和诱导p范数混淆了(也有可能是因为各个版本书所定义的不同吧)。下面我还是以矩阵中权威教材the matrix cookbook和matlab内嵌函数所用的定义来解释。话说the matrix cookbook是一本非常不错的参考书,查找矩阵相关的公式就像查字...
阅读全文
posted @
2013-04-14 10:21
tornadomeet
阅读(23626)
推荐(0) 编辑
Deep learning:二十六(Sparse coding简单理解)
摘要:Sparse coding: 本节将简单介绍下sparse coding(稀疏编码),因为sparse coding也是deep learning中一个重要的分支,同样能够提取出数据集很好的特征。本文的内容是参考斯坦福deep learning教程:Sparse Coding,Sparse Coding: Autoencoder Interpretation,对应的中文教程见稀疏编码,稀疏编码自编码表达。 在次之前,我们需要对凸优化有些了解,百度百科解释为:”凸优化“ 是指一种比较特殊的优化,是指目标函数为凸函数且由约束条件得到的定义域为凸集的优化问题,也就是说目标函数和约束条件都是”...
阅读全文
posted @
2013-04-13 13:39
tornadomeet
阅读(45644)
推荐(2) 编辑
Deep learning:二十五(Kmeans单层网络识别性能)
摘要:前言: 本文是用kmeans方法来分析单层网络的性能,主要是用在CIFAR-10图像识别数据库上。关于单层网络的性能可以参考前面的博文:Deep learning:二十(无监督特征学习中关于单层网络的分析)。当然了,本文依旧是参考论文An Analysis of Single-Layer Ne...
阅读全文
posted @
2013-04-12 11:34
tornadomeet
阅读(15843)
推荐(3) 编辑
Deep learning:二十四(stacked autoencoder练习)
摘要:前言: 本次是练习2个隐含层的网络的训练方法,每个网络层都是用的sparse autoencoder思想,利用两个隐含层的网络来提取出输入数据的特征。本次实验验要完成的任务是对MINST进行手写数字识别,实验内容及步骤参考网页教程Exercise: Implement deep networks for digit classification。当提取出手写数字图片的特征后,就用softmax进行对其进行分类。关于MINST的介绍可以参考网页:MNIST Dataset。本文的理论介绍也可以参考前面的博文:Deep learning:十六(deep networks)。 实验基础: ...
阅读全文
posted @
2013-04-09 22:05
tornadomeet
阅读(31405)
推荐(1) 编辑
Deep learning:二十三(Convolution和Pooling练习)
摘要:前言: 本次实验是练习convolution和pooling的使用,更深一层的理解怎样对大的图片采用convolution得到每个特征的输出结果,然后采用pooling方法对这些结果进行计算,使之具有平移不变等特性。实验参考的是斯坦福网页教程:Exercise:Convolution and Pooling。也可以参考前面的博客:Deep learning:十七(Linear Decoders,Convolution和Pooling),且本次试验是在前面博文Deep learning:二十二(linear decoder练习)的学习到的特征提取网络上进行的。 实验基础: 首先来看看整...
阅读全文
posted @
2013-04-09 12:38
tornadomeet
阅读(34372)
推荐(3) 编辑
Deep learning:二十二(linear decoder练习)
摘要:前言: 本节是练习Linear decoder的应用,关于Linear decoder的相关知识介绍请参考:Deep learning:十七(Linear Decoders,Convolution和Pooling),实验步骤参考Exercise: Implement deep networks for digit classification。本次实验是用linear decoder的sparse autoencoder来训练出stl-10数据库图片的patch特征。并且这次的训练权值是针对rgb图像块的。 基础知识: PCA Whitening是保证数据各维度的方差为1,而ZCA ...
阅读全文
posted @
2013-04-08 14:34
tornadomeet
阅读(11958)
推荐(1) 编辑
Deep learning:二十一(随机初始化在无监督特征学习中的作用)
摘要:这又是Ng团队的一篇有趣的paper。Ng团队在上篇博客文章Deep learning:二十(无监督特征学习中关于单层网络的分析)中给出的结论是:网络中隐含节点的个数,convolution尺寸和移动步伐等参数比网络的层次比网络参数的学习算法本身还要重要,也就是说即使是使用单层的网络,只要隐含层的节点数够大,convolution尺寸和移动步伐较小,用简单的算法(比如kmeans算法)也可取得不亚于其它复杂的deep learning最优效果算法。而在本文On random weights and unsupervised feature learning中又提出了个新观点:即根本就无需通..
阅读全文
posted @
2013-04-03 17:03
tornadomeet
阅读(8836)
推荐(2) 编辑
Deep learning:二十(无监督特征学习中关于单层网络的分析)
摘要:本文是读Ng团队的论文” An Analysis of Single-Layer Networks in Unsupervised Feature Learning”后的分析,主要是针对一个隐含层的网络结构进行分析的,分别对比了4种网络结构,k-means, sparse autoencoder, sparse rbm, gmm。最后作者得出了下面几个结论:1. 网络中隐含层神经元节点的个数,采集的密度(也就是convolution时的移动步伐)和感知区域大小对最终特征提取效果的影响很大,甚至比网络的层次数,deep learning学习算法本身还要重要。2. Whitening在预处理过..
阅读全文
posted @
2013-04-02 23:47
tornadomeet
阅读(16157)
推荐(1) 编辑
Deep learning:十九(RBM简单理解)
摘要:这篇博客主要用来简单介绍下RBM网络,因为deep learning中的一个重要网络结构DBN就可以由RBM网络叠加而成,所以对RBM的理解有利于我们对DBN算法以及deep learning算法的进一步理解。Deep learning是从06年开始火得,得益于大牛Hinton的文章,不过这位大牛的文章比较晦涩难懂,公式太多,对于我这种菜鸟级别来说读懂它的paper压力太大。纵观大部分介绍RBM的paper,都会提到能量函数。因此有必要先了解下能量函数的概念。参考网页http://202.197.191.225:8080/30/text/chapter06/6_2t24.htm关于能量函数..
阅读全文
posted @
2013-03-27 15:31
tornadomeet
阅读(86513)
推荐(3) 编辑
Deep learning:十八(关于随机采样)
摘要:由于最近在看deep learning中的RBMs网络,而RBMs中本身就有各种公式不好理解,再来几个Gibbs采样,就更令人头疼了。所以还是觉得先看下Gibbs采样的理论知识。经过调查发现Gibbs是随机采样中的一种。所以本节也主要是简单层次的理解下随机采用知识。参考的知识是博客随机模拟的基本思想和常用采样方法(sampling),该博文是网上找到的解释得最通俗的。其实学校各种带数学公式的知识时,最好有学者能用通俗易懂的语言介绍,这对入门学者来说极其重要。当然了,还参考了网页http://www.jdl.ac.cn/user/lyqing/StatLearning/StatlLearni..
阅读全文
posted @
2013-03-26 15:39
tornadomeet
阅读(36577)
推荐(2) 编辑
Deep learning:十七(Linear Decoders,Convolution和Pooling)
摘要:本文主要是学习下Linear Decoder已经在大图片中经常采用的技术convolution和pooling,分别参考网页http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial中对应的章节部分。 Linear Decoders: 以三层的稀疏编码神经网络而言,在sparse autoencoder中的输出层满足下面的公式: 从公式中可以看出,a3的输出值是f函数的输出,而在普通的sparse autoencoder中f函数一般为sigmoid函数,所以其输出值的范围为(0,1),所以可以知道a3的输出值范围也...
阅读全文
posted @
2013-03-25 14:44
tornadomeet
阅读(23092)
推荐(1) 编辑
Deep learning:十六(deep networks)
摘要:本节参考的是网页http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial中关于Building Deep Networks for Classification一节的介绍。分下面2大部分内容: 1. 从self-taught到deep networks: 从前面的关于self-taught learning介绍(Deep learning:十五(Self-Taught Learning练习))可以看到,该ML方法在特征提取方面是完全用的无监督方法,本次要讲的就是在上面的基础上再用有监督的方法继续对网络的参数进行微调,这...
阅读全文
posted @
2013-03-25 11:09
tornadomeet
阅读(24547)
推荐(0) 编辑
Deep learning:十五(Self-Taught Learning练习)
摘要:前言: 本次实验主要是练习soft- taught learning的实现。参考的资料为网页:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Self-Taught_Learning。Soft-taught leaning是用的无监督学习来学习到特征提取的参数,然后用有监督学习来训练分类器。这里分别是用的sparse autoencoder和softmax regression。实验的数据依旧是手写数字数据库MNIST Dataset. 实验基础: 从前面的知识可以知道,sparse autoencoder的输出应该是...
阅读全文
posted @
2013-03-24 17:57
tornadomeet
阅读(22229)
推荐(1) 编辑
Deep learning:十四(Softmax Regression练习)
摘要:前言: 这篇文章主要是用来练习softmax regression在多分类器中的应用,关于该部分的理论知识已经在前面的博文中Deep learning:十三(Softmax Regression)有所介绍。本次的实验内容是参考网页:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Softmax_Regression。主要完成的是手写数字识别,采用的是MNIST手写数字数据库,其中训练样本有6万个,测试样本有1万个,且数字是0~9这10个。每个样本是一张小图片,大小为28*28的。 实验环境:matlab2012a 实验...
阅读全文
posted @
2013-03-23 20:17
tornadomeet
阅读(28468)
推荐(0) 编辑
Deep learning:十三(Softmax Regression)
摘要:在前面的logistic regression博文Deep learning:四(logistic regression练习) 中,我们知道logistic regression很适合做一些非线性方面的分类问题,不过它只适合处理二分类的问题,且在给出分类结果时还会给出结果的概率。那么如果需要用类似的方法(这里类似的方法指的是输出分类结果并且给出概率值)来处理多分类问题的话该怎么扩展呢?本次要讲的就是对logstic regression扩展的一种多分类器,softmax regression。参考的内容为网页:http://deeplearning.stanford.edu/wiki/in..
阅读全文
posted @
2013-03-22 17:15
tornadomeet
阅读(67377)
推荐(3) 编辑
Deep learning:十二(PCA和whitening在二自然图像中的练习)
摘要:前言: 现在来用PCA,PCA Whitening对自然图像进行处理。这些理论知识参考前面的博文:Deep learning:十(PCA和whitening)。而本次试验的数据,步骤,要求等参考网页:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 。实验数据是从自然图像中随机选取10000个12*12的patch,然后对这些patch进行99%的方差保留的PCA计算,最后对这些patch做PCA Whitening和ZCA Whitening,并进行比较。 实验环境:matlab2012a 实验过程及结果:...
阅读全文
posted @
2013-03-22 14:04
tornadomeet
阅读(19744)
推荐(1) 编辑