javascript|人工智能中CNN和RNN技术原理和区别?

javascript|人工智能中CNN和RNN技术原理和区别?

文章图片

javascript|人工智能中CNN和RNN技术原理和区别?

文章图片

javascript|人工智能中CNN和RNN技术原理和区别?

文章图片

【javascript|人工智能中CNN和RNN技术原理和区别?】javascript|人工智能中CNN和RNN技术原理和区别?

文章图片


卷积神经网络和递归神经网络如今在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擅长解释视觉数据和非顺序数据 。 但是 , 他们并不能很好地解释时间信息 , 例如视频(本质上是单个图像序列)和文本块 。