全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1073 0
2020-12-10
卷积递归神经网络的直观直观解释
在本文中,我假设您已经对简单的神经网络如何工作有所了解。如果您需要对它的工作方式进行一点修改,或者甚至根本不知道它们的工作方式,我建议您看一下本文末尾链接的精心制作的视频,解释它们的工作方式。我将提供我认为需要的所有信息,以直观地理解CRNN的工作原理。
在本文中,我们将介绍以下主题,请随时跳过您已经知道的主题:
什么是卷积神经网络?它们如何工作?为什么我们需要它们?
什么是递归神经网络?它们如何工作?为什么我们需要它们?
·什么是卷积神经网络?为什么需要卷积神经网络?+手写文字识别示例
·进一步的阅读和链接
什么是卷积神经网络?它们如何工作?为什么我们需要它们?
最容易回答的是最后一个问题,为什么我们需要它们?为此,让我们举个例子。假设我们要发现图像中是猫还是狗。为了简化说明,让我们首先考虑一个3×3的图像。在此图像中,我们在蓝色矩形中具有一个重要特征(例如狗的脸,字母或其他重要特征)。
卷积递归神经网络-矩形
让我们看看一个简单的神经网络如何识别像素之间的重要性和联系。
神经网络
如我们所见,我们将需要“展平”图像以将其馈送到密集的神经网络。这样,我们就失去了整个要素图像中具有背景以及要素之间以及各个要素之间的空间背景。想象一下,神经网络要知道它们之间的联系将非常困难。此外,我们将需要大量的权重进行训练,因此我们将需要更多的数据,因此需要更多的时间来进行训练。
因此,我们可以看到这种方法存在多个问题:
空间上下文丢失
重量更大,图像更大
更多的权重导致更多的时间和所需的更多数据
除非有另一种方法……等等!有!这就是卷积神经网络参与其中以挽救一天的地方。它们的主要作用是通过使用过滤器从输入中提取相关特征(例如图像)。首先随机选择这些过滤器,然后像权重一样对其进行训练。神经网络对它们进行了修改,以提取并找到最相关的特征。
好的,到目前为止,我们已经建立了卷积神经网络(我将用作CNN)使用过滤器来提取特征。但是过滤器到底是什么?它们如何工作?
滤镜是包含不同值的矩阵,这些值在图像上滑动(例如)以分析特征。例如,如果矩阵为3x3x3,则提取的特征将为3x3x3。如果矩阵的大小为5×5,它将检测到的特征在图像中的最大大小为5×5,依此类推。通过分析像素窗口,我们了解了滤镜和覆盖窗口之间的逐元素乘法。
因此,例如,如果我们有一个尺寸为6×6的图像和一个3×3的滤镜,我们可以想象滤镜在图像上滑动,并且每次它降落在新窗口上时,它都会对其进行分析,从而我们可以看到仅在图像的前两行中显示在下图中:
卷积递归神经网络-方盒
根据我们需要提取的内容,我们可以更改滤镜的阶跃(在上面的示例中,无论是垂直还是水平,滤镜在两个方向上都迈出一步)。
在进行乘法(元素方式)之后,结果成为图像中的新像素。因此,在“分析”第一个窗口之后,我们获得了图像中的第一个像素,依此类推。我们看到在上述情况下,最终图像的大小为5×5。要使最终图像具有相同的大小,我们可以在对图像进行虚拟填充后应用滤镜(在图像的末尾添加虚拟行和列)开头和结尾),但有关细节尚待讨论。
为了更好地了解卷积是如何工作的,我们可以看一下滤波器的示例及其对输出图像的影响:
卷积递归神经网络-过程
我们可以看到不同的过滤器如何检测和“提取”不同的功能。训练卷积神经网络的作用是找到最好的过滤器,以提取与我们任务最相关的特征。
因此,总结一下有关卷积神经网络的部分,我们可以用3个简单的想法来总结信息:
它们是什么:卷积神经网络是一种神经网络,它使用卷积操作(在图像上滑动滤镜)来提取相关特征。
我们为什么需要它们:它们在数据上表现更好(而不是使用常规的密集神经网络),在这些数据中,例如像素之间存在很强的相关性,因为空间上下文不会丢失。
它们如何工作:他们使用过滤器来提取特征。滤镜是在图像上“滑动”的矩阵。在训练期间对它们进行了修改,以提取出最相关的功能。
什么是递归神经网络?它们如何工作?为什么我们需要它们?
虽然卷积神经网络可以帮助我们提取图像中的相关特征,但递归神经网络可以帮助NNet考虑到过去的信息以进行预测或分析。
因此,例如,如果我们具有以下数组:{2,4,6},并且我们要预测接下来会发生什么,那么我们可以使用递归神经网络,因为在每一步,它都会考虑到在它之前。
我们可以可视化一个简单的循环单元格,如下图所示:
卷积递归神经网络
首先,让我们只关注图像的右侧。这里,x t是在时间步t接收到的输入。遵循相同的示例,这些可以是前面提到的数组中的数字,x 0 = 2,x 1 = 4,x 2 =6。为了考虑时间步长之前的内容,它们是递归神经网络的一部分,我们必须从上一时间步中接收信息,在此图像中,我们将其表示为v。每个单元都有一个所谓的“状态”,该状态直观地保存了随后发送的信息到下一个单元格。
回顾一下,x t是单元的输入。然后,该单元考虑通过“ v”接收的先前时间步长中的信息,决定什么是重要信息,然后将其发送到下一个单元。此外,如果我们要通过图像中的“ o”返回单元格考虑的重要信息,则可以选择该单元格的输出。
为了以更紧凑的方式表示前面提到的过程,我们可以“折叠”在图像左侧表示的单元格。
我们将不详细介绍循环细胞的确切类型,因为它们有很多选择,并且详细解释它们的工作方式将使我们花费太长时间。如果您有兴趣,我在文章末尾留下了一些非常有用的链接。
什么是卷积神经网络,为什么需要卷积神经网络?
+手写文字识别示例
现在,我们掌握了所有重要信息,以了解卷积循环网络的工作原理。
大多数时候,卷积神经网络会分析图像,并将其发送到检测到的重要特征的重复部分。循环部分按顺序分析了这些功能,并考虑了先前的信息,以了解影响输出的这些功能之间有哪些重要联系。
为了进一步了解CRNN在某些任务中的工作方式,我们以手写文本识别为例。
假设我们有包含单词的图像,并且我们想训练NNet以便给我们图像中最初包含的单词。
首先,我们希望神经网络能够提取不同字母的重要特征,例如“ g”或“ l”中的循环,甚至是“ a”或“ o”中的圆圈。为此,我们可以使用卷积神经网络。如前所述,CNN使用滤镜来提取重要特征(我们看到了不同的滤镜如何对初始图像产生不同的影响)。当然,这些过滤器将在实践中检测出我们无法真正理解的更多抽象功能,但是从直观上讲,我们可以想到更简单的功能,例如前面提到的功能。
然后,我们将要分析这些功能。让我们看看为什么我们不能仅根据字母自身的功能来决定字母是什么。在下图中,我们看到字母是“ a”(来自“ aux”)或“ o”(来自for)。
样本图片
区别在于字母与其他字母的链接方式。因此,我们需要知道图像中先前位置的信息才能确定字母。听起来很熟悉?这是RNN部分的用处。它递归地分析CNN提取的信息,其中每个像元的输入可能是在图像的特定切片中检测到的特征,如下所示,只有10个切片(比我们少将在实际模型中使用):
处理
如上图所示,我们不向RNN提供图像本身,而是从该“切片”中提取特征。
我们可能还会看到,向前处理图像与向后处理图像一样重要,因此我们可以添加一层以另一种方式处理要素的单元,在计算输出时将它们都考虑在内。甚至垂直,取决于手头的任务。
万岁!最后,我们对图像进行了分析:提取并分析了彼此相关的特征。现在我们要做的就是添加一个计算损失的层和一个解码输出的算法,为此,我们可能想使用CTC(连接器时间分类)进行手写文本识别,但这本身就是一个有趣的主题我认为值得再写一篇。
结论
在本文中,我们简要讨论了卷积递归神经网络的工作原理,它们如何分析和提取特征以及如何使用它们的示例。
卷积神经网络通过应用相关的过滤器来提取特征,而递归神经网络会考虑从先前时间步中收到的信息来分析这些特征。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群