算法岗常见面试题(一):归一化

第一次被问到归一化是超参数科技,之后五次面试三次都会问到归一化。。。

BN【深度学习】深入理解Batch Normalization批标准化

LN和BN的区别(超参数一面)

LN是根据一个样本的特征数进行归一化;BN是根据不同样本的同一特征归一化

为什么文本中用LN更好,而在图片中要跨batch做归一化?(超参数一面)

在文本中使用BN会遇到以下问题:

  1. 各个样本的长度都是不同的,但统计到比较靠后的时间片时,可能只有一个样本还有特征数据,这时基于这个样本的统计信息无法反映全局分布,这时的BN效果会不好。
  2. 如果在测试时遇到长度大于任何一个训练样本的测试样本,无法找到保存的归一化统计量,所以BN无法运行。
  3. 以上问题,都是由于计算归一化统计量时计算的样本数太少。 LN独立于batch-size,无论样本数多少都不会影响到参与LN计算的数据量。

LN的公式?(超参数一面)

先分别计算均值和标准差

均值

\mu = \frac{1}{H} \sum_{i=1}^H a_i

标准差

\sigma = \sqrt {\frac{1}{H} \sum_{i=1}^H (a_i - \mu)^2}

其中,H为一层中隐藏节点数目

通过均值和方差可以得到归一化后的值\hat a:

\hat a = \frac{a-\mu}{\sqrt{\sigma^2+\epsilon}}

其中,\epsilon是一个很小的数,为了防止除0再乘以增益g,加上偏置b

h=f(g\bigodot\hat a +b)这一操作的目的是保证归一化操作不会破坏之前的信息

LN为什么要先把他映射为均值为0,方差为1,有做scale?(超参数一面)

直接变换为正态分布会导致网络表达能力下降,为了防止这一点,每个神经元增加两个调节参数(scale和shift),这两个参数是通过训练来学习到的,用来对变换后的激活反变换,使得网络表达能力增强,保证归一化操作不会破坏之前的信息,让归一化操作有可能还原最初的输入

LN的优点

  1. LN得到的模型更稳定
  2. LN有正则化的作用,得到的模型更不容易拟合
#算法面经#
全部评论
感谢分享,学习一下
点赞 回复 分享
发布于 2023-03-22 15:06 广东
感谢大佬分享
点赞 回复 分享
发布于 2023-03-22 15:15 广东
是标准化,不是归一化
点赞 回复 分享
发布于 09-10 22:23 北京

相关推荐

点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
12 64 评论
分享
牛客网
牛客企业服务