<深度学习优化策略-3> 深度学习网络加速器Weight Normalization_WN

前面我们学习过深度学习中用于加速网络训练、提升网络泛化能力的两种策略:Batch Normalization(Batch Normalization)和Layer Normalization(LN)。今天讨论另一种与它们类似的策略:Weight Normalization(Weight Normalization)。Weight Normalization是Batch Normalization的一种变体,与Batch Normalization最大不同点:对神经网络的权值向量W进行参数重写Reparameterization。

Reparameterization:机器学习/深度学习中常用的一种优化策略,Kingma在提出变分自动编码器(Variational Auto-Encoding,VAE)时,用于神经网络中采样的node进行梯度反向传播的一种方法。简单一句话概括一下Reparameterization:用一个简单的参数为Theta分布来逼近一个稍复杂的分布,通过重写目标函数Objective的期望,使目标函数变得更加容易计算的一种方法,下一期将深入介绍。

1、Weight Normalization与Batch Normalization对比

Weight Normalization和Batch Normalization都属于参数重写(Reparameterization)的方法,只是采用的方式不同,Weight Normalization是对网络权值W进行normalization,因此也称为Weight Normalization;Batch Normalization是对网络某一层输入数据进行normalization。。Weight Normalization相比Batch Normalization有以下三点优势:

1、Weight Normalization通过重写深度学习网络的权重W的方式来加速深度学习网络参数收敛,没有引入minbatch的依赖,适用于RNN(LSTM)网络(Batch Normalization不能直接用于RNN,进行normalization操作,原因在于:1、RNN处理的Sequence是变长的;2、RNN是基于time step计算,如果直接使用Batch Normalization处理,需要保存每个time step下,mini btach的均值和方差,效率低且占内存)。

2、Batch Normalization基于一个mini batch的数据计算均值和方差,而不是基于整个Training set来做,相当于进行梯度计算式引入噪声。因此,Batch Normalization不适用于对噪声敏感的强化学习、生成模型(Generative model:GAN,VAE)使用。相反,Weight Normalization对通过标量g和向量v对权重W进行重写,重写向量v是固定的,因此,基于Weight Normalization的Normalization可以看做比Batch Normalization引入更少的噪声。

3、不需要额外的存储空间来保存mini batch的均值和方差,同时实现Weight Normalization时,对深度学习网络进行正向信号传播和反向梯度计算带来的额外计算开销也很小。因此,要比采用Batch Normalization进行normalization操作时,速度快。

但是, Weight Normalization不具备Batch Normalization把网络每一层的输出Y固定在一个变化范围的作用。因此,采用Weight Normalization进行Normalization时需要特别注意参数初始值的选择。

2、Weight Normalization怎么实现的

对深度学习网络权值W进行normalization的操作公式如下:

方法很简单,通过一个标量g和一个向量V对权重向量W进行尺度变换。标量g的值一般为||W||,即权重W的大小。

此时的深度学习网络权值的梯度计算公式为:

梯度计算公式可以用另外一种方式来表示:

可见,可以通过向量V的大小||V||的变化对权重W进行norm约束,使得网络参数训练相对Learning rate更加鲁棒,即可以选择一个更大的学习速率来加速网络训练。

3、Weight Normalization和Batch Normalization关系

可以把Batch Normalization表示成如下公式形式:

其中,u(t)和v(t)分别是t的均值和方差,t = v / ||v|| * x。可见,当网络只有一层且每一层的输入x服从0均值且方差为1的标准正太分布时,u(t)= 0,v(t)= 1,此时,使用Weight Normalization和Batch Normalization进行Normalization起到的是一样的效果。

4、参考论文

[1] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

[2] Weight Normalization: A Simple Reparameterization to Accelerate Training of Deep Neural Networks

[3] Layer Normalization

更多深度学习在NLP方面应用的经典论文、实践经验和最新消息,欢迎关注微信公众号“深度学习与NLP”或“DeepLearning_NLP”或扫描二维码添加关注。

作者:lqfarmer
链接:https://www.jianshu.com/p/260f39a071fe
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/mfryf/p/11375142.html

时间: 2024-10-11 05:19:21

<深度学习优化策略-3> 深度学习网络加速器Weight Normalization_WN的相关文章

风险中性的深度学习选股策略

一.数据驱动型机器学习模型的问题 目前流行的机器学习方法,包括深度学习,大部分是数据驱动的方法,通过对训练集数据学习来提取知识.数据驱动型机器学习方法应用成功的前提是:从训练集数据中学习到的"知识"在样本外外推时依然适用. 当机器学习方法应用于投资领域时,一般是以历史数据作为训练集数据来训练模型,应用在未来的市场中.在深度学习多因子选股策略中,也是通过对历史股票行情数据的学习,来建立预测模型.此类机器学习方法在投资领域的应用是否会成功,取决于从历史数据中学习到的模型在未来的外推中是否有

【教育系统】《深度探讨》如何建设千万级网络教育在线学习支持系统?

1) 用户 建设开放性学习环境,用户的统一授权.认证.用户容量成为关键问题,用户通过认证/授权服务管理用户,达到统一的管理,并通过后台负载均衡管理,实现访问用户分流.资源访问分流,实现大用户量的管理. 建设支持超过千万人访问的一站式远程学习支持系统平台. 2) 资源 随着学习环境的建设和发展,资源的海量存储.分类细化已成为关键课题,系统通过虚拟化技术进行存储和相关运算,实现资源存储和调度,用以支撑不同学习过程和教学资源的存储隔离和应用共享. 3) 数据服务 定义和完善接口和服务内容,搭建集成环境

【深度学习系列1】 深度学习在腾讯的平台化和应用实践(转载)

转载:原文链接 [深度学习系列1] 深度学习在腾讯的平台化和应用实践 引言:深度学习是近年机器学习领域的重大突破,有着广泛的应用前景.随着Google公开 Google Brain计划,业界对深度学习的热情高涨.腾讯在深度学习领域持续投入,获得了实际落地的产出.我们准备了四篇文章,阐述深度学习的原理和在腾讯的实 践,介绍腾讯深度学习平台Mariana,本文为第一篇. 深度学习(Deep Learning)是近年来机器学习领域的热点,在语音识别.图像识别等领域均取得了突破性进展.腾讯提供广泛的互联

【深度学习系列4】深度学习及并行化实现概述

[深度学习系列4]深度学习及并行化实现概述 摘要: 深度学习可以完成需要高度抽象特征的人工智能任务,如语音识别.图像识别和检索.自然语言理解等.深层模型是包含多个隐藏层的人工神经网络,多层非线性结构使其具备强大的特征表达能力和对复杂任务建模能力.训练深层模型是长期以来的难题,近年来以层次化.逐层初始化为代表的一系列方法的提出给训练深层模型带来了希望,并在多个应用领域获得了成功.深层模型的并行化框架和训练加速方法是深度学习走向实用的重要基石,已有多个针对不同深度模型的开源实现,Google.Fac

分享《自然语言处理理论与实战》PDF及代码+唐聃+《深入浅出Python机器学习》PDF及代码+段小手+《深度学习实践:计算机视觉》PDF+缪鹏+《最优化理论与算法第2版》高清PDF+习题解答PDF+《推荐系统与深度学习》PDF及代码学习

<自然语言处理理论与实战>高清PDF,362页,带书签目录,文字可以复制:配套源代码.唐聃等著. <大数据智能互联网时代的机器学习和自然语言处理技术>PDF,293页,带书签目录,文字可以复制,彩色配图.刘知远等著.  下载: https://pan.baidu.com/s/1waP6C086-32_Lv0Du3BbNw 提取码: 1ctr <自然语言处理理论与实战>讲述自然语言处理相关学科知识和理论基础,并介绍使用这些知识的应用和工具,以及如何在实际环境中使用它们.由

UFLDL深度学习教程翻译之自我学习

一.概述 假设我们有足够强大的学习算法,得到较好结果的其中一种最靠谱的方法是给算法提供更多的数据.这验证了在机器学习的那句格言:"有时候获胜的不是谁有最好的算法,而是谁有最多的数据." 也许有人总能得到有标记的数据,但这么做成本很高.特别地,研究人员已经采用极致的工具例如AMT(亚马逊土耳其机器人)来得到大量训练集.尽管拥有大量的人们人工标记的数据相比拥有大量的研究人员的工程性质的特征已经迈进了一步,但还能做的更好.特别地,自我学习以及无监督特征学习的方法是说,如果我们让我们的算法从无

学习笔记TF037:实现强化学习策略网络

强化学习(Reinforcement Learing),机器学习重要分支,解决连续决策问题.强化学习问题三概念,环境状态(Environment State).行动(Action).奖励(Reward),目标获得最多累计奖励.强化学习模型根据环境状态.行动和奖励,学习出最佳策略,以最终结果为目标,不能只看某个行动当下带来的利益,还要看行动未来带来的价值. AutoEncoder属于无监督学习,MLP.CNN.RNN属于监督学习,强化学习目标变化.不明确,或不存绝对正确标签. Google Dee

Unity学习-优化_卡顿原因定位以及优化方案

除了Unity的一些组件优化技巧之外,更多的细节处于代码层面上 最近学习优化,看到一篇文章,写的很详细,从底层原理到我们 的实际处理,都有一些非常好的建议,可以推荐给小伙伴们看看 https://www.jianshu.com/p/289de89a6609 ===========如何定位程序的哪一个环节产生了过大的开销============ 使用Uinty的Profiler工具,可以比较精准快速的定位程序的哪一个位置产生了大开销 首先在build setting里面勾选Autoconnect

策略模式的学习之道

策略模式 1.需求分析: 一个考试系统,当考生的成绩通过后(成绩大于60分)会通过各种方式通知用户. 通知方式有:APP消息推送.短信.邮件.站内消息四种方式: 但是每种方式是否进行通知是要进行在表中配置的: 假设我们从表中查询后的对象如下: /** * 成绩对象 */ public class Score { //成绩 private int score; //是否使用app消息通知,使用0表示否,1表示是.下同 private int sendAPPMsg; //是否使用短信通知 priva