不知道你这个问题是否已经解决, 如果还没有解决的话:
- 你可以看下这个问题的回答https://ask.csdn.net/questions/7777435
- 你也可以参考下这篇文章:小工匠聊架构 - 缓存与数据库【双写不一致】&【读写并发不一致】解决方案一览
- 除此之外, 这篇博客: 论文笔记-理解和解决图卷积网络的性能退化问题中的 解决图卷积网络的性能退化问题-缓解方差膨胀技术 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
论文提出的方案是:用每个节点特征的标准差的开p次方来缩放每个节点的特征向量,其中p>1,论文称其为节点规范化(NodeNorm)
,形式上可表示为
其中σiσ_iσi为节点的表征hih_ihi的标准差,即σi=vari1/2σ_i = var_i^{1/2}σi=vari1/2,此处为了清晰起见,省略了层索引lll。
在使用NodeNorm标准化之后,节点iii的标准偏差为σi1−1/pσ_i^{1-1/p}σi1−1/p,如果σi>1σ_i>1σi>1,则标准化后的标准差小于σiσ_iσi。因此,一个较小的ppp可更严格地控制方差膨胀。当p=1p=1p=1时,所有节点的方差标准化为111。
现有的层归一化(LayerNorm)
(引用J. L. Ba, J. R. Kiros, and G. E. Hinton, “Layer normalization,”arXivpreprint arXiv:1607.06450, 2016.)也执行节点的方差缩放操作,形式上,层归一化形式上可表示为
其中的⊙⊙⊙为按元素乘法,α=(α1,⋅⋅⋅αd)α= (α_1,···α_d)α=(α1,⋅⋅⋅αd)和β=(β1,⋅⋅⋅βd)β= (β_1,···β_d)β=(β1,⋅⋅⋅βd)为可学习的参数,ddd为h的维度,σiσ_iσi为标准差,uiu_iui为平均值。一个层归一化由三个基本操作组成:方差缩放、均值减法和特征线性变换(α和β是斜率和偏差)。特别是,LayerNorm中的方差缩放(variance-scaling)本质上是我们的NodeNorm。
ps:这篇论文写作是真的不太行,看论文的过程太累了。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^