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

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

相关推荐
陕西企来客21 分钟前
企来客科技来客 GEO 优化系统深度解析:核心技术与原因分析
大数据·人工智能·科技·搜索引擎
来让爷抱一个3 小时前
MonkeyCode 多模型切换技巧:什么时候用 Claude/GPT/DeepSeek
人工智能·ai编程
李白你好4 小时前
AI Agent 架构的自动化渗透测试工具
运维·人工智能·自动化
2601_949499944 小时前
8 大工业光模块供应商选型:芯瑞科技 400G OSFP 助力 AI 算力集群升级
人工智能·科技
温柔只给梦中人4 小时前
NLP学习:注意力机制
人工智能·学习·自然语言处理
weixin_429630264 小时前
3.49 HVLF:一种跨场景的整体视觉定位框架
深度学习·机器学习·计算机视觉
广州灵眸科技有限公司4 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) Easy-Eai编译环境准备与更新
服务器·前端·人工智能·python·深度学习
深度学习lover4 小时前
<数据集>yolo樱桃识别<目标检测>
人工智能·深度学习·yolo·目标检测·计算机视觉·数据集·樱桃识别
深圳市机智人激光雷达4 小时前
技术筑牢安全冗余:激光雷达在自动驾驶高阶感知中的底层价值与范式演进
人工智能·安全·机器学习·3d·机器人·自动驾驶·无人机
江澎涌4 小时前
拆解与 AI 的一次对话
人工智能·算法·程序员