深度学习图像算法工程师--面试准备(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 可能导致收敛速度较慢,需要更多的训练时间。
相关推荐
桃花键神31 分钟前
AI可信论坛亮点:合合信息分享视觉内容安全技术前沿
人工智能
野蛮的大西瓜1 小时前
开源呼叫中心中,如何将ASR与IVR菜单结合,实现动态的IVR交互
人工智能·机器人·自动化·音视频·信息与通信
CountingStars6191 小时前
目标检测常用评估指标(metrics)
人工智能·目标检测·目标跟踪
yuanbenshidiaos1 小时前
C++----------函数的调用机制
java·c++·算法
唐叔在学习1 小时前
【唐叔学算法】第21天:超越比较-计数排序、桶排序与基数排序的Java实践及性能剖析
数据结构·算法·排序算法
tangjunjun-owen1 小时前
第四节:GLM-4v-9b模型的tokenizer源码解读
人工智能·glm-4v-9b·多模态大模型教程
冰蓝蓝1 小时前
深度学习中的注意力机制:解锁智能模型的新视角
人工智能·深度学习
橙子小哥的代码世界2 小时前
【计算机视觉基础CV-图像分类】01- 从历史源头到深度时代:一文读懂计算机视觉的进化脉络、核心任务与产业蓝图
人工智能·计算机视觉
ALISHENGYA2 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(switch语句)
数据结构·算法
chengooooooo2 小时前
代码随想录训练营第二十七天| 贪心理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
算法·leetcode·职场和发展