Udacity深度学习之卷积神经网络概念解析

版权声明:博客为作者平时学习备忘,参考资料已在文尾列出一并表示感谢。如若转载,请列明出处。 https://blog.csdn.net/woai8339/article/details/86381017

一文卷积神经网络参数解释


一提到卷积神经网络,有些概念我们需要解析一下,要不然一说卷积神经网络可能会发懵。

patchfilter

       第一次听到patch,这是个啥?我们先看一下斯坦福大学对卷积核的一个动态介绍[1],这里直接弄一个图,动态图参考文献[1]:
卷积核
                                                         图1 卷积核
       Image代表的就是图片的输入,Image图中的黄色33的块就是patch,那么黄色里红色数字组成的33矩阵就是卷积核,或者叫filter

实例说明

       为了更清晰说明,我们以一张猫的图片做立体说明。
       CNN 的第一步是把图片分成小块。我们通过选取一个给定宽度和高度的滤波器来实现这一步。滤波器会照在图片的小块 patch (图像区块)上。这些 patch 的大小与滤波器一样大。
在这里插入图片描述
       CNN用滤波器来把图片分割成更小的 patch,patch 的大小跟滤波器大小相同。我们可以在水平方向,或者竖直方向滑动滤波器对图片的不同部分进行聚焦。

tride

       tride,也叫步长,表示滤波器在图片上每一次向右移动的距离。假设步长设为1,图1卷积核就会变成图2(第一次移动一个步长后的卷积核图)。
在这里插入图片描述
                                               图2 移动1位后的卷积核
       滤波器滑动的间隔被称作 stride(步长)。这是你可以调节的一个超参数。增大 stride 值后,会减少每层总 patch 数量,因此也减小了模型大小。通常这也会降低图像精度。

Filter Depth

      通常都会有多余一个滤波器,不同滤波器提取一个 patch 的不同特性。例如,一个滤波器寻找特定颜色,另一个寻找特定物体的特定形状。卷积层滤波器的数量被称为滤波器深度Filter Depth。
                                         在这里插入图片描述

                             上述例子中,一个 patch 与下一层的神经元相连

                                                    来源: MIchael Neilsen

       每个 patch 连接多少神经元?
在这里插入图片描述

       这取决于滤波器的深度,如果深度是 k,我们把每个 patch 与下一层的 k 个神经元相连。这样下一层的高度就是 k,如下图所示。实际操作中,k是一个我们可以调节的超参数,大多数的 CNNs 倾向于选择相同的起始值。

       滤波器的深度为k,与下一层的k个神经元相连。

       为什么我们把一个 patch 与下一层的多个神经元相连呢?一个神经元不够好吗?

       多个神经元的作用在于,一个 patch 可以有多个有意义的,可供提取的特点。

       例如,一个 patch 可能包括白牙,金色的须,红舌头的一部分。在这种情况下,我们需要一个深度至少为3的滤波器,一个识别牙,一个识别须,一个识别舌头。

       这只狗的 patch 有很多有意思的特征需要提取。包括牙、须以及粉红色的舌头。

       一个 patch 连接有多个神经元可以保证我们的 CNNs 学会提取任何它觉得重要的特征。

       记住,CNN 并没有被规定寻找特定特征。与之相反,它自我学习什么特征值得注意。
Ref:
1、卷积核动态图
2、Udacity课程

猜你喜欢

转载自blog.csdn.net/woai8339/article/details/86381017