记录关于批量归一化的理解,如有出入还请批评指正。
一、批量归一化层主要作用在以下两种情况:
- 全连接层和卷积层的输出上,同时要在激活函数之前
- 还可以是全连接层和卷积层的输入上
二、关于“批量归一化对于全连接层时,是作用在特征维;对于卷积层,是作用在通道维”的理解:
全连接层:这里的“特征维”指的是全连接层输出的每一个特征(或称神经元输出)。全连接层的输出可以被视为一个向量,其中每个元素对应一个特征值。例如,如果全连接层的输出维度是100,则该层会产生一个长度为100的向量,每个元素代表一个不同的特征。
在批量归一化过程中,针对每个训练批次(batch)的数据,会对这100个特征分别进行比如均值为0,方差为1的操作。
卷积层:对于卷积层而言,比如输入是批量大小×通道数×高×宽,那么批量归一化是针对每一个像素点而言的,全部的像素点个数也就是批量大小×高×宽,全部加起来做平均(第一个样本的第一个通道内的高×宽个像素,加上第二个样本的第一个通道,...,第N个样本的第一个通道,得到第一个和)。简单理解看下面的例子: