0 前言

  • 机器学习算法和深度学习啥关联?
  • 数据挖掘、机器学习和深度学习的区别是什么?这些概念都代表什么?
  • 我们通过深度学习让机器具备人的能力,甚至某些技能的水平超过人类,比如图像识别、下棋对弈等。那么深度学习的大脑是如何工作的?
  • 深度学习是基于神经网络构建的,都有哪些常用的网络模型?
  • 深度学习有三个重要的应用领域,这三个应用领域分别是什么?

1 数据挖掘 V.S 机器学习 V.S 深度学习

数据挖掘和机器学习很大程度重叠。一些常用算法,如K-Means、KNN、SVM、决策树和朴素贝叶斯等,既可以说是数据挖掘算法,又可说是机器学习算法。数据挖掘和机器学习之间啥区别:

  • 数据挖掘通常是从现有的数据中提取规律模式(pattern)以及使用算法模型(model)。核心目的是找到这些数据变量之间关系,因此也会通过数据可视化对变量之间的关系进行呈现,用算法模型挖掘变量之间的关联关系。通常情况下,我们只能判断出来变量A和变量B是有关系的,但并不一定清楚这两者之间有什么具体关系。在我们谈论数据挖掘的时候,更强调从数据中挖掘价值
  • 机器学习是AI的一部分,它指的是通过训练数据和算法模型让机器具有一定的智能。一般是通过已有的数据来学习知识,并通过各种算法模型形成一定的处理能力,比如分类、聚类、预测、推荐能力等。这样当有新的数据进来时,就可以通过训练好的模型对这些数据进行预测,也就是通过机器的智能帮我们完成某些特定的任务

深度学习属机器学习一种,它的目标同样是让机器具有智能,只是与传统的机器学习算法不同,它是通过神经网络来实现的。神经网络就好比是机器的大脑,刚开始就像一个婴儿一样,是一张白纸。但通过多次训练之后,“大脑”就可以逐渐具备某种能力。这个训练过程中,我们只需要告诉这个大脑输入数据是什么,以及对应的输出结果是什么即可。通过多次训练,“大脑”中的多层神经网络的参数就会自动优化,从而得到一个适应于训练数据的模型。

所以传统机器学习模型中,会讲解模型的算法原理,如K-Means、KNN原理等。而神经网络,更关注网络结构及网络结构中每层神经元的传输机制。无需告诉机器具体的特征规律,只需把我们想要训练的数据和对应的结果告诉机器大脑。 深度学习会自己找到数据的特征规律!而传统机器学习往往需要专家(我们)来告诉机器采用什么样的模型算法,这就是深度学习与传统机器学习最大的区别。

深度学习的神经网络结构通常比较深,一般都是5层以上,甚至也有101层或更多的层数。这些深度的神经网络可以让机器更好地自动捕获数据的特征。

2 神经网络是如何工作的

神经网络可以说是机器的大脑,经典的神经网络结构可以用下面的图来表示。

节点:神经网络是由神经元组成的,也称之为节点,它们分布在神经网络的各个层中,这些层包括输入层,输出层和隐藏层。

输入层:负责接收信号,并分发到隐藏层。一般我们将数据传给输入层。

输出层:负责输出计算结果,一般来说输出层节点数等于我们要分类的个数。

隐藏层:除了输入层和输出层外的神经网络都属于隐藏层,隐藏层可以是一层也可以是多层,每个隐藏层都会把前一层节点传输出来的数据进行计算(你可以理解是某种抽象表示),这相当于把数据抽象到另一个维度的空间中,可以更好地提取和计算数据的特征。

工作原理:神经网络就好比一个黑盒子,我们只需要告诉这个黑盒子输入数据和输出数据,神经网络就可以自我训练。一旦训练好之后,就可以像黑盒子一样使用,当你传入一个新的数据时,它就会告诉你对应的输出结果。在训练过程中,神经网络主要是通过前向传播和反向传播机制运作的。

3 前向传播和反向传播

前向传播:数据从输入层传递到输出层的过程叫做前向传播。这个过程的计算结果通常是通过上一层的神经元的输出经过矩阵运算和激活函数得到的。这样就完成了每层之间的神经元数据的传输。

反向传播:当前向传播作用到输出层得到分类结果之后,我们需要与实际值进行比对,从而得到误差。反向传播也叫作误差反向传播,核心原理是通过代价函数对网络中的参数进行修正,这样更容易让网络参数得到收敛。

所以,整个神经网络训练的过程就是不断通过前向-反向传播迭代完成的,当达到指定的迭代次数或达到收敛标准时,停止训练。就可拿训练好的网络模型对新的数据进行预测。

深度神经网络是基于神经网络发展,原理与神经网络一样,只不过强调模型结构的深度,通常5层以上,这样模型学习能力更强。

4 常用的神经网络

按中间层功能不同,神经网络可分:

4.1 FNN(Fully-connected Neural Network)

全连接神经网络,全连接的意思是每一层的神经元与上一层的所有神经元都是连接的。不过在实际使用中,全连接的参数会过多,导致计算量过大。因此在实际使用中全连接神经网络的层数一般比较少。

4.2 CNN

卷积神经网络,在图像处理中有广泛的应用,了解图像识别的同学对这个词一定不陌生。CNN网络中,包括了卷积层、池化层和全连接层。这三个层都有什么作用呢?

卷积层 相当于一个滤镜的作用,它可以把图像进行分块,对每一块的图像进行变换操作。

池化层 相当于对神经元的数据进行降维处理,这样输出的维数就会减少很多,从而降低整体的计算量。

全连接层 通常是输出层的上一层,它将上一层神经元输出的数据转变成一维的向量。

4.3 RNN

循环神经网络,它的特点是神经元的输出可以在下一个时刻作用到自身,这样RNN就可以看做是在时间上传递的神经网络。它可以应用在语音识别、自然语言处理等与上下文相关的场景。

深度学习网络往往包括了这三种网络的变种形成,常用的深度神经网络包括AlexNet、VGG19、GoogleNet、ResNet等网络特点:

模型

AlexNet

VGG19

GoogleNet

ResNet-152

时间

2012

2014

2014

2015

层数

8

19

22

152

卷积层数

5

16

21

151

全连接层数

3

3

1

1

Top-5错误率

16.4%

7.3%

6.7%

3.57%

随时间推进,提出的深度学习网络层数越来越深,Top-5错误率越来越低。啥是Top-5错误率,实际上这些网络结构的提出和一个比赛相关,这个比赛叫做ILSVRC,英文全称叫做Large Scale Visual Recognition Challenge。它是一个关于大规模图像可视化识别的比赛,所基于的数据集就是著名的ImageNet数据集,一共包括了1400万张图片,涵盖2万多个类别。

AlexNet就是2012年的ILSVRC冠军,当时的Top-5正确率是84.7%,VGG和GoogleNet是2014年ILSVRC比赛的模型,其中GoogleNet是当时比赛的冠军,而VGG是当时比赛的亚军,它的效率低于GoogleNet。VGG有两个版本,VGG16和VGG19,分别是16层和19层的VGG网络,这两者没有本质的区别,只是网络深度不同。到了2015年,比赛冠军是ResNet,Top-5正确率达到了96.43%。ResNet也有不同的版本,比如ResNet50、ResNet101和ResNet152等,名称后面的数字代表的是不同的网络深度。之后ResNet在其他图像比赛中也多次拿到冠军。

5 深度学习的应用领域

从ImageNet跑出来的这些优秀模型都是基于CNN卷积神经网络的。实际上深度学习有三大应用领域,图像识别就是其中之一,其他领域分别是语音识别和自然语言处理。

这三个应用领域有一个共同的特性,就是都来自于信号处理。我们人类平时会处理图像信息,语音信息以及语言文字信息。机器可以帮助我们完成这三个应用里的某些工作。比如图像识别领域中图像分类和物体检测就是两个核心的任务。我们可以让机器判断图像中都有哪些物体,类别是什么,以及这些物体所处的位置。图像识别被广泛应用在安防检测中。此外人脸识别也是图像识别重要的应用场景。

Siri大家一定不陌生,此外还有我们使用的智能电视等,都采用了语音识别技术。语音识别技术可以识别人类的语音指令并进行交互。在语音导航中,还采用了语音合成技术,这样就可以让机器模拟人的声音为我们服务,Siri语音助手也采用了语音识别和合成的技术。

自然语言处理的英文缩写是NLP,它被广泛应用到自动问答、智能客服、过滤垃圾邮件和短信等领域中。在电商领域,我们可以通过NLP自动给商品评论打标签,在用户决策的时候提供数据支持。在自动问答中,我们可以输入自己想问的问题,让机器来回答,比如在百度中输入“姚明的老婆”,就会自动显示出”叶莉“。

此外这些技术还可以相互组合为我们提供服务,比如在无人驾驶中就采用了图像识别、语音识别等技术。在超市购物中也采用了集成图像识别、意图识别等技术等。

6 总结

深度学习也是机器学习一种。数据挖掘十大经典算法和逻辑回归、随机森林算法等都是传统机器学习算法。日常满足大部分机器学习任务。但对数据量更大,更开放性问题,可采用深度学习算法,让机器自己找规律,而不是通过我们指定算法来找分类规律。

所以深度学习普适性更强,但也并不代表深度学习就优于机器学习:

  • 深度学习需要大量数据
  • 深度学习的学习时间,和需要的计算资源都要大于传统的机器学习。各种深度学习的训练集一般都还是比较大的,如ImageNet就包括了1400万张图片。没有大量的训练数据,训出的深度模型识别结果未必好于传统机器学习

神经网络最早1986年提出,不温不火直到ImageNet于2009年提出,2010年举办每年ImageNet大规模视觉识别挑战赛(ILSVRC),深度学习才迅猛发展。2016年Google AlphaGo让人看到深度学习力量。好问题的提出,可激发无穷能量,这是科技进步的源泉,也是为什么在科学上,有各种公开数据集。好的数据集,代表一个好的问题和使用场景。正是这些需求,才让算法有用武之地,也有各种算法比拼平台。