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

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

相关推荐
DevinLGT2 分钟前
6Pin Type-C Pin脚定义:【图文讲解】
人工智能·单片机·嵌入式硬件
宋一诺336 分钟前
机器学习—高级优化方法
人工智能·机器学习
龙的爹233319 分钟前
论文 | The Capacity for Moral Self-Correction in LargeLanguage Models
人工智能·深度学习·机器学习·语言模型·自然语言处理·prompt
Mr.简锋22 分钟前
opencv视频读写
人工智能·opencv·音视频
Baihai_IDP22 分钟前
「混合专家模型」可视化指南:A Visual Guide to MoE
人工智能·llm·aigc
寰宇视讯1 小时前
“津彩嘉年,洽通天下” 2024中国天津投资贸易洽谈会火热启动 首届津彩生活嘉年华重磅来袭!
大数据·人工智能·生活
Light601 小时前
低代码牵手 AI 接口:开启智能化开发新征程
人工智能·python·深度学习·低代码·链表·线性回归
墨绿色的摆渡人1 小时前
用 Python 从零开始创建神经网络(六):优化(Optimization)介绍
人工智能·python·深度学习·神经网络
春末的南方城市1 小时前
开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序
人工智能·计算机视觉·aigc·音视频
矢量赛奇2 小时前
比ChatGPT更酷的AI工具
人工智能·ai·ai写作·视频