首页 > 其他分享 >《动手学深度学习 Pytorch版》 9.8 束搜索

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

时间:2023-10-20 15:38:13浏览次数:36  
标签:输出 search Pytorch 搜索 穷举 序列 9.8 贪心

本节将介绍几大:

  • 贪心搜索(greedy search)策略

  • 穷举搜索(exhaustive search)

  • 束搜索(beam search)

9.8.1 贪心搜索

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

\[y_{t'}=\mathop{\arg\max}\limits_{y\in\boldsymbol{Y}}{P(y|y_1,\dots,y_{t-1},\boldsymbol{c})} \]

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

image

问题:

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

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

9.8.2 穷举搜索

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

9.8.3 束搜索

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

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

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

image

练习

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

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


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

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


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

上束搜索。

标签:输出,search,Pytorch,搜索,穷举,序列,9.8,贪心
From: https://www.cnblogs.com/AncilunKiang/p/17777191.html

相关文章

  • 获取二叉搜索树中节点值的和等于指定输入整数的所有路径
    二叉搜索树(BST)是一种特殊的二叉树,其每个节点的值都大于其左子树的所有节点的值,并且小于其右子树的所有节点的值。由于这种特性,我们可以在BST中快速查找、插入、删除节点。在BST中,我们可以通过遍历所有路径来找到节点值的和等于指定整数的所有路径。以下是一个使用Python实现的例子:p......
  • 在Java中,可以使用`java.nio.file`包中的`Files`类来进行文件搜索。以下是一种模糊搜索
    在Java中,可以使用`java.nio.file`包中的`Files`类来进行文件搜索。以下是一种模糊搜索文件的方法:```javaimportjava.io.IOException;importjava.nio.file.*;importjava.nio.file.attribute.BasicFileAttributes;publicclassFileSearch{publicstaticvoidmain(String......
  • 《动手学深度学习 Pytorch版》 9.6 编码器-解码器架构
    为了处理这种长度可变的输入和输出,可以设计一个包含两个主要组件的编码器-解码器(encoder-decoder)架构:编码器(encoder):它接受一个长度可变的序列作为输入,并将其转换为具有固定形状的编码状态。解码器(decoder):它将固定形状的编码状态映射到长度可变的序列。9.6.1编码器编......
  • 《动手学深度学习 Pytorch版》 9.7 序列到序列学习(seq2seq)
    循环神经网络编码器使用长度可变的序列作为输入,将其编码到循环神经网络编码器固定形状的隐状态中。为了连续生成输出序列的词元,独立的循环神经网络解码器是基于输入序列的编码信息和输出序列已经看见的或者生成的词元来预测下一个词元。要点:“<eos>”表示序列结束词元,一旦输......
  • 数据结构之美:如何优化搜索和排序算法
    文章目录搜索算法的优化1.二分搜索2.哈希表排序算法的优化1.快速排序2.归并排序总结......
  • 使用Pytorch Geometric 进行链接预测代码示例
    PyTorchGeometric(PyG)是构建图神经网络模型和实验各种图卷积的主要工具。在本文中我们将通过链接预测来对其进行介绍。链接预测答了一个问题:哪两个节点应该相互链接?我们将通过执行“转换分割”,为建模准备数据。为批处理准备专用的图数据加载器。在TorchGeometric中构建一个......
  • PyTorch大更新,编译代码速度暴增35倍!视觉模型一键部署,头显Quest 3可用
    前言 最近,在Pytorch发布会上,发布移动端Pytorch解决方案ExecuTorch,实现在移动端设备上大范围地部署AI工具,并推出最新版本Pytorch2.1,推理速度大幅提升。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典......
  • Firefox 火狐浏览器 添加自定义搜索引擎 并屏蔽特定网站
    火狐浏览器添加自定义搜索引擎并屏蔽特定网站记录一下火狐浏览器(Firefox)添加自定义搜索引擎,并屏蔽特定网站的两种操作(注:本文用XXXX代替真实网站)。搜索引擎搜索时,有很多重复且无用的结果,部分有用的信息也需要登录关注才能看。这些内容大部分源于某些个网站,占据了大部分搜索结果......
  • 《动手学深度学习 Pytorch版》 9.5 机器翻译与数据集
    机器翻译(machinetranslation)指的是将序列从一种语言自动翻译成另一种语言,基于神经网络的方法通常被称为神经机器翻译(neuralmachinetranslation)。importosimporttorchfromd2limporttorchasd2l9.5.1下载和预处理数据集“Tab-delimitedBilingualSentencePairs”......
  • “当当平台关键字搜索API:轻松实现高效购物,获取海量商品信息!“
    1688商品评论接口是一种供卖家使用的接口,可以让卖家通过该接口维护商品的评论信息,包括评论内容、评分、评论时间等等。通过使用该接口,卖家可以方便地管理商品的评论信息,包括查看、修改、删除评论等操作。同时,该接口还支持卖家对商品进行评分,以帮助其他买家更好地了解商品的质量和特......