CNN 入门 - CNN 层功能说明
众所周知,CNN是一种特殊的深层前馈网络,CNN模型主要包含输入层、卷积层、激励函数、池化层、全连接层以及输出层。接下来将为大家细化分析每一层结构的作用。
输入层(INPUT):用于数据的输入。
当输入一张3232的jpg图片的时候,输入层能读取到3232*3的矩阵,3是它的深度(即R、G、B)。
卷积层(CONV):使用卷积核进行特征提取和特征映射。
机器学习识别图片的过程中,并不是一下子整张图同时识别,而是对于图片中的每一个特征首先局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。
激励函数(RELU):由于卷积也是一种线性运算,因此需要增加非线性映射。
所谓激励,实际上是对卷积层的输出结果做一次非线性映射。
如果不用激励函数(其实就相当于激励函数是f(x)=x),这种情况下,每一层的输出都是上一层输入的线性
函数。容易得出,无论有多少神经网络层,输出都是输入的线性组合,与没有隐层的效果是一样的,这就是最原
始的感知机了。
常用的激励函数有:
- Sigmoid
- Tanh
- ReLU
- Leaky ReLU
- ELU
- Maxout
激励函数建议:首先ReLU,因为迭代速度快,但是有可能效果不加。如果ReLU失效的情况下,考虑使用
Leaky ReLU或者Maxout,此时一般情况都可以解决。Tanh函数在文本和音频处理有比较好的效果。
池化层(POOL):进行下采样,对特征图稀疏处理,减少数据运算量。
池化,也称为欠采样或下采样。要用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。
全连接层(FC):也称它为输出层,用于输出卷积计算后的结果。
经过前面若干次卷积+激励+池化后,终于来到了输出层,模型会将学到的一个高质量的特征图片全连接层。其实在全连接层之前,如果神经元数目过大,学习能力强,有可能出现过拟合。因此,可以引入dropout操作,来随机删除神经网络中的部分神经元,来解决此问题。还可以进行局部归一化(LRN)、数据增强等操作,来增加鲁棒性。
推荐阅读
-
R-FCN 论文理解 - I. R-FCN 入门 1.R-FCN 的贡献 提出位置敏感得分图,解决目标检测的位置敏感问题; 基于区域的全卷积网络框架,用于两阶段目标检测; 比 Faster-RCNN 快 2.5-20 倍(在 K40GPU 上使用 ResNet-101 网络,0.17 秒/图像);。 2.R-FCN 与传统两阶段网络的异同点 图 11 R-FCN 与传统两级网络的异同点 相同点:首先是两个两级检测框架(全卷积子网络+RoI-wise 子网络);其次是最终输出都是相应的类别和相应的 BB;不同点:如上图所示,R-FCN 与 Faster R-CNN 相比,R-FCN 有更深的共享卷积:如上图所示,与 Faster R-CNN 相比,R-FCN 有更深的共享卷积网络层,因此可以获得更多抽象特征;从图中表格可以看出,Faster R-CNN 的共享卷积子网络为 91 层,RoI-wise 子网络为 91 层。RoI-wise子网络为 10 层,而 R-FCN只有深度为 101 层的共享卷积子网络。与 R-CNN 相比,最大的区别在于直接获取整幅图像的特征图,然后提取相应的 ROI,而不是直接在不同的 ROI 上获取相应的特征图。
-
GO 语言入门指南:基本语法和常用功能说明(数据类型) | YTCA
-
与卷积神经网络(CNN)、视觉转换器功能的比较
-
详细介绍 CNN 卷积层的原理、结构和应用,讨论其在图像处理和计算机视觉任务中的重要性
-
CNN 入门 - CNN 层功能说明
-
用 SVD 压缩深度模型(DNN、CNN)的全连接层
-
从入门到实践:探索深度学习中的卷积神经网络(CNN)详解与代码实现
-
入门指南:了解Mask R-CNN和实现实例分割的Swin Transformer测试