[CV]一些关于计算机视觉面试题的整理

本文详细探讨了批量标准化(Batch Normalization, BN)在深度学习中的作用,解释了BN如何解决梯度消失问题,以及在训练和测试时的不同处理方式。BN的参数γ和β的作用在于优化特征数据分布,提高模型的非线性表达力。面试中可能涉及BN的问题包括其使用时机、训练与测试的区别,以及BN对模型稳定性和计算量的影响。此外,还提到了BN与Layer Normalization(LN)的区别,以及激活函数、正则化等概念。" 104576942,7578966,HFSS教程:定义天线阵列的三种方法,"['电磁仿真', '天线设计', 'HFSS软件', '阵列布局', '电磁计算']
摘要由CSDN通过智能技术生成
  •  Batchnormalization

批量标准化

深度学习有个本质性的问题:随着网络深度加深,训练起来困难,本质是反向传播的时候梯度消失。

比如我们看sigmoid函数

        
​​​图源百度百科

显而易见的就是在大于4的时候,函数已经变化非常平缓了,也就是再训练下去就要梯度消失了。在训练的时候,非线性映射后,特征数据会逐渐向激活函数的输出区间的上下两端靠近,此时BN就是对这些逐渐向饱和区冲过去的数据拉回来。拉回到均值为0,方差为1的正态分布。使得输入神经元的数据可以进入到激活函数比较敏感的区域。

那BN又要怎么做呢

步骤如下

 先求这一批数据的均值,然后求出方差,将其标准化,最后再做一个扩展和平移。扩展和平移的参数\gamma 和 \beta 是网络学习得到的。

我一直不是很明白这个\gamma 和 \beta 的作用。

有人这样说:会与其他待训练参数一同被训练化,使标准正态分布后的特征数据通过缩放因子和偏移因子,优化了特征数据分布的宽窄和偏移量。保证了网络的非线性表达力(如果不加入这两个参数,相当于这一层所学习的特征分布被搞坏了)。

也有人这样说:scale、shift是两个独立的参数,也即和数据是没有依赖关系的,它们完全有可能将BN的作用给抵消掉,然而这恰好也是这个方法的优势,可以根据具体情况由网络自身在训练过程中来决定需不需要BN。

还有人这样说:原来这是为了让神经网络自己去学着使用和修改这个扩展参数 gamma, 和 平移参数 β, 这样神经网络就能自己慢慢琢磨出前面的 normalization 操作到底有没有起到优化的作用, 如果没有起到作用, 我就使用 gamma 和 beta来抵消一些 normalization 的操作。

可能最后一个好理解一点。但还是有点模糊。

接下来 面试时候可能会问到关于BN的哪些问题呢?

BN训练和测试时的参数是一样的嘛?

对于BN,在训练时,是对每一批的训练数据进行归一化,也即用每一批数据的均值和方差。而在测试时,比如进行一个样本的预测,就并没有batch的概念,因此,这个时候用的均值和方差是全量训练数据的均值和方差,这个可以通过移动平均法求得。当一个模型训练完成之后,它的所有参数都确定了,包括均值和方差。

BN训练时为什么不用全量训练集的均值和方差呢?

因为用全量训练集的均值和方差容易过拟合,对于BN,其实就是对每一批数据进行归一化到一个相同的分布,而每一批数据的均值和方差会有一定的差别,而不是用固定的值,这个差别实际上能够增加模型的鲁棒性,也会在一定

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值