Dirichlet 理解

一直在用LDA,但是一直不太理解其中Dirichlet抽样是个什么样的东西,于是画了一些时间好好好看了看关于dirichlet的理解。感觉还挺有收货,这里先总结一些资料的出处,希望对大家有帮助:

http://cos.name/2013/01/lda-math-gamma-function/

这个讲解讲的比较详细,从最基础的gamma函数开始,然后从Beta分布扩展到了Dirichlet的分布。

http://videolectures.net/mlss07_teh_dp/

这里是美国教授的授课视频,详细讲了Dirichlet的分布及其过程。讲的很好,网址上有PPT的下载,对应的matlab的下载需要去搜索作者的主页

主页上有源代码的下载地址,如果找不到,请留言。我可以发邮件给各位(因为我也突然找不到地址了)

其他的几个网页:

http://hi.baidu.com/zentopus/item/46a622f5ef13e4c5a835a28e

http://www.xperseverance.net/blogs/2012/03/516/

主要就是这么几个了,其他的大部分其实都是转载这几个作者的东西。


然后我来说说自己的一些理解:

Dirichlet分布其实就是一个概率分布,他在性质上跟二项分布,Beta分布其实没有什么区别,都是概率分布。但是他有具有一些特殊的性质。

例如它的线型是不定的。就像Beta一样,Beta分布会会根据参数的变化而发生变化。dirichlet也是一样的。他和beta分布最大的不同是,beta分布是在二维空间上。

而dirichlet是beta的一个扩展,他是在一个多维空间上的分布。这就可以得到dirichlet的一个用处了,因为他的线型是不定的,不同的参数会得到不同的结果

因此我们可以利用dirichlet进行曲线拟合,例如水文观测,地震数据等的数据拟合中。

其次因为参数的变化对dirichlet分布有较大的影响,因此当我们通过dirichlet分布去采集样本的时候,大部分情况我们会得到概率比较大的那部分的数据。

因此dirichlet分布同意可以作为一个分类器其使用。例如典型的LDA。

同样,因为dirichlet的先验分布的特性,大部分工作会利用dirichlet去进行参数估计。也就是机器学习上面。

例如我们有了观测样本x和结果y,需要去建立一个函数f,使得y=f(x)。

那么如何得到这个函数f的参数呢?我们需要去假设参数,然后通过dirichlet的分布去采用并估算结果。修改参数,知道参数稳定在一定范围内。

这个过程具体可以看上面说提到的PPT。里面有详细的讲解。


大家再看dirichlet的时候,总是会听到中餐馆拉,steak-breaking等的词,这是什么东西?

我刚开始一直没办法理解,感觉这个东西跟dirichlet好像没什么关系,公式也不一样。

其实,很容易,我们在学习二项分布的时候,提到了抛硬币,中餐馆其实跟这个类似,

就是举了一个例子,来告诉我们dirichlet分布的来源。之所以感觉这些公式跟原始的dirichlet不一样。是因为他是dirichlet的一个实例化。

他的参数更具体,而让大家觉的陌生。大家理解为他是dirichlet的一个例子,然后再去看就会有感觉了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值