深度学习图像算法工程师--面试准备(2)

深度学习面试准备

深度学习图像算法工程师--面试准备(1)
深度学习图像算法工程师--面试准备(2)


文章目录

  • 深度学习面试准备
  • 前言
  • [一、Batch Normalization(批归一化)](#一、Batch Normalization(批归一化))
    • [1.1 具体步骤](#1.1 具体步骤)
    • [1.2 BN一般用在网络的哪个部分](#1.2 BN一般用在网络的哪个部分)
  • [二、Layer Normalization(层归一化)](#二、Layer Normalization(层归一化))
  • [三、 Internal Covariate Shift](#三、 Internal Covariate Shift)
  • 总结

前言

参考文章


一、Batch Normalization(批归一化)

  • BatchNormalization的作用是通过规范化的手段,将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使梯度变大,加快学习收敛速度,避免梯度消失的问题。
  • 使得每层网络的输入都服从(0,1)0均值,1方差分布,如果不进行BN,那么每次输入的数据分布不一致,网络训练精度自然也受影响。
  • 在Batch中进行 Normalization 计算,其实就是在每个通道进行一次计算,即计算范围是 [Batch, 1, Height,Width],计算次数是 Channel。

1.1 具体步骤

  1. 计算样本均值。
  2. 计算样本方差。
  3. 样本数据标准化处理。
  4. 进行平移和缩放处理。引入了γ和β两个参数。来训练γ和β两个参数。引入了这个可学习重构参数γ、β,让我们的网络可以学习恢复出原始网络所要学习的特征分布。

1.2 BN一般用在网络的哪个部分

先卷积再激活做BN

Conv+BN+Relu

Batch normalization 的 batch 是批数据, 把数据分成小批小批进行 stochastic gradient descent. 而且在每批数据进行前向传递 forward propagation 的时候, 对每一层都进行 normalization 的处理。

二、Layer Normalization(层归一化)

LN和BN不同,LN是根据样本的特征数来做归一化的,完全独立于batch size。在一个Layer中进行计算,可以理解是一个样本中进行Normalization,即计算范围是 [1, Channel, Height, Width],计算次数是 Batch。

常应用于循环神经网络(RNN)等结构,以解决对于不定长度序列的输入数据的归一化问题。

三、 Internal Covariate Shift

Internal Covariate Shift(内部协变量转移)是指神经网络在训练过程中每一层输入数据分布的变化,即随着网络参数的更新,每一层的输入数据的分布也会发生变化。这种内部协变量转移可能会导致训练过程变得更加困难,因为每一层都需要适应不断变化的输入数据分布。

Internal Covariate Shift 的问题在于,当神经网络每一层的输入数据的分布发生变化时,之前学习到的权重可能就不再适用,这会导致训练过程变得不稳定,需要更小的学习率和更仔细的调参来收敛。同时,由于每一层的输入数据分布的变化,网络可能需要更多的训练样本才能学到有效的表示。

为了解决 Internal Covariate Shift 的问题,批量归一化(Batch Normalization)被引入到神经网络中。批量归一化通过对每一层的输入数据进行归一化,使得每层的输入数据分布保持稳定,有助于加速训练过程、提高模型的泛化能力,并且减少对初始权重的依赖。


总结

  • BN的优点:

  • 可以解决"Internal Covariate Shift"

  • 解决梯度消失的问题(针对sigmoid),加快收敛速度。

  • 对初始权重不那么敏感:BN 使得网络对初始权重的选择不那么敏感,减少了调参的困难。

  • BN的缺点:

  1. 计算代价:BN 需要额外的计算量来计算均值和方差,可能会增加训练时间。
  2. 不适用于小批量数据:在小批量数据上表现可能不稳定,因为均值和方差的估计可能不准确。
  • LN的优点:
  1. 不依赖于batch size。
  2. 适用于RNN;
  • LN的缺点:
  1. 不适用于CNN。
  2. 针对具有多个连续特征的数据,进行特征之间的缩放,可能会导致量纲差异消失。
  3. 局部归一化:LN 是在每个样本中所有特征的维度上进行归一化,可能会丢失通道间的信息,不够全局。
  4. 缓慢的收敛速度:相对于 BN,LN 可能导致收敛速度较慢,需要更多的训练时间。
相关推荐
蚝油菜花几秒前
TheoremExplainAgent – AI教学双智能体,数理化定理自动转动画
人工智能·数学·开源
蚝油菜花3 分钟前
Archon – 开源 AI 智能体框架,自主生成代码构建 AI 智能体
人工智能·开源
eason_fan5 分钟前
前端手撕代码(bigo)
算法·面试
Hello kele6 分钟前
大型项目,选择conda还是Poetry要点分析
人工智能·python·conda·ai编程·poetry
SmallBambooCode9 分钟前
【人工智能】【Python】在Scikit-Learn中使用KNN(K最近邻算法)
人工智能·python·机器学习·scikit-learn·近邻算法
302wanger18 分钟前
ARTS-算法-长度最小的子数组
算法
訾博ZiBo25 分钟前
AI日报 - 2025年3月7日
人工智能
梓羽玩Python27 分钟前
一夜刷屏AI圈!Manus:这不是聊天机器人,是你的“AI打工仔”!
人工智能
Gene_INNOCENT28 分钟前
大型语言模型训练的三个阶段:Pre-Train、Instruction Fine-tuning、RLHF (PPO / DPO / GRPO)
人工智能·深度学习·语言模型
游戏智眼29 分钟前
中国团队发布通用型AI Agent产品Manus;GPT-4.5正式面向Plus用户推出;阿里发布并开源推理模型通义千问QwQ-32B...|游戏智眼日报
人工智能·游戏·游戏引擎·aigc