【深度学习】CNN与RNN:它们有什么不同?
视频号
微信公众号
知识星球
卷积神经网络和递归神经网络是许多推动商业价值的人工智能应用的基础。在本初级读本中了解细胞神经网络与RNN。
为了在不错过机会的情况下设定对人工智能的现实期望,了解算法的能力和局限性很重要。
在本文中,我们探讨了推动人工智能领域向前发展的两种算法——卷积神经网络(CNNs)和递归神经网络(RNNs)。我们将介绍它们是什么,它们是如何工作的,它们的局限性是什么,以及它们在哪里相辅相成。
但首先,简要总结CNN和RNN之间的主要区别。
- CNNs 通常用于解决与空间数据(如图像)相关的问题。RNN更适合分析时间序列数据,如文本或视频。
- CNN与RNN具有不同的体系结构。细胞神经网络是使用滤波器和池化层的“前馈神经网络”,而RNN将结果反馈到网络中(下面将详细介绍这一点)。
- 在CNNs 中,输入和输出的大小是固定的。也就是说,CNN接收固定大小的图像,并将它们连同其预测的置信水平一起输出到适当的水平。在RNN中,输入和结果输出的大小可能会变化。
- CNNs 的使用案例包括面部识别、医学分析和分类。RNN的用例包括文本翻译、自然语言处理、情感分析和语音分析。
ANNs,CNNs,RNNs:什么是神经网络?
神经网络在其发明时被广泛认为是该领域的一项重大突破。根据我们大脑中神经元的工作方式,神经网络架构引入了一种算法,使计算机能够微调其决策——换句话说,就是学习。
人工神经网络由许多感知器组成。在最简单的形式中,感知器由一个函数组成,该函数接受两个输入,将它们乘以两个随机权重,将它们与偏差值相加,通过激活函数传递结果并打印结果。权重和偏差值是可调整的,并且它们定义了感知器的结果,给定两个特定的输入值。
这种架构非常天才:将感知器组合在一起,生成了几乎可以承担任何任务的可调整变量层。然而,问题是,为了进行正确的计算,应该为权重和偏差值选择什么数字。
人工神经元中的偏差
在人工和生物网络中,当神经元处理他们接收到的输入时,他们决定输出是否应该作为输入传递到下一层。是否发送信息的决定被称为偏差,它由系统中内置的激活函数决定。例如,只有当人工神经元的输入(实际上是电压)之和超过某个特定阈值时,人工神经元才能将输出信号传递到下一层。
--琳达·图奇
这是通过一种称为反向传播的机制来解决的。向人工神经网络提供输入,并将结果与预期输出进行比较。期望输出和实际输出之间的差异通过数学计算返回到神经网络中,该数学计算确定了应该如何调整每个感知器以达到期望的结果。
这个训练人工智能的过程被重复,直到达到令人满意的精度水平。
像这样的神经网络非常适合简单的统计预测,比如根据一个人的年龄、性别和地理位置来预测他最喜欢的足球队。但人工智能如何用于图像识别等更困难的任务?答案引出了一个问题,即我们首先如何将数据输入网络。
This chart outlines the chief differences between a convolutional neural network and a recurrent neural network.
卷积神经网络
我们在计算机中看到的图像实际上是一组颜色值,分布在一定的宽度和高度上。我们所看到的形状和物体在机器上显示为一组数字。卷积神经网络通过一种称为滤波器的机制,然后汇集层来理解这些数据。
Ajay Divakaran解释道:“滤波器是一个随机数字矩阵。在CNN中,滤波器与图像部分的矩阵表示相乘,有效地逐像素扫描图像,获得所有相邻像素的平均值,从而检测最重要的特征。”,SRI国际视觉技术中心视觉与学习实验室的高级技术总监,该中心是一家非营利性科学研究机构。
他补充道:“这些信息通过池化层传递,池化层将获取的特征图浓缩为最基本的信息。”。最后一步大大减少了数据的大小,并使神经网络更快。然后将得到的信息输入到神经网络中。
CNN由几层感知器组成,滤波器有效地构建了一个网络,通过每一层都能理解越来越多的图像。第一层理解轮廓和边界,第二层开始理解形状,第三层理解物体。这个模型的强大之处在于它能够识别物体,无论它们出现在图片中的什么位置或旋转。
细胞神经网络非常擅长识别物体、动物和人,但如果我们想了解图片中发生了什么呢?
例如,考虑一张球在空中的照片。我们怎么知道球是扔上去的还是掉下来的?回答这个问题需要比一张图片更多的信息——我们需要一段视频。图片的顺序将决定球是向上还是向下。但是,我们如何让神经网络记住他们之前处理过的信息,并将其用于计算?
递归神经网络
记忆的问题不仅仅局限于视频——事实上,许多自然语言理解算法(通常只处理文本)需要某种记忆,比如讨论的主题或句子中的前一个单词。
递归神经网络正是为了解决这个问题而设计的。该算法将结果反馈给自己,使其成为最终答案的一部分。
为了说明这一点,假设我们想翻译以下句子:“它是什么日期?”该算法将每个单词分别输入神经网络,当它到达单词“it”时,其输出已经受到单词“What”的影响
不过,RNN确实存在问题。在前面的例子中,最后输入网络的单词对结果的影响更大(在我们的例子中是单词“是吗?”)。这两个词并没有让我们对整句话有太多的理解——算法正在遭受“记忆丧失”。这个问题并没有被忽视,长短期记忆(LSTM)等新算法解决了这个问题。
下图来自Wikimedia Commons,显示了一个单单元递归神经网络。
This diagram, courtesy of Wikimedia Commons, depicts a one-unit RNN. From bottom to top: input state, hidden state, output state. U, V, W are the weights of the network. Compressed diagram on the left and the unfold version of it on the right.
CNNs与RNN:优势与劣势
在了解了每个网络是如何设计的之后,我们现在可以指出每个网络的优势和劣势。
聊天机器人开发公司Kore.ai的首席技术官Prasanna Arikala解释道:“在解释视觉数据、稀疏数据或非序列数据时,细胞神经网络是首选。”。另一方面,递归神经网络被设计用于识别顺序或时间数据。当数据与前一个或下一个数据节点相关时,考虑到数据的顺序或序列,它们可以做出更好的预测
Arikala说,细胞神经网络特别有用的应用包括人脸检测、医学分析、药物发现和图像分析。RNN可用于语言翻译、实体提取、会话智能、情感分析和语音分析。
因为RNN依赖于以前的状态来预测未来的状态,所以它们“对股市来说是有意义的,因为预测股票的走势在很大程度上取决于它之前的走势,”他说。
然而,正如我们之前所了解到的,当扫描图片时,CNN的过滤器在工作时会考虑相邻的像素。它能不对相邻单词使用相同的机制吗?
迪瓦卡兰解释说:“这并不是说这样的方法根本不起作用。”。“(但)这是一种不必要的迂回方法。”迪瓦卡兰表示,试图利用CNN的空间建模能力来捕捉基本上是一种时间现象,从定义上来说是次优的,需要更多的精力和记忆才能完成同样的任务。
卷积神经网络与递归神经网络:互补模型
但在某些情况下,这两种模式是相辅相成的。阿里卡拉分享了一个有趣的案例。
他说:“对于一些亚洲语言,如汉语、日语和韩语,其中的字符就像特殊的图像,我们使用CNN和RNN组合构建的深度神经网络进行意图检测和情绪分析。”。
在这些所谓的语标语言中,一些字符可以翻译成一个或几个英语单词,而另一些字符只有在后缀为其他字符时才有意义,从而改变了原始字符的含义。
Arikala解释道:“神经网络的组合之所以在这里起作用,是因为与在其他语言中[使用]树库/WordNet标记化相比,我们在语标语言中进行字符标记化。”。“CNN和LSTM的结合比纯RNN效果要好得多。”
帮助零售商设定最优价格的人工智能公司Competera的数据科学负责人Fred Navruzov同意,这些模型可以合作,而不是相互竞争。
他说:“如今,CNN和RNN使用之间的界限有些模糊,因为你可以将这些架构组合到CRNN中,以提高解决视频标记或手势识别等特定任务的效率。”。例如,在视频帧序列的分析中,RNN可用于捕获时间信息,而CNN可用于从单个帧中提取空间特征。
深入挖掘不断扩大的神经网络领域
值得注意的是,CNN和RNN只是最流行的两类神经网络架构。有几十种其他方法可以组织神经元连接在一起的方式,其中一些几年前还不清楚的方法如今正在显著增长。
新的神经网络的例子包括:
- Transformers,它正在帮助解决RNN在处理大量文本、音频或视频流以及构建大型语言模型(如Google BERT)方面的许多局限性。
- 生成对抗性网络,它结合了多个相互竞争的神经网络,使设计药物、生成数字赝品或改进媒体制作成为可能。
- 自动编码器正在成为降维、图像压缩和数据编码的首选工具。
此外,人工智能服务正在寻找方法,使用神经架构搜索在飞行中自动创建新的高度优化的神经网络。这些技术为特定问题创建了一个启动架构,并交互分析结果以微调更好的架构。
目前自动机器学习的实现包括谷歌的AutoML、IBM Watson的AutoAI和开源的AutoKeras。研究人员还在探索使用集成学习技术将相同或不同架构的多个神经网络模型组合在一起的更好方法。
用于比较神经网络架构的性能和准确性的更好技术也可以发挥作用,使研究人员更容易筛选特定人工智能任务的许多选项。研究人员开始寻找创造性的方法来应用传统的统计技术来比较不同神经网络架构的相对性能。
- 954 次浏览