虽然openBugs效果不错,但原理是什么呢?需要感性认识,才能得其精髓。

Recall [Bayes] prod: M-H: Independence Sampler firstly.    采样法

Recall [ML] How to implement a neural network then.       梯度下降法

And compare them.


梯度下降,其实就是减小loss function,不断逼近拟合的过程。

那采样法呢?

y = a*x +sigma,  where sigma~N(0, tao^2)

        r  <- prod(fy/fx)*          # 求原分布的 似然比 以及 提议分布的 比值
g(xt[i-1]) / g(y[i])  # 提议分布if (u[i] <= r)
xt[i] <- y[i]
else {
xt[i] <- xt[i-1]

难道是贝叶斯线性回归

 
 

全贝叶斯还是好

 
题主指的应该是full-Bayesian吧。full-Bayesian方法说到底就是两步走:
  1. 用训练数据得到似然函数likelihood,再加上一个先验分布prior,得到一个后验分布posterior.
  2. 对于一个新的测试数据x,用之前得到的posterior作为权重在整个参数空间里计算一个加权积分,得到一个预测分布。(sampling method获得)

Full-Bayesian与最大似然估计,最大后验估计(MAP)不同之处在于它得到的是测试数据在整个空间上的一个概率分布,而不单纯是一个点估计。

它的精髓就在于这个加权积分:考虑到了参数的所有情况,并且加以不同的权重(后验分布的值),自然就避免了过拟合。
此外,很多情况下比起单纯的点估计,我们更需要一个分布来获得更多的信息(点估计只告诉了我们最有可能的情况,而分布包含了整个空间里的情况)。
 
 

后验形式太复杂,怎么办?

方案:近似法,或者采样法。
在实际中,除了少数情况(比如先验和似然函数都是高斯分布),那个后验分布的形式一般都很复杂,第二步里的积分是积不出来的。这时候就要采取一些近似方法,近似方法又分为两大类:
  1. 简化复杂的后验分布,然后就能算出积分的解析形式了。具体方法有变分推断,Laplace近似等。这类方法的特点是人算起来困难,机器跑起来快。
  2. 用采样的方法搞定后验分布。具体方法有Gibbs采样,HMC采样等。这类方法反过来了,人算起来简单,但是机器跑起来慢。

采样方法还有一个好处,就是精度算得比谁都高,但是毕竟还是too slow too simple~

 

对后验进行采样

From: https://zhuanlan.zhihu.com/p/20753438

如果我们有后验概率的具体表达式,原则上我们可以对待估计变量的统计特征进行直接估计。
然而现实并不那么美好,如果的维度很高,而且后验概率形式特别复杂,往往导致在对的某个分量求解边缘分布时的积分无法简单直接求得。
例如,求某个分量的期望就必然涉及对后验概率的积分。(积分不易)
 
蒙特卡罗积分法对于高维度的积分问题而言是一种可行的解决方案,基于这一原理,我们就能用基于抽样的方法来解决这一问题(这里的抽样是指按照给定的联合分布产生一个符合该分布的样本,而不是指从一个总体中抽取出一个样本)。
如果我们能够对后验概率进行采样,即根据后验概率获得一系列 的实现样本,我们就能够对这个样本进行直接的统计,从而获得对的估计。
 
 
那么如何完成对的采样呢?
这时候我们便要请出吉布斯(Gibbs)采样算法了。吉布斯采样算法的基本思想很直接,就是依次对的各个分量进行采样,在采样某一个分量的时候,认为其他分量固定。
这就将多维采样问题转换为了对一维分布进行采样,而这能够用拒绝算法(或者自适应拒绝算法)、切片法等等解决。
 
// Jeff: 先降维,每个维度再Rejection sampling方法
 
 

贝叶斯网

本来故事到这里已经可以结束,从而没有贝叶斯网什么事情了,
但是实践中,我发现(当然不可能是我首先发 现的),直接对后验概率进行吉布斯采样,虽然能凑合着用,但是效率有时候堪忧,贝叶斯网的出现可以显著改善采样的效率。
如果我们能够把后验概率进行分解, 把各个参量之间的关系捋顺,在对某一具体分量进行采集的时候,只需要计算和它相关的量,就能大大降低计算复杂性,从而提高效率。
 
例子:Gibbs采样法和贝叶斯网的必然联系

Figure 01, rewrite PGM

结论:

通过sample 获得后验的一堆随机点,根据这些随机点再计算/推断出后验分布的各种统计量。

似然加权法是重要性抽样的一个特例

概念辨析

全贝叶斯:

The terminology "fully Bayesian approach" is nothing but a way to indicate that one moves from a "partially" Bayesian approach to a "true" Bayesian approach, depending on the context.

Or to distinguish a "pseudo-Bayesian" approach from a "strictly" Bayesian approach.

经验贝叶斯:

For example one author writes: "Unlike the majority of other authors interested who typically used an Empirical Bayes approach for RVM, we adopt a fully Bayesian approach" beacuse the empirical Bayes approach is a "pseudo-Bayesian" approach.

实质是:利用历史样本对先验分布或者先验分布的某些数字特征做出直接或间接的估计,是对贝叶斯方法的改进和推广,是介于经典统计学和贝叶斯统计学之间的一种统计推断方法。

There are others pseudo-Bayesian approaches, such as the Bayesian-frequentist predictive distribution (a distribution whose quantiles match the bounds of the frequentist prediction intervals).

In this page several R packages for Bayesian inference are presented. The MCMCglmm is presented as a "fully Bayesian approach" because the user has to choose the prior distribution, contrary to the other packages.

Another possible meaning of "fully Bayesian" is when one performs a Bayesian inference derived from the Bayesian decision theory framework, that is, derived from a loss function, because Bayesian decision theory is a solid foundational framework for Bayesian inference.

I think the terminology is used to distinguish between the Bayesian approach and the empirical Bayes approach.

Full Bayes uses a specified prior whereas empirical Bayes allows the prior to be estimated through use of data.

全贝叶斯:使用指定的先验

经验贝叶斯:使用数据估算来的先验

对openBugs的浅显的理解

未知量很多时,比如有n个。

先讨论nth的变量,那么先设定n-1个变量的值,怎么给,因为有预先假设的分布,故,从分布上随机取一个点。

注意有三个值,以及这三个值的关系:

样本中的(x, y)以及nth variable.

根据nth的值(是在假设的分布下随机取的),求出在已知样本数据(x,y)下的似然值。

一开始,很可能拟合的不好,即:似然值很小。那么调整假设分布的参数,比如正态分布的mu,使似然值达到“当前情况下”的所谓的最大。

调整后,在这个新分布下去一个值作为固定值,然后再考虑下一个变量的情况。

这里的Gibber只是代表一个算法思路,跟sampling貌似关系不大。

变量变多时,貌似过程会复杂很多,但概率图模型的作用就是告诉我们 (Figure 01, rewrite PGM),估计一个变量D时,没必要考虑 all rest,在当前情形下,只考虑B, C即可。这便大大的简化了计算时间。

这里注意到了一点与neutral network的一些区别:

Bayes方法如果参数很多怎么办?毕竟一次只能改变一个变量,如果是图片的话,即使是一个像素点一个变量,都是巨大的数量。

而neutral network 的 back propagation是一次调整众多的值。

    • 以上的这个issue是否成为纯贝叶斯预测的一个瓶颈呢
    • 这种贝叶斯有局部极小点之说么感觉没有,理论上总会出现一个能跳出局部极小点的随机点发生。

[Bayes] Parameter estimation by Sampling的更多相关文章

  1. (转) Parameter estimation for text analysis 暨LDA学习小结

    Reading Note : Parameter estimation for text analysis 暨LDA学习小结 原文:http://www.xperseverance.net/blogs ...

  2. [Bayes] Hist & line: Reject Sampling and Importance Sampling

    吻合度蛮高,但不光滑. > L= > K=/ > x=runif(L) > *x*(-x)^/K)) > hist(x[ind],probability=T, + xla ...

  3. something about Parameter Estimation (参数估计)

    点估计 Point Estimation 最大似然估计(Maximum Likelihood Estimate —— MLE):视θ为固定的参数,假设存在一个最佳的参数(或参数的真实值是存在的),目的 ...

  4. Click Models for Web Search(2) - Parameter Estimation

    在Click Model中进行参数预估的方法有两种:最大似然(MLE)和期望最大(EM).至于每个click model使用哪种参数预估的方法取决于此model中的随机变量的特性.如果model中的随 ...

  5. [Bayes] Metroplis Algorithm --> Gibbs Sampling

    重要的是Gibbs的思想. 全概率分布,可以唯一地确定一个联合分布 ---- Hammersley-Clifford 多元高斯分布 当然,这个有点复杂,考虑个简单的,二元高斯,那么超参数就是: 二元高 ...

  6. [AI] 深度数学 - Bayes

    数学似宇宙,韭菜只关心其中实用的部分. scikit-learn (sklearn) 官方文档中文版 scikit-learn Machine Learning in Python 一个新颖的onli ...

  7. 本人AI知识体系导航 - AI menu

    Relevant Readable Links Name Interesting topic Comment Edwin Chen 非参贝叶斯   徐亦达老板 Dirichlet Process 学习 ...

  8. [ML] Bayesian Linear Regression

    热身预览 1.1.10. Bayesian Regression 1.1.10.1. Bayesian Ridge Regression 1.1.10.2. Automatic Relevance D ...

  9. [Bayes] runif: Inversion Sampling

    runifum Inversion Sampling 看样子就是个路人甲. Ref: [Bayes] Hist & line: Reject Sampling and Importance S ...

随机推荐

  1. 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)(转)

    用VC++ 2008 编写C语言程序,编译出现错误: 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反) 解决方法: 建工程时 建立空项目 或者在项目设置里关闭预编 ...

  2. [Java web]Spring+Struts2+Hibernate整合过程

    摘要 最近一直在折腾java web相关内容,这里就把最近学习的spring+struts2+hibernate进行一个整合,也就是大家经常说的ssh. 环境 工具IDE :Idea 2018 数据库 ...

  3. IPOPT工具解决非线性规划最优化问题使用案例

    IPOPT工具解决非线性规划最优化问题使用案例 By Andrew( justastriver@gmail.com ) 2013-08-07 简单介绍 ipopt是一个解决非线性规划最优化问题的工具集 ...

  4. python 生成requirements.txt

    生成requirements.txt文件 pip freeze > requirements.txt 安装requirements.txt依赖 pip install -r requiremen ...

  5. CentOS 7安装SSHFS 实现远程主机目录 挂载为本地目录

    安装sshfs 官方下载地址 https://github.com/libfuse/sshfs/releases 首先,我们需要安装sshfs软件.sshfs是一个基于SSH文件传输协议的文件系统客户 ...

  6. mongodb 字符串查找匹配中$regex的用法

    官网地址:https://docs.mongodb.com/manual/reference/operator/query/regex/#regex-case-insensitive 举个例子来说:现 ...

  7. apache2.4多站点配置

    原来是跑单站,现在想跑多站,配置不算复杂,记录一下: 用默认的httpd.conf修改,去掉两个vhost的注释 servername指定任意一个合法的域名 如果是python,配置wsgi 修改ex ...

  8. Android添加全屏启动画面

    有的Android软件需要在启动的时候显示一个启动画面,可以是一张图或者一些设置什么呢,还有一个好处就是,可以趁机在后台加载数据.创建启动画面一般有两种方式:1.建立一个activity,展示启动画面 ...

  9. eclipse中的yaml插件

    现在spring中推荐使用yaml格式的配置文件,扩展名为yml 在eclipse中编辑的话,可以安装yaml编辑插件,在Eclipse Marketpalce可以搜到两款: YEdit的推荐指数38 ...

  10. 关于VIM自动缩进失效(filetype indent on无效)的详细分析

    关于VIM自动缩进失效(filetype indent on无效)的详细分析 set filetype=xml filetype indent on 执行对齐命令:ggvG