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
阅读(86530)
推荐(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
阅读(36592)
推荐(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
阅读(23102)
推荐(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
阅读(24563)
推荐(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
阅读(22255)
推荐(1) 编辑
Matlab成长之路_5(解决out of memory问题)
摘要:最近在用matlab处理稍大的数据时,老是出现out of memory红色字眼,恼火死了。因为自己使用的是XP系统,物体内存只有2G。XP系统默认情况下只允许给一个进程分配最大2G的内存,所以即使是增加了系统的虚拟内存,那么在matlab下这些内存也是用不到的。其实最近碰到的倒不是内存不够,而是有时候需要定义一个比较大的数组,而这些数组在matlab内存使用时又必须占用连续的内存,所以有时候虽然内存总量够,不过也不能保证就一定能够分配该数组。在matlab命令行使用了pack命令后也无济于事(pack命令大概而已理解为是用来把一些琐碎的内存整合在一起的)。 最近在网上看到有使用3GB开...
阅读全文
posted @
2013-03-24 11:58
tornadomeet
阅读(11357)
推荐(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
阅读(28483)
推荐(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
阅读(67399)
推荐(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
阅读(19751)
推荐(1) 编辑
Deep learning:十一(PCA和whitening在二维数据中的练习)
摘要:前言: 这节主要是练习下PCA,PCA Whitening以及ZCA Whitening在2D数据上的使用,2D的数据集是45个数据点,每个数据点是2维的。参考的资料是:Exercise:PCA in 2D。结合前面的博文Deep learning:十(PCA和whitening)理论知识,来进一步理解PCA和Whitening的作用。 matlab某些函数: scatter: scatter(X,Y,,,’’); – 点的大小控制,设为和X,Y同长度一维向量,则值决定点的大小;设为常数或缺省,则所有点大小统一。 – 点的颜色控制,设为和X,Y同长度一维向量,则色彩由值大小...
阅读全文
posted @
2013-03-21 16:07
tornadomeet
阅读(15551)
推荐(2) 编辑
Deep learning:十(PCA和whitening)
摘要:PCA: PCA的具有2个功能,一是维数约简(可以加快算法的训练速度,减小内存消耗等),一是数据的可视化。 PCA并不是线性回归,因为线性回归是保证得到的函数是y值方面误差最小,而PCA是保证得到的函数到所降的维度上的误差最小。另外线性回归是通过x值来预测y值,而PCA中是将所有的x样本都同等对待。 在使用PCA前需要对数据进行预处理,首先是均值化,即对每个特征维,都减掉该维的平均值,然后就是将不同维的数据范围归一化到同一范围,方法一般都是除以最大值。但是比较奇怪的是,在对自然图像进行均值处理时并不是不是减去该维的平均值,而是减去这张图片本身的平均值。因为PCA的预处理是按照不同应用...
阅读全文
posted @
2013-03-21 13:34
tornadomeet
阅读(25446)
推荐(2) 编辑
Deep learning:九(Sparse Autoencoder练习)
摘要:前言: 现在来进入sparse autoencoder的一个实例练习,参考Ng的网页教程:Exercise:Sparse Autoencoder。这个例子所要实现的内容大概如下:从给定的很多张自然图片中截取出大小为8*8的小patches图片共10000张,现在需要用sparse autoencoder的方法训练出一个隐含层网络所学习到的特征。该网络共有3层,输入层是64个节点,隐含层是25个节点,输出层当然也是64个节点了。 实验基础: 其实实现该功能的主要步骤还是需要计算出网络的损失函数以及其偏导数,具体的公式可以参考前面的博文Deep learning:八(Sparse Aut...
阅读全文
posted @
2013-03-20 10:58
tornadomeet
阅读(54013)
推荐(4) 编辑
Deep learning:八(Sparse Autoencoder)
摘要:前言: 这节课来学习下Deep learning领域比较出名的一类算法——sparse autoencoder,即稀疏模式的自动编码。我们知道,deep learning也叫做unsupervised learning,所以这里的sparse autoencoder也应是无监督的。按照前面的博文:Deep learning:一(基础知识_1),Deep learning:七(基础知识_2)所讲,如果是有监督的学习的话,在神经网络中,我们只需要确定神经网络的结构就可以求出损失函数的表达式了(当然,该表达式需对网络的参数进行”惩罚”,以便使每个参数不要太大),同时也能够求出损失函数偏导函数的...
阅读全文
posted @
2013-03-19 22:01
tornadomeet
阅读(47935)
推荐(3) 编辑
Deep learning:七(基础知识_2)
摘要:前面的文章已经介绍过了2种经典的机器学习算法:线性回归和logistic回归,并且在后面的练习中也能够感觉到这2种方法在一些问题的求解中能够取得很好的效果。现在开始来看看另一种机器学习算法——神经网络。线性回归或者logistic回归问题理论上不是可以解决所有的回归和分类问题么,那么为什么还有其它各种各样的机器学习算法呢?比如这里马上要讲的神经网络算法。其实原因很简单,在前面的一系列博文练习中可以发现,那些样本点的输入特征维数都非常小(比如说2到3维),在使用logistic回归求解时,需要把原始样本特征重新映射到高维空间中,如果特征是3维,且指数最高为3时,得到的系数最高维数应该是2...
阅读全文
posted @
2013-03-18 15:05
tornadomeet
阅读(20916)
推荐(2) 编辑
Deep learning:六(regularized logistic回归练习)
摘要:前言: 在上一讲Deep learning:五(regularized线性回归练习)中已经介绍了regularization项在线性回归问题中的应用,这节主要是练习regularization项在logistic回归中的应用,并使用牛顿法来求解模型的参数。参考的网页资料为:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html。要解决的问题是,给出了具有2个特征的一堆训练数据集,从该数据的分布可以看出它们并不是非常线性可分的,
阅读全文
posted @
2013-03-17 20:04
tornadomeet
阅读(15323)
推荐(0) 编辑
Deep learning:五(regularized线性回归练习)
摘要:前言: 本节主要是练习regularization项的使用原则。因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象。因此在模型的损失函数中,需要对模型的参数进行“惩罚”,这样的话这些参数就不会太大,而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。本文参考的资料参考网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html。主要是给定7个训练样本点,需
阅读全文
posted @
2013-03-17 15:15
tornadomeet
阅读(16805)
推荐(0) 编辑
Deep learning:四(logistic regression练习)
摘要:前言: 本节来练习下logistic regression相关内容,参考的资料为网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex4/ex4.html。这里给出的训练样本的特征为80个学生的两门功课的分数,样本值为对应的同学是否允许被上大学,如果是允许的话则用’1’表示,否则不允许就用’0’表示,这是一个典型的二分类问题。在此问题中,给出的80个样本中正负样本各占40个。而这节采用的是logistic regression来求解,该求解
阅读全文
posted @
2013-03-16 21:59
tornadomeet
阅读(30257)
推荐(3) 编辑
Deep learning:三(Multivariance Linear Regression练习)
摘要:前言: 本文主要是来练习多变量线性回归问题(其实本文也就3个变量),参考资料见网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex3/ex3.html.其实在上一篇博文Deep learning:二(linear regression练习)中已经简单介绍过一元线性回归问题的求解,但是那个时候用梯度下降法求解时,给出的学习率是固定的0.7.而本次实验中学习率需要自己来选择,因此我们应该从小到大(比如从0.001到10)来选择,通过观察损失值
阅读全文
posted @
2013-03-15 20:55
tornadomeet
阅读(23124)
推荐(2) 编辑
Deep learning:二(linear regression练习)
摘要:前言 本文是多元线性回归的练习,这里练习的是最简单的二元线性回归,参考斯坦福大学的教学网http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex2/ex2.html。本题给出的是50个数据样本点,其中x为这50个小朋友到的年龄,年龄为2岁到8岁,年龄可有小数形式呈现。Y为这50个小朋友对应的身高,当然也是小数形式表示的。现在的问题是要根据这50个训练样本,估计出3.5岁和7岁时小孩子的身高。通过画出训练样本点的分布凭直觉可以发现这是一个典型的线性回
阅读全文
posted @
2013-03-15 16:20
tornadomeet
阅读(38985)
推荐(4) 编辑
Deep learning:一(基础知识_1)
摘要:前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程UFLDL Tutorial,据说这个教程写得浅显易懂,也不太长。不过在这这之前还是复习下machine learning的基础知识,见网页:http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=DeepLearning。内容其实很短,每小节就那么几分钟,且讲得非常棒。 教程中的一些术语: Model representation: 其实就是指学习到的函数的表达形式,可以用矩阵表示。 Vecto...
阅读全文
posted @
2013-03-14 12:48
tornadomeet
阅读(90138)
推荐(20) 编辑