Zexian Li

Deep Learning杂记

2020-09-17 · 3 min read

数据归一化

数据归一化的核心形式:减去均值,除以标准差,施以线性映射。不同归一化方法的主要区别在于操作的feature map维度不同。归一化方法的示意图如下所示:BN是对每个通道内归一化;GN是对每个样本的几个通道进行归一化;LN和IN是GN的变种,LN是对每个样本内所有通道归一化,IN是对每个样本的每个通道内归一化。
归一化示意图
单纯使数据具有0均值和单位方差是不够的,这种规范化甚至可能会降低层的表达能力,例如使用Sigmoid激活函数时,受限于数据的范围,激活函数只有近似线性的部分被使用;同时底层神经元的努力不应被简单粗暴地通过归一化方式调整,为此添加两个线性参数(平移、缩放)来维持表达能力(将原数据x增强为ax+b形式)。
更多有关归一化的知识可参照Juliuszh的博客详解深度学习中的Normalization,BN/LN/WN,讲的非常之好!

BN和非线性激活层的前后顺序

先说结论,实测时将BN层放在ReLU层的后面的结果通常较好(尽管作者在论文中将ReLU放在BN层的后边)。
虽然没有明确的解释,但我们可以从玄学角度进行一定的思考:
(1)如tanh和sigmoid函数,相较于x的变化,y的变化比较小,容易出现梯度衰减的问题,此时在非线性激活前进行BN,可在一定程度上缓解梯度衰减;但ReLU的函数图像和前二者相去甚远,先ReLU后BN可能会有更好的平滑作用;
(2)对于后续的层,BN和ReLU的组合主要完成归一化操作。考虑到BN中两个可学习参数,先ReLU后BN的网络参数更满足0均值和单位方差,而先BN后ReLU可能会破坏这种数据归一格式。

precision & recall

precision = TP / (TP+FP)
recall = TP / (TP+FN)
FP是错判成正样本的样本(实际为负样本),precision准确率代表模型输出中实际正样本的比例;
FN是错判成负样本的样本(实际为正样本),recall召回率代表正样本被模型检出的比例。

AR@AN & mAP

AR@AN即Average Recall vs. Average Number of Proposals per Video,由于TAP任务只需要提出候选框而不需要进一步分类,故可用此指标衡量找的框是否够全。详细信息及代码可参照:activity-net页面
mAP即mean average precision,AP是在某一类别中PR曲线与坐标轴围成的面积,mAP是在所有种类中的均值。

如何拟合落地model时遇到的特殊案例

  1. trick/先验经验/人为设计特征
  2. 使用大量同类数据来进一步训练(金钱开销大)
  3. 虚拟引擎复现特定环境以产生数据(金钱时间开销大、实现困难)
Bad decisions make good stories.