(《机器学习》完整版系列)第13章 半监督学习——13.3 标记传播算法(亲和矩阵、伪概率标记矩阵、能量函数)

文章详细介绍了标记传播算法在图半监督学习中的应用,包括构建全连接图,定义亲和矩阵,能量函数的构建以及优化过程。通过迭代式更新概率标记矩阵,最终得到未标记样本的预测分类。算法适用于二分类和多分类问题,通过引入‘真实’标记矩阵、概率标记矩阵和伪概率标记矩阵,并通过迭代公式进行预测。

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

标记传播算法是图半监督学习,对图定义一个亲和矩阵,借用物理学中的概念,定义能量函数,对样本集 D u D_u Du进行“批量”预测:最优值在能量最小处。
作标记矩阵:“真实”标记矩阵——>概率标记矩阵——>伪概率标记矩阵
再基于伪概率标记矩阵作迭代式。

标记传播算法

将样本抽象为点,则可构建图 G = ( V ,   E ) G=(V,\,E) G=(V,E),任意两点 x i , x j \boldsymbol{x}_i,\boldsymbol{x}_j xi,xj均有一条边连接,边上的权重由高斯函数定义【西瓜书式(13.11)】,反映两样本(两点)的相似度(亲和度),图中与 x i \boldsymbol{x}_i xi相连的部分构成子图 G i G_i Gi,由此定义一个亲和矩阵 W \mathbf{W} W,矩阵中元素记为 ( W ) i j = w i j (\mathbf{W})_{ij}=w_{ij} (W)ij=wij。 与 x i \boldsymbol{x}_i xi有连接的子图中用式(13.38)第1式(含 w i i = 1 w_{ii}=1 wii=1),否则用第2式(即为0))。
w i j = {   exp ⁡ ( − ∣ ∣ x i − x j ∣ ∣ 2 2 2 σ 2 ) , 当 x j ∈ G i   0 , 其他情况 \begin{align} w_{ij}= \begin{cases} \, \exp \left(\frac{-||\boldsymbol{x}_i-\boldsymbol{x}_j||_2^2}{2\sigma ^2}\right), & \quad \text{当$\boldsymbol{x}_j\in G_i$} \\ \, 0, & \quad \text{其他情况} \end{cases} \tag{13.38} \end{align} wij={exp(2σ2∣∣xixj22),0,xjGi其他情况(13.38)
显然,亲和度 w i j ∈ [ 0 , 1 ] w_{ij}\in [0,1] wij[0,1]

对于二分类问题,通常是先获得预测值 f ( x ) f(\boldsymbol{x}) f(x),再根据其符号进行分类,即 y ^ = s g n ( f ( x ) ) \hat{y}=\mathrm{sgn}(f(\boldsymbol{x})) y^=sgn(f(x))

由亲和度定义知,当 x i \boldsymbol{x}_i xi x j \boldsymbol{x}_j xj相似度高时,则亲和度 w i j w_{ij} wij大,好的预测 f f f应使其差异度小(即 ∣ f ( x i ) − f ( x j ) ∣ |f(\boldsymbol{x}_i)-f(\boldsymbol{x}_j)| f(xi)f(xj)小),反之亦然。

因而可以认为
w i j ( f ( x i ) − f ( x j ) ) 2 \begin{align} w_{ij}(f(\boldsymbol{x}_i)-f(\boldsymbol{x}_j))^2 \tag{13.39} \end{align} wij(f(xi)f(xj))2(13.39)
具有某种平衡(相互转化),即具有物理学中能量的特性。理解:如 a b = 1   ( a > 0 , b > 0 ) ab=1 \ (a>0,b>0) ab=1 (a>0,b>0),若 a a a变大,则 b b b变小,它俩具有“守恒”关系,类似于能量守恒:此消彼长。

将图 G G G中所有的式(13.39)累加起来,借用物理学中的概念,称它为能量函数(对于二次型通常配上 1 2 \frac{1}{2} 21,是为了求导后没有系数)。
E [ f ] = 1 2 ∑ i = 1 m ∑ j = 1 m ( w i j ( f ( x i ) − f ( x j ) ) 2 \begin{align} E[f] & =\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m(w_{ij}(f(\boldsymbol{x}_i)-f(\boldsymbol{x}_j))^2 \tag{13.40} \end{align} E[f]=21i=1mj=1m(wij(f(xi)f(xj))2(13.40)

引入矩阵记号,则得【西瓜书式(13.12)】,即
E [ f ] = f T ( D − W ) f \begin{align} E[f] & =\boldsymbol{f}^\mathrm{T}(\mathbf{D}-\mathbf{W})\boldsymbol{f} \tag{13.41} \end{align} E[f]=fT(DW)f(13.41)

设图 G = ( V ,   E ) G=(V,\,E) G=(V,E)是基于 D = D l ∪ D u D=D_l\cup D_u D=DlDu构建的,将向量 f \boldsymbol{f} f及矩阵 D , W \mathbf{D},\mathbf{W} D,W D = D l ∪ D u D=D_l\cup D_u D=DlDu分解,则有【西瓜书式(13.13)】。

已知 f l = ( y 1 ; y 2 ; ⋯   ; y l ) \boldsymbol{f}_l=(y_1;y_2;\cdots;y_l) fl=(y1;y2;;yl),求 f u \boldsymbol{f}_u fu,即对样本集 D u D_u Du进行“批量”预测:
最优值在能量最小处,即 ∂ E [ f ] ∂ f u = 0 \frac{\partial E[f]}{\partial \boldsymbol{f}_u}=\boldsymbol{0} fuE[f]=0,则可得到【西瓜书p.302】的矩阵推导,从而得到对未标记样本的预测 f u \boldsymbol{f}_u fu,即【西瓜书式(13.17)】。 这就是标记传播算法:

(i)基于 D = D l ∪ D u D=D_l\cup D_u D=DlDu可构建一个图 G = ( V ,   E ) G=(V,\,E) G=(V,E),这个图是全连接的,即每对样本 ( x i , x j ) (\boldsymbol{x}_i,\boldsymbol{x}_j) (xi,xj)均有一条边;

(ii)由于样本属性已知,故可从样本的相似度计算出边的权重(【西瓜书式(13.11)】),从而得到图的亲和矩阵;

(iii)构造预测函数 f f f在图上的能量函数 E [ f ] E[f] E[f],并用矩阵表示(【西瓜书式(13.12)】);

(iv)以最小化能量函数为目标:已知 f l = ( y 1 ; y 2 ; ⋯   ; y l ) \boldsymbol{f}_l=(y_1;y_2;\cdots;y_l) fl=(y1;y2;;yl),而 f u \boldsymbol{f}_u fu满足 ∂ E [ f ] ∂ f u = 0 \frac{\partial E[f]}{\partial \boldsymbol{f}_u}=\boldsymbol{0} fuE[f]=0

(v)得到【西瓜书式(13.17)】,由其计算出 f u \boldsymbol{f}_u fu实现 D u D_u Du的分类。

下面将上述方法推广到多分类( n = ∣ Y ∣ n=|\mathcal{Y} | n=Y):

(1)作标记矩阵

(i)“真实”标记矩阵 Y \mathbf{Y} Y

其中,表13.1 的表头为类别(以类别编号代表),左侧为 D D D的样本排列,其编号次序为先 D l D_l Dl D u D_u Du,表体即为标记矩阵 Y \mathbf{Y} Y,该矩阵被虚线分为两部分:上半部分对应于 D l D_l Dl,下半部分对应于 D u D_u Du

与表13.1 对应的“真实”标记矩阵 Y \mathbf{Y} Y之所以打上引号,是因为: 上半部分对应于 D l D_l Dl的真实标记,每行为“独1向量”:表示该行样本的分类结果 c ( x i ) = j c(\boldsymbol{x}_i)=j c(xi)=j(1所在的列为类别 j j j),而下半部分对应于 D u D_u Du,设它全为0,这并不真实。 若以样本 x i \boldsymbol{x}_i xi所在的行的最大值对应的列 j j j,作为该样本的类别预测值,显然,对 D l D_l Dl中的样本,预测的正确率为100%,而对 D u D_u Du中的样本它随机给定类别(由于整行是等值0),故它只是真实反映了已标记样本的分类情况,而对未标记样本起不了分类作用。

(ii)概率标记矩阵 P \mathbf{P} P

表13.2 只是将表13.1 中的元素(常数0或1)换成了概率 P P P,即该矩阵第 i i i行、第 j j j列的元素为 P i j = P ( y i = j   ∣   x i ) P_{ij}=P(y_i=j\,|\,\boldsymbol{x}_i) Pij=P(yi=jxi),基于该矩阵的类别预测函数为: j ∗ = arg ⁡ max ⁡ j P ( y i = j   ∣   x i ) j^*=\mathop{\arg\max}\limits_jP(y_i=j\,|\,\boldsymbol{x}_i) j=jargmaxP(yi=jxi)

当最大值多个时,则最优为随机地取其一,下同。

(iii)伪概率标记矩阵 F \mathbf{F} F

所谓“伪概率”,即是性质类似于概率,但不满足“和为1”,当然,通过“概率化”可以实现满足“和为1”。

记该矩阵第 i i i行、第 j j j列的元素为 f i j f_i^j fij,则基于该矩阵的类别预测函数为: j ∗ = arg ⁡ max ⁡ j f i j j^*=\mathop{\arg\max}\limits_jf_i^j j=jargmaxfij

(2)迭代式

“真实”标记矩阵 Y \mathbf{Y} Y是个常数矩阵,我们不去讨论,假定当前的概率标记矩阵为 P   t \mathbf{P}^{\,t} Pt,我们寻找更好的 P   t + 1 \mathbf{P}^{\,t+1} Pt+1

我们先看一个生活中的问题:“你不认识他,如何判断他的观点?”,通常可以以其朋友们的喜好来判断他的观点,越是要好的朋友越是观点相同。 我们也可依该方法考察样本 x i \boldsymbol{x}_i xi属于 k k k类的概率 P ( y i = k   ∣   x i ) P(y_i=k\,|\,\boldsymbol{x}_i) P(yi=kxi) x i \boldsymbol{x}_i xi的朋友圈为 G i G_i Gi,在图 G = ( V ,   E ) G=(V,\,E) G=(V,E)的亲和矩阵中, w i j w_{ij} wij视为 x j \boldsymbol{x}_j xj x i \boldsymbol{x}_i xi的关系权重(朋友间的亲疏程度),在到达 t + 1 t+1 t+1时刻,已知 x i \boldsymbol{x}_i xi的朋友圈 G i G_i Gi中的每个 x j \boldsymbol{x}_j xj的“观点”( x j \boldsymbol{x}_j xj属于 k k k类的概率 P   t ( y j = k   ∣   x j ) P^{\,t}(y_j=k\,|\,\boldsymbol{x}_j) Pt(yj=kxj)(含 j = i j=i j=i)),并且朋友间的亲疏程度 w i j w_{ij} wij保持不变,则可由该方法调整对 x i \boldsymbol{x}_i xi的“认识”(修正上次的“认识”): x i \boldsymbol{x}_i xi属于 k k k类的概率为
P   t + 1 ( y i = k   ∣   x i ) = ∑ j = 1 m w i j ∑ j = 1 m w i j P   t ( y j = k   ∣   x j ) = ∑ j = 1 m w i j d i P   t ( y j = k   ∣   x j ) = 1 d i ∑ j = 1 m w i j P   t ( y j = k   ∣   x j ) = 1 d i w i P k   t \begin{align} P^{\,t+1}(y_i=k\,|\,\boldsymbol{x}_i) & =\sum_{j=1}^m\frac{w_{ij}}{\sum_{j=1}^mw_{ij}}P^{\,t}(y_j=k\,|\,\boldsymbol{x}_j)\notag \\ & =\sum_{j=1}^m\frac{w_{ij}}{d_i}P^{\,t}(y_j=k\,|\,\boldsymbol{x}_j)\notag \\ & =\frac{1}{d_i}\sum_{j=1}^mw_{ij}P^{\,t}(y_j=k\,|\,\boldsymbol{x}_j)\notag \\ & =\frac{1}{d_i}\boldsymbol{w}_{i}\boldsymbol{P}^{\,t}_k \tag{13.42} \end{align} Pt+1(yi=kxi)=j=1mj=1mwijwijPt(yj=kxj)=j=1mdiwijPt(yj=kxj)=di1j=1mwijPt(yj=kxj)=di1wiPkt(13.42)
其中, d i = ∑ j = 1 m w i j d_i=\sum_{j=1}^mw_{ij} di=j=1mwij w i \boldsymbol{w}_i wi为亲和矩阵 W \mathbf{W} W的第 i i i行, P k   t \boldsymbol{P}^{\,t}_k Pkt为当前的概率标记矩阵 P   t \mathbf{P}^{\,t} Pt的第 k k k列。

式(13.42)改写为
d i P i k   t + 1 = w i P k   t \begin{align} {d_i}P^{\,t+1}_{ik} & =\boldsymbol{w}_{i}\boldsymbol{P}^{\,t}_k \tag{13.43} \end{align} diPikt+1=wiPkt(13.43)

对式(13.43)左侧应用向量与矩阵(学习一些公式及其推导技巧)中的式(A28),右侧应用向量与矩阵(学习一些公式及其推导技巧)中的式(A16),让 i , k i,k i,k变化形成二维表(矩阵)
( [ d i P i k   t + 1 ] i k ) = ( [ w i P k   t ] i k ) D P   t + 1 = W P   t \begin{align} ([{d_i}P^{\,t+1}_{ik}]_{ik}) & =([\boldsymbol{w}_{i}\boldsymbol{P}^{\,t}_k]_{ik})\notag \\ \mathbf{D}\mathbf{P}^{\,t+1} & =\mathbf{W}\mathbf{P}^{\,t} \tag{13.44} \end{align} ([diPikt+1]ik)DPt+1=([wiPkt]ik)=WPt(13.44)
其中, D = d i a g ( d 1 , d 2 , ⋯   , d m ) \mathbf{D}=\mathrm{diag}(d_1,d_2,\cdots,d_m) D=diag(d1,d2,,dm)

进一步变形
P   t + 1 = D − 1 W P   t = S P   t \begin{align} \mathbf{P}^{\,t+1} & =\mathbf{D}^{-1}\mathbf{W}\mathbf{P}^{\,t}\notag \\ & =\mathbf{S}\mathbf{P}^{\,t} \tag{13.45} \end{align} Pt+1=D1WPt=SPt(13.45)
其中, S = D − 1 W \mathbf{S}=\mathbf{D}^{-1}\mathbf{W} S=D1W

式(13.45)很像“等比数列”:其极限即为所求的不动点。 由式(13.42)知,它是“公比” 1 d i w i \frac{1}{d_i}\boldsymbol{w}_{i} di1wi小于1的“等比数列”(严格地讲,这里要依向量 w i \boldsymbol{w}_{i} wi拆成子系列去讨论,也比较容易,从略),故它收敛,也即矩阵 P   t + 1 \mathbf{P}^{\,t+1} Pt+1中每个元素都收敛,该矩阵系列收敛。

(3)可行的迭代式

迭代式(13.45)中, S \mathbf{S} S已知(因数据集中的样本属性已知,故基于属性的亲和矩阵已知,即 w i j ,   d i = ∑ j = 1 m w i j w_{ij},\, d_i=\sum_{j=1}^mw_{ij} wij,di=j=1mwij已知),然而,迭代的起点矩阵 P   0 \mathbf{P}^{\, 0} P0并不知道,故使用该迭代碰到了困难。 下面我们基于该迭代进行相关改造。

i.\ 若使用伪概率标记矩阵 F \mathbf{F} F取代概率标记矩阵 P \mathbf{P} P,则可设 F   0 = Y \mathbf{F}^{\,0}=\mathbf{Y} F0=Y,因为“真实”标记矩阵 Y \mathbf{Y} Y就是个伪概率标记矩阵(虚线下的行全为0,不满足概率的“和为1”),故可用作迭代的起点。

ii.\ 以对称的 S = D − 1 2 W D − 1 2 \mathbf{S}=\mathbf{D}^{-\frac{1}{2}}\mathbf{W}\mathbf{D}^{-\frac{1}{2}} S=D21WD21取代 S = D − 1 W \mathbf{S}=\mathbf{D}^{-1}\mathbf{W} S=D1W,这是因为矩阵 W \mathbf{W} W的主对角线占优(主对角线上的值为1,非主对角线上的元素为小于1的非负数),由向量与矩阵(学习一些公式及其推导技巧)中的式(A28)及式(A32)知,这两种变换在主对角线上表现一致,故这种替代具有合理性(误差小),注:这种替换是数值计算的常用技巧。 这样,式(13.45)变为
F   t + 1 = S F   t \begin{align} \mathbf{F}^{\,t+1} & =\mathbf{S}\mathbf{F}^{\,t} \tag{13.46} \end{align} Ft+1=SFt(13.46)
其中, S = D − 1 2 W D − 1 2 \mathbf{S}=\mathbf{D}^{-\frac{1}{2}}\mathbf{W}\mathbf{D}^{-\frac{1}{2}} S=D21WD21,对角矩阵的幂易求(直接对主对角线元素求幂),如: D − 1 2 = d i a g ( d 1 − 1 2 , d 2 − 1 2 , , ⋯   , d l + u − 1 2 ) \mathbf{D}^{-\frac{1}{2}}=\mathrm{diag}(d_1^{-\frac{1}{2}},d_2^{-\frac{1}{2}},,\cdots,d_{l+u}^{-\frac{1}{2}}) D21=diag(d121,d221,,,dl+u21)

iii.\ “真实”标记矩阵 Y \mathbf{Y} Y除作为 F \mathbf{F} F的初始值外,还应起监督作用:每次 F \mathbf{F} F迭代时,让它以一定的权重向 Y \mathbf{Y} Y靠,迭代式(13.46)调整为【西瓜书式(13.19)】:
F   t + 1 = α S F   t + ( 1 − α ) Y \begin{align} \mathbf{F}^{\,t+1} & =\alpha \mathbf{S}\mathbf{F}^{\,t}+(1-\alpha )\mathbf{Y} \tag{13.47} \end{align} Ft+1=αSFt+(1α)Y(13.47)
其中, α ∈ ( 0 , 1 ) \alpha \in (0,1) α(0,1)为超参数。

iv\ 对式(13.47)取极限即得 F ∗ \mathbf{F}^* F【西瓜书式(13.20)】,由 F ∗ \mathbf{F}^* F矩阵对应的表13.3
即可获得 D u D_u Du中样本的分类,即在对应的表13.3 中取样本 x i \boldsymbol{x}_i xi所在的行,找到最大的 f i j f_i^j fij,对应的 j j j列即为其类别。 从而实现了对 D u D_u Du样本集“批量”预测。

比较【西瓜书式(13.20)】与【西瓜书式(13.17)】,二者形式上一样,即前者为后者的推广。

综上,多分类迭代标记传播算法总结成【西瓜书图13.5】,其中,第5至8句,可以改为直接求 F ∗ \mathbf{F}^* F【西瓜书式(13.20)】,但需要计算矩阵的逆 ( I − α S ) − 1 (\mathbf{I}-\alpha \mathbf{S})^{-1} (IαS)1

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:13.2 半监督SVM(SVM的进化路线)
下一篇:13.4 正则式框架(标记传播算法迭代式的另一个推导)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值