深度学习
  • 前言
  • 第一章:经典网络
    • ImageNet Classification with Deep Convolutional Neural Network
    • Very Deep Convolutional Networks for Large-Scale Image Recognition
    • Going Deeper with Convolutions
    • Deep Residual Learning for Image Recognition
    • PolyNet: A Pursuit of Structural Diversity in Very Deep Networks
    • Squeeze-and-Excitation Networks
    • Densely Connected Convolutional Networks
    • SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE
    • MobileNet v1 and MobileNet v2
    • Xception: Deep Learning with Depthwise Separable Convolutions
    • Aggregated Residual Transformations for Deep Neural Networks
    • ShuffleNet v1 and ShuffleNet v2
    • CondenseNet: An Efficient DenseNet using Learned Group Convolution
    • Neural Architecture Search with Reinforecement Learning
    • Learning Transferable Architectures for Scalable Image Recognition
    • Progressive Neural Architecture Search
    • Regularized Evolution for Image Classifier Architecture Search
    • 实例解析:12306验证码破解
  • 第二章:自然语言处理
    • Recurrent Neural Network based Language Model
    • Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
    • Neural Machine Translation by Jointly Learning to Align and Translate
    • Hierarchical Attention Networks for Document Classification
    • Connectionist Temporal Classification : Labelling Unsegmented Sequence Data with Recurrent Neural Ne
    • About Long Short Term Memory
    • Attention Is All you Need
    • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  • 第三章:语音识别
    • Speech Recognition with Deep Recurrent Neural Network
  • 第四章:物体检测
    • Rich feature hierarchies for accurate object detection and semantic segmentation
    • Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
    • Fast R-CNN
    • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
    • R-FCN: Object Detection via Region-based Fully Convolutuional Networks
    • Mask R-CNN
    • You Only Look Once: Unified, Real-Time Object Detection
    • SSD: Single Shot MultiBox Detector
    • YOLO9000: Better, Faster, Stronger
    • Focal Loss for Dense Object Detection
    • YOLOv3: An Incremental Improvement
    • Learning to Segment Every Thing
    • SNIPER: Efficient Multi-Scale Training
  • 第五章:光学字符识别
    • 场景文字检测
      • DeepText: A Unified Framework for Text Proposal Generation and Text Detection in Natural Images
      • Detecting Text in Natural Image with Connectionist Text Proposal Network
      • Scene Text Detection via Holistic, Multi-Channel Prediction
      • Arbitrary-Oriented Scene Text Detection via Rotation Proposals
      • PixelLink: Detecting Scene Text via Instance Segmentation
    • 文字识别
      • Spatial Transform Networks
      • Robust Scene Text Recognition with Automatic Rectification
      • Bidirectional Scene Text Recognition with a Single Decoder
      • multi-task learning for text recognition with joint CTC-attention
    • 端到端文字检测与识别
      • Reading Text in the Wild with Convolutional Neural Networks
      • Deep TextSpotter: An End-to-End Trainable Scene Text Localization and Recognition Framework
    • 实例解析:字符验证码破解
    • 二维信息识别
      • 基于Seq2Seq的公式识别引擎
      • Show and Tell: A Neural Image Caption Generator
      • Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
  • 第六章:语义分割
    • U-Net: Convolutional Networks for Biomedical Image Segmentation
  • 第七章:人脸识别
    • 人脸检测
      • DenseBox: Unifying Landmark Localization with End to End Object Detection
      • UnitBox: An Advanced Object Detection Network
  • 第八章:网络优化
    • Batch Normalization
    • Layer Normalization
    • Weight Normalization
    • Instance Normalization
    • Group Normalization
    • Switchable Normalization
  • 第九章:生成对抗网络
    • Generative Adversarial Nets
  • 其它应用
    • Holistically-Nested Edge Detection
    • Image Style Transfer Using Convolutional Nerual Networks
    • Background Matting: The World is Your Green Screen
  • Tags
  • References
由 GitBook 提供支持
在本页
  • 前言
  • 1. WN详解
  • 1.1 WN的计算
  • 1.2 WN的原理
  • 1.3 BN和WN的关系
  • 1.4 WN的参数初始化
  • 1.5 Mean-Only BN
  • 2. 总结

这有帮助吗?

  1. 第八章:网络优化

Weight Normalization

上一页Layer Normalization下一页Instance Normalization

最后更新于4年前

这有帮助吗?

tags:Normalization

前言

之前介绍的[2]和[3]都是在数据的层面上做的归一化,而这篇文章介绍的Weight Normalization(WN)是在权值的维度上做的归一化。WN的做法是将权值向量w\mathbf{w}w在其欧氏范数和其方向上解耦成了参数向量v\mathbf{v}v和参数标量ggg后使用SGD分别优化这两个参数。

WN也是和样本量无关的,所以可以应用在batchsize较小以及RNN等动态网络中;另外BN使用的基于mini-batch的归一化统计量代替全局统计量,相当于在梯度计算中引入了噪声。而WN则没有这个问题,所以在生成模型,强化学习等噪声敏感的环境中WN的效果也要优于BN。

WN没有一如额外参数,这样更节约显存。同时WN的计算效率也要优于要计算归一化统计量的BN。

1. WN详解

1.1 WN的计算

神经网络的一个节点计算可以表示为:

y=ϕ(w⋅x+b)y = \phi(\mathbf{w}\cdot\mathbf{x}+b)y=ϕ(w⋅x+b)

其中w\mathbf{w}w是一个kkk-维的特征向量,yyy是该神经节点的输出,所以是一个标量。在得到损失值后,我们会根据损失函数的值使用SGD等优化策略更新w\mathbf{w}w和bbb。WN提出的归一化策略是将w\mathbf{w}w分解为一个参数向量v\mathbf{v}v和一个参数标量ggg,分解方法为

w=g∣∣v∣∣v\mathbf{w} = \frac{g}{||\mathbf{v}||} \mathbf{v}w=∣∣v∣∣g​v

从上面WN的计算公式中我们可以看出WN并没有引入新的参数,

1.2 WN的原理

1.1节的梯度更新公式也可以写作:

推导方式如下:

这两个特征都会加速模型的收敛。

1.3 BN和WN的关系

1.4 WN的参数初始化

由于WN不像BN有规范化特征尺度的作用,所以WN的初始化需要慎重。作者建议的初始化策略是:

由于使用了样本进行初始化,所以这种初始化方法不适用于RNN等动态网络。

1.5 Mean-Only BN

基于WN的动机,文章提出了Mean-Only BN。这种方法是一个只进行减均值而不进行除方差的BN,动机是考虑到BN的除方差操作会引入额外的噪声,实验结果表明WN+Mean-Only BN虽然比标准BN收敛得慢,但它们在测试集的精度要高于BN。

2. 总结

和目前主流归一化方法不同的是,WN的归一化操作作用在了权值矩阵之上。从其计算方法上来看,WN完全不像是一个归一化方法,更像是基于矩阵分解的一种优化策略,它带来了四点好处:

  1. 更快的收敛速度;

  2. 更强的学习率鲁棒性;

  3. 可以应用在RNN等动态网络中;

  4. 对噪声更不敏感,更适用在GAN,RL等场景中。

说WN不像归一化的原因是它并没有对得到的特征范围进行约束的功能,所以WN依旧对参数的初始值非常敏感,这也是WN一个比较严重的问题。

上式中∣∣v∣∣||\mathbf{v}||∣∣v∣∣表示v\mathbf{v}v的欧氏范数。当v=w\mathbf{v}=\mathbf{w}v=w且g=∣∣w∣∣g = ||\mathbf{w}||g=∣∣w∣∣时,WN还原为普通的计算方法,所以WN的网络容量是要大于普通神经网络的。

图1:权值向量的分解可视化

当我们将ggg固定为∣∣w∣∣||\mathbf{w}||∣∣w∣∣时,我们只优化v\mathbf{v}v,这时候相当于只优化w\mathbf{w}w的方向而保留其范数。当v\mathbf{v}v固定为w\mathbf{w}w时,这时候相当于只优化w\mathbf{w}w的范数,而保留其方向,这样为我们优化权值提供了更多可以选择的空间,且解耦方向与范数的策略也能加速其收敛。

在优化ggg时,我们一般通过优化ggg的log级参数sss来完成,即g=esg = e^sg=es。

v\mathbf{v}v和ggg的更新值可以通过SGD计算得到:

∇gL=∇wL⋅v∣∣v∣∣∇vL=g∣∣v∣∣∇wL−g∇gL∣∣v∣∣2v\nabla_g L = \frac{\nabla_{\mathbf w}L \cdot \mathbf{v}}{||\mathbf{v}||} \qquad \nabla_{\mathbf{v}} L = \frac{g}{||\mathbf{v}||} \nabla_{\mathbf{w}} L - \frac{g\nabla_g L}{||\mathbf{v}||^2} \mathbf{v}∇g​L=∣∣v∣∣∇w​L⋅v​∇v​L=∣∣v∣∣g​∇w​L−∣∣v∣∣2g∇g​L​v

其中LLL为损失函数,∇wL\nabla_{\mathbf{w}}L∇w​L为w\mathbf{w}w在LLL下的梯度值。

∇vL=g∣∣v∣∣Mw∇wLwithMw=I−ww′∣∣w∣∣2\nabla_{\mathbf{v}} L = \frac{g}{||\mathbf{v}||} M_{\mathbf{w}} \nabla_{\mathbf w}L \quad \text{with} \quad M_{\mathbf{w}} = I - \frac{\mathbf{w}\mathbf{w}'}{||\mathbf{w}||^2}∇v​L=∣∣v∣∣g​Mw​∇w​LwithMw​=I−∣∣w∣∣2ww′​

倒数第二步的推导是因为v\mathbf{v}v是w\mathbf{w}w的方向向量。上面公式反应了WN两个重要特征:

g∣∣v∣∣\frac{g}{||\mathbf{v}||}∣∣v∣∣g​表明WN会对权值梯度进行g∣∣v∣∣\frac{g}{||\mathbf{v}||}∣∣v∣∣g​的缩放;

Mw∇wLM_{\mathbf{w}} \nabla_{\mathbf w}LMw​∇w​L表明WN会将梯度投影到一个远离于∇wL\nabla_{\mathbf w}L∇w​L的方向。

具体原因论文的说法比较复杂,其核心思想有两点:1.由于w\mathbf{w}w垂直于MwM_{\mathbf{w}}Mw​,所以∇vL\nabla_{\mathbf{v}}L∇v​L非常接近于垂直参数方向w\mathbf{w}w,这样对于矫正梯度更新方向是非常有效的;2.v\mathbf{v}v和梯度更新值中的噪声量成正比,而v\mathbf{v}v是和更新量成反比,所以当更新值中噪音较多时,更新值会变小,这说明WN有自稳定(self-stablize)的作用。这个特点使得我们可以在WN中使用比较大的学习率。

另一个角度从新权值的协方差矩阵出发的,假设w\mathbf{w}w的协方差矩阵是C\mathbf{C}C,那么v\mathbf{v}v的协方差矩阵D=(g2/∣∣v∣∣2)MwCMw\mathbf{D} = (g^2/||\mathbf{v}||^2)M_{\mathbf{w}}\mathbf{C}M_{\mathbf{w}}D=(g2/∣∣v∣∣2)Mw​CMw​,当去掉D\mathbf{D}D中的特征值后我们发现新的D\mathbf{D}D非常趋近于一个单位矩阵,这说明了w\mathbf{w}w是C\mathbf{C}C的主特征向量(dominant eigenvector),说明WN有助于提升收敛速度。

假设t=vxt = \mathbf{v} \mathbf{x}t=vx,μ[t]\mu[t]μ[t]和σ[t]\sigma[t]σ[t]分别为ttt的均值和方差,BN可以表示为:

t′=t−μ[t]σ[t]=vσ[t]x−μ[t]σ[t]t' = \frac{t-\mu[t]}{\sigma[t]} = \frac{\mathbf{v}}{\sigma[t]}\mathbf{x} - \frac{\mu[t]}{\sigma[t]}t′=σ[t]t−μ[t]​=σ[t]v​x−σ[t]μ[t]​

当网络只有一层且输入样本服从均值为0,方差为1的独立分布时,我们有μ[t]=0\mu[t]=0μ[t]=0且σ[t]=∣∣v∣∣\sigma[t] = ||\mathbf{v}||σ[t]=∣∣v∣∣,此时WN和BN等价。

v\mathbf{v}v使用均值为0,标准差为0.05的正态分布进行初始化;

ggg和偏置bbb使用第一批训练样本的统计量进行初始化:

g←1σ[t]b←−μ[t]σ[t]g \leftarrow \frac{1}{\sigma[t]} \qquad b \leftarrow \frac{-\mu[t]}{\sigma[t]}g←σ[t]1​b←σ[t]−μ[t]​
BN
LN
图1:权值向量的分解可视化