一、概述
最近这些年,人工智能(AI)经常被媒体大肆炒作,除了人工智能AI外,机器学习、深度学习也是经常被提及。什么是人工智能、机器学习和深度学习?这三者之间有什么关系?下面我们会对这些概念进行说明,首先,这三者的关系如下所示:
二、人工智能
人工智能诞生于20世纪50年代,可以被描述为试图将通常由人类完成的智力任务自动化。因此,人工智能是一个综合领域,不仅包括机器学习和深度学习,还包括更多不涉及学习的方法。
三、机器学习
通常我们使用程序解决问题时,都是由人类程序员编写规则,计算机遵循这些规则将输入数据转换为适当的答案。而机器学习把这个过程反了过来:机器读取输入数据和相应的答案,然后找出应有的规则。
简而言之,机器学习就是指在预先定义的可能性的空间中,利用反馈信号的指引,在输入数据中寻找有用的表示和规则。
四、深度学习
深度学习时机器学习的一个分支领域,它是从数据中学习表示的一种新方法,强调从连续的层中学习,这些层对应于越来越有意义的表示。深度是指一系列连续的表示层,一般一个深度学习模型通常包含数十个表示层,它们都是从训练数据中自动学习而来的。与之相对,其他机器学习方法的重点通常是仅学习一两层的数据表示。
五、深度学习的工作原理
在神经网络中,每层对输入数据所做的具体操作保存在该层的权重(weight)中,权重实质上就是一串数字。用术语来讲,每层实现的变换由其权重来参数化(parameterize),如下图所示。权重有时也被称为该层的参数(parameter)。在这种语境下,学习的意思就是为神经网络的所有层找到一组权重值,使得该神经网络能够将每个示例的输入与其目标正确地一一对应。但问题来了:一个深度神经网络可能包含上千万个参数,找到所有参数的正确取值似乎是一项非常艰巨的任务,特别是考虑到修改一个参数值将影响其他所有参数的行为。
若要控制某个事物,首先需要能够观察它。若要控制神经网络的输出,需要能够衡量该输出与预期结果之间的距离。这是神经网络损失函数(loss function)的任务,该函数有时也被称为目标函数(objective function)或代价函数(cost function)。损失函数的输入是神经网络的预 测值与真实目标值(你希望神经网络输出的结果),它的输出是一个距离值,反映该神经网络在这个示例上的效果好坏,如下图所示。
深度学习的基本技巧是将损失值作为反馈信号,来对权重值进行微调,以降低当前示例对 应的损失值,如下图所示。这种调节是优化器(optimizer)的任务,它实现了所谓的反向传播(backpropagation)算法,这是深度学习的核心算法。
由于一开始对神经网络的权重进行随机赋值,因此神经网络仅实现了一系列随机变换,其输出值自然与理想结果相去甚远,相应地,损失值也很大。但是,神经网络每处理一个示例,权重值都会向着正确的方向微调,损失值也相应减小。这就是训练循环(training loop),将这种 循环重复足够多的次数(通常是对数千个示例进行数十次迭代),得到的权重值可以使损失函数 最小化。具有最小损失值的神经网络,其输出值与目标值尽可能地接近,这就是一个训练好的神经网络。