×

PyTorch教程9.3.之语言模型

消耗积分:0 | 格式:pdf | 大小:0.23 MB | 2023-06-05

维生素B2

分享资料个

9.2 节中,我们将看到如何将文本序列映射到标记中,其中这些标记可以被视为一系列离散的观察结果,例如单词或字符。假设文本序列中的标记长度T依次是 x1,x2,…,xT. 语言模型的目标是估计整个序列的联合概率:

(9.3.1)P(x1,x2,…,xT),

其中可以应用第 9.1 节中的统计工具。

语言模型非常有用。例如,一个理想的语言模型将能够自行生成自然文本,只需一次绘制一个标记即可 xt∼P(xt∣xt−1,…,x1). 与使用打字机的猴子完全不同,从这种模型中出现的所有文本都将作为自然语言传递,例如英文文本。此外,只需在先前的对话片段上调节文本,就足以生成有意义的对话。显然,我们离设计这样一个系统还有很长的路要走,因为它需要理解文本,而不仅仅是生成语法合理的内容。

尽管如此,语言模型即使在其有限的形式下也能提供很好的服务。例如,“to recognize speech”和“to wreck a nice beach”这两个短语听起来非常相似。这可能会导致语音识别中出现歧义,这很容易通过一种语言模型来解决,该模型拒绝将第二种翻译认为是古怪的。同样,在文档摘要算法中,值得知道“狗咬人”比“人咬狗”更频繁,或者“我想吃奶奶”是一个相当令人不安的陈述,而“我想吃,奶奶”要温和得多。

import torch
from d2l import torch as d2l
from mxnet import np, npx
from d2l import mxnet as d2l

npx.set_np()
from jax import numpy as jnp
from d2l import jax as d2l
No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
import tensorflow as tf
from d2l import tensorflow as d2l

9.3.1. 学习语言模型

显而易见的问题是我们应该如何对文档甚至一系列标记进行建模。假设我们在单词级别标记文本数据。让我们从应用基本概率规则开始:

(9.3.2)P(x1,x2,…,xT)=∏t=1TP(xt∣x1,…,xt−1).

例如,包含四个单词的文本序列的概率为:

(9.3.3)P(deep,learning,is,fun)=P(deep)P(learning∣deep)P(is∣deep,learning)P(fun∣deep,learning,is).

9.3.1.1. 马尔可夫模型和n-克

9.1节的序列模型分析中,我们将马尔可夫模型应用到语言建模中。序列上的分布满足一阶马尔可夫性质,如果 P(xt+1∣xt,…,x1)=P(xt+1∣xt). 更高的阶数对应更长的依赖关系。这导致我们可以应用一些近似值来对序列建模:

(9.3.4)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !