科普:如何用人工智能分辨出一个苹果?

编者按:你可能听说过人工智能,但你知道它是怎么运转的吗?GumGum的首席执行官Ophir Tanz早前在TechCrunch上发表了一篇文章对人工智能的基层技术——神经网络进行了介绍,文章中并没有什么高深的数学函数等等,而是通过一个神经网络“识别”苹果的例子来对其工作方式进行了生动的呈现。通过这篇文章,你或许对人工智能有更加深刻的理解。

如果你去阅读任何有关于人工智能的文章,你肯定会碰到“神经网络(neural network)”这个专有名词,它是指通过松散地模仿人类的大脑,来使得计算机能够通过数据来进行学习的方式。

可以说,神经网络可能是当今存在的最具有破坏性与颠覆性的技术之一。用其作为关键技术的机器学习比其他任何人工智能研究分支都能够担负起终结漫长“人工智能冬季”的使命。

这篇文章旨在帮助你理解深度学习如何进行工作的。所以文章中就避免了关于深入讨论数学的部分,而使用了更多的类比与动画模拟。

1、

早期研究人工智能的教授认为,如果你把尽可能多的信息装入一台强大的计算机,并尽可能多地告诉它怎么去理解那些数据,它就应该能够“思考”。这就是IBM著名的深蓝(Deep Blue)——国际象棋计算机背后的想法:通过详尽地编程,将棋子的每一项可能、已知的下棋策略写入计算机中,并给予足够的动力。

理论上来说,这台由IBM程序员创建的机器能够计算出来每一个可能的动作和未来的结果,从而来安排后续行动的顺序来超越对手。这实际上和1997年的象棋大师的学习没有什么区别。(注:这与Alphago不同,Alphago使用的是自主学习的神经网络,深蓝使用的是一个人编写的硬编码函数。)

通过这种计算,机器依赖于工程师精心预编程的固定规则——如果发生了特定的情况,那么与其对应的情况就会发生;如果发生了特定的情况,就应该按照固定的方式进行应对。很显然,这与人类灵活的学习方式想去甚远,仅仅是强大的计算而已,更不用说是思考本身了。

2、

在过去的十多年中,科学家重新捡起了一个不依赖大型百科全书记忆库的旧概念,而是用一种模仿人类思维、简单而系统的方法分析输入数据的技术。这种技术被称为深度学习或者是神经网络。其实从20世纪40年代它就一直存在了,得益于当前数据的大量增长,比如图像、视频、语音搜索、浏览习惯等等,以及超负荷和负担得起的处理器,它终于能够开始显现真正的潜力。

人工(相对于人类)神经网络(ANN)是一种算法构造,使得机器能够从语音命令和播放策略到音乐组合和图像识别中学到一切有用的信息。典型的ANN由数千个互连的人造神经元组成,这些神经元按顺序堆叠在被称为层的行列中,形成数百万个连接。在许多情况下,层仅通过输入和输出与它们之间和之后的神经元层互连。(这与人脑中的神经元完全不同,它们是相互连接的。)

科普:如何用人工智能分辨出一个苹果?_第1张图片

这种分层的ANN是当前机器学习的主要方式之一,并且有大量的标签数据可以帮助学习如何解读数据(有时甚至比人类更好)。

以图像识别为例,它依赖于称为卷积神经网络(CNN)的特定类型的神经网络,因为它使用称为卷积的数学过程能够以非文字方式分析图像,例如识别部分模糊的对象或仅从某些角度可见的对象。(还有其他类型的神经网络,包括递归神经网络和前馈神经网络,但是这些神经网络对于识别诸如图像的东西不太有用,下面我们只使用使用示例来进行分析。)

3、

那么,神经网络如何学习?让我们来看一个非常简单但有效的程序,它被称为监督学习。在这里,我们为神经网络提供了大量有人类标记的训练数据,以便神经网络可以最大程度地在事实上进行自我检查。

假设这个标签数据分别由苹果和橙子的图像组成。照片是数据,“苹果”和“橙子”是标签,具体取决于图像。当图像被输入时,网络将它们分解成最基本的组件,即边缘,纹理和形状。当图像通过网络传播时,这些基本组件被组合起来形成更抽象的概念,即曲线和不同颜色,当进一步组合时,开始看起来像茎、整个橙子,或绿色和红色苹果等等。

在这个过程即将技术的时候,网络试图对图像中的内容进行预测。一开始这些预测是随机的,因为还没有真正地进行学习。如果输入的图像是苹果,但预测为“橙子”,则需要调整网络的内层。

这些调整是通过一个称为反向传播的过程来进行的,以增加下一次为同一图像预测“苹果”的可能性。这种情况一直发生,直到预测或多或少是准确的,而且似乎并没有得到改善。正如父母教孩子们在现实生活中识别苹果和橙子一样,对于计算机来说,也是会熟能生巧的。

通常,卷积神经网络除了输入和输出层之外还有四个基本的神经元层,分别是卷积(Convolution)、激活(Activation)、池(Pooling)、完全连接(Fully connected)。

3.1 卷积

在初始的卷积层或层中,成千上万的神经元作为第一组过滤器,在图像的每个部分和像素中寻找特征。随着越来越多的图像被处理,每个神经元逐渐学会对特定的特征进行过滤,这对于准确率的提高有极大帮助。

在苹果的情况下,一个过滤器可能集中在发现红色的颜色,而另一个过滤器可能正在寻找圆形边缘,而另一个过滤器可能会识别薄的,棒状的茎。

举个例子,如果你必须清理一个杂乱的地下室,准备一跳蚤市场或者搬家,你就会明白将经历什么,你会将地下室中的物品按照不同的类别(书、玩具、电子、艺术品、衣服)来整理好。这是一个卷积层通过将图像分解成不同的功能来完成的。

特别强大的是,神经网络与早期的人工智能方法(深蓝及其同类)不同,这些过滤器不是设计的,他们纯粹是通过查看数据来学习和和完善自己的。

卷积层基本上创建了一个图谱——图片的不同的、细分的版本,每个都与一种过滤特征相匹配,来指示其神经元在哪里看到红色,茎,曲线和各种其他元素的实例(但是部分的),比如在这个文章中例子是一个苹果。但由于卷积层在特征识别中是相当自由的,所以它需要额外的辅助,以确保图片通过网络移动时没有遗漏任何值。

3.2 激活

神经网络的一个优点是它们能够以非线性方式学习,能够发现不太明显的图像中的特征。比如树上的苹果图片,其中的一些在直接阳光和在树荫下,或者堆积在厨房灶台上的碗里。这一切都是由于激活层,它或多或少地突出了有价值的东西,包括那些直接和难以辨认的品种。

在上文关于地下室打扫的例子中,我们可以想像从每一个分开的东西中,我们都挑选了一些可能想要保留的东西。我们把这些“可能留下”的物品放在他们各自的类别的顶部,以便稍后再考虑。

3.3 池化

整个图像中的所有这种“卷积”都会产生大量的信息,这可能很快成为一个计算噩梦,它将会耗费大量的计算资源。进入池层,就可以将其全部缩小成更一般和更易消化的形式。有很多方法可以解决这个问题,但最受欢迎的是“最大池化”,它将每个特征映射到一个摘要版本,因此只有发红,发干或弯曲的才是最显著的特征。

就好比在车库清洁的例子中,我们不得不从每个类别堆中选择想要留下的东西,然后卖掉或处理其他的东西。所以现在我们仍然按照物品的类型分类我们的所有东西,但只留下我们实际想要保留的物品,其他的一切都卖了 。(顺便说一句,这结束了混乱的比喻,以帮助描述在神经网络内进行的过滤和缩小。)

在这一点上,神经网络设计师可以堆叠这种类型的后续分层配置——卷积,激活,池化——并且继续筛选过滤图像以获得更高级别的信息。在识别图片中苹果的情况下,图像被一遍又一遍地过滤,在初始层中,只能捕捉到很少的特征,比如勉强可辨别的边缘部分,红色或只是一个茎的顶端。随后,更多的过滤层将显示整个苹果。无论如何,当开始得出结果的时候,完全连接的层开始发挥作用。

科普:如何用人工智能分辨出一个苹果?_第2张图片

3.4 完全连接

现在是开始得到答案的时候了。在完全连接的层中,每个缩小的或“池化”的特征图都被“完全连接”到表示学习中的神经网络项目的输出节点(神经元)。如果网络的任务是学习如何发现猫,狗,豚鼠和沙鼠,那么它将有四个输出节点。在我们所描述的神经网络中,它将只有两个输出节点:一个用于“苹果”,一个用于“橙子”。

如果通过网络提供的图片是苹果,而且网络已经进行了一些训练,并且随着其预测而变得越来越好,那么这就成了一个监测苹果的特征图谱。这是最终输出节点开始实现功能的地方,反之亦然。

苹果和橙子节点的工作(他们在工作中学到的),基本上是为那些包含各自水果的特征的图像进行“投票”。因此,“苹果”节点认为图像中包含“苹果”特征越多,它发送给这个图的投票就越多。两个节点都必须对每个图片进行投票,无论它包含什么。所以在这种情况下,“橙子”节点不会向任何图片发送过多的投票,因为它们并不真正包含任何“橙子”特征。最后,发送最多票数的节点(在本例中为“苹果”节点)可以被认为是网络的“答案”,尽管它不是那么简单。

因为同一个网络正在寻找两个不同的东西——苹果和橙子,所以网络的最终输出以百分比表示。在这种情况下,我们假设网络在训练中有点退步,所以这里的预测可能就是75%的“苹果”,25%的“橙子”,或者如果在训练刚开始的时候,可能会更加不正确,比如确定它是20%的“苹果”和80%的“橙子”。

科普:如何用人工智能分辨出一个苹果?_第3张图片

3.5 反向传播

所以,在早期阶段,神经网络以百分比的形式吐出了一堆错误的答案。20%的“苹果”和80%的“橙子”的预测显然是错误的,但由于这是使用标签的训练数据进行监督学习,所以网络能够通过称为“反向传播”的系统来找出错误。

反向传播将“关于离答案有多远的结果”反馈发送到上一层的节点。然后,该层将反馈发送到上一层,直到它回到卷积层进行调整,以帮助每个神经元在后续的图像通过网络时更好地识别每个级别的数据。

这个过程一直反复进行,直到神经网络以更准确的方式(100%的正确预测)识别图像中的苹果和橙子。尽管许多工程师认为85%是可以接受的。到了这个时候,神经网络就已经准备好专业地在图片上识别苹果了。

你可能感兴趣的:(科普:如何用人工智能分辨出一个苹果?)