批标准化,池化,舍弃(CNN)

  • Post author:
  • Post category:其他




批标准化

标准化:使数据符合0均值,1标准差的分布

批标准化:对一个batch做标准化,常用在卷积操作和激活操作之间

BN操作使原本偏移的特征数据重新拉回到0均值

BN操作会引入γ和β两个参数,保证BN操作后网络仍具有非线性表达能力,γ和β会与其他待训练参数一同被训练优化

BN层位于卷积层之后,激活层之前

卷积层->批标准化层->激活层

TF描述批标准化:tf.keras.layers.BatchNormalization()

model=tf.keras.models.Sequential([
    Conv2D(filters=6,kernel_size=(5,5),padding='valid'),  # 卷积层
    BatchNormalization(),  # BN层
    Activation('relu'),  # 激活层
    MaxPool2D(pool_size=(2,2),strides=2),  # 池化层
    Dropout(0.2),  # dropout层
])



池化:池化用于减少特征数据量

分为最大池化和均值池化

在这里插入图片描述

tf.keras.layers.MaxPool2D(
    pool_size=池化核尺寸,  #正方形写核长整数,或(核高h,核宽w)
    strides=池化步长,  #步长整数,或(纵向步长,横向步长),默认为pool_size
    padding='valid' or 'same'  #使用全零填充与否
)

tf.keras.layers.AveragePool2D(
    pool_size=池化核尺寸,  #正方形写核长整数,或(核高h,核宽w)
    strides=池化步长,  #步长整数,或(纵向步长,横向步长),默认为pool_size
    padding='valid' or 'same'  #使用全零填充与否
)



MaxPool2D(pool_size=(2,2),strides=2,padding=‘same’)



舍弃:

为了缓解过拟合,在NN训练过程中,常把隐藏层的部分神经元按照一定比例从神经网络中临时舍弃;在使用神经网络时,再把所有神经元恢复到神经网络中

在这里插入图片描述

TF描述舍弃:tf.keras.layers.Dropout(舍弃的概率)



Dropout(0.2), # 舍弃概率是0.2



卷积神经网络:

借助卷积核对输入特征进行特征提取,再把提取到的特征送入全连接网络进行识别预测

在这里插入图片描述



版权声明:本文为qq_57780419原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。