zoukankan      html  css  js  c++  java
  • 神经联合模型

      神经联合模型的训练;

      输入:双语语料 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) 

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

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

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

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

    语言模型:

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

      基于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越好。

  • 相关阅读:
    webpack常见的配置项
    详解javascript立即执行函数表达式(IIFE)
    javascript闭包—围观大神如何解释闭包
    hubilder打包+C#服务端个推服务实现
    vue学习笔记1-基本知识
    javascript中的字典
    javascript中获取元素尺寸
    php常见知识
    javascript中使用循环链表实现约瑟夫环问题
    ASP.NET Core 中的文件上传
  • 原文地址:https://www.cnblogs.com/hanouba/p/10561231.html
Copyright © 2011-2022 走看看