HDP 的学习

HDP 的学习

Dirichlet process

详细见world笔记

参考MIT那篇博士论文相关部分

框架

1.Bernoulli 分布、二项分布 binomial distribution 2.Beta分布、多项式分布 3.Dirichlet分布 4.dirichlet 过程→ 5.分层dirichlet过程(HDP)

Bernoulli 分布→Beta分布→ Dirichlet分布参考《模式识别和机器学习》第二章内容)

 

1,  Bernoulli分布

投掷不完美硬币的实验:

一次实验结果x=1or0,且P(X-1)=μ,则x的分布为:

,其中x=0或1;                          (1)

假设我们有一个数据集D={X1,X2,…XN}来自于独立观察N次的结果,则有似然函数:

                        2

然后我们通过极大化似然函数或log似然函数(求导)来得到 的值:

                                                        2.1);

 

Binomial distribution

投掷多次不完美硬币的实验:进行N次独立重复的0-1实验后,x=1的次数m服从二项分布(binomial distribution

                                  3

 

 

2Beta 分布

由于似然函数(3)的形式,可知,如果我们选择一个先验,它的形式也是 1- 的乘积形式,那么得到的后验形式也和(3)一样,即也是 各自的指数的乘积的形式。这就叫做共轭。也就是说,共轭是和似然函数的形式有关的。

于是,我们考虑采用beta分布,因为其分布函数为:

                              (4)

 在这里,a,b为超参数,因为它们是对 进行控制的,可以分别表示先验中对x=1x=0出现次数的估计。 是归一化参数,为了保证beta0,1上的积分为1.

且有期望、方差满足:

E[                                                              (4.1)

                                                   (4.2)

   假设经过观测,出现x=1x=0出现次数分别为ml,利用似然函数(3)计算后验,只考虑和 有关的因子,则有

                                  (5)

对照(4),得到系数为 .

即得到后验为:

                                6

如果后续还有观测值,(6)也可以作为先验,继而不断地对先验进行修正。

 如果要进行预测,可用下公式:

|       (7)

 

关于当观测值趋近无穷时以上推导就各种不适应了(这是不是跟后来dirichlet过程有关?)

但是观测的数据量接近无穷时,也就是mn 都趋近于无穷,此时(7)无法进行预测;且(4.2)中方差趋近于0,也就是当数据量无穷增大时,利用后验进行预测的稳定性我们不能确定。

 

 

多项式分布 multinomial distribution 扔骰子

多项式分布,经典例子为扔不完美骰子,实际上是伯努利分布的一个推广,后者观测结果只有01,独立重复N次后x=1的次数服从伯努利分布;但多项式分布的结果可以有k个,注意每次观测中只有一个结果发生;同样独立重复N次后,每个可能结果出现的次数m1,m2….mk,服从的就是多项式分布。如上,假设一个实验有6个结果,某次实验出现第三个结果表示为x=0,0,1,0,0,0)。也就是扔骰子,出现3就表示为(0,0,1,0,0,0)。

 

 

具体阐述如下:

一次实验可能有k个可能,设某次实验中第k个事件发生,且对应的概率为 ,则有:

                                                           8

现在进行独立重复的N次实验,有N个观测结果xN ,则联合概率分布函数表示为:

                       (9)

mk=   即在所有观测结果中,第k个事件出现的次数,也叫做这个分布的sufficient statistics,引入拉格朗日因子后利用最大似然求出:

                                                                  10

根据(9),则m1,m2….mk的联合概率分布为:

                              (11)

且有:

 

 

 

 

3 dirichlet分布

我们上面巴拉巴拉说了半天多项分布,是因为我们这里要说的dirichlet分布,其实是为了给多项分布中的μ找个先验而提出的,也就是dirichlet分布其实是多项分布的先验。

因此,为了满足共轭,我们观察多项分布的似然函数(9),发现共轭先验的形式应该是:

                                                     12

这个分布的规范化的形式为:

                                          (13)

其中

把先验(13)带入到多项式分布的似然函数(11)中,得到的后验形式也是dirichlet分布的形式,如下:

                                              14

因此对照dirichlet分布函数,可以得到它的系数,则有:

               (15)

由于beta分布中的超参数a,b 可以认为是对x=1x=0的先验估计,因此dirichlet分布中的α也可以认为是观测值xk=1的一个先验估计。

 

这样理解会比较容易,Dirichlet分布定义的其实是一个概率,确定某个事件k的概率则把k带入公式(13)中进行计算就可以得到某事件的概率,这样把它作为事件的概率带入多项式公式中计算表示每个事件各发生多少次的向量,就可以得到该向量发生的概率后验。

 

概念:

中性dirichlet过程中测度空间可以划分为很多小的区域,一个分布是中性的概念指:任何一个小区域里,它的分布和其他的小区域中的分布时没有关系的,也就是说除了normalization constraint ,各个小区域(cell)之间互不影响。

每个cell的后验分布,与落入其中的观测值有关,与没有落入其中的观测值无关。

 

 

 

截棍模型 stick-breaking process

截棍模型是一个DP过程的生成过程,而罐子模型\中国餐馆模型可以看成一个预测模型

的另一种理解:由于 ,所以在截棍模型中, 越大,它截取新的一截木棍的比例就越小。

 

罐子模型[相关公式见收藏夹[Polya urn model (Polya 罐子模型) []]

In an urn model, objects of real interest (such as atoms, people, cars, etc.) are represented as colored balls in an urn or other container. In the basic urn model, the urn contains x white and yblack balls; one ball is drawn randomly from the urn and its color observed; it is then placed back in the urn, and the selection process is repeated. Questions can then be asked about the probability of drawing one color or another, or some other properties.(取出黑球或白球后,再放回,再随机取出)

The Polya urn model differs only in that, when a ball of a particular color is drawn, that ball is put back along with a new ball of the same color. Thus, unlike in the basic model, the contents of the urn change over time, with a self-reinforcing property sometimes expressed as the rich get richer.(随机取出黑球或白球,然后另找个和这个球颜色一样的球,伴随原来取出的球一起放回去.再随机抽取新的球)

Note that in some sense, the Polya urn model is the "opposite" of the model of sampling without replacement(是说只取不放么?--貌似是). When sampling without replacement, every time a particular value is observed, it is less likely to be observed again, whereas in a Polya urn model, an observed value is more likely to be observed again. In both of these models, the act of measurement has an effect on the outcome of future measurements. (For comparison, when sampling with replacement, observation of a particular value has no effect on how likely it is to observe that value again.) Note also that in a Polya urn model, successive acts of measurement over time have less and less effect on future measurements, whereas in sampling without replacement, the opposite is true: After a certain number of measurements of a particular value, that value will never be seen again.

 

 

中国餐馆模型

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Gensim是一个相当专业的主题模型Python工具包。在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性。评论和商品描述的相似度越高,说明评论的用语比较官方,不带太多感情色彩,比较注重描述商品的属性和特性,角度更客观。gensim就是  Python 里面计算文本相似度的程序包。示例代码:针对商品评论和商品描述之间的相似度,怎么使用gensim来计算?原理1、文本相似度计算的需求始于搜索引擎。搜索引擎需要计算“用户查询”和爬下来的众多”网页“之间的相似度,从而把最相似的排在最前返回给用户。2、主要使用的算法是tf-idftf:term frequency词频idf:inverse document frequency倒文档频率主要思想是:如果某个词或短语在一篇文章中出现的频率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。第一步:把每个网页文本分词,成为词包(bag of words)。第三步:统计网页(文档)总数M。第三步:统计第一个网页词数N,计算第一个网页第一个词在该网页中出现的次数n,再找出该词在所有文档中出现的次数m。则该词的tf-idf 为:n/N * 1/(m/M) (还有其它的归一化公式,这里是最基本最直观的公式)第四步:重复第三步,计算出一个网页所有词的tf-idf 值。第五步:重复第四步,计算出所有网页每个词的tf-idf 值。3、处理用户查询第一步:对用户查询进行分词。第二步:根据网页库(文档)的数据,计算用户查询中每个词的tf-idf 值。4、相似度的计算使用余弦相似度来计算用户查询和每个网页之间的夹角。夹角越小,越相似。 标签:Gensim

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值