美文网首页
LayerNorm的理解

LayerNorm的理解

作者: sretik | 来源:发表于2024-04-26 23:55 被阅读0次

LayerNorm是常见的归一化技术之一,可以提升神经网络的训练速度,提高模型性能。一般用于RNN,对序列数据效果较好。
LayerNorm的数学原理:
均值:\mu_i = \frac{1}{n}\sum_{j=1}^nx_{ij}
方差:\sigma_i^2 = \frac{1}{n}\sum_{j=1}^n(x_{ij}-\mu)^2
标准化特征:\widehat{x}_{ij} = \frac{x_{ij}-\mu_i}{\sqrt{\sigma_i^2 + \epsilon}}
对特征进行平移变换:y_{ij} = \gamma_j\widehat{x}_{ij} + \beta_j

代码实现如下:

class LayerNorm(nn.Module):
    def __init__(self, features, eps=1e-6):
        super(LayerNorm, self).__init__()
        self.a_2 = nn.Parameter(torch.ones(features))
        self.b_2 = nn.Parameter(torch.zeros(features))
        self.eps = eps

    def forward(self, x):
        mean = x.mean(-1, keepdim=True) //均值
        std = x.std(-1, keepdim=True) //标准差,即方差的平方根
        return self.a_2 * (x - mean) / (std + self.eps) + self.b_2

#使用
LayerNorm(layer.size) //transformer中此值为6

LayerNorm是在feature维进行归一化处理,如代码中所指定的-1维度。

相关文章

  • Pytorch Norm 层

    转自PyTorch学习之归一化层(BatchNorm、LayerNorm、InstanceNorm、GroupNo...

  • BatchNormalization 和 LayerNorm

    1. BatchNormalization 先借鉴一下别人的图(https://www.jianshu.com/...

  • LayerNorm核心技术

    Overview 你能打开这篇文章,相信对LayerNorm(LN)、BatchNorm(BN)多少是有些了解,它...

  • 深度学习: BatchNorm 和 LayerNorm 的区别与

    在深度学习中,Normalization 是十分常规的操作。在神经网络训练开始前,都要对输入数据进行归一化处理,那...

  • 理解不曾理解的

    上学时从来没把容貌当成大事儿,只是希望脸上的痘痘能少点,至于什么皮肤白、毛孔粗大、黑眼圈、肤色暗淡、脸型、眉形、眼...

  • 难被理解的理解

    我们都渴望被看见,渴望被理解。这个人性既驱使着我们,也限制着我们。 这是一个强者生存或者说适者生存的社会。这个社会...

  • 对理解的理解

    坚强的人不好做,再大的苦楚也不能说。 儿女情长为何愁,没有事业哪来的人生风流!任凭一路坎坷,也要一路高歌。...

  • 理解!理解!!理解!!!

    1、如何理解MVC设计模式 MVC是一种架构模式,M表示MOdel,V表示视图View,C表示控制器Control...

  • 理解你的理解理顺理解

    理解你的理解理顺你的理解 生活中因为缺乏准确具体到位的沟通和具体的实施方向和可落地的方式,因为信息传达...

  • 理解的与未理解的

    本周继续读的书为《一课经济学》,著者:【美】亨利 黑兹利特 译者:蒲定东 出版:中信出版社 每日5分钟阅读进程已到...

网友评论

      本文标题:LayerNorm的理解

      本文链接:https://www.haomeiwen.com/subject/eeagxjtx.html