基于Keras的神经机器翻译模型实现
1. 序列到序列翻译过程
在进行翻译时,初始阶段并没有目标序列。首先将源序列输入网络,接着输入起始标记(START token),随后把网络的输出预测作为下一个时间步的输入,持续这个过程,直至网络输出结束标记(STOP token),此时便得到了完整的翻译句子。
2. 编码器 - 解码器模型
此模型与之前研究的神经语言模型有所关联。当输入起始标记时,翻译网络与神经语言模型网络的唯一差异在于其初始累积状态。语言模型以内部状态为 0 开始,并输入一个或多个单词,然后完成句子;而翻译网络则以看到源序列后的累积状态开始,接着输入单个起始符号,最后用目标语言完成句子。在翻译过程的后半段,网络的作用类似于目标语言的神经语言模型,内部状态是生成正确句子的关键,可将其视为句子整体含义的与语言无关的表示,有时也被称为上下文或思想向量。
翻译过程的前半段旨在处理源句子,构建句子含义的与语言无关的表示。由于这与生成句子的任务不同,且使用的语言和词汇也与后半段不同,因此可以考虑使用两个专门的网络:一个用于将源句子编码为内部状态,另一个用于将内部状态解码为目标句子,这种架构就是编码器 - 解码器架构。
编码器 - 解码器架构的连接方式多种多样,例如可以在第一个时间步将状态/输出作为常规输入提供给解码器,或者让解码器网络在每个时间步都能访问它;对于多层编码器,也可以选择仅将最顶层的状态/输出作为输入提供给最底层的解码器层。此外,编码器 - 解码器模型并不局限于处理序列,还可以构建其他组合形式。
3. Keras 函数式 API 简介
要实现上述架构,需要使用 Keras 函数式 AP
超级会员免费看
订阅专栏 解锁全文
8005

被折叠的 条评论
为什么被折叠?



