算法岗常见面试题(一):归一化
第一次被问到归一化是超参数科技,之后五次面试三次都会问到归一化。。。
BN【深度学习】深入理解Batch Normalization批标准化
LN和BN的区别(超参数一面)
LN是根据一个样本的特征数进行归一化;BN是根据不同样本的同一特征归一化
为什么文本中用LN更好,而在图片中要跨batch做归一化?(超参数一面)
在文本中使用BN会遇到以下问题:
- 各个样本的长度都是不同的,但统计到比较靠后的时间片时,可能只有一个样本还有特征数据,这时基于这个样本的统计信息无法反映全局分布,这时的BN效果会不好。
- 如果在测试时遇到长度大于任何一个训练样本的测试样本,无法找到保存的归一化统计量,所以BN无法运行。
- 以上问题,都是由于计算归一化统计量时计算的样本数太少。 LN独立于batch-size,无论样本数多少都不会影响到参与LN计算的数据量。
LN的公式?(超参数一面)
先分别计算均值和标准差
均值
标准差
其中,为一层中隐藏节点数目
通过均值和方差可以得到归一化后的值:
其中,是一个很小的数,为了防止除0再乘以增益,加上偏置
这一操作的目的是保证归一化操作不会破坏之前的信息。
LN为什么要先把他映射为均值为0,方差为1,有做scale?(超参数一面)
直接变换为正态分布会导致网络表达能力下降,为了防止这一点,每个神经元增加两个调节参数(scale和shift),这两个参数是通过训练来学习到的,用来对变换后的激活反变换,使得网络表达能力增强,保证归一化操作不会破坏之前的信息,让归一化操作有可能还原最初的输入。
LN的优点
- LN得到的模型更稳定
- LN有正则化的作用,得到的模型更不容易拟合