标记传播算法是图半监督学习,对图定义一个亲和矩阵,借用物理学中的概念,定义能量函数,对样本集
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−∣∣xi−xj∣∣22),0,当xj∈Gi其他情况(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=1∑mj=1∑m(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(D−W)f(13.41)
设图 G = ( V , E ) G=(V,\,E) G=(V,E)是基于 D = D l ∪ D u D=D_l\cup D_u D=Dl∪Du构建的,将向量 f \boldsymbol{f} f及矩阵 D , W \mathbf{D},\mathbf{W} D,W按 D = D l ∪ D u D=D_l\cup D_u D=Dl∪Du分解,则有【西瓜书式(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}
∂fu∂E[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=Dl∪Du可构建一个图 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} ∂fu∂E[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=j∣xi),基于该矩阵的类别预测函数为: 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=j∣xi)。
当最大值多个时,则最优为随机地取其一,下同。
(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=k∣xi),
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=k∣xj)(含
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=k∣xi)=j=1∑m∑j=1mwijwijPt(yj=k∣xj)=j=1∑mdiwijPt(yj=k∣xj)=di1j=1∑mwijPt(yj=k∣xj)=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=D−1WPt=SPt(13.45)
其中,
S
=
D
−
1
W
\mathbf{S}=\mathbf{D}^{-1}\mathbf{W}
S=D−1W。
式(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=D−21WD−21取代
S
=
D
−
1
W
\mathbf{S}=\mathbf{D}^{-1}\mathbf{W}
S=D−1W,这是因为矩阵
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=D−21WD−21,对角矩阵的幂易求(直接对主对角线元素求幂),如:
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}})
D−21=diag(d1−21,d2−21,,⋯,dl+u−21)。
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。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权