神经联合模型

  神经联合模型的训练;

  输入:双语语料 C={x,y}1N网络

  输出:模型参数 Θ函数

 (1)使用对其工具对双语语料进行对齐,得到 C={ x, y, a}1N ,其中 a 为对齐矩阵。工具

 (2)随机初始化神经网络参数 Θ
学习

 (3)从双语语料 C 中随机采样一个句对{xk,yk,ak},而且从 y中随机采样一个 n 元组(yik,yi-1k,......,yi-N+1k) spa

  经过对齐信息得到源语言句子中大小为 M 的上下文窗口 Cik (Xai-(M+1)/2,....,Xai-1,Xai,....,Xai+(M+1)/2)翻译

 (4)将 n 元组(yik,yi-1k,......,yi-N+1k) 和上下文窗口 Ci输入神经网络,计算损失 Likorm

 (5)使用损失函数 Lik  计算参数梯度 σik ,并使用梯度降低法更新模型参数 Θ = Θ - α σik ,其中 α 是学习率blog

 (6)若损失函数 L>ε 则重复步骤 (3)—(5)  继承

语言模型:

  最先成功的语言模型是基于固定长度的序列的标记模型,成为 n-gram 模型,一个n-gram  模型是一个包含 n 个标记的序列。ci

  基于n-gram 模型定义了一个条件几率,给定前 n-1 个标记后的第 n 个标记的条件几率,该模型使用这些条件分布的乘积来定义较长序列的几率分布:

             P(x1,...,xτ)= P(x1,...,xn-1)∏ τ t=n   P(xt | xt-n+1,....,xt-1

神经语言联合模型:

  N元神经网络语言模型讲前边 N-1 个词转换为词向量,而后输入到神经网络,通过若干线性层和非线性层来预测下一个词,与N元神经网络语言模型不一样

  的地方在于神经网络语言模型除了使用目标语言的前 N-1 个词做为输入外,源语言句子的信息一样做为输入来对下一个目标语言次进行预测。

   例如:

 

 

 

 

 

 

 

 

 

 

 

  (1)将 “ 经济、发展、变 ” 经过词向量-表映射为对应的词向量,并将这三个词的词向量进行拼接,而后做为线性层的输入。

  (2)拼接后的向量通过一个非线性层(通常采用双正切函数 tanh )获得特征表示

  (3)基于学到的特征表示,在通过一个线性层映射为词表大小的向量

  (4)最终使用 softmax 层得到词 “ 慢 ” 做为 “ 经济、发展、变 ” 以后的第四个词的几率 ( P(慢 |  经济、发展、变 ))。

假设中文句子 y = { 在近几年经济发展变慢了 } 是从英文句子 x = { economic growth has slowed down in recent years } 得来:

  根据已知的对齐信息,中文 “ 慢 ” 对齐到英文句子的词是 slowed ,则以 slowed 为中心,取一个大小为 m ( 假设为5 ) 的窗口 { growth、 has 、slowed、 down、 in }

  此时语言模型和翻译模型的联合模型即是计算 P(慢 |  经济、发展、变 、growth、 has 、slowed、 down、 in } 

  (1)若 y对齐到源语言的多个词,则以这几个词为中心当作源语言句子上下文窗口的中心。

  (2)若 yi 没有对齐到源语言句子中的任何词,则向前找一个距离最近的存在对齐关系的目标语言词,继承该次对应的源语言句子的上下层窗口。

softmax函数:

  softmax用于多分类过程当中,它将多个神经元的输出,映射到(0,1)区间内,能够当作几率来理解,从而来进行多分类,而这些值的累和为1(知足几率的性质)。

熵:

  熵是一个不肯定性的测度,也就是说,咱们对于某件事情知道的越多,则熵就越小,咱们对其结果就越不感到意外。关于未知分布最合理的推断应该是符合已知知识最不

  肯定或最大随机的推断。

交叉熵:

  基于神经网络的联合模型一般使用交叉熵做为损失函数。

 

 

 

 

 

 

 

 

 

 

 

一个随机变量 ,为用于近似的改路分布,则随机变量和模型之间的交叉熵定义为:

交叉熵经常用于模型的选择,若越小,则model越好。

相关文章
相关标签/搜索