[Bayes] Multinomials and Dirichlet distribution
From: https://www.cs.cmu.edu/~scohen/psnlp-lecture6.pdf 不错的PPT,图示很好。
伯努利分布 和 多项式分布
Binomial Distribution的共轭先验Beta Distribution。
贝塔分布的范围符合色子的每一面的概率理解。
同理:
Multinomials Distribution的共轭先验Dirichlet Distribution。
Ref: https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.multinomial.html
>>> np.random.multinomial(20, [1/6.]*6, size=2) # 做size=2次实验,一次是20次抛投
array([[3, 4, 3, 3, 4, 3], # 第一次实验的结果:第一面出现了3次,第二面出现了4次,etc.
[2, 4, 3, 4, 0, 7]]) # 第二次实验同理。
没法做图表示,维度太高了,大于了三维。第三维要留下来表示Pr。
狄利克雷分布:
Dirichlet分布可以看做是分布之上的分布。如何理解这句话,我们可以先举个例子:
- 假设我们有一个骰子,其有六面,分别为{1,2,3,4,5,6}。现在我们做了10000次投掷的实验,得到的实验结果是六面分别出现了{2000,2000,2000,2000,1000,1000}次,如果用每一面出现的次数与试验总数的比值估计这个面出现的概率,则我们得到六面出现的概率,分别为{0.2,0.2,0.2,0.2,0.1,0.1}。
- 我们想要做10000次试验,每次试验中我们都投掷骰子10000次。我们想知道,出现这样的情况使得我们认为,骰子六面出现概率为{0.2,0.2,0.2,0.2,0.1,0.1}的概率是多少(说不定下次试验统计得到的概率为{0.1, 0.1, 0.2, 0.2, 0.2, 0.2}这样了)。
这样我们就在思考骰子六面出现概率分布这样的分布之上的分布。
而这样一个分布就是Dirichlet分布。
- xi 代表每一面的概率。
- 阿尔法是参数向量。
- 以下B函数是为了归一化!
- 可以看出,每一个结果:(x1, x2... xn)都会相应地给出一个概率!
伽玛函数(Gamma函数),也叫欧拉第二积分,是阶乘函数在实数与复数上扩展的一类函数。
与之有密切联系的函数是贝塔函数(Beta函数),也叫第一类欧拉积分。可以用来快速计算同伽马函数形式相类似的积分。
长得比较诡异。
Ref: https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.dirichlet.html
一个三维的向量,随机抽取一个。每一维代表一个面的概率。
>>> s = np.random.dirichlet((10, 5, 3), 20)
>>> s
array([[ 0.52347182, 0.44608268, 0.0304455 ],
[ 0.55583862, 0.35281005, 0.09135134],
[ 0.49311777, 0.32315067, 0.18373157],
[ 0.70968695, 0.22268722, 0.06762583],
[ 0.60323203, 0.26006693, 0.13670104],
[ 0.69403583, 0.21325088, 0.09271329],
[ 0.53413248, 0.23281167, 0.23305585],
[ 0.62858314, 0.18519664, 0.18622022],
[ 0.52497339, 0.20176998, 0.27325663],
[ 0.47283724, 0.39204232, 0.13512045],
[ 0.66621238, 0.24627779, 0.08750983],
[ 0.43605494, 0.46696468, 0.09698038],
[ 0.41539035, 0.37153284, 0.21307682],
[ 0.85737303, 0.11670994, 0.02591703],
[ 0.53161652, 0.28426861, 0.18411488],
[ 0.55155807, 0.16826288, 0.28017905],
[ 0.45716724, 0.33973818, 0.20309457],
[ 0.45320309, 0.26896615, 0.27783076],
[ 0.80522192, 0.10022979, 0.09454829],
[ 0.45790405, 0.42998929, 0.11210666]])
可见,参数某个比较大时,会出现一个高的相对稳定的概率峰值。
>>> s = np.random.dirichlet((10, 1, 1), 20)
>>> s
array([[ 0.8557684 , 0.09807372, 0.04615788],
[ 0.83456424, 0.03670665, 0.12872911],
[ 0.73520196, 0.2017358 , 0.06306224],
[ 0.73759042, 0.18157695, 0.08083263],
[ 0.89338746, 0.00237974, 0.1042328 ],
[ 0.93393029, 0.01373741, 0.0523323 ],
[ 0.96453549, 0.02562915, 0.00983536],
[ 0.90688036, 0.02557378, 0.06754587],
[ 0.96455728, 0.02084742, 0.01459531],
[ 0.82136655, 0.07921894, 0.09941451],
[ 0.78585535, 0.00286702, 0.21127763],
[ 0.91597604, 0.0276861 , 0.05633787],
[ 0.90984927, 0.04313451, 0.04701622],
[ 0.81386422, 0.08610383, 0.10003195],
[ 0.92675313, 0.06861093, 0.00463594],
[ 0.98362761, 0.00299704, 0.01337535],
[ 0.90807198, 0.02043488, 0.07149314],
[ 0.90418455, 0.07209613, 0.02371932],
[ 0.9630694 , 0.00459631, 0.03233429],
[ 0.65105053, 0.05350025, 0.29544922]])
阿尔法和小一点,则less peaked:出现了些许不稳定,某一个Pr的垄断性不是特别强。
>>> s = np.random.dirichlet((5, 1, 1), 20)
>>> s
array([[ 0.7373676 , 0.17431797, 0.08831443],
[ 0.8022481 , 0.02474368, 0.17300822],
[ 0.90968516, 0.06022567, 0.03008917],
[ 0.9011515 , 0.02337192, 0.07547658],
[ 0.98846934, 0.00932316, 0.0022075 ],
[ 0.66322211, 0.24058232, 0.09619557],
[ 0.86661876, 0.0542239 , 0.07915735],
[ 0.48498043, 0.25048716, 0.26453241],
[ 0.79705359, 0.16538074, 0.03756567],
[ 0.68670999, 0.17210651, 0.1411835 ],
[ 0.65227745, 0.20477286, 0.1429497 ],
[ 0.73701086, 0.15733187, 0.10565728],
[ 0.68017492, 0.04459314, 0.27523195],
[ 0.50579841, 0.42922063, 0.06498096],
[ 0.71188347, 0.13582756, 0.15228897],
[ 0.69952146, 0.08344366, 0.21703488],
[ 0.39333132, 0.49440346, 0.11226522],
[ 0.47531785, 0.21319548, 0.31148667],
[ 0.67575678, 0.25481807, 0.06942515],
[ 0.83958139, 0.08429426, 0.07612435]])
共轭,得到后验如下:
[Bayes] Multinomials and Dirichlet distribution的更多相关文章
- The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1)
The Dirichlet Distribution 狄利克雷分布 (PRML 2.2.1) Dirichlet分布可以看做是分布之上的分布.如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其 ...
- Notes on the Dirichlet Distribution and Dirichlet Process
Notes on the Dirichlet Distribution and Dirichlet Process In [3]: %matplotlib inline Note: I wrote ...
- Dirichlet Distribution
Beta分布: 二项式分布(Binomial distribution): 多项式分布: Beta分布: Beta分布是二项式分布的共轭先验(conjugate prior) Dirichlet Di ...
- [AI] 深度数学 - Bayes
数学似宇宙,韭菜只关心其中实用的部分. scikit-learn (sklearn) 官方文档中文版 scikit-learn Machine Learning in Python 一个新颖的onli ...
- 本人AI知识体系导航 - AI menu
Relevant Readable Links Name Interesting topic Comment Edwin Chen 非参贝叶斯 徐亦达老板 Dirichlet Process 学习 ...
- [Bayes] Concept Search and LSI
基于术语关系的贝叶斯网络信息检索模型扩展研究 LSI 阅读笔记 背景知识 提出一种改进的共现频率法,利用该方法挖掘了索引术语之间的相关关系,将这种相关关系引入信念网络模型,提出了一个具有两层术语节点的 ...
- [IR] Concept Search and LSI
基于术语关系的贝叶斯网络信息检索模型扩展研究 LSI 阅读笔记 背景知识 提出一种改进的共现频率法,利用该方法挖掘了索引术语之间的相关关系,将这种相关关系引入信念网络模型,提出了一个具有两层术语节点的 ...
- [综] Latent Dirichlet Allocation(LDA)主题模型算法
多项分布 http://szjc.math168.com/book/ebookdetail.aspx?cateid=1&§ionid=983 二项分布和多项分布 http:// ...
- Dirichlet Process 和 Dirichlet Process Mixture模型
Dirichlet Process 和 Dirichlet Process Mixture模型 [本文链接:http://www.cnblogs.com/breezedeus/archive/2012 ...
随机推荐
- 不涉及框架纯java实现将图片裁成圆形
package com.wtsrui.utils;import java.awt.Color; import sun.misc.BASE64Encoder;import java.awt.Graph ...
- mybatis批量插入数据
Mybatis在执行批量插入时,如果使用的是for循环逐一插入,那么可以正确返回主键id.如果使用动态sql的foreach循环,那么返回的主键id列表,可能为null,这让很多人感到困惑:本文将分析 ...
- Cocos Creator代码编辑环境配置
1,可以使用较为适合js的webstorm,亦可以采用VS: 2,若需要webstorm,在下载之后,在文件,设置内外部编辑器选用webstorm.exe,即可: 3,Visual Studio Co ...
- spring源码分析系列
spring源码分析系列 (1) spring拓展接口BeanFactoryPostProcessor.BeanDefinitionRegistryPostProcessor spring源码分析系列 ...
- JProfiler远程监控
1. 服务端安装JProfiler(与客户端版本一致) 2. 客户端配置连接: A).session——integration wizards——New remote integration B) ...
- Socket编程的UDP与TCP,应用在哪些地方
随着网络技术飞速发展,网速已不再是传输的瓶颈,UDP协议以其简单.传输快的优势,在越来越多场景下取代了TCP,如网页浏览.流媒体.实时游戏.物联网. 1,网速的提升给UDP稳定性提供可靠网络保障 CD ...
- (原)Show, Attend and Translate: Unsupervised Image Translation with Self-Regularization and Attention
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9333844.html 论文网址:https://arxiv.org/abs/1806.06195 在 ...
- Non-negative Matrix Factorization 非负矩阵分解
著名的科学杂志<Nature>于1999年刊登了两位科学家D.D.Lee和H.S.Seung对数学中非负矩阵研究的突出成果.该文提出了一种新的矩阵分解思想――非负矩阵分解(Non-nega ...
- Easyui-DataGrid 分页多选框 及 遍历所有选中项
html <table id='grid' class='easyui-datagrid' style='height:500px' url='Ajax-index.php?module=< ...
- CentOS SVN服务器管理多项目
一 需求 一般来说,公司有多个项目,在搭建好SVN服务器之后,就需要使用SVN来实现不在一个项目中的开发人员不能访问其它项目中的代码. 假设: 有3个项目:project1.project2.proj ...