首页 > 其他分享 >Layer Normalization

Layer Normalization

时间:2024-07-28 14:28:13浏览次数:13  
标签:Layer 方差 归一化 BatchNorm LayerNorm Normalization

一、Layer Norm

1.1 介绍

LayerNorm(Layer Normalization)是2016年提出的,随着Transformer等模型的大规模推广,LayerNorm出现频率也随之越来越高。其大体思想类似于BatchNorm,对输入的每个样本进行归一化处理,具体就是计算每个输入的均值和方差,归一化到均值为0,方差为1,另外还会学习\(\mathrm{g}\)和\(b\)来将方差和均值缩放从任意值。

1.2 作用

LayerNorm可以帮助模型收敛,原文中解释是因为其对输入进行了归一化操作,使得数据的分布更加稳定。

另外一篇文章Understanding and Improving Layer Normalization从梯度的角度对LayerNorm进行了分析,这篇文章的作者发现了以下两个结论,并提出了一个改进方法称为AdaNorm。

  • LayerNorm 中引入的 gain 和 bias,可能会导致 overfitting,去掉他们能够在很多情况下提升性能
  • 和前向的 normalization 相比,norm 操作之中因为均值和方差而引入的梯度在稳定训练中起到了更大的作用

二、和Batch Norm区别

前面提到其思想和Batch Norm大体一致,而BatchNorm通常用于CV领域,LayerNorm通常用于NLP领域,那它们之间的差别点在哪儿呢。接下来先从二维向量进行说明,然后在扩展到三维情况。

2.1 二维对比

下图表示6个输入样本(行),每个样本对应的特征长度为5(列),那BatchNorm就是对进行操作,而LayerNorm是对进行操作。

所以 如果要计算LayerNorm,可以把输入向量进行转置,求出BN后再转回去。

2.2 三维对比

实际情况大多的特征不是二维向量而是三维向量,将上述情况扩展到三维后如下图所示,BatchNorm是竖切而LayerNorm是横切。NLP邻域采用LayerNorm主要是考虑到特征的长度不一,如果按照BatchNorm训练得到一个参考均值和方差,那下次如果遇到一个训练没遇到过的长度(远远超出训练的长度),那么之前训练好的就会失效,因此采用LayerNorm对单个样本之间自己进行归一化操作,这样可以带来一定的优化效果。

三、参考资料

Layer Normalization
Understanding and Improving Layer Normalization
Transformer论文逐段精读【论文精读】25分左右

标签:Layer,方差,归一化,BatchNorm,LayerNorm,Normalization
From: https://www.cnblogs.com/xiaxuexiaoab/p/18325271

相关文章

  • 280:vue+openlayers 自定义上下左右移动键
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第280个示例文章目录一......
  • 282:vue+openlayers 利用 LineString 显示线段
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第282个示例文章目录一......
  • Layer Normalization
    LayerNormalization#导入包importtorchfromtorchimportnnimporttorch.nn.functionalasfimportmathfrommathimportsqrtclassLayerNormal(nn.Module):def__init__(self,d_moule,eps=1e-12):"""d_moule:数据维度......
  • openlayers在地图上使用Overlay渲染图标无法操作地图问题
    ol对于在地图上渲染图标,并且图标可以随着地图的缩放层级自适应,跟随地图移动,ol是提供了一个很好用的方法的---overlay代码如下://定义标注对象letlable_div=document.createElement('div')lable_div.className=[s.labelDiv]letoffsetY=0let_classname=''_classn......
  • SpectraLayers Pro11最新版,win& mac,绝对可用
    SteinbergSpectraLayersPro11v11.0.10for Windows&Mac一。SpectraLayers    领先的音频编辑和光谱修复智能解决方案,提供行业领先的人工智能算法,丰富的工具和功能,灵活的选项,在熟悉且友好的工作环境中自由探索处理和增强您的音乐,获得全新的结果,提高质量,是光......
  • 使用 FFpyplayer 帧和 QPixmap 以及 MPEG-TS 格式的 UDP 流时出现追赶延时缓冲和滞后
    我正在尝试根据此帖子中找到的代码来构建我的用例。但是,我在使用pythonFFpyPlayer时遇到了麻烦;对于传统的ffplay,我没有这些问题。运行我的应用程序时,我注意到一种追赶延时缓冲效果,视频播放速度显着加快,然后恢复到正常速度。在某些视频中,我发......
  • 池化层 Pooling Layer
    写在前面:人生就是努力、搞不懂、躺平,循环。  文章结构池化层的相对位置在多通道任务中,池化层和卷积层的不同重要的参数stride与kernel_size大小的相对关系决定3种池化层参数针对不同的任务,使用不同的stride和kernel_size。kernel_size是否越大越好?常用的池化......
  • PiT : 基于池化层Pooling layer的Vision Transformer
        CNN的降维原理;随着深度的增加,传统CNN的通道维数增加,空间维数减少。经验表明,这样的空间降维对变压器结构也是有益的,并在原有的ViT模型的基础上提出了一种新的基于池的视觉变压器(PiT)。1.引言        ViT与卷积神经网络(CNN)有很大的不同。将输入图像......
  • openlayers 3d 地图 非三维 立体地图 行政区划裁剪 地图背景
    这是实践效果如果没有任何基础就看这个专栏:http://t.csdnimg.cn/qB4w0这个专栏里有从最简单的地图到复杂地图的示例最终效果:线上示例代码:想要做这个效果如果你的行政区划编辑点较多可能会有卡顿感如果出现卡顿感需要将边界点相应减少一些这样地图边界会相对......
  • 新版网页无插件H.265播放器EasyPlayer.js如何测试demo视频?
    H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,支持H.264与H.265编码格式,性能稳定、播放流畅;支持WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC、WS-FMP4、HTTP-FMP4等格式的视频流,并且已实现网页端实时录像、在iOS上实现低延时......