2019-09-10 19:29:26
问题描述:什么是Seq2Seq模型?Seq2Seq模型在解码时有哪些常用办法?
问题求解:
Seq2Seq模型是将一个序列信号,通过编码解码生成一个新的序列信号,通常用于机器翻译、语音识别、自动对话等任务。在Seq2Seq模型提出之前,深度学习网络在图像分类等问题上取得了非常好的效果。在深度学习擅长的问题中,输入和输出通常都可以表示成固定长度的向量,如果长度稍微有了一点变化,会使用补零的操作。然而像前面提到的几个问题,其序列长度事先并不知道。因此如何突破先前深度神经网络的局限,使其适应于更多的场景,成了2013年以来的研究热点,Seq2Seq模型也就应运而生。
Seq2Seq模型的核心思想是,通过深度神经网络将一个作为输入的序列映射为一个作为输出的序列,这个过程由编码输入和解码输出两个环节构成。
Seq2Seq在解码的时候最基础的算法是贪心法,即每次贪心的选择概率最大的结果。贪心算法的计算代价低,适合作为基准结果与其他方法比较。
集束搜索是一个常见的改进算法,它是一种启发式的算法。beam search每次维护beam_size个解,然后由这beam_size个解生成下一层的结果,之后将下一层取前beam_size个,不断迭代得到最后的结果。