zl程序教程

您现在的位置是:首页 >  其他

当前栏目

算法工程师面试之归一化操作

工程师算法面试 操作 归一化
2023-09-14 09:13:20 时间

前言

  • 文章来源:CSDN@LawsonAbs
  • 本文参考《NNDL》
  • 其实更应该考虑:在什么时候使用这个归一化操作,比如我们要融入外部知识到当前向量后,是直接做加和操作,还是执行什么操作?

1. 归一化是什么?

2. 为什么要归一化?

可以从如下两个方向来说明:

  • 梯度更新
  • 参数选择

3. 主流的归一化方法

3.1 线性函数归一化

比较简单,相当于使用一个映射函数:
x = x − x m i n x m a x − x m i n x = \frac{x-x_{min}}{x_{max}-x_{min}} x=xmaxxminxxmin

3.2 零均值归一化

得到样本的均值 μ \mu μ,方差 σ 2 \sigma^2 σ2,然后更新表示:
x = x − μ σ x = \frac{x-\mu}{\sigma} x=σxμ

torch.nn.functional.normalize()

这个直接就是根据范数来归一化。具体示例如下:
在这里插入图片描述

3.4 batch normalization

批量归一化:指的是将一个batch中的数据按照各个特征维度进行归一化。【从特征维度出发】
缺点:一个batch中的样本数要足够,否则就很能体现出有时候。

3.5 layer normalization

层归一化:指的是将同条样本的各个特征数据求均值,然后除以标准差。【从样本维度出发】
具体示例如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述