当前位置: 首页 > 科技观察

一篇看懂神经网络工作原理的文章

时间:2023-03-20 01:02:47 科技观察

这篇文章带来了深度神经网络的通俗介绍。谈到人工智能,就绕不开“神经网络”这个词。人工神经网络大致模仿人脑,使计算机能够从数据中学习。机器学习这个强大的分支结束了AI的寒冬,迎来了人工智能的新纪元。简而言之,神经网络可能是当今最具颠覆性的技术。看完这篇神经网络指南,你还可以和其他人聊聊深度学习。为此,我们会尽量不使用数学公式,而是尽可能使用类比,并添加一些动画来说明。早期的强思维AI流派之一认为,如果你为一台功能强大的计算机加载尽可能多的信息,并提供尽可能多的方法来从这些数据中学习,那么计算机应该能够“思考”。比如IBM著名的国际象棋AI深蓝背后就有这样一个想法:通过对棋子的每一步可能走法进行编程,再加上足够的计算能力,IBM程序员创造了一台机器,理论上可以计算出每一步可能的走法和输赢的结果你的对手。通过这种计算,机器依赖于工程师精心预先编程的固定规则——如果A发生,则B发生;如果A发生,则B发生;如果C发生了,就做D——这不像人类那样灵活学习。当然,它是强大的超级计算,但不是“思考”本身。教机器学习在过去的十年里,科学家们复活了一个不再依赖于大量百科全书式记忆的旧概念,而是模仿人类思维的框架,以简单而系统的方式分析输入数据。这种被称为深度学习或神经网络的技术自1940年代就已经存在,但由于当今数据(图像、视频、语音搜索、浏览行为等)的大量增长以及计算量的增加,成本已经下降power处理器,终于开始显示出它真正的威力了。机器——它们很像我们人工神经网络(ANN)是一种算法结构,它使机器能够学习从语音命令和播放列表到音乐创作和图像识别的所有内容。一个典型的ANN由数千个相互连接的人工神经元组成,这些人工神经元依次堆叠在一起,在所谓的层中形成数百万个连接。在许多情况下,层仅通过输入和输出与它们前后的神经元层互连。(这与人脑中的神经元非常不同,它们在各个方向都是相互连接的。)这种分层的ANN是当今机器学习的主要方式之一,通过向它提供大量标记数据,它可以帮助它学习如何解释数据(有时甚至比人类更好)。以图像识别为例,它依赖于一种称为卷积神经网络(CNN)的特定类型的神经网络,因为它使用一种称为卷积的数学过程以非文字方式分析图像,例如识别部分模糊的对象或模糊的对象只能从特定角度看到。(还有其他类型的神经网络,包括递归神经网络和前馈神经网络,但是这些神经网络对于图像等事物的识别不是很有用,我们将在下面举例说明)神经网络的训练过程所以神经网络到底是怎样学习的呢?让我们看一个非常简单但有效的过程,称为监督学习。我们为神经网络提供大量人工标注的训练数据,让神经网络进行基本的自检。假设这个标记数据分别由苹果和橘子的图像组成。照片就是数据;“苹果”和“橙子”是标签。当输入图像数据时,网络将它们分解为最基本的组成部分,即边缘、纹理和形状。当图像数据在网络中传递时,这些基本成分组合起来形成更抽象的概念,即曲线和不同的颜色,当它们进一步组合时,开始看起来像茎、整个橙子或绿色和红色的苹果。在这个过程的开始,网络试图对图片中的内容进行预测。首先,这些预测看起来像是随机猜测,因为真正的学习还没有发生。如果输入图像是苹果,但预测是“橙子”,则需要调整网络的内层。称为反向传播的调整过程增加了下一次将同一图像预测为“苹果”的可能性。这个过程一直持续到预测精度不再提高为止。就像父母在现实生活中教孩子认识苹果和橘子一样,有了电脑,训练才是最好的。如果你已经在想“这不就是学习吗?”,那么你可能非常适合做人工智能。很多很多层……一般来说,一个卷积神经网络除了输入输出层还有四个基本的神经元层:神经元充当第一组过滤器,搜索图像中的每个部分和像素以寻找模式。随着越来越多的图像被处理,每个神经元逐渐学会过滤特定特征,从而提高准确性。例如,如果图像是一个苹果,一个过滤器可能会专注于寻找颜色“红色”,而另一个过滤器可能会寻找圆形边缘,而另一个过滤器可能会识别细茎。如果您正在清理杂乱无章的地下室并计划举办一场大型车库拍卖会,您就会明白将所有物品分类为不同主题(玩具、电子产品、艺术品、服装等)意味着什么。卷积层通过将图像分解为不同的特征来做到这一点。特别强大的是,神经网络著名的技巧是,与早期的AI方法(例如深蓝中使用的方法)不同,这些过滤器不是由人类设计的。他们纯粹通过查看数据来学习和自我提升。卷积层创建图像的不同细分版本,每个版本专用于不同的过滤特征——显示其神经元在哪里看到红色、茎、曲线和各种其他元素(但都是部分)的实例。但由于卷积层在识别特征方面相当自由,因此需要一双额外的眼睛来确保在图像信息通过网络时不会遗漏任何有价值的东西。神经网络的优势之一是它们能够以非线性方式学习。无需用数学术语来解释,它们的意思是能够在不太明显的图像中发现特征——树上的苹果、阳光下的、阴凉处的,或者厨房柜台上的碗里的苹果。这一切都要归功于激活层,它或多或少地突出了一些有价值的东西——一些既明显又难以发现的属性。在我们的车库拍卖中,想象一下我们从每个类别中挑选了一些稀有珍品:书籍、大学经典T恤。哎呀,我们可能还不想扔掉它们。我们将这些“可能”的项目放在各自类别的顶部,以供进一步考虑。池化层在图像上的这种“卷积”会产生大量信息,这很快就会成为一场计算噩梦。进入池化层,将其全部简化为更通用和更易消化的形式。有很多方法可以解决这个问题,但最好的是“MaxPooling”,它将每个特征图编译成它自己的“读者文摘”版本,因此只有红色、茎干或弯曲的***样本被表征。在车库春季大扫除的例子中,如果我们要使用日本著名清洁大师MarieKondo的原则,我们将不得不从每个类别中较小的收藏夹中选择堆放“激发快乐”的东西,然后出售或处理它们别的东西。所以现在我们仍然按项目类型排序,但只包括我们真正想要保留的项目。其他的都卖了。此时,神经网络的设计者可以堆叠该类别的后续分层配置——卷积、激活、池化——并继续过滤图像以获得更高层次的信息。在识别图片中的苹果时,图像会被一遍又一遍地过滤,最初的层只显示边缘几乎无法辨别的部分,比如红色部分或只是茎的***,而随后的更多过滤层将显示整个苹果。无论哪种方式,在获得结果时,全连接层都会发挥作用。全连接层现在是时候得到结果了。在全连接层中,每个修剪或“池化”的特征图都“完全连接”到代表神经网络正在学习识别的输出节点(神经元)。如果网络的任务是学习如何识别猫、狗、豚鼠和沙鼠,那么它将有四个输出节点。在我们描述的神经网络中,它只有两个输出节点:一个用于“苹果”,一个用于“橙子”。如果通过网络输入的图像是苹果,并且网络已经进行了一些训练并且在预测方面越来越好,那么一个好的特征块很可能是包含苹果特征的高质量实例。这是最终输出节点完成其任务的地方,反之亦然。“苹果”和“橘子”节点(他们在工作中学到的)的工作基本上是为包含各自水果的特征图“投票”。因此,“苹果”节点认为一个图包含的“苹果”特征越多,它就会给那个特征图投票越多。两个节点都必须为每个特征图投票,无论它包含什么。所以在这种情况下,“橘子”节点不会为任何特征图投票很多,因为它们实际上并不包含任何“橘子”特征。***,投出最多选票的节点(在本例中为“苹果”节点)可以被认为是网络的“答案”,尽管实际上可能并没有那么简单。因为同一个网络正在寻找两种不同的东西——苹果和橘子——网络的最终输出以百分比表示。在这种情况下,我们假设网络的性能在训练过程中有所下降,因此这里的预测可能是75%的“苹果”和25%的“橙子”。或者如果在训练早期,它可能更不正确,它可能是20%的“苹果”和80%的“橙子”。不是很好。如果一开始不行,再试,再试……所以,在早期阶段,神经网络可能会给出一堆百分比形式的错误答案。20%的“苹果”和80%的“橙子”,预测显然是错误的,但由于这是使用标记训练数据的监督学习,网络能够通过称为“反向传播”的过程进行系统调整。避免使用数学术语,反向传播将反馈发送到上一层中的节点,告诉它答案偏离了多少。然后,该层将反馈发送到上一层,再发送到上一层,直到它返回到卷积层,以进行调整以在后续图像通过网络识别数据时更好地帮助每个神经元。重复此过程,直到神经网络能够以更准确的方式识别图像中的苹果和橙子,最终100%正确地预测结果——尽管许多工程师认为85%是可以接受的。此时,神经网络已准备好实际识别图片中的苹果。注:谷歌AlphaGo用自学习神经网络评估棋盘位置的方法与我们介绍的方法还是有区别的。