当前位置: 代码迷 >> 综合 >> 第3.1章 卷积神经网络(CNN)——Conv、Pool、FC、Activation Function、BN各个层的作用及原理
  详细解决方案

第3.1章 卷积神经网络(CNN)——Conv、Pool、FC、Activation Function、BN各个层的作用及原理

热度:93   发布时间:2024-02-01 16:37:32.0

第3.1章 卷积神经网络CNN-不同层的作用

    • 一、Convolution(CONV)
    • 二、Pooling(POOL)
    • 三、Fully Connected(FC)
    • 四、Activation Function
    • 五、Batch Normalization(BN)

【详见】卷积网络中三种类型的层

一、Convolution(CONV)

作用: 通过卷积层中卷积核运算,提取卷积核希望提取的特征

二、Pooling(POOL)

作用: Andrew Ng 对池化层的作用是这样解释的:“ConvNets often also use pooling layers to reduce the size of the representation, to speed the computation, as well as make some of the features that detects a bit more robust”。即减小图像大小、加速计算、使其检测出的特征更加健壮

三、Fully Connected(FC)

作用: 分类

四、Activation Function

【详见】第1.2章 神经网络中隐藏层、偏置单元、激活函数的作用(使用激活函数的原因)
作用: 为了得到更复杂的函数关系

五、Batch Normalization(BN)

【摘自】深度学习中 Batch Normalization为什么效果好?—— 答主:言有三
【摘自】帮助理解:参数优化方法

1)BN背景:

  • 在深度学习中,因为网络的层数非常多,如果数据分布在某一层开始有明显的偏移,随着网络的加深这一问题会加剧(这在BN的文章中被称之为internal covariate shift),进而导致模型优化的难度增加,甚至不能优化。所以,归一化就是要减缓这个问题。(防止“梯度弥散”
  • 随机梯度下降法(SGD)对于训练深度网络简单高效,但是需要人为选择参数,使用BN之后,可以不需要那么刻意的慢慢调整参数

2)BN的本质原理: 在网络的每一层输入的时候,插入了一个归一化层,也就是先做一个归一化处理(归一化至:均值0、方差为1),然后再进入网络的下一层。


如果是仅仅使用归一化公式,对网络某一层A的输出数据做归一化,然后送入网络下一层B,这样是会影响到本层网络A所学习到的特征的

比如网络中间某一层学习到特征数据本身就分布在S型激活函数的两侧,强制把它归一化处理后,相当于这一层网络所学习到的特征分布被搞坏了,这可怎么办?

于是文献使出了一招惊天地泣鬼神的招式:变换重构,引入了可学习参数γ、β,这就是算法关键之处。


3)BN作用: 通常BN网络层用在卷积层后,用于重新调整数据分布

4)BN带来的好处:

  • 减轻了对参数初始化的依赖,这是利于调参的朋友们的。
  • 训练更快,可以使用更高的学习率。
  • 一定程度上增加了泛化能力,dropout等技术可以去掉。
  相关解决方案