• 机器视觉面试-查漏补缺


    一、深入理解Batch Normalization批标准化

    机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这时通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢?BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。

    BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前的激活输入值(就是那个x=WU+B,U是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值或正值),所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

    BN在训练的时候可以根据Mini-Batch里的若干训练实例进行激活数值调整,但是在推理(inference)的过程中,从所有训练实例中获得的统计量来代替Mini-Batch里面m个训练实例获得的均值和方差统计量

    BatchNorm为什么NB呢,关键还是效果好。**

  • 相关阅读:
    Github上标星98K!火爆全网的性能调优实战手册,出自腾讯T4大佬
    深入浅出Spring Boot自动装配:让开发更轻松
    注册商标流程,商标注册需要材料
    Vue 之 provide和inject的使用
    Recall:JS EventLoop
    为Arduino智能小车,做一款简易版的机智云APP
    开发3年入职饿了么P6,全靠这份MyBatis学习笔记了
    《牛客题霸-算法篇》刷题之NC339 翻转单词
    C++17结构化绑定
    《科学之路》读书笔记
  • 原文地址:https://blog.csdn.net/weixin_38346042/article/details/125882328