深度学习|表示学习|CNN中的Layer Normalization | 25

如是我闻: 在 CNN 中,每个样本在经过一层隐藏层(通常是卷积层 + 激活函数)后,确实会变成一组特征图(Feature Maps)。所以,在 CNN 里,Layer Normalization 主要作用在通道(C 维度)上,而不是 batch 维度。


📌 为什么 CNN 中 Layer Normalization 作用在通道维度(C)?

在 CNN 里,每个输入样本(比如一张图片)经过一层卷积层后,会变成一组特征图:
输入尺寸: ( C in , H , W ) ⇒ 输出尺寸: ( C out , H , W ) \text{输入尺寸:} (C_{\text{in}}, H, W) \quad \Rightarrow \quad \text{输出尺寸:} (C_{\text{out}}, H, W) 输入尺寸:(Cin,H,W)⇒输出尺寸:(Cout,H,W)

  • ( C in (C_{\text{in}} (Cin 是输入通道数(比如 RGB 图像有 3 个通道)。
  • C out C_{\text{out}} Cout 是卷积后的输出通道数(通常会增加,比如 64 个通道)。
  • H 和 W 代表特征图的空间大小。

📌 CNN 的每一层输出的不是一个数值,而是一组特征图!

  • 在 CNN 里,每个样本在每一层都会产生 多个特征图(Feature Maps),每个通道表示不同的特征(比如边缘、纹理、颜色等)。
  • 也就是说,CNN 里,每个样本的隐藏层输出是一个 (C, H, W) 维度的张量,而不是一个单独的数值向量

📌 传统的 Layer Normalization 作用在 MLP(全连接网络)中

在 MLP(多层感知机)里,每一层的神经元输出是一个 向量 (比如一个 128 维的隐藏层向量):
x = [ x 1 , x 2 , . . . , x 128 ] x = [x_1, x_2, ..., x_{128}] x=[x1,x2,...,x128]

  • 在 MLP 里,Layer Normalization 直接对这个向量归一化 ,计算它的均值和标准差:
    μ = 1 H ∑ i = 1 H x i , σ = 1 H ∑ i = 1 H ( x i − μ ) 2 \mu = \frac{1}{H} \sum_{i=1}^{H} x_i, \quad \sigma = \sqrt{\frac{1}{H} \sum_{i=1}^{H} (x_i - \mu)^2} μ=H1i=1∑Hxi,σ=H1i=1∑H(xi−μ)2
    • 这里的 H H H 是隐藏层的维度(比如 128)。

📌 CNN 里 Layer Normalization 的特殊性

在 CNN 里,每一层的输出是一个 3D 特征图:
( X ∈ R C × H × W ) (X \in \mathbb{R}^{C \times H \times W}) (X∈RC×H×W)

  • 在 CNN 里,我们不能像 MLP 那样直接对整个向量归一化,而是要考虑 H 和 W 维度。
  • Layer Normalization 在 CNN 里,通常会对通道(C 维度)单独归一化 ,即:
    • 对每个样本的每个通道单独计算均值和标准差 ,然后归一化:
      μ = 1 H × W ∑ i = 1 H ∑ j = 1 W x i , j \mu = \frac{1}{H \times W} \sum_{i=1}^{H} \sum_{j=1}^{W} x_{i,j} μ=H×W1i=1∑Hj=1∑Wxi,j
      σ = 1 H × W ∑ i = 1 H ∑ j = 1 W ( x i , j − μ ) 2 \sigma = \sqrt{\frac{1}{H \times W} \sum_{i=1}^{H} \sum_{j=1}^{W} (x_{i,j} - \mu)^2} σ=H×W1i=1∑Hj=1∑W(xi,j−μ)2
    • 也就是说,在 CNN 里,Layer Normalization 不是对整个通道(C 维度)求均值,而是对每个通道的 H × W 位置进行归一化

以上

相关推荐
Narutolxy2 小时前
大模型数据分析破局之路20250512
人工智能·chatgpt·数据分析
浊酒南街2 小时前
TensorFlow中数据集的创建
人工智能·tensorflow
2301_787552874 小时前
console-chat-gpt开源程序是用于 AI Chat API 的 Python CLI
人工智能·python·gpt·开源·自动化
虾球xz4 小时前
游戏引擎学习第268天:合并调试链表与分组
c++·学习·链表·游戏引擎
layneyao4 小时前
AI与自然语言处理(NLP):从BERT到GPT的演进
人工智能·自然语言处理·bert
Y3174294 小时前
Python Day23 学习
python·学习
jndingxin5 小时前
OpenCV 的 CUDA 模块中用于将多个单通道的 GpuMat 图像合并成一个多通道的图像 函数cv::cuda::merge
人工智能·opencv·计算机视觉
格林威5 小时前
Baumer工业相机堡盟工业相机的工业视觉中为什么偏爱“黑白相机”
开发语言·c++·人工智能·数码相机·计算机视觉
song_ly0015 小时前
深入理解软件测试覆盖率:从概念到实践
笔记·学习·测试
DIY机器人工房6 小时前
[6-2] 定时器定时中断&定时器外部时钟 江协科技学习笔记(41个知识点)
笔记·stm32·单片机·学习·江协科技