seq2seq中的beam search算法过程

转载自  seq2seq中的beam search算法过程

首先说明在sequence2sequence模型中,beam search的方法只用在测试的情况,因为在训练过程中,每一个decoder的输出是有正确答案的,也就不需要beam search去加大输出的准确率。

假设现在我们用机器翻译作为例子来说明。

我们的任务是翻译中文“我是中国人”--->英文“I am Chinese”

假设我们的词表大小只有三个单词就是I am Chinese。

那么如果我们的beam size为2的话,我们现在来解释,

如下图所示,我们在decoder的过程中,有了beam search方法后,在第一次的输出,我们选取概率最大的"I"和"am"两个单词,而不是只挑选概率最大的单词。

 

然后接下来我们要做的就是,把“I”单词作为下一个decoder的输入算一遍得到y2的输出概率分布,把“am”单词作为下一个decoder的输入算一遍也得到y2的输出概率分布。

比如将“I”单词作为下一个decoder的输入算一遍得到y2的输出概率分布如下:

 

比如将“am”单词作为下一个decoder的输入算一遍得到y2的输出概率分布如下:

 

那么此时我们由于我们的beam size为2,也就是我们只能保留概率最大的两个序列,此时我们可以计算所有的序列概率:

“I I” = 0.4*0.3    "I am" = 0.3*0.6 

 "I Chinese" = 0.4*0.1  "am I" = 0.5*0.3 

"am am" = 0.5*0.3 "am Chinese" = 0.5*0.4

我们很容易得出俩个最大概率的序列为 “I am”和“am Chinese”,然后后面会不断重复这个过程,直到遇到结束符为止。

最终输出2个得分最高的序列。

这就是seq2seq中的beam search算法过程,但是可能有些同学有一个疑问,就是但i-1时刻选择的单词不同的时候,下一时刻的输出概率分布为什么会改变?

这是由于解码的过程中,第i时刻的模型的输入,包括了第i-1时刻模型的输出,那么很自然在第i-1时刻模型的输出不同的时候,就会导致下一时刻模型的输出概率分布会不同。

因为第i-1时刻的输出作为参数影响了后一时刻模型的学习。

如下图用了一个slides的法语翻译为英文的例子,可以更容易理解上面的解释。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring的properties属性配置文件和Spring常用注解

Spring的properties属性配置文件 问题: 在学习了Spring的知识后,需要被Spring管理的资源都是通过配置文件的形式来告诉Spring容器对象管理谁以及如何管理。但是随着使用次数的增多,我们发现配置文件中配置的标签越来越多,每次我们创建一个新…

即日起,正式进入编程世界!

点击上方蓝色关注我们!从今天开始,正式进入编程世界。首先我们先从堪称“少儿编程”的Scratch开始,简洁的编辑窗口加上可读性较高的Chinese(大部分的编程编辑器均为英文版),使得该软件特容易上手。班内总有…

使用领域事件

1.引言 最近刚学习了下DDD中领域事件的理论知识,总的来说领域事件主要有两个作用,一是解耦,二是使用领域事件进行事务的拆分,通过引入事件存储,来实现数据的最终一致性。若想了解DDD中领域事件的概念,可参…

深入浅出讲解语言模型

转载自 深入浅出讲解语言模型 深入浅出讲解语言模型 1、什么是语言模型呢? 简单地说,语言模型就是用来计算一个句子的概率的模型,也就是判断一句话是否是人话的概率? 那么如何计算一个句子的概率呢?给定句子&…

基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

一、前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知。随着岁月的成长,技术也从原来的三层设计到…

NLP Coursera By Michael Collins - Week1

转载自 NLP Coursera By Michael Collins - Week1 NLP Coursera By Michael Collins - Week1 构建模型框架 - Markov Process 毕竟是机器学习嘛,所以第一步,先要把实际问题转化成数学模型。 在NLP中,一般使用的都是概率模型,…

19级:班级日常分享,一天一瞬间

点击上方蓝色关注我们!19级的同学们目前正在做KTV点歌系统项目,截止今日为止,项目已经进展了1天多了,进度还在可控范围内,大部分组的后台都已完成,刘娜小组稍微比较慢了点儿。李磊小组的进度最快&#xff0…

Attentive Sequence to Sequence Networks

转载自 Attentive Sequence to Sequence Networks Attentive Sequence to Sequence Networks 1、Encoder-Decoder 框架 首先我们模型的整体框图如下: Encoder-Decoder 框架可以这么直观地去理解:可以把它看作适合处理由一个句子(或篇章&a…

20级四班班级管理规章制度

点击上方蓝色关注我们!

完全图解RNN、RNN变体、Seq2Seq、Attention机制

转载自 完全图解RNN、RNN变体、Seq2Seq、Attention机制 完全图解RNN、RNN变体、Seq2Seq、Attention 机制 本文首发于知乎专栏“ai insight”! 本文主要是利用图片的形式,详细地介绍了经典的RNN、RNN几个重要变体,以及Seq2Seq模型、Attent…

今天就唠叨唠叨吧……

点击上方蓝色关注我们!看书这个爱好是从去年年底开始的。看关于教育教学管理类型的书籍是从今年前半年开始的,有好些书都是王晓春老师写的,例如《做一个专业的班主任》、《问题学生诊疗手册》《今天怎样做教师》,每本书都有不一样…

如何轻松愉快的理解条件随机场(CRF)

转载自 如何轻松愉快的理解条件随机场(CRF) 如何轻松愉快的理解条件随机场(CRF)? 理解条件随机场最好的办法就是用一个现实的例子来说明它。 但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人…

ASP.NET Core MVC 控制器创建与依赖注入

在我最后一篇关于 ASP.NET Core 释放IDsiposable对象的文章(中文、英文原文)中,Mark Rendle 指出,MVC 控制器在请求结束时也会释放资源。乍一看,此范围内的资源在请求结束时会释放似乎是显而易见的,但是 MV…

19级:一天一瞬间

点击上方蓝色关注我们!3班的KTV项目周期为两周,目前时间将近一周,除李磊小组进度超出之外,其余四个小组的进度都属正常。上午大致的将每个小组的前台功能过了一遍,刘文瑞小组还剩几个点歌功能未实现,整体的…

拥抱.NET Core系列:依赖注入(2)

上一篇“拥抱.NET Core系列:依赖注入(1)大体介绍了服务注册、获取和生命周期,这一篇来做一些补充。由于内容跨度大(.NET Core、ASP.NET Core),所以文章并不是非常的贯穿,大家可以挑着…

使用Docker 实现微服务并搭建博客,一文全掌握

转载自 使用Docker 实现微服务并搭建博客,一文全掌握 Docker 是一个容器工具,提供虚拟环境。很多人认为,它改变了我们对软件的认识。 本文,通过搭建一个博客的例子,来介绍如何使用Docker实现微服务。 站在 Docker …

失望至极……

点击上方蓝色关注我们!

asp.net core新特性(1):TagHelper

进步,才是人应该有的现象。—— 雨果 今天开始,我就来说说asp.net core的新特性,今天就说说TagHelper标签助手。虽然学习.net,最有帮助的就是microsoft的官方说明文档了,里面把一些使用说明都写的非常清楚,…