Pymc3采样慢解决方法和原因

博客探讨了在使用PyMC3进行贝叶斯分析时遇到的采样速度慢的问题,特别是在处理大量参数时。解决方案包括调整先验设置,检查数据分布,尝试find_MAP初始方法,以及针对变量相关性、长尾分布、识别问题和多模态后验的处理策略。建议通过绘制变量轨迹和散点图来检查模型问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决方法:

1. 一般情况:先验设定存在问题(不合适),建议按照同一问题背景下,用别人找到的推荐先验设置。或者查阅相关论文,使得变量先验符合模型背景。

2. 在使用别人的推荐先验还是存在极慢的采样,可以检查数据集,数据的分布情况是否和参考教程一致,比如别人是正态,你的是双峰或者偏正态,可以先进行转化调整。

3. 更换初始方法,例如find_MAP。

4. 上述方法只能解决很慢的情况下,一两天都不能采样出结果。【我的数据量15k,18个参数,chain=2,跑了6h,供参考】如果还有什么好的解决方法可以留言,一起学习。

原因:

转载自PyMC3 slows rapidly with increasing numbers of parameters - #2 by aseyboldt - Questions - PyMC Discourse

机翻如下:

NUTS 采样的速度取决于参数的数量,而更多地取决于后验的形状。如果后验在没有相关性的情况下相当接近正态,那么 10000 个参数不是问题。但是如果你的后验有某些特征,事情会很快变得更加困难。比较 NUTS 和 Metropolis 之间的采样速度通常是毫无意义的,Metropolis 只是没有注意到它的样本很糟糕,并且很乐意为您提供大量无用的样本。
使采样变得困难的事情,没有特定的顺序:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网路末端遗传因子

如果觉得不错请我喝杯瑞幸吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值