数学之美 记录
信息的度量 信息熵 entropy 用h表示
信息的作用在于消除不确定性
互信息
两件事相关性的度量,在了解其中一个的前提下,对消除另一个不确定性提供的信息量
香农第一定理
一个信息,任何编码的长度都不小于它的信息熵
pagerank算法核心思想:
如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖。
有限状态机:
一个有向图,包括一些状态(节点)和连接这些状态的有向弧。每一个有限状态机有一个开始状态和一个终止状态,以及若干中间状态。每一条弧上带有从上一个状态进入下一个状态的条件。如果输入的符号可以从状态机的开始状态经过中间状态,走到终止状态,那么这条地址就有效,否则无效。
最大熵原理
不要把鸡蛋放到一个篮子里
布隆过滤器
布隆过滤器过滤垃圾邮件的工作原理:对于每一个电子邮件地址,用8个不同的随机数产生器产生8个信息指纹(f1,f2,...f8)。再用一个随机数产生器把这8个信息指纹映射到布隆过滤器的8个二进制位,并把这8个位置的二进制全部设置为1。
建立一个小的白名单,存储那些有可能被误判的邮件地址。
贝叶斯网络
贝叶斯网络是多路径形式的马尔科夫链,也是有向的。
贝叶斯网络的训练分为两个部分:先生成网络的结构,再计算节点之间的权重即概率。
条件随机场是无向的贝叶斯网络
卡兹退避法(Katz backoff)
对于频率超过一定阈值的词,它们的概率估计就是它们在语料库中的相对频度,对于频率小于这个阈值的词,它们的概率估计就小于他们的相对频度,出现次数越少,频率下调越多。对于未看见的词,也给予一个比较小的概率(即下调得到的频率总和),这样所有词的概率估计都平滑了。这就是卡兹退避法(Katz backoff)。
维特比算法(Viterbi Algoritm)
针对篱笆网络寻找最短路径的动态规划算法。它之所以重要,是因为凡是使用隐含马尔科夫模型描述的问题都可以用它来解码。
1.从点S出发,对于第一个状态x1的各个节点,不妨假定有n1个,计算出S到他们的距离d(S,x1i),其中x1i代表任意状态1的节点。因为只有一步,所以这些距离都是S到他们各自的最短距离。
2.对于第二个状态x2的所有节点,要计算出从S到他们的最短距离。d(S,x2i)=min_I=1,n1_d(S,x1j)+d(x1j,x2i),由于j有n1种可能性,需要一一计算,然后找到最小值。这样对于第二个状态的每个节点,需要n1次乘法计算。假定这个状态有n2个节点,把S这些节点的距离都算一遍,就有O(n1*n2)次运算。
3.按照上述方法从第二个状态走到第三个状态一直走到最后一个状态,这样就得到整个网络从头到尾的最短路径。
EM算法——上帝的算法:
在一般性的问题中如果有很多观测值,可以让计算机不断迭代来学习一个模型。首先,根据现有的模型,计算出观测数据输入到模型中的结果,这个过程为期望值计算过程(Expectation,E过程);接下来,重新计算模型参数,以最大化期望值(文本分类中是最大化D和-d),该过程为最大化过程(Maximization,M过程)。统称为EM算法。
逻辑回归模型(Logistic Regression)
将一个事件出现的概率适应到一条逻辑曲线(Logistic Curve)上。
逻辑曲线是一条S型曲线,其特点是开始变化快,逐渐减慢,最后饱和。逻辑自回归的好处是它的变量范围从负无穷到正无穷,而值域范围限制在0-1之间。因为值域的范围在0-1之间,这样逻辑回归函数就可以和一个概率分别联系起来了。因为自变量范围在负无穷到正无穷之间,它就可以把信号组合起来,不论组合成多大或者多小的值,最后依然能得到一个概率分布。
分治算法:
将一个复杂的问题,分成若干简单的子问题进行解决。然后,对子问题的结果进行合并,得到原有问题的解。
MapReduce的原理来自于分治算法。