https://zhuanlan.zhihu.com/p/33173246

阅读笔记

1. normalization

whiting - PCA

2. Internal Covariate Shift,简称 ICS.

“源空间(source domain)和目标空间(target domain)的数据分布(distribution)不一致 “,covariate shift 就是分布不一致假设之下的一个分支问题,它是指源空间和目标空间的条件概率是一致的,但是其边缘概率不同。

输入的数据在神经网络的高层变化会非常的剧烈,所以高层就要不断的去调整学习率等参数。ICS会导致:上层不断的适应输入数据分布的变化,导致学习速度下降;下层的数据变化可能趋于变大或变小,导致上层落入饱和区,学习过早停止;每层的更新都会影响到其它层,所以每层的更新都要谨慎。

解决独立同分布的问题,就是进行白化,但是标准的白化太耗费资源,所以采用BN。

3. BN

基本思想是:在将 送给神经元之前,先对其做平移和伸缩变换, 将 的分布规范化成在固定区间范围的标准分布。通用变换框架就如下所示:

(1) 平移参数(shift parameter), 缩放参数(scale parameter)。通过这两个参数进行 shift 和 scale 变换: 得到的数据符合均值为 0、方差为 1 的标准分布。

(2) 再平移参数(re-shift parameter), 再缩放参数(re-scale parameter)。将 上一步得到的 进一步变换为:

最终得到的数据符合均值为 、方差为 的分布。

PS.把数据编导0-1标准分布又变回来的原因:如果只是把底层的数据分布变到0-1标准分布,那么就相当于底层的学习做了无用功,无论他怎么学,最后都只变到一个很小的范围里,看不太出来学习的效果;第二个就是神经元节点的输出要经过sigmoid函数,之所以利用这个函数的原因就是利用它具有饱和区的特性,筛掉一些过大过小的成分,而如果只是0-1标准分布的话,就一直在函数的线性部分,没有办法充分发挥函数的作用。而且变到标准型再变回到正常的分布并不是无用功,新的参数是学习得来的,去除了与下层计算的密切耦合。新参数很容易通过梯度下降来学习,简化了神经网络的训练。

4. 四种方法优缺点

分别竖着处理x,横着处理x,处理g(权重),· 改成余弦相似度

  • batch normalization

    • 分布差距较小的 mini-batch 可以看做是为规范化操作和模型训练引入了噪声,可以增加模型的鲁棒性;但如果每个 mini-batch的原始分布差别很大,那么不同 mini-batch 的数据将会进行不一样的数据变换,这就增加了模型训练的难度。
    • BN 比较适用的场景是:每个 mini-batch 比较大,数据分布比较接近。在进行训练之前,要做好充分的 shuffle. 否则效果会差很多
    • 不适用于 动态的网络结构 和 RNN 网络,因为 BN 需要在运行过程中统计每个 mini-batch 的一阶统计量和二阶统计量
  • layer normalization
    • 针对单个训练样本进行,不依赖于其他数据,因此可以避免 BN 中受 mini-batch 数据分布影响的问题,可以用于 小mini-batch场景、动态网络场景和 RNN,特别是自然语言处理领域。此外,LN 不需要保存 mini-batch 的均值和方差,节省了额外的存储空间
    • BN 的转换是针对单个神经元可训练的——不同神经元的输入经过再平移和再缩放后分布在不同的区间,而 LN 对于一整层的神经元训练得到同一个转换——所有的输入都在同一个区间范围内。如果不同输入特征不属于相似的类别(比如颜色和大小),那么 LN 的处理可能会降低模型的表达能力
  • weight normalization
    • WN 的规范化不直接使用输入数据的统计量,因此避免了 BN 过于依赖 mini-batch 的不足,以及 LN 每层唯一转换器的限制,同时也可以用于动态网络结构。
  • Cosine Normalization
    • CN 通过用余弦计算代替内积计算实现了规范化。原始的内积计算,其几何意义是 输入向量在权重向量上的投影,既包含 二者的夹角信息,也包含 两个向量的scale信息。去掉scale信息,可能导致表达能力的下降.

5. 为什么用?

  • 权重伸缩不变性:1-4

    有效地提高反向传播的效率,避免了反向传播时因为权重过大或过小导致的梯度消失或梯度爆炸问题,从而加速了神经网络的训练;具有参数正则化的效果,可以使用更高的学习率。

  • 数据伸缩不变性:1-3

    有效地减少梯度弥散,简化对学习率的选择

normalization 阅读笔记的更多相关文章

  1. Gated CNN 阅读笔记

    之前看过TCN,稍微了解了一下语言模型,这篇论文也是对语言模型建模,但是由于对语言模型了解不深,一些常用数据处理方法,训练损失的计算包括残差都没有系统的看过,只是参考网上代码对论文做了粗浅的复现.开学 ...

  2. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

  3. [阅读笔记]Software optimization resources

    http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++   7. The efficiency of differe ...

  4. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  5. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

  6. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  7. Hadoop阅读笔记(七)——代理模式

    关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...

  8. Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable

    酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...

  9. Hadoop阅读笔记(五)——重返Hadoop目录结构

    常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...

随机推荐

  1. HTML(form标签)、CSS选择器一

    一.表单标签<form> 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互. 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含t ...

  2. 关于Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.的解决方案

    Warning: setState(...): Can only update a mounted or mounting component. This usually means you call ...

  3. 判断input[type=file]上传文件格式

    input type="file" 在js中判断文件上传类型 function onSubmit(){ var form1 = document.forms[0]; var fil ...

  4. Leetcode 1020. 将数组分成和相等的三个部分

    1020. 将数组分成和相等的三个部分  显示英文描述 我的提交返回竞赛   用户通过次数321 用户尝试次数401 通过次数324 提交次数883 题目难度Easy 给定一个整数数组 A,只有我们可 ...

  5. vue虚拟DOM源码学习-vnode的挂载和更新流程

    代码如下: <div id="app"> {{someVar}} </div> <script type="text/javascript& ...

  6. PhpDocumentor 生成文档

    最近项目需要phpdoc生成文档,首先安装PhpDocumentor,利用pear安装: 切换用户: su root 安装PhpDocumentor: pear install PhpDocument ...

  7. Python3+BaiduAI识别高颜值妹子图片

    一.在百度云平台创建应用 为什么要到百度云平台创建应用,首先来说是为了获取获取access_token时需要的API Key和Secret Key 至于为什么需要API Key和Secret Key才 ...

  8. /etc/profile、~/.bash_profile、~/.bashrc和/etc/bashrc

    文件 引用关系 执行时间 影响用户 使用场景 /etc/profile   开机执行 所有用户 所有用户.重启生效 ~/.bash_profile 引用~/.bashrc 用户登录时执行 当前用户 当 ...

  9. python 转换代码格式

    import os dirname="C:\\Users\\haier\\Desktop\\new" def walk(path): for item in os.listdir( ...

  10. Win10系列:JavaScript 项目模板中的文件和项模板文件

    通过上面内容的学习,相信读者已经对各种项目模板和项模板有了大致的了解,本节将进一步介绍项目模板中默认包含的项目文件以及项模板文件,首先讲解这些文件中的初始内容以及作用,然后介绍在一个页面中如何添加控件 ...