在Seq2Seq解码部分中,常用到Beam Search。每个时刻它会保存b(beam size)个概率最大的选择作为当前的最佳选择,然后解码下一时刻时,继续选择和之前保存的b个选择组合起来后的概率最大的b个选择,依次循环迭代下去,直到编码结束。

下面直接上图:

在机器翻译中:

法语输入:Jane visite l’Afrique en septembre.

人工翻译:Jane visits Africa in September.

这里 beam size 为3。

在时刻1时,模型选择了概率最大的三个选择为:in ,jane,september。

在时刻2时,模型分别对时刻1的三个单词组合每个组合做贪心搜索,然后输出条件概率最大的三个选择为:in september,jane is,jane visits.

在时刻3,模型继续对前面的三个组合每个组合做贪心搜索,然后输出条件概率最大的三个选择为:

in september Jane,jane is visit , jane visits africa.

依次循环直到最后输出<EOS>符. 假设最后输出为这三个答案:

1)Jane is visit Africa in September.<EOS>

2)Jane visits africa in september. <EOS>

3)In September Jane will visit Africa.<EOS>

每个时刻都遍历次(这里为词汇量大小),然后算出概率最大的b个选择,共T个时刻,所以集束算法时间复杂度为:.

毫无疑问当b=1时,集束算法就退化为贪心算法,每个时刻遍历次,选出概率最大的那个词,共T个时刻,时间复杂度为:.

随着b越大,遍历搜索的空间也越大,计算量也越大.在实际的应用中,一般去b=10左右为佳.

Beam Search集束搜索相关推荐

  1. Greedy Search VS Beam Search 贪心搜索 vs 集束搜索

    在做NLP领域的NMT或者chatbot等方面的工作时,在进行inference(推理)的时候,经常会用到两种搜索方式,即Greedy Search和Beam Search. 1. Greedy Se ...

  2. 贪心搜索(greedy search)、集束搜索(beam search)、随机采样(random sample)

    当我们训练完成一个自然语言生成模型后,需要使用这个模型生成新的语言(句子),如何生成这些句子,使用如下的方法:贪心搜索,集束搜索,随机搜索. 贪心搜索(greedy search)/采样(Sampli ...

  3. 集束搜索(beam search)和贪心搜索(greedy search)

    最近读论文的时候看到文中经常用到集束搜索(beam search),可能很多人不懂这到底是个什么算法,其实很简单,顺便把贪心搜索(greedy search)也介绍一下. 贪心搜索(greedy se ...

  4. java实现beamsearch_Beam Search(集束搜索/束搜索)

    1.简介 Beam Search(集束搜索)是一种启发式图搜索算法,通常用在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较 ...

  5. 【NLP】选择目标序列:贪心搜索和Beam search

    构建seq2seq模型,并训练完成后,我们只要将源句子输入进训练好的模型,执行一次前向传播就能得到目标句子,但是值得注意的是: seq2seq模型的decoder部分实际上相当于一个语言模型,相比于R ...

  6. Beam Search 及5种优化方法

    文章目录 Beam Search 及优化 1. Review Beam Search 2. Beam Search Refinement 2.1 Hypothesis filtering 2.2 No ...

  7. 集束搜索(Beam Search)

    来源:Coursera吴恩达深度学习课程 我们来看看集束搜索(beam search)算法,上篇文章选择最可能的句子讲了对于机器翻译来说,给定输入(法语句子),我们并不想要一个随机的英语翻译结果,而是 ...

  8. Beam Search(集束搜索)算法

    1.概念 Beam Search(集束搜索):是一种启发式图搜索算法,在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的 ...

  9. NLP自然语言处理 集束搜索(beam search)和贪心搜索(greedy search)

    https://blog.csdn.net/qq_16234613/article/details/83012046 https://blog.csdn.net/weixin_38937984/art ...

最新文章

  1. 好分数a1a5_好分数怎么查看班级排名 七年级学生成绩查询
  2. c语言编写atm取款功能_21行C语言代码编写一个具备加密功能的聊天程序!网友:666...
  3. boost::yap::make_expression_function相关的测试程序
  4. B端产品经理如何更好的了解需求?
  5. 分布式幂等性如何保证
  6. mysql 多表联合查询怎么一行显示_使用 explain 优化你的 mysql 性能
  7. 惠斯通电桥信号调理芯片_基于精密分流电阻器的惠斯通电桥校准
  8. HCIE-Security Day37:理论学习:信息安全防范与趋势
  9. Avro, Protocol Buffers 、Thrift的联系与区别
  10. Selenium官网教程
  11. 【Java】基本类型之short(四)
  12. 干货,分享!AdminEx - 响应式设计后台管理模版!!!
  13. MySQL超市会员管理系统_springboot+mysql超市会员管理系统
  14. PVS更新Vdisk大型环境中提升为测试版
  15. 像外行一样思考 像专家一样实践
  16. 离散数学:用python解决逻辑推理问题
  17. 【latex】总结使用到的画图、表格及公式操作(新增IEEE会议参考文献)
  18. 如何让多行文本出现省略号?
  19. 为战疫助力,半导体功不可没
  20. win7 64rundll32.exe下载_重装系统是选择ghostwin7还是原版win7

热门文章

  1. tableau 字段去重_tableau prep学习
  2. 2022第十五届全国大学生信息安全竞赛(ciscn)西南赛区部分WP
  3. 网上商城系统mysql_网上商城系统jsp+servlet+mysql130909
  4. python模拟微信发红包,并验证随机性
  5. Linux的入门学习
  6. ROS键盘控制机器人
  7. STO不会火,比特大陆不会死,币安会去非洲:区块链行业的63个预测
  8. SpringBoot发送QQ邮件图片显示不出来
  9. CAN笔记(17) 预定义报文ID
  10. 扩展坞可以把手机投到显示器吗_连接手机与屏幕的桥梁,ORICO多功能扩展坞体验...