cnn 神经网络可以做什么(人工智能中CNN和RNN技术原理和区别)
cnn 神经网络可以做什么(人工智能中CNN和RNN技术原理和区别)在卷积层中,输入先转换后再传递到下一层。CNN使用过滤器转换数据。卷积层CNN具有称为卷积层的独特层,可将它们与RNN和其他神经网络分开。尽管这是一个经常问到的问题,但是一旦您查看了两个神经网络的结构并了解了它们的用途,CNN和RNN之间的区别就会变得很明显。下面,让我们看一下CNN以及它们如何用于解释图像。卷积神经网络是计算机视觉中用于识别图像中的对象和图案的最常见的神经网络之一。它们的定义特征之一是在卷积层中使用过滤器。
卷积神经网络和递归神经网络如今在ML中普遍使用。但是,它们通常用于完全不同的用例。
在机器学习中,每种类型的人工神经网络都针对特定任务量身定制。下面将介绍两种类型的神经网络:卷积神经网络(CNN)和递归神经网络(RNN)。
CNN和RNN有什么区别?CNN和RNN之间的主要区别是处理时间信息或顺序出现的数据(例如句子)的能力。此外,卷积神经网络和递归神经网络用于完全不同的目的,并且神经网络本身的结构也存在差异,以适应那些不同的用例。
CNN在卷积层内使用过滤器来转换数据。而RNN会重用序列中其他数据点的激活函数,以生成序列中的下一个输出。
尽管这是一个经常问到的问题,但是一旦您查看了两个神经网络的结构并了解了它们的用途,CNN和RNN之间的区别就会变得很明显。
下面,让我们看一下CNN以及它们如何用于解释图像。
什么是卷积神经网络?卷积神经网络是计算机视觉中用于识别图像中的对象和图案的最常见的神经网络之一。它们的定义特征之一是在卷积层中使用过滤器。
卷积层CNN具有称为卷积层的独特层,可将它们与RNN和其他神经网络分开。
在卷积层中,输入先转换后再传递到下一层。CNN使用过滤器转换数据。
卷积神经网络中的滤波器是什么?CNN中的过滤器只是一个随机数矩阵,如下图所示。
过滤器中的行和列数可以变化,并且取决于用例和要处理的数据。在卷积层中,有许多过滤器在图像中移动。此过程称为卷积。滤镜对图像的像素进行卷积,在将数据传递到CNN的下一层之前更改其值。
过滤器如何工作?为了了解过滤器如何转换数据,让我们看一下如何训练CNN来识别手写数字。以下是来自MNIST数据集的数字7的28 x 28像素图像的放大版本。
从MNIST数据集中获取的图像
下面是将相同图像转换为其像素值的图像。
当滤镜卷积通过图像时,滤镜中的值矩阵与图像的像素值对齐,并获得这些值的点积。
滤镜在每个3 x 3像素矩阵中移动或“卷积”,直到所有像素都被覆盖为止。然后,将每个计算的点积用作下一层的输入。
最初,过滤器中的值是随机的。结果,第一次通过或卷积成为训练阶段,初始输出不是很有用。每次迭代后,CNN会使用损失函数自动调整这些值。随着训练的进行,CNN会不断调整滤波器。通过调整这些滤镜,可以区分图像的边缘,曲线,纹理以及更多的图案和特征。
尽管这是一项了不起的壮举,但是为了实现损失功能,需要以标记的训练数据的形式为CNN提供正确输出的示例。
当无法应用转移学习时,许多卷积神经网络都需要大量的标记数据。
如果仍无法解决CNN问题,可以去看下Fast.ai上杰里米·霍华德(Jeremy Howard)的精彩但冗长的视频讲座。
CNN不足之处CNN擅长解释视觉数据和非顺序数据。但是,他们并不能很好地解释时间信息,例如视频(本质上是单个图像序列)和文本块。
文本中的实体提取是一个很好的例子,说明序列中不同部分的数据如何相互影响。对于实体,句子中实体之前和之后的词直接影响它们的分类方式。为了处理诸如句子之类的时间或顺序数据,我们必须使用旨在从序列中的过去数据和“未来数据”中学习的算法。幸运的是,递归神经网络正是这样做的。
什么是递归神经网络?递归神经网络结构
递归神经网络是旨在解释时间或顺序信息的网络。RNN使用序列中的其他数据点进行更好的预测。他们通过接受输入并重用序列中先前节点或后续节点的激活来影响输出来实现此目的。如前所述,这在诸如实体提取之类的任务中很重要。以以下文本为例:
罗斯福总统是美国历史上最有影响力的总统之一。但是,曼哈顿的罗斯福街却没有以他的名字命名。
在第一句话中,罗斯福应被标记为个人实体。而在第二句中,应将其标记为街道名称或位置。如果不考虑它们之前的“总统”和后面的“街道”这两个词,就不可能知道这些区别。
自动校正的RNN为了更深入地研究RNN的工作原理,让我们看一下如何将它们用于自动更正。在基本级别上,自动更正系统会将您键入的单词作为输入。使用该输入,系统可以预测拼写是否正确。如果该单词与数据库中的任何单词都不匹配,或者不适合该句子的上下文,则系统会预测正确的单词可能是什么。让我们直观地看一下该过程如何与RNN一起工作:
RNN将接受两个输入源。第一个输入是你输入的字母。第二个输入将是与你先前键入的字母相对应的激活功能。假设你想输入“ network”,但误输入了“ networc”。系统接受先前字母“ networ”和你输入的当前字母“ c”的激活功能。然后将“ k”作为最后一个字母的正确输出。