数学之美
Lenskit
创业公司、B2B行业
展开
-
买西瓜跟机器学习
开坑,记录机器学习和自然语言处理阅读的内容。原创 2017-04-23 21:04:29 · 1216 阅读 · 0 评论 -
统计语言模型(上)
nl从产生,逐渐演变成一种上下文相关的信息表达和传递的方式,因此让计算机处理nl,一个基本的问题就是为这种上下文相关的特性建立数学模型,这个模型就是在nlp中常说的统计语言模型,它是今天所有nlp的基础,并且广泛应用于机器翻译、语言识别、印刷体或手写体识别、汉字输入等。 其实一个句子,可以合乎语法的表达词义,也可以不合乎语法的表达词义。上世纪70年代以前,科学家试图判断文字序列是否合乎文原创 2017-05-05 23:00:16 · 607 阅读 · 0 评论 -
需要了解的基本概念——特征、训练集、样例等
假定我们收集了一些关于西瓜的数据,例如(色泽=青绿,根蒂=蜷缩,敲声=浑响),(色泽=乌黑,根蒂=稍蜷,敲声=沉闷),每对括号内都是一条记录,“=”意思是“取值为”。这组记录的集合称为一个“数据集”,其中每条记录是关于一个事件或对象的描述,称为一个“示例”或“样本”。反应事件或对象在某方面的表现或性质的事项,例如“色泽”“根蒂”,称为“属性”或“特征”;属性上的取值称为“属性值”。属性张成的空间,原创 2017-04-23 21:11:04 · 8433 阅读 · 7 评论 -
规则和统计(下)
1988年,IBM的彼得·布朗等人提出了基于统计的机器翻译方法,框架是对的,但是效果很差,因为当时没有足够的统计数据,也没有足够强的模型来解决不同语言语序颠倒的问题。在很长一段时间里,传统方法支持者攻击对方的武器就是,基于统计的方法只能处理浅层的nlp问题,无法进行深层次的研究。 从20世纪80年代末到现在,随着计算能力提高和数据量的爆发,过去看似不可能通过统计模型完成的任务,渐渐变得可原创 2017-05-05 22:58:08 · 509 阅读 · 0 评论 -
规则和统计(上)
在20世纪60年代,科学家对nlp的普遍认识是分析语义和获取语义。 这是因为受到了传统语言研究的影响—学习语言要学习语法规则、词性和构词。这些规则是人类学习语言的好工具,而这些规则又很容易用计算机描述,所以坚定了大家对基于规则的nlp的信心。看一个例子:徐志摩喜欢林徽因。这个句子可以分为主语、动词短语和句号三部分,然后对每个部分进一步分析。 科学家们原本以为随着nl语法概括得越来越全面,原创 2017-05-05 22:56:47 · 1045 阅读 · 0 评论 -
造飞机和自然语言处理?
自然语言处理60多年的发展过程,基本上可以分成两个阶段。早期的20多年,是科学家们走弯路的阶段。全世界的科学家对计算机处理自然语言的认识都被自己局限在人类学习语言的方式上,即用电脑模拟人脑,这20多年的成果几乎为零。直到20世纪70年代,一些自然语言处理的先驱重新认识这个问题,找到了基于数学模型和统计的方法,自然语言处理进入第二个阶段。 在早期,全世界对自然语言处理的研究都陷入了一个误区原创 2017-05-05 22:54:27 · 601 阅读 · 0 评论 -
我们的祖先与通信模型?
我们的祖先很早就开始使用和传播信息了,发出怪叫声来告知同伴各种情况。这里面信息的产生、传播、接收和反馈,与今天最先进的通信在原理上没有任何区别——说话人=信息源,怪叫声=编码,听到的声音=解码,同伴=接收者。 随着信息的变多,慢慢发展成了语言,为了记录,开始有了文字,在纸张发明之前,记录载体稀缺,所以惜墨如金,有些语言非常晦涩,简短的文字包含丰富的信息。这种现象非常符合今天信息科学的一些原创 2017-05-05 22:53:05 · 377 阅读 · 0 评论 -
相对熵
前面已经介绍了信息熵和互信息,它们是信息论的基础,而信息论则在nlp中扮演着指导性的角色。 这篇介绍一下另一重要概念—相对熵。相对熵,有些文献里也叫“交叉熵”,它也用来衡量相关性,但和变量的互信息不同,它用来衡量两个取值为正数的函数的相似性,定义:KL(f(x)||g(x))=∑f(x)·log(f(x)/g(x)) x∈X 大家只需要记住三条结论:1、对于两个完全相同的函数,原创 2017-05-14 20:59:39 · 2802 阅读 · 0 评论 -
互信息
有关系的信息才能消除不确定性,这个有关系有点模糊,最好能度量“相关性”才好。香农在信息论中提出了一个“互信息”的概念作为两个随机事件“相关性”的度量。假定有两个随机事件X和Y,它们的互信息定义如下: I(X;Y)=∑P(x,y)log(P(x,y)/P(x)P(y)) 互信息是随机事件X的不确定性或者说熵H(X),以及在知道随机事件Y条件下的不确定性,或者说条件熵H(X|Y原创 2017-05-14 20:56:54 · 2878 阅读 · 2 评论 -
搜索和信息的作用——条件熵
网页搜索本质上就是从几十亿个网页中,找到和用户输入的搜索词最相关的几个网页。几十亿种可能性,当然是很大的不确定性U。因此网页搜索本质也是利用信息消除不确定性的过程。如果提供的信息不够多,比如搜索词是常用的关键词,诸如“中国”、“经济”之类的,那么会有好多相关的结果,用户可能还是无从选择。 这时正确的做法是挖掘新的隐含信息,比如网页本身的质量信息。如果这些信息还是不够消除不确定性,不妨再问原创 2017-05-14 20:55:09 · 996 阅读 · 0 评论 -
信息的度量——信息熵
我们常说信息有用,那么它的作用如何客观、定量地体现出来呢?信息用途的背后是否有理论基础呢?这个问题一直没有很好的回答,直到1948年,香农在他的论文“通信的数学原理”中提到了“信息熵”的概念,才解决了信息的度量问题,并量化出信息的作用。 一条信息的信息量与其不确定性有着直接的关系,比如我们要搞清一件非常不确定的事,就需要大量的信息。相反如果对某件事了解较多,则不需要太多的信息就能把它搞清原创 2017-05-14 20:49:47 · 6420 阅读 · 1 评论 -
谈谈分词(下)
分词的一致性和颗粒度当统计语言模型被广泛应用后,简单依靠与人工分词的结果比较来衡量分词器的准确性就很难,甚至毫无意义。不能讲一个准确率97%的分词器一定比95%的好,因为这要看它们选用的所谓正确的人工分词的数据是如何得来的。我们只能讲某个分词器与另一个相比,与人工分词结果的吻合度稍微高一点而已。所幸的是,现在中文分词是一个已经解决的问题,提高的空间微乎其微,只要采用统计语言模型,效果都差不多哪去。原创 2017-05-14 20:46:05 · 857 阅读 · 1 评论 -
谈谈分词(上)
前面谈到利用统计语言模型进行nlp,而这些语言模型是建立在词的基础上的,因为词是表达语义的最小单位。分词的输入是一串汉字,比如:“我喜欢善良的女生。”,而分词的输出则是用分界符,比如用斜线分割的一串词:我/喜欢/善良/的/女生。最容易想到的分词方法,也是最简单的方法,就是查字典。这种方法最早是北航的梁南元教授提出的。其实就是把一个句子从左向右扫描一遍,遇到字典里有的词就标识出来,遇到复合词(比如“原创 2017-05-14 20:44:12 · 849 阅读 · 0 评论 -
误差、欠拟合和过拟合
通常我们把分类错误的样本数占样本总数的比例称为“错误率”。更一般的,我们把学习器的实际预测输出与样本的真实输出之间的差异称为“误差”,学习器在训练集上的误差称为“训练误差”,在新样本上的误差称为“泛化误差”。我们希望的是在新样本上能表现得很好的学习器。为了达到这个目的,应该从训练样本中尽可能学得适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判断。 然而,当学习器把训练原创 2017-04-23 21:25:51 · 1550 阅读 · 0 评论 -
NFL定理和算法的优劣性
希望大家能自己去了解一下“归纳偏好”“欠拟合”“过拟合”“奥卡姆剃刀”原则以及NFL定理。 NFL(No Free Lunch Theorem)定理,经过推导后得出结论:无论算法多聪明或笨拙,它们的期望性能是相同的。不要气馁,因为NFL定理有一个重要前提:所有“问题”出现的机会或所有问题同等重要。但实际情况是,很多时候我们只关注自己正试图解决的问题,希望找到一个解决方案。至于这个解决方案原创 2017-04-23 21:21:48 · 3720 阅读 · 0 评论 -
监督学习和非监督学习的区别
如果我们想要预测的是离散值,例如“好瓜”“坏瓜”,此类学习任务称为“分类”;如果想要预测的是连续值,例如西瓜成熟度0.95、0.37,此类学习任务称为“回归”。 学得模型后,使用其进行预测的过程称为“测试”,被预测的样本成为“测试样本”。例如在学得f后,对测试例x,可得到其预测标记y=f(x)。 我们还可以对西瓜做“聚类”,即将训练集中的西瓜分为若干组,每组称为一个“簇”;这些原创 2017-04-23 21:18:13 · 30294 阅读 · 7 评论 -
统计语言模型(下)
接上篇。 P(wi|wi-1)就是这两个数的比值,再考虑到上面的两个概率有相同的分母(语料库大小),可以约掉,所以P(wi|wi-1)(wi-1,wi)/(wi-1)。 现在你是否感受到数学的美妙?它把一些复杂的问题变得如此简单。似乎难以相信,这么简单的数学模型能解决复杂的语音识别、机器翻译等问题,而很复杂的文法规则和人工智能却做不到。其实很多语音学家也质疑过这种方法的有效性,原创 2017-05-05 23:01:49 · 651 阅读 · 0 评论