CNN - 工作原理

CNN - 工作原理 首页 / TensorFlow入门教程 / CNN - 工作原理

CNN(卷积神经网络或ConvNet)是一种前馈人工网络,其神经元之间的连接方式受动物视觉皮层的组织启发。

视觉皮层有一小部分细胞,对视野的特定区域敏感。大脑中的某些单个神经元细胞在存在特定方向的边缘时会做出反应。

CNN工作

通常,卷积神经网络具有三层。在分类器的示例的帮助下逐个理解每个层。有了它可以对 x o 的图像分类。所以,随着情况将理解所有四层。

卷积神经网络具有以下层:

  • Convolutional
  • ReLU Layer
  • Pooling
  • Fully Connected Layer
Working of Convolutional Neural Network

在某些 trickier 情况下, X 可以用这四种形式以及右侧来表示,因此这些只不过是变形图像的效果。在这里,有 X O's 的多个演示。这使计算机难以识别。但是无涯教程的目标是,如果输入信号看起来像以前看到的上一个图像,则"图像"参考信号将被卷积,输入信号。然后将产生的输出信号传递到下一层。考虑下图:

Working of Convolutional Neural NetworkWorking of Convolutional Neural Network

计算机使用每个像素上的数字来理解图像。

在无涯教程的示例中,考虑了蓝色像素的值为 1 ,而白色像素的值为 -1 值。这是在原始二进制分类中实现区分像素的方法。

Working of Convolutional Neural Network

当使用标准技术比较这两个图像时,一个是X的正确图像,另一个是X的失真图像。发现计算机无法对X的变形图像进行分类。因此,当将这两个图像的像素值相加时,会得到一些东西,因此计算机无法识别它是否是 X

Working of Convolutional Neural Network

在CNN的帮助下,无涯教程拍摄了图像的小块,因此这些块或小片称为过滤器。在两张图片的相同位置发现了粗糙的特征匹配。整个图像匹配方案之间的相似性使CNN变得更好。有这些滤镜,因此请考虑这第一个滤镜正好等于变形图像中图像部分的特征,并且这是正确的图像。

CNN逐段比较图像的一部分。

通过在两个图像中大致相同的位置找到粗匹配,CNN在看到相似性方面比全图像匹配方案要好得多。

Working of Convolutional Neural Network

具有三个函数或过滤器,如下所示。

Working of Convolutional Neural Network

乘以相应的像素值

Working of Convolutional Neural NetworkWorking of Convolutional Neural Network

添加和除以像素总数

Working of Convolutional Neural Network

创建映射以将过滤器的值放置在该位置

为了跟踪创建映射的要素,并在该位置放置了一定数量的过滤器。

Working of Convolutional Neural Network

在整个图像中滑动滤镜

现在,使用相同的函数并将其移动到另一个位置并再次执行过滤。

Working of Convolutional Neural Network

卷积层输出

无涯教程将要素转移到图像的每个其他位置,并查看要素如何与该区域匹配。最后,将得到如下输出:

Working of Convolutional Neural Network

同样,对其他所有滤镜执行相同的卷积。

Working of Convolutional Neural Network

ReLU层

在这一层中从过滤的图像中删除每个负值,然后将它们替换为零。

正在避免将这些值相加为零。

ReLU变换函数仅在输入量超过一定数量时激活节点。当数据低于零时,输​​出为零,但是当信息高于阈值时。它与因变量具有线性关系。

Working of Convolutional Neural Network

无涯教程考虑了具有上述值的任何简单函数。因此,该函数仅在因变量获得该值的情况下运行。例如,获得以下值。

Working of Convolutional Neural Network

删除负值

Working of Convolutional Neural Network

输出一项函数

Working of Convolutional Neural Network

输出所有函数

Working of Convolutional Neural Network

池化层

在该层中,将图像堆栈缩小为较小的尺寸。在经过激活层之后进行合并。通过一个例子来理解这一点。考虑在窗口大小为2且跨度为2的情况下执行合并。

计算每个窗口中的最大值

让开始第一个过滤图像。在第一个窗口中,最大值或最大值为1,因此对其进行跟踪并将窗口移动两步。

Working of Convolutional Neural Network

在整个图像中移动窗口

Working of Convolutional Neural Network

通过池化层后的输出

Working of Convolutional Neural Network

堆叠层

这样一来,在输入经过3层(卷积,ReLU和Pooling)之后,就得到了7×7矩阵中的4×4矩阵,从而得到一张图片中的时间帧,如下所示:

Working of Convolutional Neural Network

将图像从 4×4 减少到更小的东西?需要在第一次通过后在迭代中执行3个操作。所以在第二次通过后,到达了2×2矩阵,如下所示:

Working of Convolutional Neural Network

网络中的最后一层是完全连接,这意味着前一层的神经元连接到后一层的每个神经元。

然后,将缩小的图像放入单个列表中,这样就可以通过两层卷积合并,然后将其转换为单个文件或向量。

取第一个值1,然后取0.55,取0.55,然后取1。然后取1,然后取0.55,然后取1,然后取0.55和0.55,然后再次取0.55,取0.55,1、1,和0.55。因此,这不过是向量。完全连接的层是进行分类的最后一层。在这里,将经过过滤和缩小的图像放入一个列表中,如下所示。

Working of Convolutional Neural Network

运行上面代码输出

当输入" X "和" 0 "时。然后向量中将有一些元素很高。考虑下图,因为可以看到对于" X",有不同的顶部元素,同样,对于" O",具有各种高元素。

在清单中有一些很高的特定值,如果重复针对不同的个人成本讨论的整个过程,则该值很高。哪个会更高,所以对于 X ,有第1个,第4个,第5个,第10个,向量值的第11 元素较高。对于 O ,有2 nd ,3 rd ,9 th 和12 th 较高的元素向量。现在知道是否有输入图像具有第1 st ,第4 th ,第5 th ,第10 th ,第11个元素向量的值较高。如果输入图像的列表中包含第2 nd 3 rd 9 th 和12 th 元素向量值很高,因此无涯教程可以对其进行组织

Working of Convolutional Neural Network

然后第1 st th 和11 值很高,可以将图像分类为" x"。其他字母的概念也相似-当某些值按其原样排列时,它们可以映射为实际的字母或需要的数字

向量与X比较

训练完成后," X"和" O"的整个过程。然后,得到这个12元素向量,所有这些值都有0.9、0.65,然后如何将其分类为 X O 。将其与X和O的列表进行比较,因此,如果注意到X和O有两个不同的列表,将在上一张幻灯片中得到该文件。正在将与X一起提供的这个新的输入图像列表进行比较。和O。首先让比较一下,对于X,现在还有X,某些值会更高,只有第1 4 5 th 10 th 和11 th值。因此,将对它们求和,得到5 = 1 + 1 + 1 + 1 + 1 + 1乘以1得到5,将对图像矢量的相应值求和。因此1 st 值为0.9,然后4 th 值为0.87 5 th 值为0.96,10 th 值是0.89,第11个值是0.94,因此将这些值相加后值得到4.56并除以5,得到 0.9

Working of Convolutional Neural Network

正在将输入向量与0进行比较。

对于X,对O执行相同的过程,注意到2 nd 3 rd 9 th 和12 th 元素向量值很高。因此,当对这些值求和时,得到4,而对输入图像的相应值求和时,得到4。得到2.07,当将其除以4时,得到 0.51

Working of Convolutional Neural Network

结果

现在,注意到0.91是与0.5相比更高的值,因此将输入图像与X的值进行了比较,得到的值高于然后将输入图像与4的值进行比较后得到的值。输入图像被分类为 X

Working of Convolutional Neural Network

CNN用例

步骤:

Working of Convolutional Neural Network

在这里,一旦训练完成,将在不同类型的狗和猫图像上训练模型。无涯教程将提供它将分类输入的是狗还是猫。

Working of Convolutional Neural Network

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

性能工程高手课 -〔庄振运〕

成为AI产品经理 -〔刘海丰〕

跟着高手学复盘 -〔张鹏〕

技术面试官识人手册 -〔熊燚(四火)〕

爆款文案修炼手册 -〔乐剑峰〕

郭东白的架构课 -〔郭东白〕

朱涛 · Kotlin编程第一课 -〔朱涛〕

AI绘画核心技术与实战 -〔南柯〕

结构思考力 · 透过结构看表达 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)