From 3b3f7cb371dc3422cc77d2232b3ae8d20faea5f3 Mon Sep 17 00:00:00 2001 From: "ben.guo" <909336740@qq.com> Date: Fri, 3 May 2024 23:08:07 +0800 Subject: [PATCH] =?UTF-8?q?Fix.=20=E4=BF=AE=E6=AD=A3=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97=E4=BB=A5=E5=8F=8A=E8=AF=AD=E4=B9=89=E8=A1=A8=E8=BE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../第六章——数值缩放.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/人人都能看懂的Transformer/第六章——数值缩放.md b/人人都能看懂的Transformer/第六章——数值缩放.md index 7ded5af..4dd62a7 100644 --- a/人人都能看懂的Transformer/第六章——数值缩放.md +++ b/人人都能看懂的Transformer/第六章——数值缩放.md @@ -16,7 +16,7 @@ $$ ### 残差连接 -`Input`跟`x`的相加,则是对应位置元素简单相加,可以理解为跟位置编码一样的,即`Input[i][j]`+`x[i][j]`,i、j分别表示不同维度的某个位置。 +`Input`跟`x`的相加,则是对应位置元素简单相加,可以理解为类似位置编码一样的向量加法,即`Input[i][j]`+`x[i][j]`,i、j分别表示不同维度的某个位置。 模拟代码如下: @@ -50,7 +50,7 @@ print(residual_output) ### 层归一化 -缩放规则:均值为0,方差为1。以下是GPT-2里的源码 +调整数据使得其均值为0,方差为1。以下是GPT-2里的源码 ~~~python def norm(x, scope, *, axis=-1, epsilon=1e-5): @@ -77,10 +77,10 @@ $$ \text{LN}(x) = g \cdot \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + b $$ -跟标准的层归一化不一样,但两者是等价的。简单理解为,最终值又会进行一轮的缩放,让它们都回到一个相对统一的区间。 +跟你网上查的层归一化的公式可能不一样,但两者是等价的。代码考虑了实际情况,调整成运行更优的方式。简单理解为,最终值又会进行一轮的缩放,让它们都回到一个相对统一的区间。 ### 总结 -多头注意力的输出A矩阵通过残差连接与原始输入x相加,得到相同位置元素的和。这个过程类似于人们对成功经验的依赖。然而,相加后的值可能超出标准范围,因此需要层归一化(LayerNorm)来调整数据分布,使其均值为0,方差为1。层归一化通过可学习参数γ和β,对输入进行缩放和偏移,确保网络的稳定性。 +多头注意力的输出A矩阵通过残差连接与原始输入x相加,得到相同位置元素的和。这个过程类似于人们对成功经验的依赖。然而,相加后的值可能超出标准范围,因此需要层归一化(LayerNorm)来调整数据分布,使其均值为0,方差为1。层归一化通过可学习参数g和b,对输入进行缩放和偏移,确保网络的稳定性。