深度学习笔记

1 概念

  • 人工智能(Artificial Intelligence) ————为机器赋予人的智能
  • 机器学习(Machine Learning) ———— 一种实现人工智能的方法
  • 深度学习(Deep Learning) ———— 一种实现机器学习的技术

2 单层神经网络

机器学习可以通过神经网络来实现。可以将深度学习简单理解为,就是使用深度方法应用在神经网络的机器学习方法。目前深度架构大部分时候就是指深度神经网络。

2.1神经元

1943 年,心理学家 McCulloch 和数学家 Pitts 参考了生物神经元的结构,发表了抽象的神经元模型 MP。

神经元模型是一个包含输入,输出与计算功能的模型。

其中的 Sgn 为激活函数

图中 Sum 求和圆圈和符号函数组成一个神经元。 连接是神经元中最重要的东西。每一个连接上都有一个权重。

一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。

MP 模型虽然简单,但是是神经网络大厦的地基。

2.2 单层神经网络(感知器)

1958 年,计算科学家 Rosenblatt 提出了由两层神经元组成的神经网络。他给它起了一个名字—"感知器"(Perceptron)。

在原来 MP 模型的"输入"位置添加神经元节点,标志其为"输入单元"。其余不变,便有了最简单的神经网络。

假如我们要预测的目标不再是一个值,而是一个向量,例如 [2,3]。那么可以在输出层再增加一个"输出单元"。

感知器中的权值是通过训练得到的。所谓训练,就是根据已有的输入和输出,找出最合适的权重参数。

利用感知器,可以很好的完成线性分类任务。

下图显示了在二维平面中划出决策分界的效果,也就是感知器的分类效果。

1969 年 Minsky 出版了一本叫《Perceptron》的书,里面用详细的数学证明了感知器的弱点, 感知器只能做简单的线性分类任务。

3 两层神经网络

Minsky 说过单层神经网络无法解决异或问题;两层神经网络可以解决异或问题,且具有非常好的非线性分类效果,但两层神经网络的计算是一个问题,没有一个较好的解法。

3.1 两层神经网络(多层感知器)

1986 年,Rumelhar 和 Hinton 等人提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,从而带动了业界使用两层神经网络研究的热潮。

图中输入与输出的节点数是可以根据需要修改的。 同时为了让计算更合理,每一层都会增加一个常量的偏置单元。

使用矩阵运算来表达整个计算公式的话如下:(其中 W/a/z 都为矩阵)

g(W(1) a(1) b(1)) = a(2); g(W(2) a(2) b(2)) = z;

理论证明,两层神经网络可以无限逼近任意连续函数。也就是说,面对复杂的非线性分类任务,两层神经网络可以分类的很好。

下面就是一个 例子,红色的线与蓝色的线代表数据。而红色区域和蓝色区域代表由神经网络划开的区域,两者的分界线就是决策分界。

可以看到,这个两层神经网络的决策分界是非常平滑的曲线,而且分类的很好。

3.2 反向传播算法(BP)

机器学习模型训练的目的,就是使得参数尽可能的与真实的模型逼近。具体做法是这样的。首先给所有参数赋上随机值。我们使用这些随机生成的参数值,来预测训练数据中的样本。样本的预测目标为 yp,真实目标为 y。那么,定义一个值 loss,计算公式如下:

loss = (yp - y)^2

这个值称之为损失(loss),我们的目标就是使对所有训练数据的损失和尽可能的小。

此时这个问题就被转化为一个优化问题。一个常用方法就是高等数学中的求导,但是这里的问题由于参数不止一个,求导后计算导数等于 0 的运算量很大,所以一般来说解决这个优化问题使用的是梯度下降算法。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止。一般这个时候,所有的参数恰好达到使损失函数达到一个最低值的状态。

在神经网络模型中,由于结构复杂,每次计算梯度的代价很大。因此还需要使用反向传播算法。反向传播算法是利用了神经网络的结构进行的计算。不一次计算所有参数的梯度,而是从后往前。首先计算输出层的梯度,然后是第二个参数矩阵的梯度,接着是中间层的梯度,再然后是第一个参数矩阵的梯度,最后是输入层的梯度。计算结束以后,所要的两个参数矩阵的梯度就都有了。

反向传播算法可以直观的理解为下图。梯度的计算从后往前,一层层反向传播。前缀 E 代表着相对导数的意思。

4 深度学习

  • 随着 BP 算法的提出,神经网络也重新得到人们的重视,开始发力于语音识别,图像识别,自动驾驶等多个领域。
  • 但是神经网络仍然存在若干的问题:尽管使用了 BP 算法,一次神经网络的训练仍然耗时太久,而且困扰训练优化的一个问题就是局部最优解问题,这使得神经网络的优化较为困难。同时,隐藏层的节点数需要调参,这使得使用不太方便,工程和研究人员对此多有抱怨。
  • 90 年代中期,由 Vapnik 等人发明的 SVM(Support Vector Machines,支持向量机)算法诞生,很快就在若干个方面体现出了对比神经网络的优势:无需调参;高效;全局最优解。基于以上种种理由,SVM 迅速打败了神经网络算法成为主流。
  • 2006 年,Hinton 在《Science》和相关期刊上发表了论文,首次提出了"深度信念网络"的概念。与传统的训练方式不同,"深度信念网络"有一个"预训练"(pre-training)的过程,这可以方便的让神经网络中的权值找到一个接近最优解的值,之后再使用"微调"(fine-tuning) 技术来对整个网络进行优化训练。这两个技术的运用大幅度减少了训练多层神经网络的时间。他给多层神经网络相关的学习方法赋予了一个新名词—"深度学习"。
  • 很快,深度学习在语音识别领域崭露头角。接着,2012 年,深度学习技术又在图像识别领域大展拳脚。Hinton 与他的学生在 ImageNet 竞赛中,用多层的卷积神经网络成功地对包含一千类别的一百万张图片进行了训练,取得了分类错误率 15%的好成绩,这个成绩比第二名高了近 11 个百分点,充分证明了多层神经网络识别效果的优越性。

多层神经网络如下:

通过研究发现,在参数数量一样的情况下,更深的网络往往具有比浅层的网络更好的识别效率。这点也在 ImageNet 的多次大赛中得到了证实。从 2012 年起,每年获得 ImageNet 冠军的深度神经网络的层数逐年增加,2015 年最好的方法 GoogleNet 是一个多达 22 层的神经网络。

在最近的 ImageNet 大赛上,目前拿到好成绩的 MSRA 团队的方法使用的更是一个深达 152 层的网络!

目前,深度神经网络在人工智能界占据统治地位。但凡有关人工智能的产业报道,必然离不开深度学习。神经网络界当下的四位引领者除了前文所说的 Ng,Hinton 以外,还有 CNN 的发明人 Yann Lecun,以及《Deep Learning》的作者 Bengio。

5 回顾

从单层神经网络(感知器)开始,到包含一个隐藏层的两层神经网络,再到多层的深度神经网络,一共有三次兴起过程。

下图说明了,随着网络层数的增加,以及激活函数的调整,神经网络所能拟合的决策分界平面的能力。

一个成功的技术与方法,不仅需要内因的作用,还需要时势与环境的配合。神经网络的发展背后的外在原因可以被总结为:

  • 更强的计算性能
  • 更多的数据
  • 以及更好的训练方法。

6 其他

6.1 量子计算

随着深度学习需要的计算量越来越大,目前的计算水平无法满足深度学习的要求,量子计算的发展,可能会一定程度决定机器学习的发展。

6.2 人工智能

虽然现在人工智能非常火热,但是距离真正的人工智能还有很大的距离。就拿计算机视觉方向来说,面对稍微复杂一些的场景,以及易于混淆的图像,计算机就可能难以识别。个人认为,目前人工智能全面替代人还有很长的路要走。的路要走。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

编辑于

焦红平的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

一文看懂自动驾驶中应用的机器学习算法

安妮 唐旭 编译自 KDnuggets 量子位出品 | 公众号 QbitAI 机器学习算法已经被广泛应用于自动驾驶各种解决方案,电控单元中的传感器数据处理大大提...

3257
来自专栏智能算法

长文干货!走近人脸检测:从 VJ 到深度学习(上)

本文分上下两篇,上篇主要介绍人脸检测的基本流程,以及传统的VJ人脸检测器及其改进,下篇介绍基于深度网络的检测器,以及对目前人脸检测技术发展的思考与讨论。为了节省...

3256
来自专栏程序你好

关于神经网络技术演化史

神经网络和深度学习技术是当今大多数高级智能应用的基础。在本文中,来自阿里巴巴搜索部门的高级算法专家孙飞博士将简要介绍神经网络的发展,并讨论该领域的最新方法。

864
来自专栏技术翻译

神经网络 vs. 支持向量机

深度学习(DL)已成为商业智能项目中的通用名词。它属于更广泛的人工智能研究领域,也是机器学习算法的一部分。深度学习可以是监督的、半监督的和非监督的。

1030
来自专栏IT派

一文助你解决数据不平衡的疑惑

导语:这几年来,机器学习和数据挖掘非常火热,它们逐渐为世界带来实际价值。与此同时,越来越多的机器学习算法从学术界走向工业界,而在这个过程中会有很多困难。数据不平...

3168
来自专栏专知

【干货】深度学习中的数学理解— 教你深度学习背后的故事

【导读】如今,深度学习在各项任务中所向披靡,比如图像识别,语音处理和自然语言处理。但是,深度学习的理论探讨却比应用滞后好几个数量级,一方面是做应用马上能见效,然...

2757
来自专栏AI科技评论

优必选悉尼AI研究院博士生:混合比例估计在弱监督学习和迁移学习中的延伸与应用

AI 科技评论按:在大数据时代,标注足够多的训练样本往往耗费巨大。弱监督学习方法往往能够减轻对正确标签的过度依赖,达到与监督学习相近的性能。然而,在设计弱监督学...

1002
来自专栏CDA数据分析师

一文看懂自动驾驶中应用的机器学习算法

机器学习算法已经被广泛应用于自动驾驶各种解决方案,电控单元中的传感器数据处理大大提高了机器学习的利用率,也有一些潜在的应用,比如利用不同外部和内部的传感器的数据...

23510
来自专栏云时之间

《机器学习》西瓜书读书笔记2

2.1:经验误差与过拟合 通常我们把分类错误的样本数占样本总数的比例称为“错误率”,相应的。精度即“1-错误率”。更一般的,我们把学习器的实际预测输出和样本的真...

3656
来自专栏专知

【论文推荐】ICLR18论文预读-深度学习泛化研究:多层非线性复合是对最大熵原理的递归逼近实现

【导读】两天前,专知公众号发布了深度学习顶会 ICLR 2018 匿名提交论文列表,今天我们很荣幸有老师和同学来自荐他们的在ICLR2018上的工作,后续我们会...

3056

扫码关注云+社区