深度学习基础—Seq2Seq模型

1.Seq2Seq模型

假设我们进行机器翻译任务,输入一个法语句子:"Jane visite I'Afrique en septembre.",将它翻译成一个英语:"Jane is visiting Africa in September."。

seq2seq模型有编码器和解码器组成,编码器是RNN网络,可以是GRU单元,也可以是LSTM,如上编号1 所示。编码器接受所有词向量后,得到一个输出向量,将输出向量输入到解码器中。

解码器每次输出一个翻译后的单词,一直到输出序列的结尾或者句子结尾标记。解码器的结构和编码器不太一样,它把每次生成的标记都传递到下一个单元中来进行预测,就像之前用语言模型合成文本时一样。

深度学习基础---序列采样https://blog.csdn.net/sniper_fandc/article/details/143457214?fromshare=blogdetail&sharetype=blogdetail&sharerId=143457214&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link

类似翻译任务,我们也可以用相似的结构做图片描述任务。假设输入猫咪图片,经过预训练的AlexNet网络(上图编号2)作为编码器,让其学习图片的编码,去掉最后的softmax单元(编号3),AlexNet网络会输出一个4096维的特征向量。接着把这个向量输入到RNN中(编号4),RNN要做的就是生成图像的描述,和seq2seq解码器的结构相似,最终可以输出图片的描述。

网络的结构已经了解,但是网络如何根据结果优化参数呢?也就是生成的翻译或描述的句子,怎么能确定这个句子就是我们最希望得到的?

2.选择最可能的句子

用绿色(编号2)表示encoder网络,用紫色(编号3)表示decoder网络。decoder网络和编号4的语言模型几乎一模一样,机器翻译模型其实和语言模型非常相似,不同在于语言模型总是以零向量开始,而encoder网络会计算出一系列向量来表示输入的句子。decoder网络就可以以encoder网络的输出开始,而不是以零向量开始,所以它叫做条件语言模型(conditional language model)。相比语言模型,输出任意句子的概率,翻译模型会输出句子的英文翻译。

现在我们可能得到4条翻译后的语句,如上图所示。显然,第一个句子最好,但是并不是从得到的分布中进行随机取样,而是要找到一个英语句子使得条件概率最大化,即上图编号1的公式。现在我们希望找到一种算法,可以使条件概率最大化,那是否可以使用贪心算法呢?

假设贪心算法挑选出了"Jane is"作为前两个词,因为在英语中going更加常见,于是对于法语句子来说"Jane is going"相比"Jane is visiting"会有更高的概率作为翻译,但在模型中这不是一个最好的选择。

而且,词典中单词有很多,词组也有很多,但是我们不能去计算每一种组合的可能性,因为这样的组合数是指数级的。因此我们会采用近似的搜索算法,也就是下一篇博客的集束搜索。

相关推荐
weixin_437497774 小时前
读书笔记:Context Engineering 2.0 (上)
人工智能·nlp
喝拿铁写前端4 小时前
前端开发者使用 AI 的能力层级——从表面使用到工程化能力的真正分水岭
前端·人工智能·程序员
goodfat4 小时前
Win11如何关闭自动更新 Win11暂停系统更新的设置方法【教程】
人工智能·禁止windows更新·win11优化工具
北京领雁科技5 小时前
领雁科技反洗钱案例白皮书暨人工智能在反洗钱系统中的深度应用
人工智能·科技·安全
落叶,听雪5 小时前
河南建站系统哪个好
大数据·人工智能·python
清月电子5 小时前
杰理AC109N系列AC1082 AC1074 AC1090 芯片停产替代及资料说明
人工智能·单片机·嵌入式硬件·物联网
Dev7z5 小时前
非线性MPC在自动驾驶路径跟踪与避障控制中的应用及Matlab实现
人工智能·matlab·自动驾驶
七月shi人5 小时前
AI浪潮下,前端路在何方
前端·人工智能·ai编程
橙汁味的风5 小时前
1隐马尔科夫模型HMM与条件随机场CRF
人工智能·深度学习·机器学习
itwangyang5206 小时前
AIDD-人工智能药物设计-AI 制药编码之战:预测癌症反应,选对方法是关键
人工智能