从零开始了解transformer的机制|第三章:self attention

文章介绍了Transformer中关键的self-attention计算关联度方法,涉及向量点积和如何在深度学习的attention机制中理解Q、K、V的作用。通过类比人类先验经验和详细图解帮助读者掌握这一过程。

第三步:算出各个词汇之间的关联度——self attention

为什么要算关联度?

这是 Transformer 的关键步骤之一。它允许模型在一个序列中的不同位置关注其他位置的信息,从而捕捉长距离的依赖关系。

怎么算关联度?

要是人的话,要理解关联度,可能就是靠先验经验。比如根据先验经验,我们知道苹果和香蕉是比较关联的两个东西。但是机器怎么算出关联度呢?答案是:用向量点积运算的大小。

这边我觉得知乎大佬的一篇文章讲的比我好:超详细图解Self-Attention - 知乎 (zhihu.com)

看完后就差不多理解了self attention的流程了。

但是里面对于Q,K,V的意义还解释的不太清楚。这里补充一下:

原文:深度学习attention机制中的Q,K,V分别是从哪来的? - 知乎

原始数据: 6000 行, 清理后: 6000 行 船舶数量: 200, 时间点数量: 364 训练时间点: 291, 测试时间点: 73 训练序列数: 175, 测试序列数: 30 开始训练LSTM模型... 在单 CPU 上训练。 |============================================================| |  轮  |  迭代  |    经过的时间     |  小批量 RMSE  |  小批量损失  |  基础学习率  | |     |      |  (hh:mm:ss)  |            |         |         | |============================================================| |   1 |    1 |     00:00:01 |       1.41 |     1.0 |  0.0010 | |   5 |   50 |     00:00:02 |       1.40 |     1.0 |  0.0010 | |  10 |  100 |     00:00:03 |       1.45 |     1.1 |  0.0010 | |  15 |  150 |     00:00:04 |       1.37 |     0.9 |  0.0007 | |  20 |  200 |     00:00:05 |       1.34 |     0.9 |  0.0007 | |  25 |  250 |     00:00:06 |       1.42 |     1.0 |  0.0005 | |  30 |  300 |     00:00:07 |       1.42 |     1.0 |  0.0005 | |============================================================| 训练结束: 已完成最大轮数。 LSTM模型训练完成! 开始训练简化版Transformer模型... 错误使用 trainNetwork 无效网络。 出错 untitled18 (第 228 行) transformer_model = trainNetwork(train_sequences, train_targets, transformer_layers, transformer_options); 原因: 层 'self_attention': 在层 nnet.cnn.layer.FunctionLayer 中使用 'predict' 时出错。该函数引发了错误,无法执行。 错误使用 randn Size 输入必须为整数。 出错 untitled18>selfAttention (第 400 行) Wq = randn(head_dim, head_dim); 出错 untitled18>@(X)selfAttention(X,num_heads) (第 372 行) layer = functionLayer(@(X) selfAttention(X, num_heads), varargin{:}); 出错 nnet.cnn.layer.FunctionLayer/predict (第 58 行) [varargout{1:layer.NumOutputs}] = feval(layer.PredictFcn, varargin{:}); >>
08-27
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值