博客
关于我
batch norm参数
阅读量:272 次
发布时间:2019-03-01

本文共 941 字,大约阅读时间需要 3 分钟。

在阅读深度学习模型的源码时,常常会遇到一些与批量归一化(Batch Normalization,BN)相关的新参数。这些参数在不同模型中可能会有细微差别,但总体上具有相似的功能。以下是几个值得关注的参数:

  • epsilon

    为了防止归一化过程中分母出现零的情况(这通常会导致计算结果异常),epsilon作为一个非常小的数值被引入。它的作用是确保分母始终保持一定的值,从而避免除以零的错误。在批量归一化的算法中,epsilon通常会被设置为一个很小的数值,如1e-5。

  • momentum

    批量归一化需要计算加权移动平均数(Moving Average,MA),而momentum参数则是这个加权平均数的权重。在代码实现中,momentum通常被设置为一个接近1的数值(如0.9、0.99或0.999)。它的作用是赋予加权平均数一定的“惯性”,即历史平均值不会被完全替代。

  • use_precise_stats

    在批量归一化的训练过程中,模型会根据当前批次的数据计算均值和方差来进行归一化。但是在测试过程中,由于没有批量数据,模型需要使用预先计算好的滑动平均值(EMA)。这个滑动平均值的计算方式决定了模型的性能。当训练过程中计算的EMA不能很好地估计测试时的均值和方差时,批量归一化可能会失效。因此,use_precise_stats参数被引入,其作用是控制EMA的计算方式。如果lambda值(通常在0.9到0.99之间)过小,最近的批次数据对EMA的影响会过大,导致估计值不准确;如果lambda值过大,则需要更多的迭代才能得到稳定的结果。

  • num_batches_precise

    在使用precise batch norm(精确批归一化)时,模型会根据指定的批量数量(num_batches_precise)来计算测试时的均值和方差。这批量数量也是一个超参数,其选择对模型性能有重要影响。

  • 需要注意的是,虽然use_precise_stats和num_batches_precise都是精确批归一化的核心参数,但这种方法并不是主流的选择。因为EMA通常是有效的(当lambda值足够大且模型经过充分训练时),因此大多数情况下直接使用EMA来估计测试时的均值和方差是足够的。

    转载地址:http://mrvx.baihongyu.com/

    你可能感兴趣的文章
    thinkphp 常用SQL执行语句总结
    查看>>
    Oracle:ORA-00911: 无效字符
    查看>>
    Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
    查看>>
    TCP基本入门-简单认识一下什么是TCP
    查看>>
    tableviewcell 中使用autolayout自适应高度
    查看>>
    Orcale表被锁
    查看>>
    svn访问报错500
    查看>>
    org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
    查看>>
    org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxxx'异常
    查看>>
    org.apache.poi.hssf.util.Region
    查看>>
    org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
    查看>>
    org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
    查看>>
    org.hibernate.HibernateException: Unable to get the default Bean Validation factory
    查看>>
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
    查看>>
    org.tinygroup.serviceprocessor-服务处理器
    查看>>
    org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
    查看>>
    org/hibernate/validator/internal/engine
    查看>>