循环神经网络在神经机器翻译中的应用
1. 循环神经网络与束搜索
在处理单词序列时,设 $y$ 为一个单词序列,$P(y)$ 是根据语言模型得到的该序列的概率。我们使用束搜索(Beam Search)来探索在时间 $t$ 时序列的多个假设 $H_{t - 1}$,束宽为 $k$。
束搜索的具体步骤如下:
1. 初始化 $H_0 = {( )}$,$P_0 = {0}$。
2. 对于 $t$ 从 1 到 $T$:
- 对于 $H_{t - 1}$ 中的每个假设 $h$:
- 对于每个可能的输出 $\hat{y} \in Y$:
- 生成新的假设 $\hat{y} = (y_h^1, \cdots, y_h^{t - 1}, \hat{y})$。
- 计算该假设的概率 $P(\hat{y})$。
- 将新假设加入 $H_{t +}$,概率加入 $P_{t +}$。
- 按照概率对 $H_t$ 进行排序。
- 选取前 $k$ 个假设作为 $H_t$。
束搜索的算法代码如下:
# 束搜索算法
Data: ˆy, beamWidth
Result: y with highest p(y)
begin
H0 = {(< SOS >)}
P0 = {0}
for t in 1 to T do
for h in Ht−1 do
for ˆy ∈Y do
ˆy = (yh1,...,yht−1, ˆy)
超级会员免费看
订阅专栏 解锁全文
6215

被折叠的 条评论
为什么被折叠?



