• Tensorflow学习笔记No.6


    数据的批标准化

    本篇主要讲述什么是标准化,为什么要标准化,以及如何进行标准化(添加BN层)。

    1.什么是标准化

      传统机器学习中标准化也叫做归一化。

      一般是将数据映射到指定的范围,用于去除不同维度数据的量纲以及量纲单位(说白了就是让数据尽可能处于某个范围内)。

      数据标准化让机器学习模型看到的不同样本彼此之间更加相似,这有助于模型的学习与对新数据的泛化

      常见的数据标准化形式:

         标准化:

        将数据减去其平均值使其中心值为0,然后将数据除以其标准差使其标准差为1。

        归一化:

        将数据减去最小值除以最大时,使取值范围压缩到0~1之间。

       批标准化:

      Batch Normalization(BN),批标准化

       和普通的数据标准化类似,是将分散的数据统一的一种做法,也是优化神经网络的一种方法。

       不仅在数据输入之前对数据做标准化,在网络模型的每一次变换之后都应该考虑数据的标准化。

       即使在训练过程中,均值和方差随着时间发生变化,它也可以适应性的将数据标准化。

    2.为什么要做批标准化

       批标准化解决的问题是梯度消失梯度爆炸

       批标准化是一种训练优化方法

      梯度消失与梯度爆炸:

        对于激活函数,之前一直使用Sigmoid函数,其函数图像成一个S型,如下所示,它会使得输出在[0, 1]之间:

    S(x) = frac{1}{1+e^{-x}} = frac{e^x}{e^x+1}

     
        如果我们输入的数据在0附近左右均匀分布,x的变化就会引起y的正常变化,就是一个正常的梯度变化。
       但是,当数据全部非常大,或者非常小的时候,x上的变化几乎不会引起y的变化,训练的速度就会非常缓慢,且效果差,这种情况就称为梯度消失。同理,在其他的激活函数中,也会出现数据范围导致的梯度异常激增,x上的微小变化就会导致y的剧烈变化,从而影响训练效果,这种情况称之为梯度爆炸。

      批标准化的好处:

      数据预处理可以加速收敛,同理,在神经网络中使用批标准化也可以加速收敛,而且还有更多的优点。

      1.具有正则化的效果(抑制过拟合)。

      2.提高模型泛化能力。

      3.允许更高的学习率从而加速收敛。

      4.批标准化有助于梯度的传播,因此能够使用更深的网络进行训练。对于特别深的神经网络,只有包含多个Batch Normalization(BN)层才能进行训练。

    3.tensorflow实现批标准化

      Batch Normalization通常在卷积层或者全连接层之后使用(原始论文中一般是应用于卷积层或全连接层之后,在激活函数之前。但是,实际上放在激活函数之后效果可能更好)。

      使用tf.keras.layers.Batchnormalization()来实现。

      tf.keras.layers.Batchnormalization()不仅可以处理训练数据的均值和方差,也可以在预测时,根据训练数据均值和方差的期望值对测试数据进行处理。

      代码: 

    1 model.add(tf.keras.layers.Conv2D(64, (3, 3)))
    2 model.add(tf.keras.layers.BatchNormalization())
    3 model.add(tf.keras.layers.Activation('relu'))
    4 #两种BN层插入方式
    5 model.add(tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu'))
    6 model.add(tf.keras.layers.BatchNormalization())
  • 相关阅读:
    Python列表和元组知识点
    Python 字符串操作常用知识点
    ng-alain的sf如何自定义部件
    Spring-手写Spring注解版本事务,Spring事物的七大传播行为
    Spring-SpringAOP原理,手写Spring事务框架
    JVM性能优化--类加载器,手动实现类的热加载
    JVM性能优化--字节码技术
    JVM性能优化--JVM参数配置,使用JMeter简单测试配合说明参数调优
    JVM性能优化--Java的垃圾回收机制
    设计模式之原型模式、策略模式、观察者模式
  • 原文地址:https://www.cnblogs.com/VioletOrz/p/13787658.html
Copyright © 2020-2023  润新知