Dirichlet Process and Stick-Breaking(DP的Stick-breaking 构造)
目录Dirichlet Process简介Stick-Breaking构造Dirichlet Process简介DP是一种非参数贝叶斯模型, 其优点是参数的个数和性质灵活可变, 可通过模型和数据来计算数目, 近年来它已成为机器学习和自然语言处理研究领域中的一个研究热点。举个例子,我们在使用聚类方法k-means时,需要指定k的值(聚成k个簇);在使用LDA时需要指定主题的数目k,但通过DP过程这种
目录
本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流。
未经本人,允许禁止转载。
下面是本文博客的另一个地址,该网站是师兄弄得一个专门做机器学习的网站,非常不错。
http://www.datalearner.com/blog/
Dirichlet Process简介
DP是一种非参数贝叶斯模型, 其优点是参数的个数和性质灵活可变, 可通过模型和数据来计算数目, 近年来它已成为机器学习和自然语言处理研究领域中的一个研究热点。举个例子,我们在使用聚类方法k-means时,需要指定k的值(聚成k个簇);在使用LDA时需要指定主题的数目k,但通过DP过程这种非参方法,可以不指定k,而是通过数据学习,自动获取k值。
如下所示为混合模型对等的两个图,其中图二是从随机测度的角度画的概率图。正如图中提到的问题,当k趋向于无穷大的时候,该怎么办呢?
Stick-Breaking构造
在上图中,当 k→∞ <script type="math/tex" id="MathJax-Element-163">k\to\infty</script>时,有 G=∑∞k=1πkδϕk <script type="math/tex" id="MathJax-Element-164">G=\sum_{k=1}^\infty \pi_k \delta_{\phi_k}</script>,所有的 ϕk <script type="math/tex" id="MathJax-Element-165">\phi_k</script>是独立的,并且从 G0 <script type="math/tex" id="MathJax-Element-166">G_0</script>抽取。随机序列 {πk}∞k=1 <script type="math/tex" id="MathJax-Element-167">\lbrace\pi_k\rbrace{^\infty_{k=1}} </script>的总和为1。Sethuraman 证明如此构造的分布函数服从 Dirichlet 过程 DP(α0,G0) <script type="math/tex" id="MathJax-Element-168">DP(\alpha_0,G_0)</script> 分布的一个随机分布。
如下公式表达为Stick-breaking 构造:
βk|α0,G0∼Beta(1,α0) <script type="math/tex" id="MathJax-Element-169">\beta_k|\alpha_0,G_0 \sim Beta(1,\alpha_0)</script>
ϕk|α0,G0∼G0 <script type="math/tex" id="MathJax-Element-170">\phi_k|\alpha_0,G_0 \sim G_0</script>
则定义随机分布 G <script type="math/tex" id="MathJax-Element-171">G</script>如下:
其中, Beta(1,α0) <script type="math/tex" id="MathJax-Element-174">Beta(1,\alpha_0)</script>为常见的beta分布。 δϕ <script type="math/tex" id="MathJax-Element-175">\delta_{\phi}</script>为 ϕ <script type="math/tex" id="MathJax-Element-176">\phi</script>点的概率测度。
Stick-breaking 构造可以形象地解释为:对长度为1的棒子在比例 β1 <script type="math/tex" id="MathJax-Element-177">\beta_1 </script>处切割, 并将切掉的这部分长度赋值给 π1 <script type="math/tex" id="MathJax-Element-178">\pi_1</script>, 而后对剩余长度为 1−π1 <script type="math/tex" id="MathJax-Element-179">1-\pi_1</script> 的棒在其比例 β2 <script type="math/tex" id="MathJax-Element-180">\beta_2</script>处切割, 并将切掉的棒的长度赋值给 π2 <script type="math/tex" id="MathJax-Element-181">\pi_2</script>,而后按照相同的方式对剩余的棒在比例 βk <script type="math/tex" id="MathJax-Element-182">\beta_k</script> 处切割,并将切掉的棒的长度赋值给 πk <script type="math/tex" id="MathJax-Element-183">\pi_k</script>。
第一次减掉的比例为: β1 <script type="math/tex" id="MathJax-Element-184">\beta_1 </script>,则 π1=β1 <script type="math/tex" id="MathJax-Element-185">\pi_1=\beta_1</script>。此时,棒子的剩余长度为: 1−β1 <script type="math/tex" id="MathJax-Element-186">1-\beta_1 </script>。
第二次减掉的比例为: β2 <script type="math/tex" id="MathJax-Element-187">\beta_2 </script>,此时 π2=β2(1−β1) <script type="math/tex" id="MathJax-Element-188">\pi_2=\beta_2 (1-\beta_1)</script>。棒子的剩余长度为: 1−β1−β2(1−β1)=(1−β1)(1−β2) <script type="math/tex" id="MathJax-Element-189">1-\beta_1-\beta_2 (1-\beta_1)=(1-\beta_1)(1-\beta_2)</script>。
以此类推。。。。。
参考文献:
(1)徐谦, 周俊生, 陈家骏. Dirichlet 过程及其在自然语言处理中的应用[J]. 中文信息学报, 2009, 23(5): 25-33.
(2)周建英, 王飞跃, 曾大军. 分层 Dirichlet 过程及其应用综述[J]. 自动化学报, 2011, 37(4): 389-407.
(3)Dirichlet Process and Stick-Breaking
更多推荐

所有评论(0)