Deep learning:三十五(用NN实现数据降维练习)
摘要:前言: 本文是针对上篇博文Deep learning:三十四(用NN实现数据的降维)的练习部分,也就是Hition大牛science文章reducing the dimensionality of data with neural networks的code部分,其code下载见:http:/...
阅读全文
posted @
2013-04-30 20:03
tornadomeet
阅读(25546)
推荐(8) 编辑
Deep learning:三十四(用NN实现数据的降维)
摘要:数据降维的重要性就不必说了,而用NN(神经网络)来对数据进行大量的降维是从2006开始的,这起源于2006年science上的一篇文章:reducing the dimensionality of data with neural networks,作者就是鼎鼎有名的Hinton,这篇文章也标志着deep learning进入火热的时代。 今天花了点时间读了下这篇文章,下面是一点笔记: 多层感知机其实在上世纪已经被提出来了,但是为什么它没有得到广泛应用呢?其原因在于对多层非线性网络进行权值优化时很难得到全局的参数。因为一般使用数值优化算法(比如BP算法)时需要随机给网络赋一个值,而当这...
阅读全文
posted @
2013-04-29 22:52
tornadomeet
阅读(15882)
推荐(1) 编辑
Deep learning:三十三(ICA模型)
摘要:基础知识: 在sparse coding(可参考Deep learning:二十六(Sparse coding简单理解),Deep learning:二十九(Sparse coding练习))模型中,学习到的基是超完备集的,也就是说基集中基的个数比数据的维数还要大,那么对一个数据而言,将其分解为基的线性组合时,这些基之间本身就是线性相关的。如果我们想要得到线性无关的基集,那么基集中元素的个数必须小于或等于样本的维数,本节所讲的ICA(Independent Component Analysis,独立成分分析)模型就可以完成这一要求,它学习到的基之间不仅保证线性无关,还保证了相互正交。本节...
阅读全文
posted @
2013-04-25 11:03
tornadomeet
阅读(11030)
推荐(1) 编辑
Deep learning:三十二(基础知识_3)
摘要:前言: 本次主要是重新复习下Sparse autoencoder基础知识,并且加入点自己的理解。关于sparse autoencoder在前面的博文Deep learning:八(Sparse Autoencoder)中已有所介绍。 基础知识: 首先来看看为什么sparse autoencoder能够学习到输入数据的特征呢?当使用autoencoder时,隐含层节点的个数会比输入层小(一般情况下),而autoencoder又要能够重构输入数据,说明隐含层节点压缩了原始数据,既然这个压缩是有效的,则它就代表了输入数据(因为输入数据每个分量值并不是相互独立的)的一部分特征了。如果对隐含节...
阅读全文
posted @
2013-04-25 00:14
tornadomeet
阅读(7228)
推荐(0) 编辑
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
阅读(17456)
推荐(1) 编辑
Deep learning:三十(关于数据预处理的相关技巧)
摘要:前言: 本文主要是介绍下在一个实际的机器学习系统中,该怎样对数据进行预处理。个人感觉数据预处理部分在整个系统设计中的工作量占了至少1/3。首先数据的采集就非常的费时费力,因为这些数据需要考虑各种因素,然后有时还需对数据进行繁琐的标注。当这些都有了后,就相当于我们有了元素的raw数据,然后就可以进行下面的数据预处理部分了。本文是参考的UFLDL网页教程:Data Preprocessing,在该网页的底部可以找到其对应的中文版。 基础知识: 一般来说,算法的好坏一定程度上和数据是否归一化,是否白化有关。但是在具体问题中,这些数据预处理中的参数其实还是很难准确得到的,当然了,除非你对对应...
阅读全文
posted @
2013-04-20 21:05
tornadomeet
阅读(18764)
推荐(2) 编辑
算法设计和数据结构学习_2(常见排序算法思想)
摘要:一般约定我们是按照从小到大的顺序排序。按照向量的形式来参考排序中数组元素的相对位置,行向量中最左边为数组的第一个元素,且称为前面。列向量中最上面的元素为数组的第一个元素,也是称为前边。对常见的排序算法的思想要有个认识,比如说:冒泡排序,选择排序,插入排序,快速排序,shell排序,堆排序,归并排序,基排序。算法的稳定性是看原先数据中相同的元素值的顺序在排序后是否改变了?如果依旧保持不变,则说明该算法是稳定的。比如说,选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。选择排序是每次找到数据中最大的或者最小的数,然后和第一个数交换,每
阅读全文
posted @
2013-04-18 00:04
tornadomeet
阅读(3359)
推荐(0) 编辑
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
阅读(19991)
推荐(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
阅读(9888)
推荐(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
阅读(23635)
推荐(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
阅读(45706)
推荐(2) 编辑
Deep learning:二十五(Kmeans单层网络识别性能)
摘要:前言: 本文是用kmeans方法来分析单层网络的性能,主要是用在CIFAR-10图像识别数据库上。关于单层网络的性能可以参考前面的博文:Deep learning:二十(无监督特征学习中关于单层网络的分析)。当然了,本文依旧是参考论文An Analysis of Single-Layer Ne...
阅读全文
posted @
2013-04-12 11:34
tornadomeet
阅读(15849)
推荐(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
阅读(31414)
推荐(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
阅读(34379)
推荐(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
阅读(11966)
推荐(1) 编辑
总结系列_15(不能从u盘启动安装win7系统的一个小原因)
摘要:装win7系统的背景: 当年买这个笔记本时系统是自带的win7家庭版,后面升级到了旗舰版,用了不到半年感觉系统越来越卡,再加上那时候自认为xp的兼容性要比win7强些,对搞程序开发的人来说要方便点,而是后面就换成xp系统了,一直用到现在,当然了,这个系统也是越用越卡。中间因为卡也重装过。 最近需要弄点机器学习的matlab程序,由于训练数据大小上百兆很常见,所以程序中对数组的要求也很高。而本人本事就只有2G物体内存,在32bit的xp下使用32bit的matlab,经常出现out of memory问题,甚是烦人。即使加大虚拟内存,且打开xp系统的3GB开关也改善不了多少。因为在mat...
阅读全文
posted @
2013-04-04 22:27
tornadomeet
阅读(6871)
推荐(0) 编辑
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
阅读(8849)
推荐(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
阅读(16169)
推荐(1) 编辑