除了精确推理之外,我们还有非精确推理的手段来对概率图单个变量的分布进行求解。在很多情况下,概率图无法简化成团树,或者简化成团树后单个团中随机变量数目较多,会导致团树标定的效率低下。以图像分割为例,如果每个像素的label都是随机变量,则图中会有30W个随机变量(30W像素的小型相机)。且这30W个随机变量相互之间耦合严重(4邻接,多回环),采用团树算法无法高效的获得单个像素label的可能值。所以,在精确推理之外,我们使用非精确推理的手段对节点的概率分布进行估计。

  BP是精确推理中的概念,我们从root向leaf发射一次MESSAGE,再接受一次MESSAGE则可完成团树的标定,这个过程称为置信传播。但是在多回环的团树,BP非常难执行,由于环的存在会导致某个节点一直无法出于可发射MESSAGE的状态(此时的团树不叫团树,应该称为“聚类图”)。然而理论证明,如果我们预先给定一套消息传递的顺序,保证节点i -> j 传播且仅传播一次消息,那么消息最终会收敛到某个定值。一旦消息收敛到某个定值,则代表节点之间就某变量达成一致,我们获得概率图可行的分布。此时对聚类图中的变量进行边缘化,即可获得有效的单变量分布。

  Loopy置信传播有3项极其重要的工作:

  1、保证节点之间仅传播一次的传播顺序(此顺序显然不是唯一的)

  2、获取每次传播后更新的消息

  3、判断消息最终收敛

  

 1     List = [];
 2     edges_ = P.edges;
 3   for i = 1:length(P.clusterList)     
 4       j =  find(edges_(i,:),8);
 5       List = [List; j' linspace(i,i,length(j))'];
 6   end
 7   length_list = length(List);
 8   array_      = mod(m,length_list)+1;
 9   ij          = List(array_,:);
10   i = ij(1);
11   j = ij(2);
View Code

相关文章:

  • 2021-06-20
  • 2021-12-21
  • 2021-12-09
  • 2021-05-13
  • 2021-09-13
  • 2021-08-03
  • 2021-12-02
  • 2021-09-18
猜你喜欢
  • 2022-02-02
  • 2021-12-10
  • 2021-06-06
  • 2021-06-20
  • 2021-10-02
  • 2022-12-23
  • 2021-06-12
相关资源
相似解决方案