深度学习图像算法工程师--面试准备(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 可能导致收敛速度较慢,需要更多的训练时间。
相关推荐
IT_陈寒3 分钟前
Java并行流把我坑惨了:原来不是线程安全的!
前端·人工智能·后端
石逸凡7 分钟前
AI驱动的金融IT架构转型升级
人工智能·金融·架构
染指111010 分钟前
76.高级RAG-后检索器(时间排序)
人工智能·python·llama_index·llamaindex
小雷信息医学21 分钟前
5 篇老年队列套路拆解第 3 篇:单库 + U 型新指标 + Cox + RCS 拐点
人工智能·机器学习
少冰22 分钟前
从数据清洗到 Docker 部署:我在本地训练了一个中医领域 Qwen3 模型
人工智能
opensnn26 分钟前
当闭源AI遇上开源反击:未来竞争的核心不是模型,而是生态
人工智能·开源
一碗白开水一34 分钟前
入门实践工程九:基于 BERT 的中文情感分类微调~附:安装依赖库及工程源码
人工智能·深度学习·机器学习·自然语言处理·分类·bert
空堂与归37 分钟前
大模型幻觉:一篇文章搞懂成因、分类与四种解决方案
人工智能
Forever Nore39 分钟前
LeetCode 1 两数之和
算法·leetcode·职场和发展
CoordClaw44 分钟前
主流多智能体架构为什么大多失败——它们输在结构,不在模型
人工智能·架构