什么是机器学习、人工智能、深度学习,三者又是什么关系?
什么是机器学习,什么是人工智能,什么是深度学习,这些名词概念我们一直有听说,但是也很容易混淆
人工智能
人工智能技术希望使用计算机来构造复杂的、拥有与人类智慧同样本质特性的机器,这些能够代替人工工作的机器,算法等等统一称之为人工智能,人工智能是一个很大的范畴,随着计算机技术的不断发展,人工智能的研究领域也在不断扩大,下图展示了人工智能研究的各个分支,包括专家系统、机器学习、进化计算、模糊逻辑、计算机视觉、自然语言处理、推荐系统等。
人工智能
机器学习:一种实现人工智能的方法
机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。
深度学习,一种实现机器学习的神经网络方法
一个例子在计算机视觉领域中,若识别一只熊猫,机器学习的方法是告诉机器熊猫的各种特征,比如鼻子,眼睛,嘴巴,毛发等等特征,让机器认识到拥有这些特征的便是一只熊猫
然而深度学习的方法是给机器一张图片,让机器自己去提取特征,进而预测出是否是熊猫,若预测失败,神经网络通过前向传递,告诉神经网络哪里出现了错误,重新进行识别,直到识别正确为止,最著名的便是这几年大火的CNN卷积神经网络, 包括计算机识别,自然语言处理,专家系统,推荐系统等等,都或多或少利用了CNN卷积神经网络的知识
总结下图,便很好的解释了三者之间的关系,随着计算机算法的不断改进,深度学习越来越受到人工智能领域的赞赏。
AI 的核心目标是提供一组算法和技术,可用于解决人类凭直觉就能自动执行,但对计算机而言非常具有挑战性的问题。这类人工智能问题的一个很好的例子是解释和理解图像的内容——这项任务是人类可以毫不费力地完成的任务,但事实证明,机器很难完成。
人工神经网络 (ANN) 是一类机器学习算法,它从数据中学习并专注于模型识别,其灵感来自大脑的结构和功能。深度学习是人工智能的一个子集,我们重点学习深度学习。
神经网络和深度学习的简明历史
“深度学习”自 1940 年代以来就已经存在,并经历了各种名称更改,包括控制论、连接主义和最熟悉的人工神经网络(ANN)。虽然受到人类大脑及其神经元如何相互作用的启发,但人工神经网络并不意味着是大脑的现实模型。相反,它们是一种灵感,使我们能够在一个非常基本的大脑模型与我们如何通过人工神经网络模仿其中一些行为之间进行比较。
第一个神经网络模型来自McCulloch 和 Pitts 于 1943 年。这个网络是一个二元分类器,能够根据一些输入识别两个不同的类别。问题是用于确定给定输入的类标签的权重需要由人工手动调整——如果需要人工干预,这种类型的模型显然不能很好地扩展。
然后,在 1950 年代,Rosenblatt(1958 年,1962 年)发布了开创性的感知器算法——该模型可以自动学习对输入进行分类所需的权重(无需人工干预)。感知器架构的一个例子可以在下图 中看到。事实上,这种自动训练过程构成了随机梯度下降 (SGD) 的基础,如今它仍然用于训练非常深的神经网络。
感知器算法
一个简单的感知器网络架构示例,它接受多个输入、计算加权和并应用阶跃函数来获得最终预测。
在此期间,基于感知器的技术在神经网络社区风靡一时。然而,Minsky 和 Papert于1969 年发表的一篇论文有效地使神经网络研究停滞了近十年。他们的工作表明,具有线性激活函数(无论深度如何)的感知器只是一个线性分类器,无法解决非线性问题。非线性问题的典型示例是下图 中的 XOR 数据集。尝试一条直线来将蓝色星星与红色圆圈分开是不可能的。
XOR 数据集
此外,作者认为我们没有构建大型深度神经网络所需的计算资源,仅这一篇论文就几乎扼杀了神经网络研究。
幸运的是,反向传播算法被Werbos 、Rumelhart 和LeCun 等人提出。能够使神经网络从可能已经过早死亡的情况中复苏。他们在反向传播算法方面的研究使多层前馈神经网络得以训练。
反向传播算法
一个多层前馈网络架构,具有一个输入层(3 个节点)、两个隐藏层(第一层有 2 个节点,第二层有 3 个节点)和一个输出层(2 个节点)。
结合非线性激活函数,研究人员现在可以学习非线性函数并解决 XOR 问题,为神经网络的全新研究领域打开大门。进一步的研究表明,神经网络是通用逼近器,能够逼近任何连续函数(但不保证网络是否能够真正学习表示函数所需的参数)。
反向传播算法是现代神经网络的基石,使我们能够有效地训练神经网络并“教”它们从错误中学习。
也许将深度学习应用于特征学习的典型例子是应用于手写字符识别的卷积神经网络(LeCun),它通过在每个图像的顶部依次堆叠层来自动从图像中学习区分模式(称为“过滤器”)。网络较低层的过滤器表示边和角,而较高层的层使用边和角来学习更多用于区分图像类别的抽象概念。
LeCun在贝尔实验室工作期间开发了一套能够识别手写数字的系统,并把它命名为LeNet。或许你没听过LeNet,但是当年美国大多数银行就是用它来识别支票上面的手写数字的。能够达到这种商用的地步,它的准确性可想而知。那么LeNet究竟是什么呢?LeNet是一种典型的用来识别手写数字的卷积神经网络。自动识别银行支票,这是卷积神经网络第一次应用于解决实际问题。最著名的MNIST数据集便是此神经网络训练的数据集
MNIST
神经网络发展到这里,便成功了打开了深度学习的大门,随着近几年的大力发展,不同的计算机算法,特别是CNN卷积神经网络的不断发展,慢慢壮大了深度学习的发展
深度学习的主要几个方向
计算机视觉是深度学习的第一个应用到商业用途的深度学习应用,说得白一点,计算机视觉便是使用神经网络模仿人看的功能,包括人脸识别与人脸检测以及相关人脸方面的应用,如下我们的专栏也介绍了相关人脸方面的技术