全文共3390字,预计学习时间7分钟你有没有幻想过拥有一个可以回答任何问题的私人助理您的问题或能够与您交谈?幸运的是,有了机器学习和深度神经网络,这个梦想离我们并不遥远。想想苹果Siri和亚马逊Alexa的魔力吧!不过不要太激动,因为下一篇文章中你要创造的并不是万能的人工智能,而只是一个简单的聊天机器。它被输入一些问题和相应的答案,当人们问它问题时它可以回答是或否。它远不及Siri或Alexa所能做的,但它充分说明了即使使用非常简单的深度神经网络结构也可以实现惊人的结果。在本文中,您将了解人工神经网络、深度学习、递归神经网络和长短期记忆网络。在学习有关神经网络的有趣知识之前,您可以仔细看看下图。里面有两张图:左边是一辆行驶在马路上的校车,右边是一间普通的客厅。图片下方提供了注释。两张不同的图片附有人工注释的文字说明。人工神经网络为了构建用于创建聊天机器人的神经网络模型,我们将使用Keras,这是一个非常流行的神经网络Python库。然而,在进一步深入之前,必须先了解什么是人工神经网络。人工神经网络是一种机器学习模型,它试图模仿人脑的功能。人脑的结构是由大量相互连接的神经元组成,因此得名“人工神经网络”。Perceptrons最简单的人工神经网络是由单个神经元组成的,它的名字听起来和《星际迷航》中的感知器很像。1957年,FrankRosenblatt发明了感知器,它由一个对输入信号进行加权的神经元(生物神经元中的输入信号端口变成树突),将其应用到一个数学函数公式中,最后输出结果(Thesignaloutput端口称为轴突)。此处不详细讨论适用的功能。上图是一个神经元,左边是信号输入端口,每个权重相乘。神经元将函数应用于输入值并最终输出结果。这些单个神经元可以堆叠在一起形成任意大小的层并按顺序放在一起,从而使神经网络能够到达更深的层。当以这种方式构建神经网络时,不属于输入或输出层的神经元被视为隐藏层的一部分。用它们的名字来描述人工神经网络的主要特征之一,它们基本上是黑盒模型;尽管了解所发生事情背后的数学原理,并且对黑匣子中发生的事情有直觉,但如果获取隐藏层的输出并试图理解它,人们很可能会绞尽脑汁而一事无成。尽管如此,隐藏层仍会产生许多意想不到的结果。所以没有人抱怨它缺乏可解释性。上图是一个更大的神经网络图,由许多单个神经元和层组成:一个输入层、两个隐藏层和一个输出层。关于神经网络的结构以及如何训练它们的讨论已经持续了二十多年。那么,是什么导致了如今对人工神经网络和深度学习的所有关注和炒作?该问题的答案如下,但我们首先需要了解什么是深度学习。什么是深度学习?顾名思义,深度学习使用许多层从输入到神经网络的数据中逐渐提取更高层次的特征。就这么简单,使用多个隐藏层来提高神经模型的性能。知道了这一点,上述问题的答案就很简单了:规模。在过去的20年里,可用数据的数量和存储和处理数据的机器(又名计算机)的性能呈指数级增长,从而能够创建更大更深的神经网络来训练模型。世界顶级深度学习专家之一的吴恩达在本视频中进行了详细的讲解。他展示了一张类似于下图的图片,并用它来解释拥有更多数据来训练模型的好处,以及大型神经网络相对于其他机器学习模型的优势。上图展示了随着训练数据的增加,各个算法的性能逐渐优化。对于传统的机器学习算法(线性或逻辑回归、SMV、随机森林等),随着使用更多数据来训练模型,性能会持续提高到某个点,然后保持在该水平。当达到那个点时,模型似乎不知道如何处理额外的数据,因此无法增加数据量来提高性能。然而,神经网络并非如此。如果数据质量高,性能总是会随着数据量的增加而增加,增长速度取决于网络的规模。因此,如果要获得最佳性能,需要在绿线(即代表神经网络的线)上x轴方向(即数据量较大)的某处。此外,还有一些算法上的改进,也推动了深度学习和人工神经网络的兴起,但主要原因是规模:计算规模和数据规模。该领域的另一位重要人物JeffDean(谷歌深度学习的发起人之一)也给出了他对深度学习的见解:当你听到“深度学习”这个词时,就把它想象成一个巨大的深度神经网络。“深度”通常是指层数,是媒体中常用的术语。我通常将它们视为深度神经网络。在谈到深度学习时,他强调了神经网络的可扩展性,这意味着随着数据的增加和模型的变大,性能会逐渐优化,这反过来又需要更多的计算量,就像上面提到的train。好的我明白了。但是神经网络是如何学习的呢?或许你已经猜到了答案,那就是:通过数据来学习。还记得在单个感知器中乘以输入的权重吗?这些权重也包含在连接两个不同神经元的任何边缘中。这意味着在一个更大的神经网络的图像中,它们存在于每一个黑色边缘上,取一个神经元的输出,乘以这个权重,然后将它作为新的输入发送给连接到那个边缘的另一个神经元。这是具有两个隐藏层和每层之间权重的神经网络图。在训练神经网络时(训练神经网络是一种机器语言表达,意思是'让它学习'),你输入一组已知数据(机器语言中称为标签数据)并让它预测关于这些数据特征的已知信息(例如图像代表狗还是猫)并将预测与实际结果进行比较。在这个过程中,神经网络会犯错误,但它会调整神经元之间连接的权重,以减少错误。因此,如上所述,如果不断增加输入大小,在大多数情况下性能都会提高。LearningfromSequenceData-RecurrentNeuralNetworks现在你已经了解了人工神经网络和深度学习,并且对神经网络如何学习有了一个大致的了解,让我们继续讨论用于构建聊天机器人的网络类型:循环神经网络网络(RNNs简称)。循环神经网络是一种特殊类型的神经网络,可以有效地处理顺序数据。此类数据包括时间序列(特定时间段内某些参数的值列表)、文本文档(可以认为是单词序列)和记录文档(可以认为是音频顺序)。循环神经网络的工作方式是获取每个神经元的输出信号并将其作为新输入反馈回来。在这样做时,它不仅在每个时期接收新信息,而且还将这些新信息添加到其先前输出的加权版本中。这允许神经元具有先前输入的“记忆”,因为它们由反馈给神经元的输出量化。这是一个循环神经元,其输出数据乘以权重并重新输入。单元内部是前一阶段输入的函数,成为记忆单元。循环神经网络存在的问题是,随着时间的推移,越来越多的新数据被输入,神经网络在这些新数据和激活函数变换、权重乘法之间不断被稀释,于是开始“忘记”之前的查看数据。这意味着他们只有良好的短期记忆,但记得不久前发生的事情(即过去时间段内看到的数据)。我们需要某种长期记忆,而这正是长短期记忆网络(LSTM)所提供的。增强记忆-长短期记忆网络长短期记忆网络(LSTM)是循环神经网络的一种变体,可解决循环神经网络的长期记忆问题。本文将通过简要说明它们的工作原理来结束本文。LSTM网络的细胞结构比一般的循环神经元更复杂,这使它们能够更好地调节如何从不同的输入源学习或遗忘。这是长短期记忆网络的一个细胞。请不要关注蓝色的圆圈和方框,可以看出它的结构比普通的RNNcell复杂很多,本文不做讨论。LSTM神经元通过结合细胞状态和三个不同的门(输入门、遗忘门和输出门)来工作。这要归功于一种明确的门控机制,该机制允许单元在每个时间段决定如何处理状态向量:读、写或删除。通过输入门,细胞可以决定是否更新它的状态。通过遗忘门,细胞可以清除它的记忆。通过输出门,细胞可以决定输出信息是否有效。LSTM网络还可以缓解梯度爆炸和消失,但这是另一个新问题。就是这样!现在您对这些不同类型的神经网络的工作原理有了基本的了解,是时候将它用于您的第一个深度学习项目了!神经网络真的很棒。哦,对了,还记得这张照片吗?为了证明深度神经网络的强大,我们不得不承认我们谎报了图像文字描述的来源。文章开头说这些文字描述是人工标注的,然而事实是,这些描述每张图片上能看到什么的简短文字实际上是由人工神经网络输出的。疯狂的?请尽情享受人工智能的神奇吧!
