1700538980
1700538981
问题2 Seq2Seq模型在解码时,有哪些常用的办法?
1700538982
1700538983
难度:★★★☆☆
1700538984
1700538985
分析与解答
1700538986
1700538987
Seq2Seq模型最核心的部分是其解码部分,大量的改进也是在解码环节衍生的。Seq2Seq模型最基础的解码方法是贪心法,即选取一种度量标准后,每次都在当前状态下选择最佳的一个结果,直到结束。贪心法的计算代价低,适合作为基准结果与其他方法相比较。很显然,贪心法获得的是一个局部最优解,由于实际问题的复杂性,该方法往往并不能取得最好的效果。
1700538988
1700538989
集束搜索是常见的改进算法,它是一种启发式算法。该方法会保存beam size(后面简写为b)个当前的较佳选择,然后解码时每一步根据保存的选择进行下一步扩展和排序,接着选择前b个进行保存,循环迭代,直到结束时选择最佳的一个作为解码的结果。图10.5是b为2时的集束搜索示例。
1700538990
1700538991
1700538992
1700538993
1700538994
图10.5 集束搜索示例
1700538995
1700538996
由图可见,当前已经有解码得到的第一个词的两个候选:I和My。然后,将I和My输入到解码器,得到一系列候选的序列,诸如I decided、My decision、I thought等。最后,从后续序列中选择最优的两个,作为前两个词的两个候选序列。很显然,如果b取1,那么会退化为前述的贪心法。随着b的增大,其搜索的空间增大,最终效果会有所提升,但需要的计算量也相应增大。在实际的应用(如机器翻译、文本摘要)中,b往往会选择一个适中的范围,以8~12为佳 。
1700538997
1700538998
解码时使用堆叠的RNN、增加Dropout机制、与编码器之间建立残差连接等,均是常见的改进措施。在实际研究工作中,可以依据不同使用场景,有针对地进行选择和实践。
1700538999
1700539000
另外,解码环节中一个重要的改进是注意力机制,我们会在下一节深入介绍。注意力机制的引入,使得在解码时每一步可以有针对性地关注与当前有关的编码结果,从而减小编码器输出表示的学习难度,也更容易学到长期的依赖关系 。此外,解码时还可以采用记忆网络[28]等,从外界获取知识。
1700539001
1700539002
1700539003
1700539004
1700539006
百面机器学习:算法工程师带你去面试 06 注意力机制
1700539007
1700539008
1700539009
1700539010
场景描述
1700539011
1700539012
无论机器学习、深度学习还是人工智能,我们似乎都在寻找一种可以模拟人脑的机制,注意力机制(Attention Mechanism)实际上也是源于类似的思路。研究发现,人脑在工作时是有一定注意力的。比如当我们欣赏一幅艺术作品时,可以看到其全貌。而当我们深入关注画作的细节时,其实眼睛只聚焦在了画幅上很小的一部分,而忽略了其他位置的诸如背景等信息,这说明大脑在处理信号时是有一定权重划分的,而注意力机制的提出正是模仿了大脑的这种核心特性。
1700539013
1700539014
知识点
1700539015
1700539016
注意力机制,Seq2Seq,循环神经网络
1700539017
1700539018
问题 Seq2Seq模型引入注意力机制是为了解决什么问题?为什么选用了双向的循环神经网络模型?
1700539019
1700539020
难度:★★★★☆
1700539021
1700539022
分析与解答
1700539023
1700539024
在实际任务(例如机器翻译)中,使用Seq2Seq模型,通常会先使用一个循环神经网络作为编码器,将输入序列(源语言句子的词向量序列)编码成为一个向量表示;然后再使用一个循环神经网络模型作为解码器,从编码器得到的向量表示里解码得到输出序列(目标语言句子的词序列)。
1700539025
1700539026
在Seq2Seq模型中(见图10.6),当前隐状态以及上一个输出词决定了当前输出词,即
1700539027
1700539028
1700539029
,
[
上一页 ]
[ :1.70053898e+09 ]
[
下一页 ]