神经概率语言模型,内容分为三块:问题,模型与准则,实验结果。[此节内容未完待续...]

1,语言模型问题

语言模型问题就是给定一个语言词典包括v个单词,对一个字串做出二元推断,推断其是否符合该语言表达习惯。也就是的取值为0或者为1。

概率语言模型放松了对取值的限制,让其在0~1之间取值(语言模型 v.s 概率语言模型),而且全部的字串的概率之和为1。维基百科对于概率语言模型的解释为:是借由一个概率分布,而指派概率给字词所组成的字串。可是须要注意的是直接对进行求其概率分布是不现实的,由于理论上这样的字串数量是无限的。直接求其概率分布会导致维度灾难。

为了解决这个问题,首先引入链式法则(chain rule),觉得字串中第i个字符出现的概率是由其前面i-1个字符决定的。这样就有例如以下公式:

可是,有了这个公式还是太复杂了。继续引入如果简化公式,觉得字串中第i个字符出现的概率是由其前面n-1个字符决定(也就是如果)的。这样公式就继续被简化:

模型如今就变得非常easy了,就是计算条件概率。也就是须要计算给定字串后,字典中的每一个字出现的概率

2. 模型与准则

  2.1 数据 给定一些标记号的样本.

2.2 模型

图1. 模型图解

图片来自:http://licstar.net/archives/328

建模步骤

2.2.1 查表:将输入的单词,通过查表(图1中Table look-up过程)将单词映射为m维的词向量。此处的所查的表并非给定的,是在模型学习中获得的附加产物(也就是word2vec产生的那些向量玩意)。

2.2.2 线性变换:将2.2.1中的n-1个m维度的向量通过首尾拼接的方式线性变换成为(n-1)*m维的向量。也就是在中间那个tanh层输入处(以下)全部分向量C(w)合并为一个大的维度为(n-1)*m的向量[Mikolov的RNNLM在此做出改变:不只只看n-1个单词的信息,而是看该词前面全部的单词信息]。

2.2.3 非线性变换:在中间那个tanh层处进行非线性变换。这里须要的是一个变换矩阵和偏置矩阵。也就是对于中间那一层(tanh所在的那一层),该层的输入是(n-1)*m的向量,输出是。经过线性变换后,先前的(n-1)*m维的向量成为了h维的向量。

2.2.4 输出处理:在最后一层(softmax层)进行处理输出。这里须要一个变换矩阵和一个偏置矩阵。最后输出就是。注意到最后输出的是一个v维度的向量,和我们的第一节中词典D的维度是一致的。向量中每个维度相应的实数就是输出该单词的概率。

2.3 准则

对全部的训练样本,其准则为使取最小,此处为正则项。能够使用梯度下降法进行求取。

模型中须要人工设定的參数是模型的元数n,词向量的维度m,隐层的输出维度h。

须要模型优化的參数:变换矩阵W和H,偏置矩阵d和b,查表所使用的词向量表都是须要优化的參数,也就是我们所求取的參数。

  

    3.实验结果

语言模型困惑度。模型困惑度是用来评价不同的语言模型好坏的一种方法(另一种方法是Word Error Rate,Mikolov的博士论文《Statistical Language Models based on Neural Networks》博士论文对这两种方法有介绍和比較)。给定測试数据集合,模型在该測试集合上的困惑度越小越好。

測试集合一:

Brown Corpus,共计118w单词,当中80w训练,20w验证,其它18w作为測试集合。

在n=5,m=30,h=100时候NNLM的PPL为270。该測试集合眼下最好的n-gram模型(n=3)的PPL为312。设置权重进行模型融合后的PPL为252。

測试集合二:

AP News,共计1600w词,当中1400w训练,100w验证,其它100w作为測试集合。

在n=6,m=100,h=109时候NNLM的PPL为109。该測试集合眼下最好的n-gram模型的PPL为117。

网上学习资料:

关于神经网络语言模型的博客:点击打开链接

Mikolov的博士论文《Statistical Language Models based on Neural Networks》 关于n-gram语言模型的评价是简单有用(N-gram models are today still considered as state of the art not because there are no better techniques, but because those better techniques are computationally much more complex, and provide just marginal improvements, not critical for success of given application.),模型的关键就是选择n值和平滑技术。其固有缺点例如以下:

第一,n-gram模型的n值无法取大。由于模型n-gram片段的数量会随着n值的变大指数增长。这一点就决定了n-gram模型无法有效的利用更长的上下文信息。特殊的,当被提供海量训练语料时,n-gram模型也无法有效捕捉一些长距离的语言现象。

第二,即使n值能够取得比較大,n-gram无法有利用长距离的上下文信息。比如,有一个句子The sky above our heads is bleu. 这句话里面单词 bleu对单词sky有着非常强的依赖关系,无论这两个单词中间插入多少变量都不会破坏这样的关系。比如The sky this morning was bleu. 可是对n-gram模型,即使放开n值的限制,取一个较大的n值,也无法有效地捕捉这样的长距离的语言现象。

第三,n-gram模型无法高效的对相似的词语进行辨别。比如:训练语料中存在Party will be on Monday.Party will be on Tuesday. 模型无法对类似Party will be on Friday.的句子赋予较高的概率。尽管我们人可以清楚知道“Monday”,"Tuesday","Friday"这些是类似的概念,可是只对字面进行建模的n-gram无法辨别。

转载于:https://www.cnblogs.com/mengfanrong/p/3933759.html

Deep Learning(深度学习) 学习笔记(四)相关推荐

  1. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

  2. Deep Learning | 深度学习介绍与基本概念

    深度学习(Deep Learning) 深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的 ...

  3. Deep Reinforcement Learning 深度增强学习资源

    http://blog.csdn.net/songrotek/article/details/50572935 1 学习资料 增强学习课程 David Silver (有视频和ppt): http:/ ...

  4. Deep learning with Python 学习笔记(6)

    本节介绍循环神经网络及其优化 循环神经网络(RNN,recurrent neural network)处理序列的方式是,遍历所有序列元素,并保存一个状态(state),其中包含与已查看内容相关的信息. ...

  5. 4. Python脚本学习实战笔记四 新闻聚合

    4. Python脚本学习实战笔记四 新闻聚合 本篇名言:"人言纷杂,保持自我:工作勤奋,娱乐适度:对待朋友,不玩心术:处理事务,不躁不怒:生活讲究,量入为出:知足常乐,一生幸福!" ...

  6. 【李宏毅机器学习】Brief Introduction of Deep Learning 深度学习简介(p12) 学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 Deep Learning 文章目录 Deep Learning Deep Learning attracts lots of attention Ups and ...

  7. (转)Deep Learning深度学习相关入门文章汇摘

    转自:http://farmingyard.diandian.com/post/2013-04-07/40049536511 摘: 应用实例 计算机视觉. ImageNet Classificatio ...

  8. A Full Hardware Guide to Deep Learning深度学习电脑配置

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  9. 度量学习 度量函数 metric learning deep metric learning 深度度量学习

    曼哈顿距离(CityBlockSimilarity) 同欧式距离相似,都是用于多维数据空间距离的测度. 欧式距离(Euclidean Distance) 用于衡量多维空间中各个点之间的绝对距离.欧式距 ...

  10. Deep learning深度学习

    深度学习的步骤与机器学习一致: 深度学习第一步里定义的函数,就是神经网络. 定义 把多个逻辑回归前后连接在一起,然后把连接好的里面的一个逻辑回归成为神经元 ,整体称为神经网络. 我们可以用不同的方法连 ...

最新文章

  1. 利用sql报错帮助进行sql注入
  2. 电脑退出全屏按哪个键_电脑键盘上的F1到F12,每一个都是快捷键大家都会用到...
  3. ECSHOP系统纯静态网页的生成
  4. linux 配置SAN存储-IPSAN
  5. 人工机器:jetbot小车密码
  6. python单例_Python - 单例模式(Singleton)
  7. IBM软件OEM概览
  8. DIDAO.Common --- 项目中的常用类及其中函数
  9. Java 书籍 Top 10
  10. 基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法
  11. python输出图片字体加粗_python中xticks字体加粗-女性时尚流行美容健康娱乐mv-ida网...
  12. 迅捷PDF转换器特点和使用步骤
  13. 【HUST】公选抢课|用Auto.js模拟蹲课过程
  14. Springboot 返回数据提示语 国际化 (AOP实现)
  15. win10 安全设置
  16. RT3070L无线网卡移植
  17. win10轻松自动“备份和恢复”只要5步
  18. 嵌入式硬件电路设计基本功
  19. CSS-背景颜色 | background-color
  20. HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc....Possibly consider using a shorter

热门文章

  1. c4d fbx大小_C4D设计人员必备的八大外挂神器,爱了爱了!【133期】
  2. 玩转GIT系列之【git的分支操作(查看分支/切换分支/新建分支/删除分支)】
  3. Build a Machine Learning Portfolio(构建机器学习投资组合)
  4. leetcode刷题 15.三数之和
  5. 对通用输入输出GPIO的深入理解
  6. dubbo中对服务多版本的支持
  7. ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试撒擦撒擦是
  8. 最穷的日子,你是如何熬过来的?
  9. 访问 Neutron 外部网络 - 每天5分钟玩转 OpenStack(143)
  10. 寻求神谕的词语:谈海日寒诗集《空山集》