深度学习基础—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"会有更高的概率作为翻译,但在模型中这不是一个最好的选择。

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

相关推荐
飞哥数智坊1 天前
分享被迫变直播:AI·Spring养虾记就这样上线了
人工智能
Mr_Lucifer1 天前
「一句话」生成”小红书“式金句海报(CodeFlicker + quote-poster-generator)
人工智能·aigc·visual studio code
冬奇Lab1 天前
OpenClaw 深度解析(五):模型与提供商系统
人工智能·开源·源码阅读
冬奇Lab1 天前
一天一个开源项目(第42篇):OpenFang - 用 Rust 构建的 Agent 操作系统,16 层安全与 7 个自主 Hands
人工智能·rust·开源
IT_陈寒1 天前
SpringBoot性能飙升200%?这5个隐藏配置你必须知道!
前端·人工智能·后端
yiyu07161 天前
3分钟搞懂深度学习AI:反向传播:链式法则的归责游戏
人工智能·深度学习
机器之心1 天前
OpenClaw绝配!GPT-5.4问世,AI能力开始大一统,就是太贵
人工智能·openai
机器之心1 天前
海外华人15人团队打造,统一理解与生成的图像模型,超越Nano banana登顶图像编辑
人工智能·openai
用户552796026051 天前
在老版本 HPC 系统上运行 Antigravity(反重力)
人工智能