数学之美梳理(八)最大熵模型
在信息处理中,我们常常知道各种各样但又不完全准确的信息,我们需要一个统一的模型将这些信息综合起来。如何综合的好,是一门学问
让我们看一个拼音转汉字的简单例子,假设输入的拼音是“wang-xiao-bo”,利用语言模型,根据有限的上下文,我们可以给出两个最常见的名字:“王小波”和“王晓波”,但是要唯一确定哪个名字就难了,即使利用较长的上下文也比较难。当然,我们知道,如果通篇文章是介绍文学的,作家王小波的可能性更大,而在讨论两岸关系时,台湾学者王晓波的可能性更大。
在信息处理中,我们常常知道各种各样但又不完全准确的信息,我们需要一个统一的模型将这些信息综合起来。如何综合的好,是一门学问
让我们看一个拼音转汉字的简单例子,假设输入的拼音是“wang-xiao-bo”,利用语言模型,根据有限的上下文,我们可以给出两个最常见的名字:“王小波”和“王晓波”,但是要唯一确定哪个名字就难了,即使利用较长的上下文也比较难。当然,我们知道,如果通篇文章是介绍文学的,作家王小波的可能性更大,而在讨论两岸关系时,台湾学者王晓波的可能性更大。
我们首先来了解下解深度学习、机器学习与人工智能的定义:
深度学习是机器学习的子集,它基于人工神经网络。 学习过程之所以是深度性的,是因为人工神经网络的结构由多个输入、输出和隐藏层构成。 每个层包含的单元可将输入数据转换为信息,供下一层用于特定的预测任务。 得益于这种结构,机器可以通过自身的数据处理进行学习。深度学习的用例范围一直在不断扩展,但如今最流行的三大技术,当属计算机视觉、语音识别和自然语言处理
机器学习是人工智能的子集,它采用可让机器凭借经验在任务中做出改善的技术(例如深度学习)。 学习过程基于以下步骤:
在自然语言处理中,最常见的两个分类问题是:将文本按主题归类(如将所有介绍奥运会的归类到体育类)和将词汇按意思分类(如将各种体育项目的名称归类到体育类)。这两个问题都可以通过矩阵运算来圆满地,一次性解决。
搜索引擎的基础原理其实非常简单,建立一个搜索引擎大致需要这样几件事情:自动下载尽可能的网页,建立快速有效的索引,根据相关性对网页进行公平准确的排序。
我们常说信息有用,那么它的作用是如何直观,定量的体现出来呢?信息用途的背后是否有理论基础?
对于这个问题,香农在他著名的论文“通信的数学原理”中提出了信息熵的概念,才解决了信息的度量问题,并且量化出信息的作用。
隐马尔可夫模型是一个并不复杂的数学模型,到现在为止,他一直被认为是解决大多数自然语言处理问题最快速,有效的方法。它成功地解决了复杂地语音识别,机器翻译等问题。
上一篇关于如何计算一句话是否具有实际意义博客中的方法中,通过将一句话被拆分成不同的词,然后计算这个词的序列的可能性大小来实现的。
对于西方拼音语言来讲,词之间有明显的分界符,统计和使用语言模型非常直接。而对于一些亚洲语言,如中,日,韩,泰等,词之间没有明确的分界符,所以我们需要先对句子进行分词。
自然语言从诞生开始,逐渐演变成一种上下文相关的信息表达和传递方式(即要理解一个词汇的真实意思,需要结合它前后的内容一起看),因此让计算机处理自然语言,一个基本问题就是为自然语言中这种上下文相关的特性建立数学模型,这个数学模型就是在自然语言处理中常说的统计语言模型(Statistical Language Model),它是所有语言处理的基础,并且广泛应用于机器翻译,语音识别,手写字体识别等领域
树状数组(Binary Indexed Tree,简称BIT),有时也被称作Fenwick树,是一种用于高效处理前缀和、区间求和、以及相应更新等问题的数据结构。它提供了比普通数组更好的方法来实现这些操作,特别是在需要频繁更新元素和查询前缀和的场景中。树状数组在时间复杂度和空间复杂度上都很优秀,实现也相对简单。
普通树状数组维护的信息及运算要满足 结合律 且 可差分,如加法(和)、乘法(积)、异或等。
结合律:(x∘y)∘z=x∘(y∘z),其中∘ 是一个二元运算符。
可差分:具有逆运算的运算,即已知x∘y 和 x 可以求出 y。
事实上,树状数组能解决的问题是线段树能解决的问题的子集:树状数组能做的,线段树一定能做;线段树能做的,树状数组不一定可以。然而,树状数组的代码要远比线段树短,时间效率常数也更小,因此仍有学习价值。
有时,在差分数组和辅助数组的帮助下,树状数组还可解决更强的 区间加单点值 和 区间加区间和 问题。