machine learning sampling 采样

今天在微博上看见晓风_机器学习放大招,写了一系列关于采样的知识,一个一个读不方便,就把它转载到这里。
 
 
#抽样那些事#这里面引用了许多 LDA-math-MCMC 和 Gibbs Sampling中的内容。晓风_机器学习大神写的比较精简,但如果是刚接触采样,可以直接看LDA-math-MCMC 和 Gibbs Sampling,这里面有很详细并且浅显易懂的描述(连我这种菜鸟都能看懂o(╯□╰)o)

这里面我认为最出彩的是介绍了Gibbs Sampling 和Em的联系。Gibbs Sampling 可以认为是EM的一个变种。

另外,抽样在PRML 的sampling章节  中有很详细的描述,下面的有些内容和图近似可以认为就是从PRML中摘出来的。但当初没看懂PRML sampling 的内容很多是因为没有采样的概念,半路出家学machine learning的程序猿真心伤不起。所以,有优秀的母语 machine learning文章,真的要十分珍惜%>_<%。
ps:标原创只是想试试csdn的发布到首页的功能,希望能有更多的喜欢machine learning的人能看到有些的技术文章。

#抽样那些事#
1. 很多时候,我们只能获取一个离散的、或者连续的均匀分布,例如线性同余法搞出来的伪随机数。

2. 对于一些简单的非均匀分布,可以借助均匀分布,使用cdf求逆的方式 进行抽样。


3. 对于复杂一点的分布,可以使用构造法进行抽样;例如如果使用硬币(均匀的)构造出一个(1/4,3/4)的非均匀分布出来。再比如,使用Box-Muller Method 借助均匀分布构造出高斯分布出来。

4. 再复杂一点的、但是单点可以计算的分布p,即给定z,可求出p(z),可以使用Rejection Sampling进行抽样:构造一个kq(z),总是盖过p(z),q(z)可抽样,例如高斯分布。抽样z0~q(z)=>kq(z0)>=p(z0),再抽样一个u0~均匀分布(0,1),根据kq(z0)和p(z0)的比例关系,确定是否拒绝z0。



5. 对于 Rejection Sampling,如果q(z)不能很好逼近p(z),拒绝率较高。在一些情况下,可以尝试Adaptive Rejection Sampling,构造一个合适的q(z)。降低拒绝率。



6. 有时候抽样是为了计算期望,这样就崩这么麻烦,上Importance Sampling。搞一个合适的q(z)出来抽样,然后开算。



7. 扯点闲篇,Markov Chain,对于一个概率转移矩阵P,如果P(i,j)表示任意状态i转移到状态j的概率,都>0。则P^n->P’,P'的每一行向量π(即pi)都一样;对于任意初始状态π0,都有π0*P^n->π;特别地,已经进入稳态后,πP=π;


8. πP=π,即π是P转置的特征向量,对应特征值是1. 实际上,这样全连通条件下的P,转置后最大特征值为1. 收敛的速度取决于次大特征值。π向量的每一维的值,表示稳态后持续转移的情况下,出现对应状态的概率。每个转移蹦出来的state,是同分布的,但是不独立;
 
9. 假定网页全连接,最终π中每一个值就对应一个网页被浏览的概率,可以评估重要性,即静态分。网页之前的超链构成转移边,但是不一定是全连接;PageRank假定用户浏览网页i时有a的概率按照超链继续浏览,1-a的概率关闭网页,重新等概率浏览全网网页,形成全连接,保证收敛。 
 
10. 等概率重新浏览全网网页不合理,比如A更趋向于重新打开微博,B更喜欢重新打开草榴;解决方案是TopicRank,固定一组Topic,单独算PageRank。给定用户A,先判定P(topic|A),再做后续策略;类似这招还可以用作推荐系统;Topic是已买物品,即起始点;边可以是买了又买,或者是一起购买 
 
11. 回到抽样,rejection sampling蛮好,但拒绝率在高维情况下会被放大,简直就是灾难。假定要抽样分布π(i),假定能构造出一个转移矩阵P,使得π(i)P(i,j)=π(j)P(j,i),则有πP=π,那就可以随便给个初始状态,按照P,转移啊转移,进入稳态后,每一步转移蹦出来的state~π(i),但不独立 
 
 
12. 这个矩阵不好搞;先搞个参考转移矩阵q(i,j)先,如此这般,再凑一个a(i,j),最终等式满足。注意,q(i,j)是可计算的,a(i,j)=p(j)q(j,i)里面的p(j)也是可计算的(等同rejection sampling),即a(i,j)可计算,最终矩阵构造完成。 
 
 
 
13.a(i,j)的直观意义相当于在q(i,j)搞定后还要再闯一概率关才能完整状态转移,否则下一个状态等于前一个状态,如果a(i,j)太小不利于快速进入稳态;好在可以对a(i,j)和a(j,i)同比例放大,避免过多原地踏步。@rickjin 
 
 
 
14 虽然这样,原地踏步的情况还是存在。考虑高维情况,每个采样就是空间中一个点,从state(x1,y1)->state(x2,y2)可以分2布完成:a)(x1,y1)->(x1,y2);b)(x1,y2)->(x2,y2),即不要着急,一个坐标一个坐标来。 
 
15. 这样有啥好?拆开后的每一步,都相当于在固定的一个维度上做state change,且满足detailed balance condition,最终有对于任意两个state X,Y,都满足detailed balance condition。没有原地踏步;图片来自 @rickjin 《LDA数学八卦》; 
 
 
 
16. Gibbs Sampling vs EM,有啥联系?看看pLSA,p(d,w,z|θ), θ是参数,z是未知变量,先随便猜一个θ0把,E步求z的分布,这样数据就完整了;根据最大似然,确定了凸函数Q(θ|d,w,θ0)。M步搞定它,最大化它的期望,获得一个更好的θ。 
 
17. EM 有个直观的图,解释了为毛EM容易陷入局部最优,或者说对初始值敏感。因为虽然每次low bound convex Q函数都在变,但是由于最大化,不具备跳出坑的能力。如果图中右面的,红线再起跳来一个高峰,对应全局最优,就只能干瞪眼了。 
 
 
18. 注意图中,每个Q(x)都在θ处与红线等值;这实际上对应着在E步,找一个最好的P(Z)分布,这样的low bound是最紧的,收敛快,也容易陷入局部最优。如果能够放松这个要求,就有可能跳出局部最优;GEM的做法是在M步放弃最大化,追求相对大;还一个做法就是在E步放弃求一个最好的P(Z) 
 
19. Z通常是多维,这时候考虑Gibbs Sampling, 即一次只搞其中一个维度,相当于是EM中放松了这个要求;即可认为某种程度上,Gibbs Sampling是GEM的变种。手工。 
 
20. 上一条有些含糊,太困了,改日再补;回头有精力再连载一个inference on latent variables model 系列;中间引用了很多@rickjin 的图,致谢。--==THE END==-- 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值