CNN中的filter
来源:互联网 发布:怎样取消淘宝芝麻信用 编辑:程序博客网 时间:2024/06/07 08:05
分解一张图片
CNN 的第一步是把图片分成小块。我们通过选取一个给定宽度和高度的滤波器来实现这一步。
滤波器会照在图片的小块 patch (图像区块)上。这些 patch 的大小与滤波器一样大。
我们可以在水平方向,或者竖直方向滑动滤波器对图片的不同部分进行聚焦。
滤波器滑动的间隔被称作 stride
(步长)。这是你可以调节的一个超参数。增大 stride 值后,会减少每层总 patch 数量,因此也减小了模型大小。通常这也会降低图像精度。
让我们看一个例子,在这个放大的狗图片中,我们从红框开始,我们滤波器的高和宽决定了这个正方形的大小。
然后我们向右把方块移动一个给定的步长(这里是2),得到另一块 patch。
这里最重要的是我们把相邻的像素聚在一起,把他们视作一个集合。
在普通非卷积的神经网络中,我们忽略了这种临近性。在普通网络中,我们把输入图片中的每一个像素与下一层的神经元相连。图片中相邻像素在一起是有原因的,并且有着特殊意义,但普通网络没有有效利用好这些信息。
要利用这种临近结构,我们的 CNN 就要学习如何分类临近模式,例如图片中的形状和物体。
滤波器深度 Filter Depth
通常都会有多余一个滤波器,不同滤波器提取一个 patch 的不同特性。例如,一个滤波器寻找特定颜色,另一个寻找特定物体的特定形状。卷积层滤波器的数量被称为滤波器深度。
每个 patch 连接多少神经元?
这取决于滤波器的深度,如果深度是 k
,我们把每个 patch 与下一层的 k
个神经元相连。这样下一层的高度就是 k
,如下图所示。实际操作中,k
是一个我们可以调节的超参数,大多数的 CNNs 倾向于选择相同的起始值。
为什么我们把一个 patch 与下一层的多个神经元相连呢?一个神经元不够好吗?
多个神经元的作用在于,一个 patch 可以有多个有意义的,可供提取的特点。
例如,一个 patch 可能包括白牙,金色的须,红舌头的一部分。在这种情况下,我们需要一个深度至少为3的滤波器,一个识别牙,一个识别须,一个识别舌头。
一个 patch 连接有多个神经元可以保证我们的 CNNs 学会提取任何它觉得重要的特征。
记住,CNN 并没有被规定寻找特定特征。与之相反,它自我学习什么特征值得注意。
- CNN中的filter
- CNN训练中的技巧
- CNN中的卷积操作
- CNN中的一些概念
- 再看CNN中的卷积
- CNN中的dropout理解
- CNN中的padding
- 机器学习----matlab中的CNN
- CNN学习中的一些要点
- 【深度学习-CNN】CNN中的参数与计算量
- Filter Graph中的数据流
- 调用filter中的函数
- Cindy中的Filter
- jQuery 中的filter 运用
- MATLAB中的filter函数
- Servlet中的filter
- Servlet中的Filter
- png中的filter问题
- TensorFlow学习日记2
- linux_下IP、网关、DNS地址配置
- Fusion 360 API:近期重要更新
- popup(2)
- MySQL在高版本需要指明是否进行SSL连接
- CNN中的filter
- PID
- php代码实现mysql连接池效果
- 第二章 UNIX标准及其实现
- zzuli 2134 维克兹的进制转换
- Problem 1:Find the sum of all the multiples of 3 or 5 below 1000.
- linux-arm间tftp命令的安装、使用
- 6.通过JDBC访问MySql数据库
- 磁盘容量配额之外面有秦腔