编者按:本文节选自图灵程序设计丛书 《深度学习的数学》一书中的部分章节。
深度学习 是人工智能的一种具有代表性的实现方法,下面就让我们来考察一下它究竟是什么样的技术。
在有关深度学习的热门话题中,有几个被媒体大肆报道的事件,如下表所示。
年份 | 事件 |
---|---|
2012 年 | 在世界性的图像识别大赛ILSVRC中,使用深度学习技术的Supervision方法取得了完胜 |
2012 年 | 利用谷歌公司开发的深度学习技术,人工智能从 YouTube 的视频中识别出了猫 |
2014 年 | 苹果公司将Siri 的语音识别系统变更为使用深度学习技术的系统 |
2016 年 | 利用谷歌公司开发的深度学习技术,AlphaGo 与世界顶级棋手对决,取得了胜利 |
2016 年 | 奥迪、宝马等公司将深度学习技术运用到汽车的自动驾驶中 |
如上表所示,深度学习在人工智能领域取得了很大的成功。那么,深度学习究竟是什么技术呢?深度学习里的“深度”是什么意思呢?为了解答这个疑问,首先我们来考察一下神经网络,这是因为深度学习是以神经网络为出发点的。
谈到神经网络的想法,需要从生物学上的 神经元( neuron) 开始说起。
从生物学的扎实的研究成果中,我们可以得到以下关于构成大脑的神经元的知识(1 - 2 节)。
(i) 神经元形成网络。
(ii) 对于从其他多个神经元传递过来的信号,如果它们的和不超过某个固定大小的值(阈值),则神经元不做出任何反应。
(iii) 对于从其他多个神经元传递过来的信号,如果它们的和超过某个固定大小的值(阈值),则神经元做出反应(称为点火),向另外的神经元传递固定强度的信号。
(iv) 在 (ii) 和 (iii) 中,从多个神经元传递过来的信号之和中,每个信号对应的权重不一样。
将神经元的工作在数学上抽象化,并以其为单位人工地形成网络,这样的人工网络就是神经网络。将构成大脑的神经元的集合体抽象为数学模型,这就是神经网络的出发点。
看过以往的科幻电影、动画片就知道,人工智能是人们很早就有的想法。那么,早期研究的人工智能和用神经网络实现的人工智能有哪些不同呢?答案就是用神经网络实现的人工智能能够自己学习过去的数据。
以往的人工智能需要人们事先将各种各样的知识教给机器,这在工业机器人等方面取得了很大成功。
而对于用神经网络实现的人工智能,人们只需要简单地提供数据即可。神经网络接收数据后,会从网络的关系中自己学习并理解。
20 世纪的“人教导机器”类型的人工智能,现在仍然活跃在各种领域,然而也有一些领域是它不能胜任的,其中之一就是模式识别。让我们来看一个简单的例子。
例题 有一个用 8×8 像素读取的手写数字的图像,考虑如何让计算机判断图像中的数字是否为 0。
读取的手写数字的图像如下图所示。
这些图像虽然大小和形状各异,但都可以认为正解是数字 0。可是,如何将这些图像中的数字是 0 这个事实教给计算机呢?
要用计算机进行处理,就需要用数学式来表示。然而,像 例题 这样的情况,如果使用 20 世纪的常规手段,将“0 具有这样的形状”教给计算机,处理起来会十分困难。况且,如下所示,对于写得很难看的字、读取时受到噪声影响的字,虽然人能够设法辨认出来是 0,但要将这种辨认的条件用数学式表达,并教给计算机,应该是无法做到的。
从这个简单的 例题 中可以看出,“人教导机器”类型的人工智能无法胜任图像、语音的模式识别,因为要把所有东西都教给计算机是不现实的。
不过,在 20 世纪后期,对于这样的问题,人们找到了简单的解决方法,那就是神经网络以及由其发展而来的深度学习。如前所述,具体来说就是由人提供数据,然后由神经网络自己进行学习。
如此看来,神经网络似乎有一些不可思议的逻辑。然而,从数学上来说,其原理十分容易。本书的目的就是阐明它的原理。
领取专属 10元无门槛券
私享最新 技术干货