2021李宏毅机器学习之Self-attention(矩阵角度)

从矩阵的角度讲解Self-Attention的过程

下来我们从矩阵乘法的角度,再重新讲一次我们刚才讲的,Self-attention 是怎麼运作的。我们现在已经知道每一个 a 都产生 q k v。如果要用矩阵运算表示这个操作的话,是什么样子呢在这里插入图片描述
我们每一个 a,都乘上一个矩阵,我们这边用 Wq 来表示它,得到 qi,每一个 a 都要乘上 Wq,得到qi,这些不同的 a 你可以把它合起来,当作一个矩阵来看待
在这里插入图片描述
 一样a2a3a4也都乘上Wq得到q2q3跟q4 ,那你可以把 a1 到 a4 拼起来,看作是一个矩阵,这个矩阵我们用 I 来表示,这个矩阵的四个 column 就是a1到a4,I乘上Wq 就得到另外一个矩阵,我们用 Q来表示它,这个Q 就是把q1到q4这四个 vector 拼起来,就是Q的四个 column.
 所以我们从 a 1 a^1 a1 a 4 a^4 a4,得到 q 1 q^1 q1 q 4 q^4 q4这个操作,其实就是把 I 这个矩阵,乘上另外一个矩阵 W q W^q Wq,得到矩阵 Q Q Q I I I 这个矩阵它裡面的 column就是我们 Self-attention 的 input是 a 1 a^1 a1 a 4 a^4 a4 W q W^q Wq其实是 network 的参数,它是等一下会被learn出来的 Q Q Q 的四个 column,就是 q 1 q^1 q1 q 4 q^4 q4
 接下来產生 k 跟 v 的操作跟 q 是一模一样的
在这里插入图片描述
 所以每一个 a 得到 q k v ,其实就是把输入的这个,vector sequence 乘上三个不同的矩阵,你就得到了 q,得到了 k,跟得到了 v
 下一步是,每一个 q 都会去跟每一个 k,去计算这个 inner product,去得到这个 attention 的分数,那得到 attention 分数这一件事情,如果从矩阵操作的角度来看,它在做什麼样的事情呢?
在这里插入图片描述
 你就是把 q 1 q^1 q1 k 1 k^1 k1 做 inner product,得到 α 1 , 1 α_{1,1} α1,1,所以 α 1 , 1 α_{1,1} α1,1就是 q 1 q^1 q1 k 1 k^1 k1 的 inner product,那这边我就把这个, k 1 k^1 k1它背后的这个向量,把它画成比较宽一点代表说它是 transpose.
 同理 α 1 , 2 α_{1,2} α1,2 就是 q 1 q^1 q1 k 2 k^2 k2,做 inner product, α 1 , 3 α_{1,3} α1,3 就是 q 1 q^1 q1 k 3 k^3 k3 做 inner product,这个 α 1 , 4 α_{1,4} α1,4 就是 q 1 q^1 q1 k 4 k^4 k4 做 inner product,那这个四个步骤的操作,你其实可以把它拼起来,看作是矩阵跟向量相乘
在这里插入图片描述
 这四个动作,你可以看作是我们把 k 1 k^1 k1 k 4 k^4 k4 拼起来,当作是一个矩阵的四个 row,那我们刚才讲过说,我们不只是 q 1 q^1 q1,要对 k 1 k^1 k1 k 4 k^4 k4 计算 attention, q 2 , q 3 , q 4 q^2,q^3,q^4 q2,q3,q4也要对 k 1 k^1 k1 k 4 k^4 k4 计算 attention,操作其实都是一模一样的

在这里插入图片描述
 所以这些 attention 的分数可以看作是两个矩阵的相乘,一个矩阵它的 row,就是 k 1 k^1 k1 k 4 k^4 k4,另外一个矩阵它的 column。我们会在 attention 的分数,做一下 normalization,比如说你会做 softmax,你会对这边的每一个 column,每一个 column 做 softmax,让每一个 column 裡面的值相加是 1。
 之前有讲过说 其实这边做 softmax不是唯一的选项,你完全可以选择其他的操作,比如说 ReLU 之类的,那其实得到的结果也不会比较差,通过了 softmax 以后,它得到的值有点不一样了,所以我们用 A ′ A' A,来表示通过 softmax 以后的结果
 我们已经计算出 A ′ A' A那我们把这个 v 1 v^1 v1 v 4 v^4 v4乘上这边的 α 以后,就可以得到 b
在这里插入图片描述
 你就把 v 1 v^1 v1 v 4 v^4 v4 拼起来,你 v 1 v^1 v1 v 4 v^4 v4当成是V 这个矩阵的四个 column,把它拼起来,然后接下来你把 v 乘上, A ′ A' A 的第一个 column 以后,你得到的结果就是 b 1 b^1 b1
 如果你熟悉线性代数的话,你知道说把这个 A ′ A' A 乘上 V,就是把 A ′ A' A的第一个 column,乘上 V 这一个矩阵,你会得到你 output 矩阵的第一个 column。而把 A 的第一个 column乘上 V 这个矩阵做的事情,其实就是把 V 这个矩阵裡面的每一个 column,根据第 A ′ A' A 这个矩阵裡面的每一个 column 裡面每一个 element,做 weighted sum,那就得到 b 1 b^1 b1
 那就是这边的操作,把 v 1 v^1 v1 v 4 v^4 v4 乘上 weight,全部加起来得到 b 1 b^1 b1,
 如果你是用矩阵操作的角度来看它,就是把$ A’$ 的第一个 column 乘上 V,就得到 b 1 b^1 b1,然后接下来就是以此类推
在这里插入图片描述
 就是以此类推,把 A ′ A' A 的第二个 column 乘上 V,就得到 b 2 b^2 b2, A ′ A' A 的第三个 column 乘上 V 就得到 b 3 b^3 b3, A ′ A' A 的最后一个 column 乘上 V,就得到 b 4 b^4 b4。所以我们等於就是把 A ′ A' A 这个矩阵,乘上 V 这个矩阵,得到 O 这个矩阵,O 这个矩阵裡面的每一个 column,就是 Self-attention 的输出,也就是 b 1 b^1 b1 b 4 b^4 b4

矩阵角度小结

 所以其实整个 Self-attention,我们在讲操作的时候,我们在最开始的时候 跟你讲的时候我们讲说,我们先產生了 q k v,然后再根据这个 q 去找出相关的位置,然后再对 v 做 weighted sum,其实这一串操作,就是一连串矩阵的乘法而已
 我们再复习一下我们刚才看到的矩阵乘法
在这里插入图片描述

  • I 是 Self-attention 的 input,Self-attention 的 input 是一排的vector,这排 vector 拼起来当作矩阵的 column,就是 I

  • 这个 input 分别乘上三个矩阵, W q W^q Wq W k W^k Wk 跟$ W^v$,得到 Q K V

  • 这三个矩阵,接下来 Q 乘上 K 的 transpose,得到 A 这个矩阵,A 的矩阵你可能会做一些处理,得到 A ′ A' A,那有时候我们会把这个 A ′ A' A,叫做 Attention Matrix生成Q矩阵就是为了得到Attention的score

  • 然后接下来你把 A ′ A' A 再乘上 V,就得到 O,O 就是 Self-attention 这个 layer 的输出,生成V是为了计算最后的b,也就是矩阵O

 所以 Self-attention 输入是 I,输出是 O,那你会发现说虽然是叫 attention,但是其实 Self-attention layer 裡面,唯一需要学的参数,就只有 W q W^q Wq W k W^k Wk 跟$ W^v$ 而已,只有 W q W^q Wq W k W^k Wk 跟$ W^v$是未知的,是需要透过我们的训练资料把它找出来的。
 但是其他的操作都没有未知的参数,都是我们人為设定好的,都不需要透过 training data 找出来,那这整个就是 Self-attention 的操作,从 I 到 O 就是做了 Self-attention

以上内容都是参考自:https://github.com/unclestrong/DeepLearning_LHY21_Notes

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。 随着统计学的发展,统计学习在机器学习中占据了重要地位,支持向量机(SVM)、决策树和随机森林等算法的提出和发展,使得机器学习能够更好地处理分类、回归和聚类等任务。进入21世纪,深度学习成为机器学习领域的重要突破,采用多层神经网络模型,通过大量数据和强大的计算能力来训练模型,在计算机视觉、自然语言处理和语音识别等领域取得了显著的成果。 机器学习算法在各个领域都有广泛的应用,包括医疗保健、金融、零售和电子商务、智能交通、生产制造等。例如,在医疗领域,机器学习技术可以帮助医生识别医疗影像,辅助诊断疾病,预测病情发展趋势,并为患者提供个性化的治疗方案。在金融领域,机器学习模型可以分析金融数据,识别潜在风险,预测股票市场的走势等。 未来,随着传感器技术和计算能力的提升,机器学习将在自动驾驶、智能家居等领域发挥更大的作用。同时,随着物联网技术的普及,机器学习将助力智能家居设备实现更加智能化和个性化的功能。在工业制造领域,机器学习也将实现广泛应用,如智能制造、工艺优化和质量控制等。 总之,机器学习是一门具有广阔应用前景和深远影响的学科,它将持续推动人工智能技术的发展,为人类社会的进步做出重要贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值