第三周-序列模型与注意力机制

3.1 序列结构的各种序列

编码器把法语编码,解码器产生对应的英语翻译。

3.2 选择最可能的句子(Picking the most likely sentence

语言模型每次翻译出来的结果很可能不一样,翻译质量时好时坏。

greedy serch 贪心搜索

贪心搜索是一种来自计算机科学的算法,生成第一个词的分布以后,它将会根据你的条件语
言模型挑选出最有可能的第一个词进入你的机器翻译模型中,在挑选出第一个词之后它将会
继续挑选出最有可能的第二个词,然后继续挑选第三个最有可能的词,这种算法就叫做贪心
搜索,但是你真正需要的是一次性挑选出整个单词序列,从𝑦 <1>、𝑦 <2>
𝑦 <𝑇𝑦>来使得整体 的概率最大化。
但是使用贪心搜索来寻找最可能的句子 效果也一般,下一节介绍比较合适的算法。

3.3 基本集束搜索(Beam Search

为了解决翻译的问题,你想要最好的,最接近原意的翻译结果,集束搜索就是解决这个最常用的算法。

集束搜索的一个核心任务就是找到能使𝑃(𝑦|𝑥)最大化的𝑦

集束宽度B,B=3 就会把3个最符合的备选答案放在内存。

就相当于同时考虑三种可能性。B=1的时候可以理解为就是贪婪搜索算法。

在我们进入集束搜索的第三步之前,我还想提醒一下因为我们的集束宽等于 3,每一步
我们都复制 3 个,同样的这种网络来评估部分句子和最后的结果,由于集束宽等于 3,我们
有三个网络副本(上图编号 7 所示),每个网络的第一个单词不同,而这三个网络可以高效
地评估第二个单词所有的 30,000 个选择。所以不需要初始化 30,000 个网络副本,只需要使
3 个网络的副本就可以快速的评估 softmax 的输出,即𝑦 <2>的 10,000 个结果。

3.4 改进集束搜索(Refinements to Beam Search

P的取值范围是0-1,图中画圈位置。 阿尔法一般取值0.7。

最终通过这个优化后的集束搜索公式来计算。

3.5 集束搜索的误差分析(Error analysis in beam search

3.7 注意力模型直观理解(Attention Model Intuition

注意力模型,它翻译得很像人类,一次翻译句子的一部分。而且有了注意力模型,
机器翻译系统的表现会像这个一样,因为翻译只会翻译句子的一部分,你不会看到这个有一
个巨大的下倾(huge dip),这个下倾实际上衡量了神经网络记忆一个长句子的能力,这是
我们不希望神经网络去做的事情。

3.8 注意力模型(Attention Model

我们先假定有一个输入句子,并使用双向的 RNN,或者双向的 GRU
或者双向的 LSTM,去计算每个词的特征。实际上 GRU LSTM 经常应用于这个,可能 LSTM
更经常一点。

3.11 transformer网络直观理解

网络演进

RNN存在梯度消失问题,所以很难捕捉到远距离依赖和序列。

所以GRU LSTM产生了,用来解决远距离依赖问题。使用门来控制信息流。但是计算也变得复杂了。

但是缺点是,每个单元就像一个信息流瓶颈,只有算完了前面的,才能得到最后单元的输出。

接下来介绍的transformer可以同时对句子里的所有单词进行处理,而不是从左到右处理。

注意力+CNN的结合。实现并行处理多个输入。两个关键词 self-attention,multi-head attention 后续会介绍 自注意力和多头注意力。、

3.12 自注意力机制

一共五个单词,拿第三个单词Africa为例,想得到A3,A3由右上角公式来计算。设计三个参数。

q,k,v。

q3表示A3这个位置发生了啥,k可以结合其余的输入来帮助我们得知A3到底发生了啥,

v3可以用来插入其余位置关于q3这个词的表达,就是在Afirca这里插入关于visite的表达,这样就可以方便我们得出,是有人访问了非洲,所以Africa表示的是一个地名。

q3表示 a3这个位置发生了什么事情。他需要结合其他所有的k。所以有了q3*k1,q3*k2....

之后要和每一个v相乘,也就是在A3插入其余v的表达。有助于我们理解A3的语义。所以就是v1*q3*k1,v2*q3*k2....

然后把v1*q3*k1+v2*q3*k2+....+v5*q3*k5 =A3

这样的好处就是可以结合语境来得到A3这里的单词到底表示啥,同时不依赖A1,A2,A4,A5的计算结果。

3.13 多头注意力机制

具有最大内积表示,x2最能帮助确定A3表示了啥,也就是visite这个单词最能确定Afirca表示的是一个地名。蓝色剪头表示第一个头,第一头关注的是发生了什么

所以按照这个方法可以确认x1,x2,x4,x5都发生了啥。

接下来是第二个头,表示什么时候发生的?我们在第一个头后面叠加第二个头,用红色表示。

得出x5 septembre的key和x3Afirca有最大内积。用红线表示。

接下来第三个头,想问谁和x3这个事儿有关?

得出x1 jane的key和x3Afirca有最大内积。用黑线表示。

用h表示头数。文献中使用8个头比较常见。

并行计算所有头的值,然后把他们连接起来,乘以W0,就得到了多头注意力的值。

3.14 transformer网络

介绍如何通过模仿前面的注意力机制来构建transformer网络。

sos句子开始标识 Eos句子结束标志

1.把这些法语单词嵌入一个多头注意力编码器,并输入QKV。这样就能得到一个能传输到前向反馈网络的矩阵。

2.编码器经过多次计算。通常6次,会把结果送到解码器。

解码器作用输出英文译文。从sos开始算,每次算一个单词,假如第一波算出来第一个单词是Jane,他会把sos和jane作为下一波的输入再传到解码器,继续算jane的下一个单词,直到遇到EOS。我们要找到最可能的kv,帮助生成下一个单词。

3.单词位置对翻译结果也很重要,所以要把位置编码向量p也嵌入到输入。(x1+p1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值