首先一张图明确三者之间的关系
人工智能
从最大的概念开始讲
人工智能的简洁定义为:努力将通常由人类完成的智力任务自动化
在相当长的时间内,许多专家相信,只要程序员精 心编写足够多的明确规则来处理知识,就可以实现与人类水平相当的人工智能。这一方法被称 为符号主义人工智能
虽然符号主义人工智能适合用来解决定义明确的逻辑问题,比如下国际象棋,但它难以给 出明确的规则来解决更加复杂、模糊的问题,比如图像分类、语音识别和语言翻译。于是出现 了一种新的方法来替代符号主义人工智能,这就是机器学习。
机器学习
对于计算机而言,除了“我们命令它做的任何 事情”之外,它能否自我学习执行特定任务的方法?计算机能否让我们大吃一惊?如果没有程 序员精心编写的数据处理规则,计算机能否通过观察数据自动学会这些规则?
在经典的程序设计(即符号主义人工智能的范 式)中,人们输入的是规则(即程序)和需要根据这些规则进行处理的数据,系统输出的是答案 机器学习系统是训练出来的,而不是明确地用程序编写出来的。将与某个任务相关的许多 示例输入机器学习系统,它会在这些示例中找到统计结构,从而最终找到规则将任务自动化。 举个例子,你想为度假照片添加标签,并且希望将这项任务自动化,那么你可以将许多人工打 好标签的照片输入机器学习系统,系统将学会将照片与特定标签联系在一起的统计规则。利用机器学习,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是 规则。这些规则随后可应用于新的数据,并使计算机自主生成答案。
即,通过某种方法找出实例中的统计规则,以此规则为基准应用于新的数据,从计算机的角度来说,分析数据意味着找出一种用数据表示事物的方法,以此数据可以较为清晰的发现其中蕴含的信息。
例:可以看到,图中有一些白点和一些黑点。假设我们想要开发一 个算法,输入一个点的坐标 (x, y),就能够判断这个点是黑色还是白色。
这里我们需要的是一种新的数据表示,可以明确区分白点与黑点。可用的方法有很多,这 里用的是坐标变换
所有机器学习算法都包括自动寻找这样一种变换:这种变换可以根据任务将数据转化为更加 有用的表示。
这些操作可能是前面提到的坐标变换,也可能是线性投影(可能会破坏信息)、平移、 非线性操作(比如“选择所有 x>0 的点”),等等。机器学习算法在寻找这些变换时通常没有什么 创造性,而仅仅是遍历一组预先定义好的操作,这组操作叫作假设空间。
这就是机器学习的技术定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找 输入数据的有用表示。
想一最简单的机器学习的构思:随机生成一个示例,代入假定算法,得出预测结果,与实际结果对比得出误差,调整算法,直至误差最小。
深度学习
深度学习是机器学习的一个分支领域:它是从数据中学习表示的一种新方法,强调从连续 的层(layer)中进行学习,这些层对应于越来越有意义的表示。
现代深度学习 通常包含数十个甚至上百个连续的表示层,这些表示层全都是从训练数据中自动学习的。
在深度学习中,这些分层表示几乎总是通过叫作神经网络(neural network)的模型来学习 得到的。神经网络的结构是逐层堆叠。
深度学习算法学到的表示
可以将深度网络看作多级信息蒸馏操作:信息穿过连续的过 滤器,其纯度越来越高(即对任务的帮助越来越大)。
神经网络中每层对输入数据所做的具体操作保存在该层的权重
权重有时 也被称为该层的参数(parameter)。在这种语境下,学习的意思是为神经网络的所有层找到一组 权重值,使得该网络能够将每个示例输入与其目标正确地一一对应。
想要控制一件事物,首先需要能够观察它。想要控制神经网络的输出,就需要能够衡量该 输出与预期值之间的距离。这是神经网络损失函数(loss function)的任务,该函数也叫目标 函数(objective function)。
深度学习的基本技巧是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前示 例对应的损失值(见图 1-9)。这种调节由优化器(optimizer)来完成,它实现了所谓的反向 传播(backpropagation)算法,这是深度学习的核心算法。
一开始对神经网络的权重随机赋值,因此网络只是实现了一系列随机变换。其输出结果自然也和理想值相去甚远,相应地,损失值也很高。但随着网络处理的示例越来越多,权重值也 在向正确的方向逐步微调,损失值也逐渐降低。这就是训练循环(training loop),将这种循环重 复足够多的次数(通常对数千个示例进行数十次迭代),得到的权重值可以使损失函数最小。具 有最小损失的网络,其输出值与目标值尽可能地接近,这就是训练好的网络。再次强调,这是 一个简单的机制,一旦具有足够大的规模,将会产生魔法般的效果。