作为机器学习的一个分支, 深度学习可以说是当下相当热门的一个话题。像Google、Microsoft、IBM这样的巨头都围绕深度学习重点投资了一系列新兴项目,他们的目标是为了开发能够学习越来越多复杂任务的神经网络。但是它是如何工作的呢?本文中我们一起来进行探讨。
你有收到过垃圾邮件吗?
当下垃圾邮件过滤器早已替我们过滤掉大部分我们不想收到的电子邮件,且精度十分之高。但是并没有多少人知道这些垃圾邮件是如何与正常邮件筛选开的。因为新的垃圾邮件地址能够很容易重新注册,所以不能简单地基于发件人地址来进行过滤。第二个原因是垃圾邮件经常是通过被第三方盗取的正常账户地址进行发送的。将垃圾邮件与正常邮件分开的最佳办法是查看邮件信息中的具体内容,目前用来做这个的最有效的方法正是基于机器学习。
机器学习通过自我学习系统来不断改善自身,这些系统以一种自动化的方式来学习识别数据中的结构。通过这种方式,系统能学会一个能进行数据解释的模型,使用它我们能对未知的数据进行预测。一些有名的机器学习范例有面部识别、声音识别、文本翻译。另外,Google的无人驾驶汽车也使用了一些不同的机器学习系统来识别行人和交通信号指示。
机器学习的基准原则相当简单,设想下我们想要建立一种能够分辨苹果和梨的机器。数字图像是由一个物体、两个称为特征的值组成的,其中这些值是通过一小段手工代码从数字图像中提取的。这些代码能提取图像中对象的颜色(从红色到绿色)以及对象的形状(从圆形到椭圆形)。现在想象一下,我们有一组包含苹果和梨的图像。对于每一个图像,如果它包含一个苹果或一个梨,我们会直接用这些图像的标签来称呼它。当我们计算训练集中图像的特性并将它们绘制出来的话,得到的结果如下图所示。
从上图我们可以看出苹果和梨的计算结果大部分都落在自己的区域,因此这两个对象类别可以通过划分成两个不同的空间(蓝色线条)来进行区分。现在如果给定一个新的对象图片,我们可以通过计算特征并检查它在空间中的位置来辨别它是一个苹果还是一个梨。本质上来说,算法已经从数据中将苹果和梨区分开了。
虽然情况看起来很乐观,但是我们也注意到如果计算的特征离两个对象的分类线(蓝色线条)接近的话,系统会出现错误,比如说绿色椭圆形的苹果以及又圆又红的梨。因此,该算法的准确度高度依赖于训练集上的样本数目,以及所使用特征的质量和数量。例如我们可以使用三分之一的特征来量化对象的结构,这样也许增加了算法的准确度,整个过程如下图所示。
上述方法是机器学习的本质,这种方式被应用了几十年。最重要的一点是构建对象类别是可分离的高质量特征。然而有人可能会问,除了通过手工对其进行编码之外,是否有可能直接学习这些特征吗?这个确实是有可能的,而且从70年代起就已经存在了。其中一种可以用来学习特征的方法就是神经网络,神经网络是基于大脑工作方式的方法。
人工智能神经网络是基于对单个大脑细胞进行建模的人工神经元建成的,这些人工神经元代表一个单位的运算。
人工神经网络接收不同的值作为输入(例如从其他人工神经元),然后通过一个简单的方程运算产生一个单一的输出值,此输出值可以作为其他神经元的输入值。通过连接各层中的神经元,我们构筑了一个大型人工神经网络。既然单个神经元执行简单的计算行为,那么网络作为一个整体可以执行一个非常复杂的运算。下图展示了这个过程,圆代表了神经元,线条代表输出——输入神经元之间的连接。关于神经网络一件有趣的事是他们会自动学习所需的特征。可以想象有一个神经网络,通过直接学习它接收的输入图像特征(颜色、形状)将苹果和梨分开。
深度学习中的“深度”指代的是神经网络中的层级数目,深度在学习良好特征上扮演了相当重要的角色。这是因为每一层都会基于上一层的特征学会另外一系列特征。神经网络越深,其能学会的特征越复杂。想要更深入地了解神经网络的工作原理可以下图简单了解,也通过下面的链接:playground.tensorflow.org详细观看演示。
虽然神经网络可以通过自身学会特征,但是这些通常不会应用到实践中。这样做的其实有两个原因,第一是其需要大量的训练样本,第二是要学会良好的特征需要许多层级,这反过来又需要大量的计算能力。随着近几年来大数据的兴起和计算能力的增加,在实践中应用这些神经网络已经成为可能。神经网络可以学习到比手工构造更复杂的特征,因此他们往往比手工编码系统要表现优异。
机器学习和深度学习是广泛适用的,它不仅限于工农业中的将梨和苹果分开的应用。例如有个系统能够通过医疗扫描学会从健康的细胞中识别癌细胞,在过去的几年中这个系统的精度有了迅速的提高。再如Facebook创造了一个类似Siri的系统,它能够以高精度分析图片的内容,还可以回答关于图像内容的问题。
虽然这些类型的系统并没有比人类表现的更好,但是存在一些专业系统,其在自身领域中早已超过人类的表现。例如,微软开发的一个应用能够高精度的识别狗的品种,比人类正确率要高。如下图所示,具体演示地址 Microsoft's Fetch App Identifies Your Dog
机器学习不仅可用于分类识别,也可用于文本分析。例如一个神经网络能够被用来提取文本中的观点,可以表明文本所持观点是否积极或者消极。这是一个相当有名的技术,其应用包括自动评估产品的评论内容。
在我看来,机器学习最令人印象深刻的应用是在人工智能领域,神经网络与强化学习结合使得构筑能从自身环境中进行学习的智能agents称为可能。
最好的例子是Google Deepmind所推出的系统,它能够通过完全自主的试验和错误来学习如何玩雅达利(Atari)视频游戏。该系统就像人类玩家一样只接收屏幕输入,也只产生视频游戏控制器上的按压信号,在一些电子游戏中该系统实际上表现优于人类。具体演示地址 DeepMind's DQN playing Breakout
就目前来看,深度学习日后发展的潜力可以说是相当巨大的,希望通过本文的介绍你对深度学习会有一个基本了解。
PS : 本文由雷锋网 (搜索“雷锋网”公众号关注) 独家编译,未经许可拒绝转载!
via Dzone