CNN的层级结构
Posted yongfuxue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CNN的层级结构相关的知识,希望对你有一定的参考价值。
CNN的层级结构
1、CNN的层级结构包括:
数据输入层/ Input layer
卷积计算层/ CONV layer
ReLU激励层 / ReLU layer
池化层 / Pooling layer
全连接层 / FC layer
Batch Normalization层(可能有)
2、一般 CNN 结构依次为:
INPUT
[[CONVà RELU]*N àPOOL]*M
[FC àRELU]*K
FC
数据输入层/ Input layer
有3种常见的数据处理方式:
1)去均值
2)把输入数据各个维度都中心化到0
3)归一化
幅度归一化到同样的范围
4)PCA/白化
用PCA降维
白化是对数据每个特征轴上的幅度归一化
卷积层
1)涉及概念:
深度(depth) : 顾名思义,它控制输出单元的深度,也就是filter的个数,连接同一块区域的神经元个数。
步幅(stride):它控制在同一深度的相邻两个隐含单元,与他们相连接的输入区域的距离。如果步幅很小(比如 stride = 1)的话,相邻隐含单元的输入区域的重叠部分会很多; 步幅很大则重叠区域变少。
补零(zero-padding) : 我们可以通过在输入单元周围补零来改变输入单元整体大小,从而控制输出单元的空间大小。
2)参数共享机制
- 每个卷积核连接数据窗的权重是固定的,这样需要估算的权重个数减少
- 可以把卷积核看做模板,每个卷积核只关注一个特性
- 一组固定的权重和不同窗口内数据做内积: 卷积
激励层
激励层的作用是把卷积层输出结果做非线性映射
实际经验
①?CNN尽量不要用sigmoid
②?首先试RELU,因为快,但要小心点
③?如果2失效,请用Leaky ReLU
④?某些情况下tanh倒是有不错的结果,但是很少
池化层
夹在连续的卷积层中间
压缩数据和参数的量,减小过拟合
类别:
Max pooling
average pooling
全连接层
两层之间所有神经元都有权重连接
通常全连接层在卷积神经网络尾部
批规范化(Batch normalization)
批规范化(Batch normalization)是深度学习中经常见到的一种训练trick,指在采用梯度下降法训练DNN时,对网络层中每个mini-batch的数据进行归一化,使其均值变为0,方差变为1,其主要作用是缓解DNN训练中的梯度消失/爆炸现象,加快模型的训练速度。
以上是关于CNN的层级结构的主要内容,如果未能解决你的问题,请参考以下文章