1 因子图
对于一个已知的条件, 例如 y=Φx+z (z 是噪声), 当我们已知向量x的先验概率分布, 如何通过我们观测到的 y 来反推出 x 的后验概率密度,或据此对x做一个估计? 显然, 这是一个在实际中非常常见的问题。 那么它对应的因子图我们可以首先画成这样:
首先m × 1的观测向量y 和 n × 1 的变量 x 都是向量, 都是由其中的单个标量和
组成的。 而因子图就是把向量关系 y=Φx+z 展开成了标量因子的形式画出来。 然后, 比如如果
那么两者之间就连一条线, 以此类推。 据此, 就可以得到因子图了。
比如如果上式中的Φ的元素非零, 那么每一个y应该都和所有的x相关。 被称为 输入节点 或 变量节点。
被称为 输出节点 或 观测节点。
即Φ矩阵的第 i 行第 j 列元素非零时,
节点间会有一条边。
结合因子图,我们来讲述, 什么是消息传递算法呢? 事实上, 所谓消息传递算法就是在因子图上, 输入节点 和 输出节点 之间沿着边, 互相传递关于输出节点的 消息 , 最终收敛到一个对
的估计。 而所谓的消息,其实就是关于
的概率分布。
理解:
在一开始, 我们已经有了关于 x 的先验分布因子, 每个节点都有一个已知的先验概率。 而我们要做的就是根据观测到的y,来结合先验概率, 得到每个
的后验概率。
[注]先验概率和后验概率理解:
先验——根据若干年的统计(经验)或者气候(常识),某地方下雨的概率;
似然——下雨(果)的时候有乌云(因/证据/观察的数据)的概率,即已经有了果,对证据发生的可能性描述;
后验——根据天上有乌云(原因或者证据/观察数据),下雨(结果)的概率;
后验 ~ 先验*似然 : 存在下雨的可能(先验),下雨之前会有乌云(似然)~ 通过现在有乌云推断下雨概率(后验);
先验概率可理解为统计概率,后验概率可理解为条件概率。
(1) 这个代表的是
传递给
节点的信息。即就是
结合了除
以外的其他y输出节点,更新的自己的后验概率,并将此传递给
节点。比如, y 如果是个3 × 1的向量即有3个y节点。 那么,我们的已知条件, y = Φ x + z 其实可以表示成:
其中, 代表Φ 的第n行。 那么
代表的就是由
两个条件得到的
的后验概率。注意,这个概率要结合
的先验概率, 同时是基于x其他变量概率已知的情况.
(2) 代表的就是由节点
的后验概率做出的更新推断。 例如,
就是由于我们已知
而又已知了其他
的概率分布(显然,
节点可以接收到其他节点给他的
信息,也就是他们的概率分布),从而可以推断出的
的后验概率。 注意,这里
是不结合先验概率的。正如前面
是不考虑
的信息一样,这里是为了防止同一条信息被重复计算。
得到后,
再结合自己的先验分布更新自己的概率分布。 然后参与到下一次迭代中的消息传递。
通过不断地迭代,最后传递的消息逐渐趋于收敛。至此,我们就可以得到一个基于观测y推断的x 的分布 (有了分布, 显然也可以根据各种不同的准则, 如MMSE, 做出对x的估计了)
深入浅出GAMP算法(上): 因子图与消息传递算法_B417科研笔记的博客-CSDN博客_消息传递算法