李宏毅2020机器学习 【学习笔记】 P54 Transformer

目录

来由

Attention is all you need! 操作流程

本质是一堆的矩阵乘法

Multi-head Self-attention

Position Encoding 位置编码

Transformer 架构


感谢B站up主搬运的课程:

【李宏毅2020机器学习深度学习(完整版)国语】 https://www.bilibili.com/video/BV1JE411g7XF/?share_source=copy_web&vd_source=262e561fe1b31fc2fea4d09d310b466d


来由

处理 Seq2Seq 问题,之前常用 RNN

但这样的问题是,虽然 RNN 擅长处理序列信息,但必须按着顺序处理,无法实现并行处理(同时出结果 b_1 、 b_2 ……

那换成用 CNN 的思想来处理序列问题

可以发现确实实现了并行处理

但是仍存在问题,如果需要卷出长序列的关系,需要经过多层 CNN 才能卷到,因为 filter 总是小的,没法一下子就卷出序列中离得远的单元的关系。

这时,我们就有了 Self-Attention既可 Seq2Seq ,亦可并行计算

Attention is all you need! 操作流程

我们把输入乘上一个矩阵,把 x^i 变成 a^i ,然后丢进 Self-Attention 层里,通过 a^i 与矩阵 W^q 、 W^k 、 W^v 相乘得到每个 a^i 对应的 q^i 、 k^i 、 v^i ( q 用于匹配其他元素, k 用于被匹配, v 则会是被提取的信息)

开始操作

再对算出来的 \alpha_{i,j} 取 softmax

最后与各个 v^i 取一下加权和,求得 b^i 

往后做依然是同理

这样就可以用旧序列 a^1a^2a^3a^4 得到新序列 b^1b^2b^3b^4 

本质是一堆的矩阵乘法

Multi-head Self-attention

“不同的 head 关注点不同,能够学到不同的东西,关注于邻近的信息或是长远的信息。”

Position Encoding 位置编码

从其计算的流程来看,位置并不影响其结果(这样当然不行啦,序列是有顺序的)

计算如下图所示

Transformer 架构

注意 input 和作为输入的已经产生的 output 都是转换成 word embedding;

encoder 、 decoder 都有N个(重复N次)

Layer Norm 让一个向量的所有维度变成位于 \mu=0,\sigma=1 的分布里,

Batch Norm 则让多有向量的同一维度变成位于 \mu=0,\sigma=1 的分布里。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值