小白初识神经网路

1. 人工智能、机器学习与深度学习

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pxsC0KSG-1587645949438)(C:\Users\李征\AppData\Roaming\Typora\typora-user-images\image-20200420195602141.png)]

1.1 人工智能:

努力将通常由人类完成的智力任务自动化。 因此,人工智能是一个综合性的领域,不仅包括机器学习与深度学习,还包括更多不涉及学习的方法。

1.2 机器学习

机器学习,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是规则。这些规则随后可应用于新的数据,并使计算机自主生成答案。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cr1JxS56-1587645949441)(C:\Users\李征\AppData\Roaming\Typora\typora-user-images\image-20200420200528780.png)]

​  机器学习:一种新的编程范式

机器学习系统是训练出来的,而不是明确地用程序编写出来的。将与某个任务相关的许多示例输入机器学习系统,它会在这些示例中找到统计结构,从而最终找到规则将任务自动化。举个例子,你想为度假照片添加标签,并且希望将这项任务自动化,那么你可以将许多人工打好标签的照片输入机器学习系统,系统将学会将照片与特定标签联系在一起的统计规则。

1.3  从数据中学习表示

为了给出深度学习的定义并搞清楚深度学习与其他机器学习方法的区别,我们首先需要知道机器学习算法在做什么。

  • 输入数据点。例如,你的任务是语音识别,那么这些数据点可能是记录人们说话的声音文件。如果你的任务是为图像添加标签,那么这些数据点可能是图像。

  • 预期输出的示例。对于语音识别任务来说,这些示例可能是人们根据声音文件整理生成的文本。对于图像标记任务来说,预期输出可能是“狗”“猫”之类的标签。

  • 衡量算法效果好坏的方法。这一衡量方法是为了计算算法的当前输出与预期输出的差距。衡量结果是一种反馈信号,用于调节算法的工作方式。这个调节步骤就是我们所说的学习。

机器学习模型将输入数据变换为有意义的输出,这是一个从已知的输入和输出示例中进行“学习”的过程。因此,机器学习和深度学习的核心问题在于有意义地变换数据,换句话说,在于学习输入数据的有用表示(representation)——这种表示可以让数据更接近预期输出。如图,将原始的数据进行坐标变换从而进行新的表示,这样我们就可以很好地对黑点和白点进行分类(x>0是黑点,x<0是白点)。这些在机器学习中并不是人为制造的,而是电脑经过一次次的测试并积累而得到的最优模型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R5jmzO72-1587645949443)(C:\Users\李征\AppData\Roaming\Typora\typora-user-images\image-20200420201016710.png)]

1.4 深度学习之“深度”

“深度”指的并不是利用这种方法所获取的更深层次的理解,而是指一系列连续的表示层。数据模型中包含多少层,这被称为模型的深度。这一领域的其他名称包括分层表示学习和层级表示学习。现代深度学习通常包含数十个甚至上百个连续的表示层,这些表示层全都是从训练数据中自动学习的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cBy31sBX-1587645949446)(C:\Users\李征\AppData\Roaming\Typora\typora-user-images\image-20200420201636449.png)]

如图,这个网络将数字图像转换成与原始图像差别越来越大的表示,而其中关于最终结果的信息却越来越丰富。你可以将深度网络看作多级信息蒸馏操作:信息穿过连续的过滤器,其纯度越来越高(即对任务的帮助越来越大)。

1.5 用三张图理解深度学习的工作原理

神经网络中每层对输入数据所做的具体操作保存在该层的权重(weight)中,其本质是一串数字。用术语来说,每层实现的变换由其权重来参数化。权重有时也被称为该层的参数(parameter)。在这种语境下,学习的意思是为神经网络的所有层找到一组权重值,使得该网络能够将每个示例输入与其目标正确地一一对应。但重点来了:一个深度神经网络可能包含数千万个参数。找到所有参数的正确取值可能是一项非常艰巨的任务,特别是考虑到修改某个参数值将会影响其他所有参数的行为。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kSwDFeGS-1587645949448)(C:\Users\李征\AppData\Roaming\Typora\typora-user-images\image-20200420202029264.png)]

想要控制一件事物,首先需要能够观察它。想要控制神经网络的输出,就需要能够衡量该输出与预期值之间的距离。这是神经网络损失函数(loss function)的任务,该函数也叫目标函数(objective function)。损失函数的输入是网络预测值与真实目标值,然后计算一个距离值,衡量该网络在这个示例上的效果好坏。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QFUD6A7a-1587645949450)(C:\Users\李征\AppData\Roaming\Typora\typora-user-images\image-20200420202210356.png)]

深度学习的基本技巧是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前示例对应的损失值。这种调节由优化器来完成,它实现了所谓的反向传播算法,这是深度学习的核心算法。经过优化器足够多的循环处理(即循环训练)后,随时函数越来越小,各个权重也得到优化,从而使输出更准确。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9nhFKG2T-1587645949451)(C:\Users\李征\AppData\Roaming\Typora\typora-user-images\image-20200420202323071.png)]

1.6 深度学习已经取得的进展

特别要强调的是,深度学习已经取得了以下突破,它们都是机器学习历史上非常困难的领域:

  • 接近人类水平的图像分类

  • 接近人类水平的语音识别

  • 接近人类水平的手写文字转录

  • 更好的机器翻译

  • 更好的文本到语音转换

  • 数字助理,比如谷歌即时(Google Now)和亚马逊 Alexa

  • 接近人类水平的自动驾驶

  • 更好的广告定向投放,Google、百度、必应都在使用

  • 更好的网络搜索结果

  • 能够回答用自然语言提出的问题

  • 在围棋上战胜人类

我们仍然在探索深度学习能力的边界。我们已经开始将其应用于机器感知和自然语言理解之外的各种问题,比如形式推理。如果能够成功的话,这可能预示着深度学习将能够协助人类进行科学研究、软件开发等活动。

1.8 人工智能的未来

自己想想也觉得肯定牛批,而且人工智能学习似乎已经大众化了。

2 深度学习之前:机器学习简史

2.1 概率建模

概率建模(probabilistic modeling)是统计学原理在数据分析中的应用。它是最早的机器学习形式之一,至今仍在广泛使用。其中最有名的算法之一就是朴素贝叶斯算法。

朴素贝叶斯是一类基于应用贝叶斯定理的机器学习分类器,它假设输入数据的特征都是独立的。这是一个很强的假设,或者说“朴素的”假设,其名称正来源于此。这种数据分析方法比计算机出现得还要早,在其第一次被计算机实现(很可能追溯到 20 世纪 50 年代)的几十年前就已经靠人工计算来应用了。贝叶斯定理和统计学基础可以追溯到 18 世纪,你学会了这两点就可以开始使用朴素贝叶斯分类器了。

另一个密切相关的模型是 logistic 回归。不要被它的名称所误导——他是一种分类算法,而不是回归算法。与朴素贝叶斯类似,logreg 的出现也比计算机早很长时间,但由于它既简单又通用,至今仍然很有用。面对一个数据集,数据科学家通常会首先尝试使用这个算法,以便初步熟悉手头的分类任务。

2.2 早期神经网络

虽然人们早在 20 世纪 50 年代就将神经网络作为玩具项目,并对其核心思想进行研究,但这一方法在数十年后才被人们所使用。在很长一段时间内,一直没有训练大型神经网络的有效方法。这一点在 20 世纪 80 年代中期发生了变化,当时很多人都独立地重新发现了反向传播算法——一种利用梯度下降优化来训练一系列参数化运算链的方法,并开始将其应用于神经网络。贝尔实验室于 1989 年第一次成功实现了神经网络的实践应用,当时 YannLeCun 将卷积神经网络的早期思想与反向传播算法相结合,并将其应用于手写数字分类问题,由此得到名为LeNet 的网络,在 20 世纪 90 年代被美国邮政署采用,用于自动读取信封上的邮政编码。

2.3 核方法

核方法是一组分类算法,其中最有名的就是支持向量机(SVM,support vector machine)。SVM 的目标是通过在属于两个不同类别的两组数据点之间找到良好决策边界来解决分类问题。决策边界可以看作一条直线或一个平面,将训练数据划分为两块空间,分别对应于两个类别。对于新据点的分类,你只需判断它位于决策边界的哪一侧。但是,SVM 很难扩展到大型数据集,并且在图像分类等感知问题上的效果也不好。SVM是一种比较浅层的方法,因此要想将其应用于感知问题,首先需要手动提取出有用的表示(这叫作特征工程),这一步骤很难,而且不稳定。(在我上一篇博客有具体的SVM原理及使用)。

2.4 决策树、随机森林与梯度提升机

决策树(decision tree)是类似于流程图的结构,可以对输入数据点进行分类或根据给定输入来预测输出值。

是随机森林(random forest)算法,它引入了一种健壮且实用的决策树学习法,即首先构建许多决策树,然后将它们的输出集成在一起。随机森林适用于各种各样的问题——对于任何浅层的机器学习任务来说,它几乎总是第二好的算法。

与随机森林类似,梯度提升机(gradient boosting machine)也是将弱预测模型(通常是决策树)集成的机器学习技术。它使用了梯度提升方法,通过迭代地训练新模型来专门解决之前模型的弱点,从而改进任何机器学习模型的效果。将梯度提升技术应用于决策树时,得到的模型与随机森林具有相似的性质,但在绝大多数情况下效果都比随机森林要好。它可能是目前处理非感知数据最好的算法之一(如果非要加个“之一”的话)。

2.5回到神经网络

2011 年,来自 IDSIA 的 Dan Ciresan 开始利用 GPU 训练的深度神经网络赢得学术性的图像分类竞赛,这是现代深度学习第一次在实践中获得成功。但真正的转折性时刻出现在 2012 年,当年 Hinton 小组参了每年一次的大规模图像分类挑战赛 ImageNet。ImageNet 挑战赛在当时以困难著称,参赛者需要对 140 万张高分辨率彩色图像进行训练,然后将其划分到 1000 个不同的类别中。2011 年,获胜的模型基于经典的计算机视觉方法,其 top-5 精度 a 只有 74.3%。

到了2012 年,由 Alex Krizhevsky 带领并由 Geoffrey Hinton 提供建议的小组,实现了 83.6% 的 top-5精度——这是一项重大突破。此后,这项竞赛每年都由深度卷积神经网络所主导。到了 2015 年,获胜者的精度达到了 96.4%,此时 ImageNet 的分类任务被认为是一个已经完全解决的问题。自 2012 年以来,深度卷积神经网络(convnet)已成为所有计算机视觉任务的首选算法。更一般地说,它在所有感知任务上都有效。

在2015 年和 2016 年的主要计算机视觉会议上,几乎所有演讲都与 convnet 有关。与此同时,深度学习也在许多其他类型的问题上得到应用,比如自然语言处理。它已经在大量应用中完全取代了 SVM 与决策树。举个例子,欧洲核子研究中心(CERN)多年来一直使用基于决策树的方法来分析来自大型强子对撞机(LHC)ATLAS 探测器的粒子数据,但 CERN 最终转向基于 Keras 的深度神经网络,因为它的性能更好,而且在大型数据集上易于训练。

2.6 深度学习有何不同

深度学习发展得如此迅速,主要原因在于它在很多问题上都表现出更好的性能。但这并不是唯一的原因。深度学习还让解决问题变得更加简单,因为它将特征工程完全自动化,而这曾经是机器学习工作流程中最关键的一步。

先前的机器学习技术(浅层学习)仅包含将输入数据变换到一两个连续的表示空间,通常使用简单的变换,比如高维非线性投影(SVM)或决策树。但这些技术通常无法得到复杂问题所需要的精确表示。因此,人们必须竭尽全力让初始输入数据更适合用这些方法处理,也必须手动为数据设计好的表示层。这叫作特征工程。与此相反,深度学习完全将这个步骤自动化:利用深度学习,你可以一次性学习所有特征,而无须自己手动设计。这极大地简化了机器学习工作流程,通常将复杂的多阶段流程替换为一个简单的、端到端的深度学习模型。

你可能会问,如果问题的关键在于有多个连续表示层,那么能否重复应用浅层方法,以实现和深度学习类似的效果?在实践中,如果连续应用浅层学习方法,其收益会随着层数增加迅速降低,因为三层模型中最优的第一表示层并不是单层或双层模型中最优的第一表示层。深度学习的变革性在于,模型可以在同一时间共同学习所有表示层,而不是依次连续学习(这被称为贪婪学习)。通过共同的特征学习,一旦模型修改某个内部特征,所有依赖于该特征的其他特征都会相应地自动调节适应,无须人为干预。一切都由单一反馈信号来监督:模型中的每一处变化都是为了最终目标服务。这种方法比贪婪地叠加浅层模型更加强大,因为它可以通过将复杂、抽象的表示拆解为很多个中间空间(层)来学习这些表示,每个中间空间仅仅是前一个空间的简单变换。

深度学习从数据中进行学习时有两个基本特征:第一,通过渐进的、逐层的方式形成越来越复杂的表示;第二,对中间这些渐进的表示共同进行学习,每一层的变化都需要同时考虑上下两层的需要。总之,这两个特征使得深度学习比先前的机器学习方法更加成功。

3 为什么是深度学习,为什么是现在

3.1 硬件

在 20 世纪前十年里,NVIDIA 和 AMD 等公司投资数十亿美元来开发快速的大规模并行芯片(图形处理器,GPU)。2007 年,NVIDIA 推出了 CUDA,作为其 GPU 系列的编程接口。少量 GPU 开始在各种高度并行化的应用中替代大量 CPU 集群,并且最早应用于物理建模。深度神经网络主要由许多小矩阵乘法组成,它也是高度并行化的。

此外,深度学习行业已经开始超越 GPU,开始投资于日益专业化的高效芯片来进行深度学习。2016 年,Google 在其年度 I/O 大会上展示了张量处理器(TPU)项目,它是一种新的芯片设计,其开发目的完全是为了运行深度神经网络。据报道,它的速度比最好的 GPU 还要快 10 倍,而且能效更高。

3.2 数据

人工智能有时被称为新的工业革命。如果深度学习是这场革命的蒸汽机,那么数据就是煤炭,即驱动智能机器的原材料,没有煤炭一切皆不可能。就数据而言,除了过去 20 年里存储硬件的指数级增长(遵循摩尔定律),最大的变革来自于互联网的兴起,它使得收集与分发用于机器学习的超大型数据集变得可行。如今,大公司使用的图像数据集、视频数据集和自然语言数据集,如果没有互联网的话根本无法收集。

3.3 算法

2009—2010 年左右发生了变化,当时出现了几个很简单但很重要的算法改进,可以实现更好的梯度传播。

  • 更好的神经层激活函数(activation function)。

  • 更好的权重初始化方案(weight-initialization scheme),一开始使用逐层预训练的方法,不过这种方法很快就被放弃了。

  • 更好的优化方案(optimization scheme),比如 RMSProp 和 Adam。

只有这些改进可以训练 10 层以上的模型时,深度学习才开始大放异彩。最后,在 2014 年、2015 年和 2016 年,人们发现了更先进的有助于梯度传播的方法,比如批标准化、残差连接和深度可分离卷积。今天,我们可以从头开始训练上千层的模型。

3.4 新的投资热潮

3.5 深度学习的大众化

猜你喜欢

转载自blog.csdn.net/weixin_45755332/article/details/105720658