概率图模型–因子图 – 潘登同学的Machine Learning笔记
文章目录
- 概率图模型--因子图 -- 潘登同学的Machine Learning笔记
- 简单回顾概率图模型
- 因子图
- 将贝叶斯网络用因子图表示
- 将马尔科夫随机场用因子图表示
- 总结
简单回顾概率图模型
概率图就是概率论+图论;
最大的贡献就是联合概率分布可以表示为局部势函数的连乘积
;
回顾贝叶斯网络
![](/assets/blank.gif)
将联合概率分布可以表示为局部势函数的联乘积
P(S,C,X,B,D)=P(S)P(C∣S)P(B∣S)P(X∣C,S)P(D∣C,B)P(S,C,X,B,D) = P(S)P(C|S)P(B|S)P(X|C,S)P(D|C,B) P(S,C,X,B,D)=P(S)P(C∣S)P(B∣S)P(X∣C,S)P(D∣C,B)
简单回顾马尔可夫随机场(MRF)
#mermaid-svg-k7ckkLDxxaBTAtVm .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .label text{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .node rect,#mermaid-svg-k7ckkLDxxaBTAtVm .node circle,#mermaid-svg-k7ckkLDxxaBTAtVm .node ellipse,#mermaid-svg-k7ckkLDxxaBTAtVm .node polygon,#mermaid-svg-k7ckkLDxxaBTAtVm .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-k7ckkLDxxaBTAtVm .node .label{text-align:center;fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .node.clickable{cursor:pointer}#mermaid-svg-k7ckkLDxxaBTAtVm .arrowheadPath{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-k7ckkLDxxaBTAtVm .flowchart-link{stroke:#333;fill:none}#mermaid-svg-k7ckkLDxxaBTAtVm .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-k7ckkLDxxaBTAtVm .edgeLabel rect{opacity:0.9}#mermaid-svg-k7ckkLDxxaBTAtVm .edgeLabel span{color:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-k7ckkLDxxaBTAtVm .cluster text{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-k7ckkLDxxaBTAtVm .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-k7ckkLDxxaBTAtVm text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-k7ckkLDxxaBTAtVm .actor-line{stroke:grey}#mermaid-svg-k7ckkLDxxaBTAtVm .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-k7ckkLDxxaBTAtVm #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .sequenceNumber{fill:#fff}#mermaid-svg-k7ckkLDxxaBTAtVm #sequencenumber{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm #crosshead path{fill:#333;stroke:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .messageText{fill:#333;stroke:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-k7ckkLDxxaBTAtVm .labelText,#mermaid-svg-k7ckkLDxxaBTAtVm .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-k7ckkLDxxaBTAtVm .loopText,#mermaid-svg-k7ckkLDxxaBTAtVm .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-k7ckkLDxxaBTAtVm .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-k7ckkLDxxaBTAtVm .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-k7ckkLDxxaBTAtVm .noteText,#mermaid-svg-k7ckkLDxxaBTAtVm .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-k7ckkLDxxaBTAtVm .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-k7ckkLDxxaBTAtVm .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-k7ckkLDxxaBTAtVm .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-k7ckkLDxxaBTAtVm .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm .section{stroke:none;opacity:0.2}#mermaid-svg-k7ckkLDxxaBTAtVm .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-k7ckkLDxxaBTAtVm .section2{fill:#fff400}#mermaid-svg-k7ckkLDxxaBTAtVm .section1,#mermaid-svg-k7ckkLDxxaBTAtVm .section3{fill:#fff;opacity:0.2}#mermaid-svg-k7ckkLDxxaBTAtVm .sectionTitle0{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .sectionTitle1{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .sectionTitle2{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .sectionTitle3{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-k7ckkLDxxaBTAtVm .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm .grid path{stroke-width:0}#mermaid-svg-k7ckkLDxxaBTAtVm .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-k7ckkLDxxaBTAtVm .task{stroke-width:2}#mermaid-svg-k7ckkLDxxaBTAtVm .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm .taskText:not([font-size]){font-size:11px}#mermaid-svg-k7ckkLDxxaBTAtVm .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-k7ckkLDxxaBTAtVm .task.clickable{cursor:pointer}#mermaid-svg-k7ckkLDxxaBTAtVm .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-k7ckkLDxxaBTAtVm .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-k7ckkLDxxaBTAtVm .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-k7ckkLDxxaBTAtVm .taskText0,#mermaid-svg-k7ckkLDxxaBTAtVm .taskText1,#mermaid-svg-k7ckkLDxxaBTAtVm .taskText2,#mermaid-svg-k7ckkLDxxaBTAtVm .taskText3{fill:#fff}#mermaid-svg-k7ckkLDxxaBTAtVm .task0,#mermaid-svg-k7ckkLDxxaBTAtVm .task1,#mermaid-svg-k7ckkLDxxaBTAtVm .task2,#mermaid-svg-k7ckkLDxxaBTAtVm .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-k7ckkLDxxaBTAtVm .taskTextOutside0,#mermaid-svg-k7ckkLDxxaBTAtVm .taskTextOutside2{fill:#000}#mermaid-svg-k7ckkLDxxaBTAtVm .taskTextOutside1,#mermaid-svg-k7ckkLDxxaBTAtVm .taskTextOutside3{fill:#000}#mermaid-svg-k7ckkLDxxaBTAtVm .active0,#mermaid-svg-k7ckkLDxxaBTAtVm .active1,#mermaid-svg-k7ckkLDxxaBTAtVm .active2,#mermaid-svg-k7ckkLDxxaBTAtVm .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-k7ckkLDxxaBTAtVm .activeText0,#mermaid-svg-k7ckkLDxxaBTAtVm .activeText1,#mermaid-svg-k7ckkLDxxaBTAtVm .activeText2,#mermaid-svg-k7ckkLDxxaBTAtVm .activeText3{fill:#000 !important}#mermaid-svg-k7ckkLDxxaBTAtVm .done0,#mermaid-svg-k7ckkLDxxaBTAtVm .done1,#mermaid-svg-k7ckkLDxxaBTAtVm .done2,#mermaid-svg-k7ckkLDxxaBTAtVm .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-k7ckkLDxxaBTAtVm .doneText0,#mermaid-svg-k7ckkLDxxaBTAtVm .doneText1,#mermaid-svg-k7ckkLDxxaBTAtVm .doneText2,#mermaid-svg-k7ckkLDxxaBTAtVm .doneText3{fill:#000 !important}#mermaid-svg-k7ckkLDxxaBTAtVm .crit0,#mermaid-svg-k7ckkLDxxaBTAtVm .crit1,#mermaid-svg-k7ckkLDxxaBTAtVm .crit2,#mermaid-svg-k7ckkLDxxaBTAtVm .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-k7ckkLDxxaBTAtVm .activeCrit0,#mermaid-svg-k7ckkLDxxaBTAtVm .activeCrit1,#mermaid-svg-k7ckkLDxxaBTAtVm .activeCrit2,#mermaid-svg-k7ckkLDxxaBTAtVm .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-k7ckkLDxxaBTAtVm .doneCrit0,#mermaid-svg-k7ckkLDxxaBTAtVm .doneCrit1,#mermaid-svg-k7ckkLDxxaBTAtVm .doneCrit2,#mermaid-svg-k7ckkLDxxaBTAtVm .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-k7ckkLDxxaBTAtVm .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-k7ckkLDxxaBTAtVm .milestoneText{font-style:italic}#mermaid-svg-k7ckkLDxxaBTAtVm .doneCritText0,#mermaid-svg-k7ckkLDxxaBTAtVm .doneCritText1,#mermaid-svg-k7ckkLDxxaBTAtVm .doneCritText2,#mermaid-svg-k7ckkLDxxaBTAtVm .doneCritText3{fill:#000 !important}#mermaid-svg-k7ckkLDxxaBTAtVm .activeCritText0,#mermaid-svg-k7ckkLDxxaBTAtVm .activeCritText1,#mermaid-svg-k7ckkLDxxaBTAtVm .activeCritText2,#mermaid-svg-k7ckkLDxxaBTAtVm .activeCritText3{fill:#000 !important}#mermaid-svg-k7ckkLDxxaBTAtVm .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-k7ckkLDxxaBTAtVm g.classGroup text .title{font-weight:bolder}#mermaid-svg-k7ckkLDxxaBTAtVm g.clickable{cursor:pointer}#mermaid-svg-k7ckkLDxxaBTAtVm g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-k7ckkLDxxaBTAtVm g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-k7ckkLDxxaBTAtVm .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-k7ckkLDxxaBTAtVm .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-k7ckkLDxxaBTAtVm .dashed-line{stroke-dasharray:3}#mermaid-svg-k7ckkLDxxaBTAtVm #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm .commit-id,#mermaid-svg-k7ckkLDxxaBTAtVm .commit-msg,#mermaid-svg-k7ckkLDxxaBTAtVm .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-k7ckkLDxxaBTAtVm g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-k7ckkLDxxaBTAtVm g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-k7ckkLDxxaBTAtVm g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-k7ckkLDxxaBTAtVm .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-k7ckkLDxxaBTAtVm .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-k7ckkLDxxaBTAtVm .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-k7ckkLDxxaBTAtVm .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-k7ckkLDxxaBTAtVm .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-k7ckkLDxxaBTAtVm .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-k7ckkLDxxaBTAtVm .edgeLabel text{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-k7ckkLDxxaBTAtVm .node circle.state-start{fill:black;stroke:black}#mermaid-svg-k7ckkLDxxaBTAtVm .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-k7ckkLDxxaBTAtVm #statediagram-barbEnd{fill:#9370db}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-state .divider{stroke:#9370db}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-k7ckkLDxxaBTAtVm .note-edge{stroke-dasharray:5}#mermaid-svg-k7ckkLDxxaBTAtVm .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-k7ckkLDxxaBTAtVm .error-icon{fill:#522}#mermaid-svg-k7ckkLDxxaBTAtVm .error-text{fill:#522;stroke:#522}#mermaid-svg-k7ckkLDxxaBTAtVm .edge-thickness-normal{stroke-width:2px}#mermaid-svg-k7ckkLDxxaBTAtVm .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-k7ckkLDxxaBTAtVm .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-k7ckkLDxxaBTAtVm .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-k7ckkLDxxaBTAtVm .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-k7ckkLDxxaBTAtVm .marker{fill:#333}#mermaid-svg-k7ckkLDxxaBTAtVm .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-k7ckkLDxxaBTAtVm {color: rgba(0, 0, 0, 0.75);font: ;}
A
D
B
C
P(A,B,C,D)=1Zϕ∏i=1kϕi(Di)=1Zϕϕ1(A,B)ϕ2(B,C)ϕ3(C,D)ϕ4(D,A)\begin{aligned} P(A,B,C,D) &= \frac{1}{Z_{\phi}}\prod_{i=1}^{k}\phi_i(D_i) \\ &= \frac{1}{Z_{\phi}}\phi_1(A,B)\phi_2(B,C)\phi_3(C,D)\phi_4(D,A) \\ \end{aligned} P(A,B,C,D)=Zϕ1i=1∏kϕi(Di)=Zϕ1ϕ1(A,B)ϕ2(B,C)ϕ3(C,D)ϕ4(D,A)
因子图
因子图其实是上面这些概率图模型的一个统一表述;
![](/assets/blank.gif)
- 因子图是一个二部图, 一边是变量xxx, 一边是因子fff;
变量就是自变量; 因子就可以理解为势函数, 也就是参数;
因子图是一类无向概率图模型, 包括变量节点和因子节点。 变量节点和因子节点之间有无向边连接。 与某个因子节点相连的变量节点, 为该因子的变量。 定义在因子图上的联合概率分布可以表示为各个因子的联乘积
;
看! 又是联乘积了对叭…
- 用各个因子的联乘积表示上图
p(x)=1Zϕ∏AfA(xA)p(x) = \frac{1}{Z_{\phi}}\prod_{A}f_A(x_A) p(x)=Zϕ1A∏fA(xA)
具体来说,
p(x1,x2,x3)=1Zϕfa(x1,x2)fb(x1,x2)fc(x2,x3)fd(x3)p(x_1, x_2, x_3) = \frac{1}{Z_{\phi}}f_{a}(x_1, x_2)f_{b}(x_1, x_2)f_{c}(x_2, x_3)f_{d}(x_3) p(x1,x2,x3)=Zϕ1fa(x1,x2)fb(x1,x2)fc(x2,x3)fd(x3)
将贝叶斯网络用因子图表示
![](/assets/blank.gif)
将贝叶斯网络用因子图表示,如下:
![](/assets/blank.gif)
数学表示:
P(S,C,B,D,X)=fS(S)fC(S,C)fB(S,B)fX(S,C,X)fD(C,B,D)P(S,C,B,D,X) = f_S(S)f_C(S,C)f_B(S,B)f_X(S,C,X)f_D(C,B,D) P(S,C,B,D,X)=fS(S)fC(S,C)fB(S,B)fX(S,C,X)fD(C,B,D)
再来看看原本贝叶斯网络的数学表示
P(S,C,X,B,D)=P(S)P(C∣S)P(B∣S)P(X∣C,S)P(D∣C,B)P(S,C,X,B,D) = P(S)P(C|S)P(B|S)P(X|C,S)P(D|C,B) P(S,C,X,B,D)=P(S)P(C∣S)P(B∣S)P(X∣C,S)P(D∣C,B)
其实他俩一样对吧; 但是关键点就是这个P(S)
一般的P(S)
我们就单纯的把他理解发生某件事为概率,如
P明天下雨=0.6;∴P明天下雨=0.4P_{明天下雨} = 0.6; \therefore P_{明天下雨} = 0.4 P明天下雨=0.6;∴P明天下雨=0.4
但是因子图, 把这样的概率表示成了因子节点, 所以整个因子图就把输入变量和因子节点分隔开, 这样虽然本质不变, 但是便于目标的求解;
将马尔科夫随机场用因子图表示
#mermaid-svg-zyAfatl6qvKGE5N5 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .label text{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .node rect,#mermaid-svg-zyAfatl6qvKGE5N5 .node circle,#mermaid-svg-zyAfatl6qvKGE5N5 .node ellipse,#mermaid-svg-zyAfatl6qvKGE5N5 .node polygon,#mermaid-svg-zyAfatl6qvKGE5N5 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-zyAfatl6qvKGE5N5 .node .label{text-align:center;fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .node.clickable{cursor:pointer}#mermaid-svg-zyAfatl6qvKGE5N5 .arrowheadPath{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-zyAfatl6qvKGE5N5 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-zyAfatl6qvKGE5N5 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-zyAfatl6qvKGE5N5 .edgeLabel rect{opacity:0.9}#mermaid-svg-zyAfatl6qvKGE5N5 .edgeLabel span{color:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-zyAfatl6qvKGE5N5 .cluster text{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-zyAfatl6qvKGE5N5 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-zyAfatl6qvKGE5N5 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-zyAfatl6qvKGE5N5 .actor-line{stroke:grey}#mermaid-svg-zyAfatl6qvKGE5N5 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-zyAfatl6qvKGE5N5 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .sequenceNumber{fill:#fff}#mermaid-svg-zyAfatl6qvKGE5N5 #sequencenumber{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .messageText{fill:#333;stroke:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-zyAfatl6qvKGE5N5 .labelText,#mermaid-svg-zyAfatl6qvKGE5N5 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-zyAfatl6qvKGE5N5 .loopText,#mermaid-svg-zyAfatl6qvKGE5N5 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-zyAfatl6qvKGE5N5 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-zyAfatl6qvKGE5N5 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-zyAfatl6qvKGE5N5 .noteText,#mermaid-svg-zyAfatl6qvKGE5N5 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-zyAfatl6qvKGE5N5 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-zyAfatl6qvKGE5N5 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-zyAfatl6qvKGE5N5 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-zyAfatl6qvKGE5N5 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 .section{stroke:none;opacity:0.2}#mermaid-svg-zyAfatl6qvKGE5N5 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-zyAfatl6qvKGE5N5 .section2{fill:#fff400}#mermaid-svg-zyAfatl6qvKGE5N5 .section1,#mermaid-svg-zyAfatl6qvKGE5N5 .section3{fill:#fff;opacity:0.2}#mermaid-svg-zyAfatl6qvKGE5N5 .sectionTitle0{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .sectionTitle1{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .sectionTitle2{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .sectionTitle3{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-zyAfatl6qvKGE5N5 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 .grid path{stroke-width:0}#mermaid-svg-zyAfatl6qvKGE5N5 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-zyAfatl6qvKGE5N5 .task{stroke-width:2}#mermaid-svg-zyAfatl6qvKGE5N5 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 .taskText:not([font-size]){font-size:11px}#mermaid-svg-zyAfatl6qvKGE5N5 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-zyAfatl6qvKGE5N5 .task.clickable{cursor:pointer}#mermaid-svg-zyAfatl6qvKGE5N5 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-zyAfatl6qvKGE5N5 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-zyAfatl6qvKGE5N5 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-zyAfatl6qvKGE5N5 .taskText0,#mermaid-svg-zyAfatl6qvKGE5N5 .taskText1,#mermaid-svg-zyAfatl6qvKGE5N5 .taskText2,#mermaid-svg-zyAfatl6qvKGE5N5 .taskText3{fill:#fff}#mermaid-svg-zyAfatl6qvKGE5N5 .task0,#mermaid-svg-zyAfatl6qvKGE5N5 .task1,#mermaid-svg-zyAfatl6qvKGE5N5 .task2,#mermaid-svg-zyAfatl6qvKGE5N5 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-zyAfatl6qvKGE5N5 .taskTextOutside0,#mermaid-svg-zyAfatl6qvKGE5N5 .taskTextOutside2{fill:#000}#mermaid-svg-zyAfatl6qvKGE5N5 .taskTextOutside1,#mermaid-svg-zyAfatl6qvKGE5N5 .taskTextOutside3{fill:#000}#mermaid-svg-zyAfatl6qvKGE5N5 .active0,#mermaid-svg-zyAfatl6qvKGE5N5 .active1,#mermaid-svg-zyAfatl6qvKGE5N5 .active2,#mermaid-svg-zyAfatl6qvKGE5N5 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-zyAfatl6qvKGE5N5 .activeText0,#mermaid-svg-zyAfatl6qvKGE5N5 .activeText1,#mermaid-svg-zyAfatl6qvKGE5N5 .activeText2,#mermaid-svg-zyAfatl6qvKGE5N5 .activeText3{fill:#000 !important}#mermaid-svg-zyAfatl6qvKGE5N5 .done0,#mermaid-svg-zyAfatl6qvKGE5N5 .done1,#mermaid-svg-zyAfatl6qvKGE5N5 .done2,#mermaid-svg-zyAfatl6qvKGE5N5 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-zyAfatl6qvKGE5N5 .doneText0,#mermaid-svg-zyAfatl6qvKGE5N5 .doneText1,#mermaid-svg-zyAfatl6qvKGE5N5 .doneText2,#mermaid-svg-zyAfatl6qvKGE5N5 .doneText3{fill:#000 !important}#mermaid-svg-zyAfatl6qvKGE5N5 .crit0,#mermaid-svg-zyAfatl6qvKGE5N5 .crit1,#mermaid-svg-zyAfatl6qvKGE5N5 .crit2,#mermaid-svg-zyAfatl6qvKGE5N5 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-zyAfatl6qvKGE5N5 .activeCrit0,#mermaid-svg-zyAfatl6qvKGE5N5 .activeCrit1,#mermaid-svg-zyAfatl6qvKGE5N5 .activeCrit2,#mermaid-svg-zyAfatl6qvKGE5N5 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-zyAfatl6qvKGE5N5 .doneCrit0,#mermaid-svg-zyAfatl6qvKGE5N5 .doneCrit1,#mermaid-svg-zyAfatl6qvKGE5N5 .doneCrit2,#mermaid-svg-zyAfatl6qvKGE5N5 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-zyAfatl6qvKGE5N5 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-zyAfatl6qvKGE5N5 .milestoneText{font-style:italic}#mermaid-svg-zyAfatl6qvKGE5N5 .doneCritText0,#mermaid-svg-zyAfatl6qvKGE5N5 .doneCritText1,#mermaid-svg-zyAfatl6qvKGE5N5 .doneCritText2,#mermaid-svg-zyAfatl6qvKGE5N5 .doneCritText3{fill:#000 !important}#mermaid-svg-zyAfatl6qvKGE5N5 .activeCritText0,#mermaid-svg-zyAfatl6qvKGE5N5 .activeCritText1,#mermaid-svg-zyAfatl6qvKGE5N5 .activeCritText2,#mermaid-svg-zyAfatl6qvKGE5N5 .activeCritText3{fill:#000 !important}#mermaid-svg-zyAfatl6qvKGE5N5 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-zyAfatl6qvKGE5N5 g.classGroup text .title{font-weight:bolder}#mermaid-svg-zyAfatl6qvKGE5N5 g.clickable{cursor:pointer}#mermaid-svg-zyAfatl6qvKGE5N5 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-zyAfatl6qvKGE5N5 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-zyAfatl6qvKGE5N5 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-zyAfatl6qvKGE5N5 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-zyAfatl6qvKGE5N5 .dashed-line{stroke-dasharray:3}#mermaid-svg-zyAfatl6qvKGE5N5 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 .commit-id,#mermaid-svg-zyAfatl6qvKGE5N5 .commit-msg,#mermaid-svg-zyAfatl6qvKGE5N5 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-zyAfatl6qvKGE5N5 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-zyAfatl6qvKGE5N5 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-zyAfatl6qvKGE5N5 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-zyAfatl6qvKGE5N5 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-zyAfatl6qvKGE5N5 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-zyAfatl6qvKGE5N5 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-zyAfatl6qvKGE5N5 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-zyAfatl6qvKGE5N5 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-zyAfatl6qvKGE5N5 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-zyAfatl6qvKGE5N5 .edgeLabel text{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zyAfatl6qvKGE5N5 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-zyAfatl6qvKGE5N5 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-zyAfatl6qvKGE5N5 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-zyAfatl6qvKGE5N5 .note-edge{stroke-dasharray:5}#mermaid-svg-zyAfatl6qvKGE5N5 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-zyAfatl6qvKGE5N5 .error-icon{fill:#522}#mermaid-svg-zyAfatl6qvKGE5N5 .error-text{fill:#522;stroke:#522}#mermaid-svg-zyAfatl6qvKGE5N5 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-zyAfatl6qvKGE5N5 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-zyAfatl6qvKGE5N5 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-zyAfatl6qvKGE5N5 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-zyAfatl6qvKGE5N5 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-zyAfatl6qvKGE5N5 .marker{fill:#333}#mermaid-svg-zyAfatl6qvKGE5N5 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-zyAfatl6qvKGE5N5 {color: rgba(0, 0, 0, 0.75);font: ;}
A
D
B
C
![](/assets/blank.gif)
可以看到, 因子图的一组节点是输入变量, 另一组节点是原本的边, (也可以理解为对原图的所有边都做了一个细分同构)
其实就是把原本MRF的边当做了一些新的节点, 而MRF的边的含义就是势函数, 所以因子图把势函数当做了一些新的节点, 就把输入变量与势函数分隔开了;
(就是在原本边上加了一个节点)
#mermaid-svg-HvvrcuGE0VJBwRuK .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .label text{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .node rect,#mermaid-svg-HvvrcuGE0VJBwRuK .node circle,#mermaid-svg-HvvrcuGE0VJBwRuK .node ellipse,#mermaid-svg-HvvrcuGE0VJBwRuK .node polygon,#mermaid-svg-HvvrcuGE0VJBwRuK .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-HvvrcuGE0VJBwRuK .node .label{text-align:center;fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .node.clickable{cursor:pointer}#mermaid-svg-HvvrcuGE0VJBwRuK .arrowheadPath{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-HvvrcuGE0VJBwRuK .flowchart-link{stroke:#333;fill:none}#mermaid-svg-HvvrcuGE0VJBwRuK .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-HvvrcuGE0VJBwRuK .edgeLabel rect{opacity:0.9}#mermaid-svg-HvvrcuGE0VJBwRuK .edgeLabel span{color:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-HvvrcuGE0VJBwRuK .cluster text{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-HvvrcuGE0VJBwRuK .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-HvvrcuGE0VJBwRuK text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-HvvrcuGE0VJBwRuK .actor-line{stroke:grey}#mermaid-svg-HvvrcuGE0VJBwRuK .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-HvvrcuGE0VJBwRuK #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .sequenceNumber{fill:#fff}#mermaid-svg-HvvrcuGE0VJBwRuK #sequencenumber{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK #crosshead path{fill:#333;stroke:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .messageText{fill:#333;stroke:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-HvvrcuGE0VJBwRuK .labelText,#mermaid-svg-HvvrcuGE0VJBwRuK .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-HvvrcuGE0VJBwRuK .loopText,#mermaid-svg-HvvrcuGE0VJBwRuK .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-HvvrcuGE0VJBwRuK .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-HvvrcuGE0VJBwRuK .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-HvvrcuGE0VJBwRuK .noteText,#mermaid-svg-HvvrcuGE0VJBwRuK .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-HvvrcuGE0VJBwRuK .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-HvvrcuGE0VJBwRuK .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-HvvrcuGE0VJBwRuK .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-HvvrcuGE0VJBwRuK .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK .section{stroke:none;opacity:0.2}#mermaid-svg-HvvrcuGE0VJBwRuK .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-HvvrcuGE0VJBwRuK .section2{fill:#fff400}#mermaid-svg-HvvrcuGE0VJBwRuK .section1,#mermaid-svg-HvvrcuGE0VJBwRuK .section3{fill:#fff;opacity:0.2}#mermaid-svg-HvvrcuGE0VJBwRuK .sectionTitle0{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .sectionTitle1{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .sectionTitle2{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .sectionTitle3{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-HvvrcuGE0VJBwRuK .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK .grid path{stroke-width:0}#mermaid-svg-HvvrcuGE0VJBwRuK .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-HvvrcuGE0VJBwRuK .task{stroke-width:2}#mermaid-svg-HvvrcuGE0VJBwRuK .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK .taskText:not([font-size]){font-size:11px}#mermaid-svg-HvvrcuGE0VJBwRuK .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-HvvrcuGE0VJBwRuK .task.clickable{cursor:pointer}#mermaid-svg-HvvrcuGE0VJBwRuK .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-HvvrcuGE0VJBwRuK .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-HvvrcuGE0VJBwRuK .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-HvvrcuGE0VJBwRuK .taskText0,#mermaid-svg-HvvrcuGE0VJBwRuK .taskText1,#mermaid-svg-HvvrcuGE0VJBwRuK .taskText2,#mermaid-svg-HvvrcuGE0VJBwRuK .taskText3{fill:#fff}#mermaid-svg-HvvrcuGE0VJBwRuK .task0,#mermaid-svg-HvvrcuGE0VJBwRuK .task1,#mermaid-svg-HvvrcuGE0VJBwRuK .task2,#mermaid-svg-HvvrcuGE0VJBwRuK .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-HvvrcuGE0VJBwRuK .taskTextOutside0,#mermaid-svg-HvvrcuGE0VJBwRuK .taskTextOutside2{fill:#000}#mermaid-svg-HvvrcuGE0VJBwRuK .taskTextOutside1,#mermaid-svg-HvvrcuGE0VJBwRuK .taskTextOutside3{fill:#000}#mermaid-svg-HvvrcuGE0VJBwRuK .active0,#mermaid-svg-HvvrcuGE0VJBwRuK .active1,#mermaid-svg-HvvrcuGE0VJBwRuK .active2,#mermaid-svg-HvvrcuGE0VJBwRuK .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-HvvrcuGE0VJBwRuK .activeText0,#mermaid-svg-HvvrcuGE0VJBwRuK .activeText1,#mermaid-svg-HvvrcuGE0VJBwRuK .activeText2,#mermaid-svg-HvvrcuGE0VJBwRuK .activeText3{fill:#000 !important}#mermaid-svg-HvvrcuGE0VJBwRuK .done0,#mermaid-svg-HvvrcuGE0VJBwRuK .done1,#mermaid-svg-HvvrcuGE0VJBwRuK .done2,#mermaid-svg-HvvrcuGE0VJBwRuK .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-HvvrcuGE0VJBwRuK .doneText0,#mermaid-svg-HvvrcuGE0VJBwRuK .doneText1,#mermaid-svg-HvvrcuGE0VJBwRuK .doneText2,#mermaid-svg-HvvrcuGE0VJBwRuK .doneText3{fill:#000 !important}#mermaid-svg-HvvrcuGE0VJBwRuK .crit0,#mermaid-svg-HvvrcuGE0VJBwRuK .crit1,#mermaid-svg-HvvrcuGE0VJBwRuK .crit2,#mermaid-svg-HvvrcuGE0VJBwRuK .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-HvvrcuGE0VJBwRuK .activeCrit0,#mermaid-svg-HvvrcuGE0VJBwRuK .activeCrit1,#mermaid-svg-HvvrcuGE0VJBwRuK .activeCrit2,#mermaid-svg-HvvrcuGE0VJBwRuK .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-HvvrcuGE0VJBwRuK .doneCrit0,#mermaid-svg-HvvrcuGE0VJBwRuK .doneCrit1,#mermaid-svg-HvvrcuGE0VJBwRuK .doneCrit2,#mermaid-svg-HvvrcuGE0VJBwRuK .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-HvvrcuGE0VJBwRuK .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-HvvrcuGE0VJBwRuK .milestoneText{font-style:italic}#mermaid-svg-HvvrcuGE0VJBwRuK .doneCritText0,#mermaid-svg-HvvrcuGE0VJBwRuK .doneCritText1,#mermaid-svg-HvvrcuGE0VJBwRuK .doneCritText2,#mermaid-svg-HvvrcuGE0VJBwRuK .doneCritText3{fill:#000 !important}#mermaid-svg-HvvrcuGE0VJBwRuK .activeCritText0,#mermaid-svg-HvvrcuGE0VJBwRuK .activeCritText1,#mermaid-svg-HvvrcuGE0VJBwRuK .activeCritText2,#mermaid-svg-HvvrcuGE0VJBwRuK .activeCritText3{fill:#000 !important}#mermaid-svg-HvvrcuGE0VJBwRuK .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-HvvrcuGE0VJBwRuK g.classGroup text .title{font-weight:bolder}#mermaid-svg-HvvrcuGE0VJBwRuK g.clickable{cursor:pointer}#mermaid-svg-HvvrcuGE0VJBwRuK g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-HvvrcuGE0VJBwRuK g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-HvvrcuGE0VJBwRuK .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-HvvrcuGE0VJBwRuK .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-HvvrcuGE0VJBwRuK .dashed-line{stroke-dasharray:3}#mermaid-svg-HvvrcuGE0VJBwRuK #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK .commit-id,#mermaid-svg-HvvrcuGE0VJBwRuK .commit-msg,#mermaid-svg-HvvrcuGE0VJBwRuK .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-HvvrcuGE0VJBwRuK g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-HvvrcuGE0VJBwRuK g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-HvvrcuGE0VJBwRuK g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-HvvrcuGE0VJBwRuK .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-HvvrcuGE0VJBwRuK .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-HvvrcuGE0VJBwRuK .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-HvvrcuGE0VJBwRuK .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-HvvrcuGE0VJBwRuK .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-HvvrcuGE0VJBwRuK .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-HvvrcuGE0VJBwRuK .edgeLabel text{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-HvvrcuGE0VJBwRuK .node circle.state-start{fill:black;stroke:black}#mermaid-svg-HvvrcuGE0VJBwRuK .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-HvvrcuGE0VJBwRuK #statediagram-barbEnd{fill:#9370db}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-state .divider{stroke:#9370db}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-HvvrcuGE0VJBwRuK .note-edge{stroke-dasharray:5}#mermaid-svg-HvvrcuGE0VJBwRuK .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-HvvrcuGE0VJBwRuK .error-icon{fill:#522}#mermaid-svg-HvvrcuGE0VJBwRuK .error-text{fill:#522;stroke:#522}#mermaid-svg-HvvrcuGE0VJBwRuK .edge-thickness-normal{stroke-width:2px}#mermaid-svg-HvvrcuGE0VJBwRuK .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-HvvrcuGE0VJBwRuK .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-HvvrcuGE0VJBwRuK .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-HvvrcuGE0VJBwRuK .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-HvvrcuGE0VJBwRuK .marker{fill:#333}#mermaid-svg-HvvrcuGE0VJBwRuK .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-HvvrcuGE0VJBwRuK {color: rgba(0, 0, 0, 0.75);font: ;}
A
f_B
f_A
B
f_D
D
f_C
C
可以看出这个图跟上面二部图其实是一样的, 只是视觉问题而已;
数学表示:
P(A,B,C,D)=1Zf1(A,B)f2(B,C)f3(C,D)f4(D,A)P(A,B,C,D) = \frac{1}{Z}f_1(A,B)f_2(B,C)f_3(C,D)f_4(D,A) P(A,B,C,D)=Z1f1(A,B)f2(B,C)f3(C,D)f4(D,A)
再来看看原本MRF的数学表示
P(A,B,C,D)=1Zϕ∏i=1kϕi(Di)=1Zϕϕ1(A,B)ϕ2(B,C)ϕ3(C,D)ϕ4(D,A)\begin{aligned} P(A,B,C,D) &= \frac{1}{Z_{\phi}}\prod_{i=1}^{k}\phi_i(D_i) \\ &= \frac{1}{Z_{\phi}}\phi_1(A,B)\phi_2(B,C)\phi_3(C,D)\phi_4(D,A) \\ \end{aligned} P(A,B,C,D)=Zϕ1i=1∏kϕi(Di)=Zϕ1ϕ1(A,B)ϕ2(B,C)ϕ3(C,D)ϕ4(D,A)
其实他俩没啥区别吧, 所以因子图就是一个大一统的模型吧, 方便求解;
但其实也能看出他的一个缺点, 就是没有贝叶斯网络和MRF那样直观, 贝叶斯网络与MRF的因果关系都很显然, 但因子图借用了二部图会难以看出因果关系;
总结
联合概率分布的因子分解是概率图模型表示的核心概念, 大大降低了模型的复杂度
因子图就是这样了, 继续下一章吧!pd的Machine Learning
概率图模型--因子图相关推荐
- 机器学习笔记之概率图模型(十)因子图
机器学习笔记之概率图模型--因子图 引言 回顾:图结构相关思想 因子图 因子图的特点 引言 本节针对精确推断之变量消去法中出现的存在环结构概率图的情况,介绍因子图(Factor Graph),其主要将 ...
- 机器学习-白板推导-系列(九)笔记:概率图模型: 贝叶斯网络/马尔可夫随机场/推断/道德图/因子图
文章目录 0 笔记说明 1 背景介绍 1.1 概率公式 1.2 概率图简介 1.2.1 表示 1.2.2 推断 1.2.3 学习 1.2.4 决策 1.3 图 2 贝叶斯网络 2.1 条件独立性 2. ...
- 蚂蚁金服提新概率图模型GLN,正确率提升8.2%,具备可解释性 | NeurIPS 2019
作者 | 蚂蚁金服 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) [导读]一年一度的国际顶级学术会议NeurIPS 2019将于12月8日至14日在加拿大温哥华举行.作为人 ...
- 机器学习理论与实战(十四)概率图模型02
02 概率图模型定义 翻开Jordan和Wainwright著作的书,正文开始(第二章)就说概率图模型的核心就是:分解(factorization).的确是这样的,对于复杂的概率图模型,要在复杂交织的 ...
- 【采用】概率图模型在反欺诈的应用(无监督机器学习)
图模型的主要应用场景为欺诈侦测报警,从各个特征出现的频率对异常概率进行预警.概率图模型所涉及到的知识点非常广,所以对读者的基础知识要求也相对较高. 现在借助以下几个问题开始概率图模型的学习: 为什么需 ...
- 为什么lp的最优解是一个概率_什么时候应该用概率图模型、消息传递替代传统组合优化求解器?未来工作?(持续更新)...
相关基础:概率图模型中的推断https://zhuanlan.zhihu.com/p/252169479 英文原文:https://tspace.library.utoronto.ca/bitstre ...
- 林华达视角-概率图模型与计算机视觉
1. 概率模型与计算机视觉 上世纪60年代, Marvin Minsky 在MIT让他的本科学生 Gerald Jay Sussman用一个暑假的时间完成一个有趣的Project: "lin ...
- 概率图模型更进一步的知识点
最近的任务:对概率图模型,MFR,CRF,HMM进行总结,形成自洽的思维图谱:其次研究这几个模型如何从理论迁移到实际语言处理中的分词.词性标注等问题:最后用代码如何实现分词.词性标注:以及调用模型是如 ...
- 概率图模型(PGM)/马尔可夫随机场(MRF)/条件随机场基本概念(CRF)
概率图模型: 1:为什么引入图模型:一般的问题我们都可以用概率模型去很好的解决,那么为什么又要在概率的基础上加一个图呢?在这里我们引入图结构其实是因为图结构可以将概率模型的结构可视化,应用图这是一种直 ...
- 概率图模型(PGM)综述-by MIT 林达华博士
声明:本文转载自http://www.sigvc.org/bbs/thread-728-1-1.html,个人感觉是很好的PGM理论综述,高屋建瓴的总结了PGM的主要分支和发展趋势,特收藏于此. &q ...
最新文章
- 【转】unity3d 在UGUI中制作自适应调整大小的滚动布局控件
- 团队招人的笔试题,我的回答。
- 关于html的a标签的target=__blank 的安全漏洞问题
- Linux Kernel 0.01 的编译和运行
- js运算符+运算方式
- 多线程-Task、await/async
- webstore安装过程 0913
- Java Web学习总结(40)——JSP中的Application对象和Session对象常用方法详解
- python中字符串str的strip()方法
- vs2008无法打开设计--vs2008假死现象
- ixigua解析_资本运作系列课程五:《科创板申请上市估值模型理论解析》现场直播回放...
- Android开发-Android项目结构
- hbase数据库详解
- 关于打开ARX项目的一些错误
- 超级表格企业版:服务上万家中小企业,提升效率
- 一个智能省心的空空java代码生成平台上线了——前后端代码生成
- 淘宝总裁蒋凡:今年双11淘宝推荐流量超过了搜索流量
- cadence原理图复用_详细了解一下Allegro原理图设计工具SDA 的十大主要功能和改变...
- December, 14
- 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件
热门文章
- 媒体播放器之:TCPMP播放器简介
- .net扫盲-网页对话框应用
- 三菱PLC项目案例学习之PLC控制伺服或步进电机带动丝运行案例
- 西门子200PLC控制台达伺服电机正反转,步科触摸屏,模拟量控制
- 卷积神经网络原理解析
- Spring核心--容器详解
- leetcode 左程云笔记
- SQLEXPRESS服务无法启动
- SQL2008 SQLExpress数据库存满处理
- MySQL Mac 终端环境变量配置