
深度学习实践
描述主要深度学习算法,包抱感知器模型、BP网络、卷积神经网络(CNN)、递归神经网络(RNN)、Autoencoder、受限的波尔兹曼机(RBM)、深度信念网络(DBN)等,并探讨用Theano框架来实现这些网络模型。
最老程序员闫涛
关注全文检索、数据挖掘、推荐引擎技术,Android开发技术,互联网及移动互联网创业。
展开
-
深度学习算法实践15---堆叠去噪自动编码机(SdA)原理及实现
在上一篇博文中,我们讨论了去噪自动编码机(dA),并讨论了Theano框架实现的细节。在本节中,我们将讨论去噪自动编码机(dA)的主要应用,即组成堆叠自动编码机(SdA),我们将以MNIST手写字母识别为例,用堆叠自动编码机(SdA)来解决这一问题。原创 2016-09-07 06:28:08 · 11237 阅读 · 0 评论 -
深度学习算法实践14---去噪自动编码机(dA)的Theano实现
在明白了去噪自动编码机(dA)的理论之后,在本篇博文中,我们将讨论用Theano来实现一个去噪自动编码机。通过上篇博文的讨论,我们知道去噪自动编码机(dA)工作主要有四步组成:第一步是向原始输入信号中加入随机噪音(使原始信号在某些维度上值为零);第二步是将加入噪音的信号输入网络,经过编码器部分,在中间层生成输入信号的压缩信号;第三步是经过解码器层,在输出层得到输出信号;第四步将输出信号与原始输入信原创 2016-09-02 11:00:12 · 5207 阅读 · 1 评论 -
深度学习算法实践13---去噪自动编码机(Denosing Autoencoder)
截至目前为止,我们所讨论的神经网络技术,感知器模型、BP网络、多层卷积神经网络(CNN),都可以视为前馈神经网络的变形,都会采用信号前向传播,误差反向传播修正连接权值,采用有监督学习方式,解决样本分类问题。在这一篇博文,我们将介绍稍微不同的神经网络架构,即被称为自动编码机(Autoencoder)。与前述我们所讨论的神经网络不同,自动编码器(Autoencoder)属于非监督学习,不需要对训练样本原创 2016-08-31 17:57:29 · 16653 阅读 · 3 评论 -
深度学习算法实践12---卷积神经网络(CNN)实现
在搞清楚卷积神经网络(CNN)的原理之后,在本篇博文中,我们将讨论基于Theano的算法实现技术。我们还将以MNIST手写数字识别为例,创建卷积神经网络(CNN),训练该网络,使识别误差达到1%以内。原创 2016-08-30 12:50:35 · 8153 阅读 · 0 评论 -
深度学习算法实践11---卷积神经网络(CNN)之卷积操作
卷积神经网络(CNN)主要特性有:稀疏连接和权值共享、卷积操作、池化。在前一篇博文中我们已经讨论了稀疏连接和权值共享,在本篇博文中,我们将介绍卷积操作和池化。正是由于对图像进行卷积操作,卷积神经网络才得以其名,可见卷积操作是其核心。在这篇博文中,我们将讨论卷积操作的实现其及物理含义。原创 2016-08-29 18:20:48 · 11046 阅读 · 5 评论 -
深度学习算法实践10---卷积神经网络(CNN)原理
其实从本篇博文开始,我们才算真正进入深度学习领域。在深度学习领域,已经经过验证的成熟算法,目前主要有深度卷积网络(DNN)和递归网络(RNN),在图像识别、视频识别、语音识别领域取得了巨大的成功,正是由于这些成功,能促成了当前深度学习的大热。与此相对应的,在深度学习研究领域,最热门的是AutoEncoder、RBM、DBN等产生式网络架构,但是这些研究领域,虽然论文比较多,但是重量级应用还没有出现原创 2016-08-26 14:46:53 · 23240 阅读 · 5 评论 -
深度学习算法实践9---用Theano实现多层前馈网络
我们到目前为止,使用逻辑回归模型已经可以对简单的线性可分问题进行了研究,不仅对MNIST手写数字识别样本集进行了训练和识别,我们还对二维平面上的点是否在y=x这条直线上进行了判断,有了这两个例子,尤其是第二个例子,读者应该可以将逻辑回归模型应用到自己的项目中了。虽然逻辑回归问题不能解决线性不可分问题,但是对于很多线性不可分问题,还是可以找到一个尽量好的超平面,得到令人满意的分类结果。由于逻辑回归算原创 2016-08-25 17:39:24 · 3500 阅读 · 0 评论 -
深度学习算法实践8---BP算法详解
BP算法是关于误差的反向传播算法,就是从输出层开始,将结果与预期结果相比较,求出误差,然后按照梯度最大下降方向,调整神经元的联接权值,然后依次逐层调整各层之间的连接权值,对于批量学习方式而言,不断重复上述过程,直到误差达到足够小时为止。对于输出层而言,我们可以直接使用在上一篇博文中关于感知器模型的算法,BP算法的难点在于,如何处理隐藏层,因为隐藏层没有正确的输出信息用来计算误差。下面我们将从输出层原创 2016-08-24 19:06:51 · 6253 阅读 · 0 评论 -
深度学习算法实践7---前向神经网络算法原理
在本文中,我们对感知器模型的算法进行了推导,为我们对多层前馈网络(BP)的误差反向传播算法打下基础。原创 2016-08-22 18:16:30 · 6240 阅读 · 3 评论 -
深度学习算法实践6---逻辑回归算法应用
在上篇博文中,我们介绍了深度学习算法的实现,并且以MNIST手写数字识别为例,验证了该算法的有效性。但是我们学习逻辑回归算法的目的是解决我们的实际问题,而不是学习算法本身。逻辑回归算法在实际中的应用还是很广泛的,例如在医学领域的疾病预测中,我们就可以列出一系疾病相关因素,然后根据某位患者的具体情况,应用逻辑回归算法,判断该患者是否患有某种疾病。当然,逻辑回归算法还是有局限性的,其比较适合于处理线性原创 2016-08-11 14:45:50 · 4198 阅读 · 0 评论 -
深度学习算法实践5---线性回归算法实现
在学习了基本的Theano的概念之后,我们可以将这些知识用来进行一些简单的应用,在这篇文章中,我们将实现一个简旱的逻辑回归算法,并将该算法用于二维平面上的点是位于y=x之上还是之下。其实,Theano网站的教程中,有一个线性回归的例子,但是那个例子是一个用于手写字符识别的例子,没有给出实际的数据集,非常不直观,而其他例子直接就上MNIST的手写字符识别,由于问题比较复杂,很难有一个直观的认识。因此原创 2016-08-10 14:11:27 · 9966 阅读 · 0 评论 -
深度学习算法实践4---Theano常用技巧
在上一篇文章中介绍了神经网感知器模型中用到的一些算法,在这篇文章中,将继续介绍这些常用的算法,首先是随机数的生成,因为感知器模型必须用随机数来初始化连接权值,其次是求导数,因为感知器学习算法是,会用到梯度下降算法,涉及到求导问题。在讨论随机数生成算法之前,我们先来讨论一下共享变量,这很像C语言中的静态变量,假设我们要对网站的内容的热度进行统计分析,我们用hottness来表示热度,用visitWe原创 2016-08-08 13:20:09 · 2833 阅读 · 0 评论 -
深度学习算法实践3---神经网络常用操作实现
在这篇文章中,我们介绍了实现一个神经网络中最简单的感知器模型,我们介绍了Theano中的相关函数,并对其中的关键步聚给出了代码实现,读者可以基于这些代码,参考神经网络教材,实现出一个完整的感知器模型。原创 2016-08-05 10:46:00 · 3428 阅读 · 0 评论 -
深度学习算法实践2---线性代数和Numpy的使用
使用Theano和Numpy实现一些线性代数的基本操作,如常数与矩阵相乘,标量加法和矩阵乘法。原创 2016-08-04 14:54:24 · 3666 阅读 · 0 评论 -
深度学习算法实践1---开发环境搭建
本文将在Mac环境下,配置深度学习算法的开发环境,我们会采用python3.x作为开发语言,在深度学习框架方面,没有选择最为流行的TensorFlow,而是在研究者中比较流行的Theano。主要是因为TensorFlow虽然很热,但是将基础理论与框架结合的文档较少,Theano作为教学框架,这方面的资料非常丰富,所以以学习和实现为目的的项目,采用Theano会较大的优势。而我们知道,目前深度学习的应用,大多是试验性质的,因此采用Theano可以在学习深度学习基本理论的同时,动手实验各种算法,对实际项目的帮助原创 2016-08-03 18:00:47 · 5573 阅读 · 0 评论