Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >(入门)|深度学习通俗理解

(入门)|深度学习通俗理解

作者头像
智能算法
发布于 2018-04-03 03:35:49
发布于 2018-04-03 03:35:49
1.1K0
举报
文章被收录于专栏:智能算法智能算法

1. 深度学习到底是干啥的?

2017年10月18日,《自然》杂志网站公布的论文显示,此前战胜人类围棋世界冠军的电脑程序AlphaGo的开发团队又出力作——新程序AlphaGo Zero(阿尔法元)不依靠人类指导和经验,仅凭自身算法强化学习,就以100:0的战绩击败了AlphaGo(阿尔法狗)。深度学习愈演愈烈,那么究竟什么是深度学习呢?对于新手该怎么快速入门呢?本文从仿生学角度做出一个入门级的介绍,如有好的建议或者疑问,欢迎文末留言。

在深度学习出现之前,科学家们都是通过人为设计特征,然后将人为设计的特征用于图像的后续处理,思路如下图所示。这里的特征有一些还是比较牛逼的,像SIFT,HOG,等等。

但是这些特征的设计都是非常费力、启发式(需要专业知识)的,并且所具有的效果相对比较局限,既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能!Deep Learning就是用来干这个事情的,将海量的数据直接投放到算法中,让数据自己说话,系统自动从数据中学习。例如“猫”,从来不告诉机器说这个有小耳朵,小胡子圆头圆脑的动物就是猫,而是让机器自己领悟“猫”的概念。就好比小朋友是通过什么来认识这个世界的?

2.生物学发现了什么?

1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家)和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”:可视皮层是分级的:

他们在猫的后脑头骨上,开了一个3 毫米的小洞,向洞里插入电极,测量神经元的活跃程度。然后,他们在小猫的眼前,展现各种形状、各种亮度的物体。并且,在展现每一件物体时,还改变物体放置的位置和角度。他们期望通过这个办法,让小猫瞳孔感受不同类型、不同强弱的刺激。

之所以做这个试验,目的是去证明一个猜测。位于后脑皮层的不同视觉神经元,与瞳孔所受刺激之间,存在某种对应关系。一旦瞳孔受到某一种刺激,后脑皮层的某一部分神经元就会活跃。

David Hubel 和Torsten Wiesel 发现了一种被称为“方向选择性细胞(Orientation Selective Cell)”的神经元细胞。当瞳孔发现了眼前的物体的边缘,而且这个边缘指向某个方向时,这种神经元细胞就会活跃。

这个发现激发了人们对于神经系统的进一步思考。神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程。这里的关键词有两个,一个是抽象,一个是迭代。从原始信号,做低级抽象,逐渐向高级抽象迭代。人类的逻辑思维,经常使用高度抽象的概念。

若把人脑的这种分析方式比喻成图像处理,则如下图所示:第一层为像素级别,通过摄入瞳孔中形成像素;第二层级为某些细胞发现边缘和方向;第三层级为判定形状,是眼睛还是鼻子;第四层级进一步抽象(判断这是一个人脸)。

3.生物学与稀疏编码的不谋而合

1995 年前后,Bruno Olshausen和 David Field 两位学者任职 Cornell University,他们试图同时用生理学和计算机的手段,双管齐下,研究视觉问题。他们收集了很多黑白风景照片,从这些照片中,提取出400个小碎片,每个照片碎片的尺寸均为 16x16 像素,不妨把这400个碎片标记为 S[i], i = 0,.. 399。接下来,再从这些黑白风景照片中,随机提取另一个碎片,尺寸也是 16x16 像素,不妨把这个碎片标记为 T。

他们提出的问题是,如何从这400个碎片中,选取一组碎片,S[k], 通过叠加的办法,合成出一个新的碎片,而这个新的碎片,应当与随机选择的目标碎片 T,尽可能相似,同时,S[k] 的数量尽可能少。用数学的语言来描述,就是:

Sum_k (a[k] * S[k]) --> T, 其中 a[k] 是在叠加碎片 S[k] 时的权重系数。

为解决这个问题,Bruno Olshausen和 David Field 发明了一个算法,稀疏编码(Sparse Coding)。

稀疏编码是一个重复迭代的过程,每次迭代分两步:

1)选择一组 S[k],然后调整 a[k],使得Sum_k (a[k] * S[k]) 最接近 T。

2)固定住 a[k],在 400 个碎片中,选择其它更合适的碎片S’[k],替代原先的 S[k],使得Sum_k (a[k] * S’[k]) 最接近 T。

经过几次迭代后,最佳的 S[k] 组合,被遴选出来了。令人惊奇的是,被选中的 S[k],基本上都是照片上不同物体的边缘线,这些线段形状相似,区别在于方向。如下图所示:一个图可以通过用64种正交的edges(可以理解成正交的基本结构)来线性表示。比如样例的x可以用1-64个edges中的三个按照0.8,0.3,0.5的权重调和而成。而其他基本edge没有贡献,因此均为0 。

Bruno Olshausen和 David Field 的算法结果,与 David Hubel 和Torsten Wiesel 的生理发现,不谋而合!也就是说,复杂图形,往往由一些基本结构组成。这里我们可以将像素级到边缘的抽象作为深度学习网络的第一层,那接下来的网络层次如何拓展呢?这里我们将讨论深度学习的更深入层次。

4. 深度学习的层级到底怎么说?

小块的图形可以由基本edge构成,更结构化,更复杂的,具有概念性的图形如何表示呢?这就需要更高层次的特征表示,比如下图的V2,V4。

因此V1看像素级是像素级。V2看V1是像素级,这个是层次递进的,高层表达由底层表达的组合而成。专业点说就是基basis。V1取提出的basis是边缘,然后V2层是V1层这些basis的组合,这时候V2区得到的又是高一层的basis。即上一层的basis组合的结果,上上层又是上一层的组合basis……(所以有大牛说Deep learning就是“搞基”,因为难听,所以美其名曰Deep learning或者Unsupervised Feature Learning),如下所示为“高级”的结果。

深度学习的层级关系:

1.训练第一层

如下图所示,我们将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示,那么我们怎么知道这个code表示的就是input呢?我们加一个decoder解码器,这时候decoder就会输出一个信息,那么如果输出的这个信息和一开始的输入信号input是很像的(理想情况下就是一样的),那很明显,我们就有理由相信这个code是靠谱的。所以,我们就通过调整encoder和decoder的参数并且加入稀疏惩罚项,在稀疏性最小的同时,使得重构误差最小,这时候我们就得到了输入input信号的第一个表示了,也就是稀疏性的编码code了。

2.训练然后训练下一层。这样逐层训练:

那上面我们就得到第一层的code,我们的重构误差最小让我们相信这个code就是原输入信号的良好表达了,或者牵强点说,它和原信号是一模一样的(表达不一样,反映的是一个东西)。那第二层和第一层的训练方式就没有差别了,我们将第一层输出的code当成第二层的输入信号,同样最小化重构误差,就会得到第二层的参数,并且得到第二层输入的code,也就是原输入信息的第二个表达了。其他层就同样的方法炮制就行了(训练这一层,前面层的参数都是固定的,并且他们的decoder已经没用了,都不需要了)。

将第一步训练的图重新表示如下(灰色表示输入或者前一层的输出、黑色表示encoder、紫色表示decoder、红色椭圆表示error,而稀疏正则项在这里我们省去):

则逐层训练表示如下图所示:

3.顶层设计:

经过上面的方法,我们就可以得到很多层了。至于需要多少层(或者深度需要多少,这个目前本身就没有一个科学的评价方法)需要自己试验调了。每一层都会得到原始输入的不同的表达。当然了,我们觉得它是越抽象越好了,就像人的视觉系统一样。

到这里,这个AutoEncoder(自动编码器)还不能用来分类数据,因为它还没有学习如何去连结一个输入和一个类。它只是学会了如何去重构或者复现它的输入而已。或者说,它只是学习获得了一个可以良好代表输入的特征,这个特征可以最大程度上代表原输入信号。那么,为了实现分类,我们就可以在AutoEncoder的最顶的编码层添加一个分类器(例如logistic回归、SVM等),然后通过标准的多层神经网络的监督训练方法(梯度下降法)去训练。

也就是说,这时候,我们需要将最后层的特征code输入到最后的分类器,通过有标签样本,通过监督学习进行微调,这也分两种,一个是只调整分类器(黑色部分):

5. 深度学习小结:

至此对于深度学习的基本入门已经讲解的差不多了,深度学习能自动将低层次抽象到高层次的表达,相对于图像和语音特征不明晰(需要手动设计出耗时耗力的特征)的问题,减少了手动设计特征的巨大工作量,而且由于模型的层次、容量足够,能够更好的表达大规模数据。由于本人水平有限,如有好的建议或者疑问,欢迎文末留言。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Deep Learning(1) -- 概述、分布式表示与思想
绪论 深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。 深度学习的概念由Hinton等人于2006年提出。基于深信度网(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。 深度学习是机器学习研究中的一个新的领域,其动机在于
昱良
2018/04/08
2.3K0
Deep Learning(1) -- 概述、分布式表示与思想
​大牛的《深度学习》笔记,60分钟带你学完Deep Learning(上)
Zouxy整理 深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支。从快速发展到实际应用,短短几年时间里,深度学习颠覆了语音识别、图像分类、文本理解等众多领域的算法设计思路,渐渐形成了一种从训练数据出发,经过一个端到端(end-to-end)的模型,然后直接输出得到最终结果的一种新模式。那么,深度学习有多深?学了究竟有几分?本文将带你领略深度学习高端范儿背后的方法与过程。 一、概述 二、背景 三、人脑视觉机理 四、关于特征
AI科技评论
2018/03/07
1.1K0
​大牛的《深度学习》笔记,60分钟带你学完Deep Learning(上)
大牛的《深度学习》笔记,60分钟带你学会Deep Learning(上)
深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支。从快速发展到实际应用,短短几年时间里,深度学习颠覆了语音识别、图像分类、文本理解等众多领域的算法设计思路,渐渐形成了一种从训练数据出发,经过一个端到端(end-to-end)的模型,然后直接输出得到最终结果的一种新模式。那么,深度学习有多深?学了究竟有几分?本文将带你领略深度学习高端范儿背后的方法与过程。
网络安全观
2021/02/25
3970
大牛的《深度学习》笔记,60分钟带你学会Deep Learning(上)
深度学习知识分享
六、浅层学习(Shallow Learning)和深度学习(Deep Learning)
商业新知
2019/03/22
1K0
深度学习知识分享
Deep Learning(深度学习)学习笔记整理系列之(二)
1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的。具体引用的资料请看参考文献。具体的版本声明也参考原文献。
bear_fish
2018/09/19
4570
Deep Learning(深度学习)学习笔记整理系列之(二)
解密最接近人脑的智能学习机器 ——深度学习及并行化实现
训练深层模型是长期以来的难题,近年来以层次化、逐层初始化为代表的一系列方法的提出给训练深层模型带来了希望,并在多个应用领域获得了成功。深层模型的并行化框架和训练加速方法是深度学习走向实用的重要基石,已有多个针对不同深度模型的开源实现,Google、Facebook、百度、腾讯等公司也实现了各自的并行化框架。深度学习是目前最接近人脑的智能学习方法,深度学习引爆的这场革命,将人工智能带上了一个新的台阶,将对一大批产品和服务产生深远影响。 1.深度学习的革命 人工智能(Artificial Intelligen
腾讯大数据
2018/01/26
1.2K0
​大牛的《深度学习》笔记,60分钟带你学完Deep Learning(下)
导读:昨天我们为大家带来了大牛Zouxy学习深度学习的笔记的上篇。今天我们继续为大家带来教程的下篇,让我们看看这位大牛在深度学习领域还有什么独到的理解~ |六、浅层学习(Shallow Learning)和深度学习(Deep Learning) 浅层学习是机器学习的第一次浪潮。 20世纪80年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工
AI科技评论
2018/03/07
1.2K0
​大牛的《深度学习》笔记,60分钟带你学完Deep Learning(下)
Deep Learning(深度学习)学习笔记整理系列之(一)
1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的。具体引用的资料请看参考文献。具体的版本声明也参考原文献。
bear_fish
2018/09/19
5840
Deep Learning(深度学习)学习笔记整理系列之(一)
深度学习笔记 神经网络基础结构
深度学习作为机器学习研究领域中的一个方向,它的起源离不开人们对大脑认知原理,尤其是视觉原理的研究。
叶庭云
2021/01/29
5170
深度学习入门与自然语言理解
深度学习是机器学习领域的一个分支,也可以说是该领域近些年来的最大突破之一。
Marky Lumin
2018/01/25
1.4K0
【深度学习】深度学习
深度学习的起源 深度学习(Deep Learning)是机器学习中一个非常接近AI的领域,其动机在于建立、模拟人脑进行分析学习的神经网络。深度学习属于无监督学习。 深度学习的概念源于人工神经网络的研究。深度学习是相对于简单学习而言的,目前多数分类、回归等学习算法都属于简单学习,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从
陆勤_数据人网
2018/02/27
2.1K0
【深度学习】深度学习
深度学习的本质探究??
1、人工智能浪潮又起 标志型事件,阿尔法围棋(AlphaGo)战胜李世石。 alphago是一款围棋人工智能程序,由谷歌(Google)旗下DeepMind公司的戴维·西尔弗、艾佳·黄和戴密斯·哈萨比斯与他们的团队开发,这个程序利用“价值网络”去计算局面,用“策略网络”去选择下子。2015年10月阿尔法围棋以5:0完胜欧洲围棋冠军、职业二段选手樊麾;2016年3月对战世界围棋冠军、职业九段选手李世石,并以4:1的总比分获胜。这个让人工智能浪潮又起,热浪达到了一个高度。 alphago 核心用到了”深度卷积神
大数据和云计算技术
2018/03/08
2K0
深度学习的本质探究??
深度学习三人行(第8期)----卷积神经网络通俗原理
接下来我们一起学习下网红网络之卷积神经网络(CNN),我们多多交流,共同进步。本期主要内容如下:
智能算法
2018/12/17
4580
机器学习、深度学习 知识点总结及面试题
1、反向传播思想: 计算出输出与标签间的损失函数值,然后计算其相对于每个神经元的梯度,根据梯度方向更新权值。 (1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程; (2)由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层; (3)在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。 2、无监督逐层训练:预训练:每次训练一层隐结点。训练时将上一层隐结点的输出作为输
机器学习AI算法工程
2018/03/15
2.7K0
深度学习简介(一)——卷积神经网络「建议收藏」
本文的主要目的,是简单介绍时下流行的深度学习算法的基础知识,本人也看过许多其他教程,感觉其中大部分讲的还是太过深奥,于是便有了写一篇科普文的想法。博主也是现学现卖,文中如有不当之处,请各位指出,共同进步。
全栈程序员站长
2022/09/20
4220
深度学习简介(一)——卷积神经网络「建议收藏」
深度学习理论系列之——模型方法
深度学习的模型方法及应用 上一次我发了关于深度学习基本理论与方法的文章,大家反响还不错,今天继续 上次的知识,对深度学习再做一些基础性的理论介绍,希望大家多多指教。 深度学习的具体模型及方法 1、自动编码器(AutoEncoder ) 2、稀疏自动编码器(Sparse AutoEncoder) 3、限制波尔兹曼机(Restricted Boltzmann Machine) 4、深信度网络(Deep Belief Networks) 5、卷积神经网络(Convolutional Neural Networks
量化投资与机器学习微信公众号
2018/01/29
8580
学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
利炳根
2017/11/20
1.8K0
Deep learning (2) -- RBM(受限玻尔兹曼机)
接上一篇Deep learning (1) -- 概述、分布式表示与思想 九、Deep Learning的常用模型或者方法 9.1、AutoEncoder自动编码器 具体过程简单的说明如下: 1
昱良
2018/04/08
1.2K0
Deep learning (2) -- RBM(受限玻尔兹曼机)
大话卷积神经网络CNN(干货满满)
本文创作的主要目的,是对时下最火最流行的深度学习算法的基础知识做一个简介,本人看过许多教程,感觉对小白不是特别友好,尤其是在踩过好多坑之后,于是便有了写这篇文章的想法。
我是管小亮
2020/04/20
8940
说到深度学习架构中的预测编码模型,还得看PredNet
本文中,作者对经典预测编码模型和深度学习架构中的预测编码模型进行了简单回顾,其中重点介绍了用于视频预测和无监督学习的深度预测编码网络 PredNet 以及基于 PredNet 进行改进的一些版本。
机器之心
2021/11/18
6530
说到深度学习架构中的预测编码模型,还得看PredNet
推荐阅读
相关推荐
Deep Learning(1) -- 概述、分布式表示与思想
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档