《动手学深度学习 Pytorch版》 9.8 束搜索

news2024/10/7 6:32:34

本节将介绍几大:

  • 贪心搜索(greedy search)策略

  • 穷举搜索(exhaustive search)

  • 束搜索(beam search)

9.8.1 贪心搜索

贪心搜索已用于上一节的序列预测。对于输出序列的每一时间步 t ′ t' t,都从 Y \boldsymbol{Y} Y 中找到具有最高条件概率的词元,即:

y t ′ = arg ⁡ max ⁡ y ∈ Y P ( y ∣ y 1 , … , y t − 1 , c ) y_{t'}=\mathop{\arg\max}\limits_{y\in\boldsymbol{Y}}{P(y|y_1,\dots,y_{t-1},\boldsymbol{c})} yt=yYargmaxP(yy1,,yt1,c)

一旦输出序列包含了“<eos>”或者达到其最大长度 T ′ T' T,则输出完成。

在这里插入图片描述

问题:

  • 最优序列应该是最大化值的输出序列,而贪心搜索无法保证得到最优序列。

  • 每次选择都会影响后续的所有结果。

9.8.2 穷举搜索

穷举搜索(exhaustive search)穷举地列举所有可能的输出序列及其条件概率,然后计算输出条件概率最高的一个。其计算量 O ( Y T ′ ) O(\boldsymbol{Y}^{T'}) O(YT) 可能高的惊人。

9.8.3 束搜索

穷举搜索有精度优势,贪心搜索有计算成本优势,而束搜索则介于这两个极端之间。

束搜索(beam search)是贪心搜索的一个改进版本。它有一个超参数,名为束宽(beam size) k k k。在时间步 1,我们选择具有最高条件概率的 k k k 个词元。这 k k k 个词元将分别是 k k k 个候选输出序列的第一个词元。在随后的每个时间步,基于上一时间步的 k k k 个候选输出序列,继续从 k k k 个可能的选择中挑出具有最高条件概率的 k k k 个候选输出序列。

最后,选择其中条件概率乘积最高的序列作为输出序列。

在这里插入图片描述

练习

(1)我们可以把穷举搜索看作一种特殊的束搜索吗?为什么?

可以看作束宽拉满的束搜索。


(2)在 9.7 节的机器翻译问题中应用束搜索。束宽是如何影响预测的速度和结果的?

束搜索需要的计算更多,肯定是越宽越慢。


(3)在 8.5 节中,我们基于用户提供的前缀,通过使用语言模型来生成文本。这个例子中使用了哪种搜索策略?可以改进吗?

上束搜索。

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

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

相关文章

【FPGA零基础学习之旅#16】嵌入式块RAM-双口ram的使用

&#x1f389;欢迎来到FPGA专栏~双口ram的使用 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能指正…

SystemVerilog学习(3)——数组

一、定宽数组 相比于Verilog-1995中的一维定宽数组&#xff0c;SV提供了更加多样的数组类型&#xff0c;功能上也大大增强。 1.1 定宽数组的声明与初始化 Verliog要求在声明中必须给出数组的上下界。因为几乎所有的数组都使用0作为索引下届&#xff0c;所以SV允许只给出数组的…

UART、SPI、I2C通信协议超全入门教程

本文引注: https://mp.weixin.qq.com/s/lVWK8xlDt7cOLi8WHYSuPg 1.SPI协议 1.基础 2.简介 3.工作原理 4.SPI数据传输步骤与优缺点 2.UART协议

抖音同城榜:探索城市新潮流

随着科技的飞速发展&#xff0c;短视频已经成为了人们日常生活中不可或缺的一部分。作为短视频领域的佼佼者&#xff0c;抖音一直致力于为用户带来更丰富、更有趣的短视频内容。抖音同城榜应运而生&#xff0c;成为了最新、最热门的话题聚集地&#xff0c;吸引了大量潮流达人和…

Java SSL/TLS证书认证逻辑

前言 最近做项目使用httpclient转发https请求&#xff0c;但是遇到一些坑&#xff0c;尤其是证书的认证&#xff0c;证书认证一般都是单向的&#xff0c;除非相互访问&#xff0c;证书一般基于host&#xff0c;但是如果访问需要ip&#xff0c;那么JDK默认的认证就会不通过&…

Unity⭐️Win和Mac安卓打包环境配置

文章目录 🟥 配置Android SDK1️⃣ 配置 SDK Platforms2️⃣ 配置 SDK Tools🎁 Android SDK Build-Tools🎁 Android SDK Command-line Tools(latest)🎁 Android SDK Tools(Obsolete)🟧 配置NDK🟩 配置JDK前情提示: 此方法适用于Windows/Mac 在配置时注意开启 🪜 …

shell变量之学习笔记

shell变量之学习笔记 Shell变量概念1 shell变量分类&#xff1a;2 变量的赋值3 变量赋值格式&#xff1a;4 变量命名方式5 变量声明6 变量引用7 变量清除8 变量只读9 内部参数变量10 位置参数变量11 退出和返回状态12 命令替换13 read命令14 字符串长度与截取15 字符串替换16 变…

FL studio21永久激活码 附带一键下载安装包

玩音乐的朋友&#xff0c;对FL studio肯定不陌生&#xff0c;目前最新的版本是FL studio21&#xff0c;这是一款非常强大且专业的音频制作软件&#xff0c;而且还可以编曲、剪辑、录音、混音等等之类的创作操作&#xff0c;使你的计算机成为一个全功能录音室。下面小编就来和大…

15.Tensor Product vs. Kronecker Product

此处是为澄清她两的区别&#xff0c; 这两个事物 都用的相同的符号表示&#xff0c; 即这个圈数符号&#xff0c; 它在数学中有许多不同的含义&#xff0c; 本文讨论的是&#xff1a;“张量积”&#xff0c;它是对张量的运算&#xff1b; 以及“Kronecker ”积&#xff0c;…

C#WPFPrism框架模块化应用实例

本文实例演示C#WPFPrism框架模块化应用实例。 首先创建WPF项目,修改App相关文件内容,以便使用prism。 一、添加模块 解决方案中添加ModuleA和ModuleB两个项目 删除不用的窗体,添加自定义窗体 修改ModuleA和ModuleB的输出类型

最近又火了!吴恩达《生成式 AI》重磅发布!

吴恩达教授可能是许多人接触 AI 的启蒙课导师吧&#xff0c;在过去的十多年中&#xff0c;他的《Machine Learning》课程已经对数百万的学习者产生了积极影响。 而随着 ChatGPT 的推出&#xff0c;大模型和各类生成式人工智能&#xff08;GenAI&#xff09;技术在行业内外备受…

激活WinEdt 11.1

激活WinEdt 11.1 打开WinEdt 11.1&#xff0c;点击help 点击Register WinEdtname输入&#xff1a;*60[20220501] Warez_Down [RU-BOARD] (100 users)Code输入&#xff1a;4049089118892183088 即可激活。 参考文章https://blog.csdn.net/j_l_sheng/article/details/125456662

内存的基础知识

一、概述 1.内存&#xff1a; 存放数据&#xff0c;为了缓和CPU与硬盘之间的速度差异&#xff0c;程序执行前会先放入内存中再让CPU处理。 由存储单元(存放数据的最小单元&#xff0c;每个单元都会对应一个地址)构成 2.常用数量单位&#xff1a; 1K(千)2的10次方 1M(兆)2的20次…

基于springboot实现藏区特产销售平台项目【项目源码+论文说明】计算机毕业设计

基于springboot实现藏区特产销售平台演示 摘要 “互联网”的战略实施后&#xff0c;很多行业的信息化水平都有了很大的提升。但是目前很多藏区特产销售信息仍是通过人工管理的方式进行&#xff0c;需要在各个岗位投入大量的人力进行很多重复性工作&#xff0c;使得对人力物力造…

Python Django教程之实现待办事项应用程序

Django是一个基于Python Web框架的高级Web框架&#xff0c;允许快速开发和干净&#xff0c;务实的设计。本文将创建一个待办事项应用程序&#xff0c;以了解Django的基础知识&#xff0c;感兴趣的可以尝试一下。今天&#xff0c;我们将创建一个待办事项应用程序&#xff0c;以了…

基于springboot实现4S店车辆管理系统项目【项目源码+论文说明】

基于springboot实现4S店车辆管理系统演示 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&am…

leetcode 105. 从前序与中序遍历序列构造二叉树

2023.10.21 本题需要根据前序遍历序列和中序遍历序列来构造出一颗二叉树。类似于从中序与后序遍历序列构造二叉树 。使用递归&#xff0c; java代码如下&#xff1a; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* …

建筑模板价格多少钱一张?

建筑模板是建筑施工中常用的一种材料&#xff0c;它的价格对于建筑行业来说非常重要。根据搜索结果&#xff0c;以下是关于建筑模板价格的具体信息&#xff1a; 1. 建筑模板尺寸和价格&#xff1a; - 常见的建筑模板尺寸有两种&#xff1a;2440mm 1220mm和1830mm 915mm - 一般…

个人微信号管理工具哪个好?

先来看看微信个人号管理工具的应用场景和功能。 下面主要从微信个人号管理工具中我觉得比较好用的功能进行讲解&#xff1a; 1加粉功能 私域流量池搭建第一步&#xff0c;导入用户。 导入数据&#xff08;微信号或手机号&#xff09;&#xff0c;设置加人任务&#xff0c;每天会…

OpenCV中world模块介绍

OpenCV中有很多模块&#xff0c;模块间保持最小的依赖关系&#xff0c;用户可以根据自己的实际需要链接相关的库&#xff0c;而不需链接所有的库&#xff0c;这样在最终交付应用程序时可以减少总库的大小。但如果需要依赖OpenCV的库太多,有时会带来不方便&#xff0c;此时可以使…