论文阅读:《神经机器翻译和序列对序列模型:一个教程》中
2017-06-27 15:43
218 查看
4 对数线性语言模型
本节讨论另一种语言模型:对数线性语言模型。它的计算方法跟上面提到的基于计数的语言模型很不同。4.1 模型公式化
对数线性语言模型也是计算给定前几个词的条件下下一个词的条件概率,但是方法不一样,基本分为以下几步:计算特征:对数线性语言模型围绕特征这个概念。特征是“上下文中某个对预测下一个词有用的东西”。更精确地,我们定义一个特征函数ϕ(et−1t−n+1),以上下文为输入,输出一个实值特征向量x∈ℝN来用N个特征描述上下文。
计算得分:有了特征向量之后,我们就要用它预测每个单词的概率。为此,我们计算一个得分向量s∈ℝ|V|对应每个词的似然。我们用模型参数W∈ℝ|V|×N,b∈ℝN来计算得分向量:
s=Wx+b
计算概率:把得分向量转换成概率向量:
p=softmax(s)
解读:p表示了在上下文et−1t−n+1之后,每个词出现的概率。p本身是长度为|V|的向量,向量里的值表示相应位置的词出现的概率。每个词都有一个index,这个index跟p的index相对应。
4.2 学习模型参数
首先我们要定义损失函数l,一个表达我们在训练数据上做的有多差的函数。大多数情况下,我们假设这个损失等于负对数似然:l(εtest;θ)=−logP(εtest⎪θ)=−∑E∈εtrainlogP(E⎪θ)
解读:这里的参数不再是P(et⎪et−1t−n+1),而是W,b。不同的参数得到不同的损失,我们要通过训练找到那个使损失最小的参数。比如,我们要计算一个句子E的损失,就计算参数对于E的负对数似然。通过之前的 计算概率 公式依次计算E的分句的条件概率,再用链式法则计算参数对于E的似然P(E⎪θ),相应也得到了负对数似然。
用随机梯度下降更新参数。为了要保证训练过程稳定,还有其他东西要考虑:
调整学习率:一开始学习率比较大,然后逐渐减少。
早停:通常会留出一个开发集(验证集),在这个集上测量对数似然,然后保留那个最大对似然的模型。这是为了防止过拟合。另一个防止过拟合的办法是当开发集上的对数似然停止提高的时候减小学习率。
洗牌顺序:有的时候顺序有所偏向,为了防止最后训练的模型更贴合结尾部分的数据,我们需要把整个数据训练的顺序洗牌。
4.3 对数线性模型的导数
略4.4 语言模型的其他特征
对数线性模型好的原因是它允许我们灵活地选择我们认为对预测下一个词有用的特征,包括:上下文特征:如之前所说。
上下文类:把相似的词归为一类。
词后缀特征:比如ing。
词袋特征: 跟只用句子里前n个词相反,我们可以用之前所有的词,然后不顾顺序。这样我们会损失排列信息,但是会知道哪些词会一同出现。
5 神经网络和前馈语言模型
略6 循环神经网络语言模型
6.1 - 6.4 略6.5 Online, Batch, and Minibatch Training
对于每一个样例进行参数更新的学习叫做online学习。与之相反,batch学习将整个训练集视为单个单元,计算这个单元的梯度,然后在遍历所有数据之后进行参数更新。这两个更新策略各有权衡:
online学习更快地找到一个好的答案。
训练结束后,batch学习更稳定,因为它不受最后看见的数据的影响。
batch学习更容易陷入局部最优解。online学习的随机性使得模型能够跳出局部最优,找到一个全局最优。
minibatching是以上两者的折中。minibatching每次计算n个训练样例的梯度。
相关文章推荐
- 论文阅读:《神经机器翻译和序列对序列模型:一个教程》上
- 神经机器翻译和序列-序列模型:教程
- Keras TensorFlow教程:如何从零开发一个复杂深度学习模型
- 【论文阅读心得】图像识别中一个常用词的中英文释义——artifact
- Keras TensorFlow教程:如何从零开发一个复杂深度学习模型
- fbx模型动画提取教程附带一个用代码提取的方法
- poj 3308 最小点权覆盖集, 见 胡驳涛论文里面有讲见图方法 二分图最小权点覆盖 我的想法是一个东西通过两个操作都可以完成,这些操作还可以完成其他的东西,每个操作有一个花费,现在要你选出花费最小的操作。这就是裸的模型
- 【备忘】2017年深度学习项目实战视频课程-Seq2Seq序列生模型视频教程
- fbx模型动画提取教程附带一个用代码提取的方法
- ASP.NET MVC4入门教程(四):添加一个模型
- 一个快速完整的教程,以保存和恢复Tensorflow模型。
- 如何为系统模型创建一个栏目(图文教程)
- 【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析 分类: H3_NUTCH 2014-06-04 20:10 1039人阅读 评论(0) 收藏
- Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型
- Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型
- Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型
- 很特别的一个动态规划入门教程:通过金矿模型介绍动态规划
- Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型
- 如何判断LSTM模型中的过拟合和欠拟合 By 机器之心2017年10月02日 11:09 判断长短期记忆模型在序列预测问题上是否表现良好可能是一件困难的事。也许你会得到一个不错的模型技术得分,但了解
- Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型