没有合适的资源?快使用搜索试试~ 我知道了~
chap15-序列生成模型1
需积分: 0 0 下载量 78 浏览量
2022-08-03
11:49:33
上传
评论
收藏 719KB PDF 举报
温馨提示
试读
30页
引入拉格朗日乘子λ,定义拉格朗日函数Λ(θ,λ)为Λ(θ, λ) =.邱锡鹏:《神经网络与深度学习》N 元统计模型2019 年 4 月 6 日令∂Λ(θ, λ)
资源详情
资源评论
资源推荐
第 14 章 序列生成模型
人类语言似乎是一种独特的现象,在动物世界中没有显著
类似的存在。
— 诺姆·乔姆斯基
在深度学习的应用中,有很多数据是以序列的形式存在,比如声音、语言、
视频、DNA 序列或者其它的时序数据等。以自然语言为例,一个句子可以看做
是符合一定自然语言规则的词(word)的序列。这些语言规则包含非常复杂的
这里假定语言的最基本单位
为词(word),当然也可以为
字或字母(character)。
语法和语义的组合关系,很难显式地建模这些规则。在认知心理学上有一个经
典的实验,当一个人看到下面两个句子:
面包上涂黄油
面包上涂袜子
后一个句子在人脑的语义整合时需要更多的处理时间,更不符合自然语言规则。
从统计的角度来看,这些语言规则可以看成是一种概率分布。一个长度为 T 的
文本序列看作一个随机事件 X
1:T
= ⟨X
1
, ··· , X
T
⟩,其中每个位置上的变量 X
t
的样本空间为一个给定的词表(vocabulary)V,整个序列 x
1:T
的样本空间为
|V|
T
。在某种程度上,自然语言也确实有很多随机因素。比如当我们称赞一个
人漂亮时,可以说“美丽”,“帅”或者“好看”等。当不指定使用场合时,这
几个词可以交替使用,具体使用哪个词可以看作一个随机事件。
给定一个序列样本 x
1:T
= x
1
, x
2
, ··· , x
T
,其概率可以看出是 T 个词的联合
概率。
在本章中,我们用 X
t
表示位
置 t 上的随机变量,x
1:T
表
示一个序列样本,x
t
来表示
一个序列样本在位置 t 上的
值。
P (X
1:T
= x
1:T
) = P (X
1
= x
1
, X
2
= x
2
, ··· , X
T
= x
T
) (14.1)
= p(x
1:T
). (14.2)
和一般的概率模型类似,序列概率模型有两个基本问题:(1)学习问题:给
334 2019 年 4 月 6 日 第 14 章 序列生成模型
定一组序列数据,估计这些数据背后的概率分布;(2)生成问题:从已知的序
列分布中生成新的序列样本。
序列数据一般可以通过概率图模型来建模序列中不同变量之间的依赖关
系,本章主要介绍在序列数据上经常使用的一种模型:自回归生成模型(Autoregressive
Generative Model)。
不失一般性,本章以自然语
言为例来介绍序列概率模型。
14.1 序列概率模型
序列数据有两个特点:(1)样本是变长的;(2)样本空间为非常大。对于
一个长度为 T 的序列,其样本空间为 |V|
T
。因此,我们很难用已知的概率模型
来直接建模整个序列的概率。
根据概率的乘法公式,序列 x
1:T
的概率可以写为
p(x
1:T
) = p(x
1
)p(x
2
|x
1
)p(x
3
|x
1:2
) ···p(x
T
|x
1:(T −1)
) (14.3)
=
T
t=1
p(x
t
|x
1:(t−1)
), (14.4)
其中 x
t
∈ V, t ∈ [ 1, T ] 为词表 V 中的一个词,p(x
1
|x
0
) = p(x
1
)。
因此,序列数据的概率密度估计问题可以转换为单变量的条件概率估计问
题,即给定 x
1:(t−1)
时 x
t
的条件概率 p(x
t
|x
1:(t−1)
)。
给定N 个序列数据 {x
(n)
1:T
n
}
N
n=1
,序列概率模型需要学习一个模型p
θ
(x|x
1:(t−1)
)
来最大化整个数据集的对数似然函数。
max
θ
N
n=1
log p
θ
x
(n)
1:T
n
= max
θ
N
n=1
T
n
t=1
log p
θ
x
(n)
t
|x
(n)
1:(t−1)
. (14.5)
在这种序列模型方式中,每一步都需要将前面的输出作为当前步的输入,是
一种自回归(autoregressive)的方式。因此这一类模型也称为自回归生成模型
自回归模型参见第6.1.2节。
(Autoregressive Generative Model)。
由于 X
t
∈ V 为离散变量,我们可以假设条件概率 p
θ
(x
t
|x
1:(t−1)
) 服从多项
分布,然后通过不同的模型来估计。本章主要介绍两种比较主流的模型:N 元
多项分布参见第D.2.2.2节。
统计模型和深度序列模型。
N 元统计模型参见第14.2节。
深度序列模型参见第14.3节。
14.1.1 序列生成
一旦通过最大似然估计训练了模型 p
θ
(x|x
1:(t−1)
),就可以通过时间顺序来
生成一个完整的序列样本。令 ˆx
t
为在第 t 时根据分布 p
θ
(x|
ˆ
x
1:(t−1)
) 生成的词,
ˆx
t
∼ p
θ
(x|
ˆ
x
1:(t−1)
), (14.6)
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
14.1 序列概率模型 2019 年 4 月 6 日 335
其中
ˆ
x
1:(t−1)
= ˆx
1
, ··· , ˆx
t−1
为前面 t − 1 步中生成的前缀序列。
自回归的方式可以生成一个无限长度的序列。为了避免这种情况,通常会
设置一个特殊的符号“<eos>”来表示序列的结束。在训练时,每个序列样本
的结尾都加上符号“<eos>”。在测试时,一旦生成了符号“<eos>”,就中止
生成过程。
束搜索 当使用自回归模型生成一个最可能的序列时,生成过程是一种从左到右
的贪婪式搜索过程。在每一步都生成最可能的词,
ˆx
t
= arg max
x∈V
p
θ
(x|
ˆ
x
1:(t−1)
), (14.7)
其中
ˆ
x
1:(t−1)
= ˆx
1
, ··· , ˆx
t−1
为前面 t − 1 步中生成的前缀序列。
这种贪婪式的搜索方式是次优的,生成的序列
ˆ
x
1:T
并不保证是全局最优的。
T
t=1
max
x
t
∈V
p
θ
(x
t
|
ˆ
x
1:(t−1)
) ≤ max
x
1:T
∈V
T
T
t=1
p
θ
(x|x
1:(t−1)
). (14.8)
一种常用的减少搜索错误的启发式方法是束搜索(Beam Search)。在每一
步的生成中,生成 K 个最可能的前缀序列,其中 K 为束的大小(Beam Size),
是一个超参数。
束搜索的过程如下:在第 1 步时,生成 K 个最可能的词。在后面每一步中,
从 K|V|个候选输出中选择 K 个最可能的序列。图14.1给出了一个束搜索过程的
示例,其中词表 V = {A, B, C},束大小为 2。
参见习题14-5。
t=1 t=2
t=3
ϕ
C
C
B
C
B
AA
B
A
C
B
A
C
B
A
AAB
CBA
图 14.1 束搜索过程示例
束搜索可以通过调整束大小K 来平衡计算复杂度和搜索质量之间的优先级。
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
336 2019 年 4 月 6 日 第 14 章 序列生成模型
14.2 N 元统计模型
由于数据稀疏问题,当 t 比较大时,依然很难估计条件概率 p(x
t
|x
1:(t−1)
)。
一个简化的方法是 N 元模型(N-Gram Model),假设每个词 x
t
只依赖于其前
面的 n − 1 个词(n 阶马尔可夫性质),即
马尔可夫性质参见第D.3节。
p(x
t
|x
1:(t−1)
) = p(x
t
|x
(t−n+1):(t−1)
). (14.9)
当 n = 1 时,称为一元(unigram)模型;当 n = 2 时,称为二元(bigram)
模型,以此类推。
一元模型 当 n = 1 时,序列 x
1:T
中每个词都和其它词独立,和它的上下文无关。
每个位置上的词都是从多项分布独立生成的。在多项分布中,θ = [θ
1
, ··· , θ
|V|
]
为词表中每个词被抽取的概率。
多项分布参见第D.2.2.2节。
在一元模型中,序列 x
1:T
的概率可以写为
p(x
1:T
|θ) =
T
t=1
p(x
t
) =
|V|
k=1
θ
m
k
k
, (14.10)
其中 m
k
为词表中第 k 个词 v
k
在序列中出现的次数。公式(14.10)和标准多项分
布的区别是没有多项式系数,因为这里词的顺序是给定的。
给定一组训练集 {x
(n)
1:T
n
}
N
′
n=1
,其对数似然函数为:
log
N
′
n=1
p
x
(n)
1:T
n
|θ
= log
|V|
k=1
θ
m
k
k
(14.11)
=
|V|
k=1
m
k
log θ
k
, (14.12)
其中 m
k
为第 k 个词在整个训练集中出现的次数。
这样一元模型的最大似然估计可以转化为约束优化问题:
max
θ
|V|
k=1
m
k
log θ
k
(14.13)
subjuct to
|V|
k=1
θ
k
= 1. (14.14)
拉格朗日乘子参见第C.3节。
引入拉格朗日乘子 λ,定义拉格朗日函数 Λ(θ, λ) 为
Λ(θ, λ) =
|V|
k=1
m
k
log θ
k
+ λ
|V|
k=1
θ
k
− 1
. (14.15)
邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
剩余29页未读,继续阅读
懂得越多越要学
- 粉丝: 20
- 资源: 308
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0