沿着SVM的进化路线,不断改进SVM算法。
TSVM算法的思路是在SVM的外面套了一个搜寻
y
^
\hat{y}
y^,有意思的是它将惩罚因子也作为迭代的调整参数。
本文从编程优化的角度讨论了TSVM 算法的来龙去脉,并给出了伪代码。
半监督SVM
我们先看看【西瓜书式】第6章中,SVM的进化路线:最大化间隔【西瓜书式(6.5)】 ⟶ \longrightarrow ⟶最小化 ∣ ∣ w ∣ ∣ 2 ||\boldsymbol{w }||^2 ∣∣w∣∣2【西瓜书式(6.6)】(即SVM基本型) ⟶ \longrightarrow ⟶放开硬控制,不满足约束的样本尽可能少【西瓜书式(6.29)】 ⟶ \longrightarrow ⟶软间隔支持向量机【西瓜书式(6.35)】.
进一步地:若改为分隔线穿过数据的低密度区,则为S3VM【西瓜书图13.3】;若对 D u D_u Du打上预测标记 y ^ \hat{y} y^,则可用 y ^ \hat{y} y^来监督SVM,由此可将【西瓜书式(6.35)】推广到【西瓜书式(13.9)】(将 C ∑ C\sum C∑改为 C l ∑ l + C u ∑ u C_l\sum_l+ C_u\sum_u Cl∑l+Cu∑u)即TSVM。
TSVM算法的思路是在SVM的外面套了一个搜寻 y ^ \hat{y} y^,有意思的是它将惩罚因子也作为迭代的调整参数。
TSVM的直接逻辑(如图13.1所示):

(1)初始化:用 D l D_l Dl训练一个 S V M l \mathrm{SVM}_l SVMl,用 S V M l \mathrm{SVM}_l SVMl对 D u D_u Du中样本进行预测,得 { y ^ i } i = l + 1 l + u \{\hat{y}_i\}_{i=l+1}^{l+u} {y^i}i=l+1l+u,初始化两惩罚因子 C u ≪ C l C_u \ll C_l Cu≪Cl。
(2)循环调整:
(2.1)基于 D l , D u , { y ^ i } i = l + 1 l + u , C l , C u D_l,D_u,\{\hat{y}_i\}_{i=l+1}^{l+u},C_l,C_u Dl,Du,{y^i}i=l+1l+u,Cl,Cu,求解【西瓜书式(13.9)】(求解方法见【西瓜书式(6.35)】),得到新的SVM;
(2.2)用新的 S V M l \mathrm{SVM}_l SVMl重新预测 D u D_u Du中的样本,更新 { y ^ i } i = l + 1 l + u \{\hat{y}_i\}_{i=l+1}^{l+u} {y^i}i=l+1l+u;
(2.3)调大 C u C_u Cu,即 D u D_u Du的作用越来越大;
(2.4)未到结束条件时,返回(2.1)。
然而,(2.2)步重新预测
y
^
i
\hat{y}_i
y^i可以改为: 根据原
y
^
i
\hat{y}_i
y^i与
ξ
\xi
ξ间的不协调性,调整出新的
y
^
i
\hat{y}_i
y^i(如图13.2 所示):

我们回到【西瓜书式(6.41)】下面的讨论:“ ⋯ \cdots ⋯若 α i = C \alpha _i=C αi=C,则有 μ i = 0 \mu _i=0 μi=0,此时,若 ξ i ⩽ 1 \xi _i\leqslant 1 ξi⩽1则 ⋯ \cdots ⋯,若 ξ i > 1 \xi _i> 1 ξi>1则该样本被错误分类”,即: 当 ξ i > 1 \xi _i> 1 ξi>1则对该样本的预测可能错误(在前述“该样本被错误分类”的肯定结论中,去掉了部分前提条件,则结论改为“可能”)。
将该结论应用于(2.2)步:当 ξ i > 1 \xi _i> 1 ξi>1时,认为 y ^ i \hat{y}_i y^i可能错误,调整: y ^ i : = − y ^ i \hat{y}_i:=-\hat{y}_i y^i:=−y^i,调整后,再训练,再调整 ⋯ \cdots ⋯,即
(2.2)的修订

当然,细节上还应该考虑避免死循环(后续也一样)。
然而,上述对(2.2)的修订破坏了初始化时得到的 D u D_u Du伪标记 { y ^ i } i = l + 1 l + u \{\hat{y}_i\}_{i=l+1}^{l+u} {y^i}i=l+1l+u中正反例的比例。 由于初始化 D u D_u Du伪标记是由有监督学习基于 D l D_l Dl训练 S V M l \mathrm{SVM}_l SVMl来预测得到的,虽然对个体的预测可能不准确,但认为总体上正、反例的比例正确。 为了不破坏这个比例关系,应在 D u + D_u^+ Du+与 D u − D_u^- Du−之间,配对反号:即一个由正改负,另一个由负改正,式子表示为: y ^ i : = − y ^ i ; y ^ j : = − y ^ j ( y ^ i y ^ j < 0 ) \hat{y}_i:=-\hat{y}_i ;\ \hat{y}_j:=-\hat{y}_j(\hat{y}_i\hat{y}_j<0) y^i:=−y^i; y^j:=−y^j(y^iy^j<0)。
(2.2)的再修订

(2.2)定稿
进一步地,有人研究认为:将范围
(
ξ
i
>
1
)
∧
(
ξ
j
>
1
)
(\xi _i>1)\wedge (\xi _j>1)
(ξi>1)∧(ξj>1)稍扩大为
(
ξ
i
>
0
)
∧
(
ξ
j
>
0
)
∧
(
ξ
i
+
ξ
j
>
2
)
(\xi _i>0)\wedge (\xi _j>0)\wedge (\xi _i+\xi _j>2)
(ξi>0)∧(ξj>0)∧(ξi+ξj>2)更好。 由此得到TSVM算法【西瓜书图(13.4)】的第6至10行。即

我们以罚参 C u C_u Cu作为停机的控制条件:
- 第3句:初始化 C u ≪ C l C_u \ll C_l Cu≪Cl;
- 第4句:判断是否停机( C u > C l C_u>C_l Cu>Cl停机);
- 第11句:调整参数( C u : = min ( 2 C u , C l ) C_u:=\min(2C_u,C_l) Cu:=min(2Cu,Cl))。
为解决类别不平衡问题(如,正例远小于反例),修订【西瓜书式(13.9)】,将 D u D_u Du的处罚项分拆为两项
C
u
∑
i
=
l
+
1
m
ξ
i
=
C
u
+
∑
(
x
i
∈
D
u
)
∧
(
y
^
i
=
+
1
)
ξ
i
+
C
u
−
∑
(
x
i
∈
D
u
)
∧
(
y
^
i
=
−
1
)
ξ
i
\begin{align} C_u\sum_{i=l+1}^m\xi _i=C_u^+\sum_{(\boldsymbol{x}_i\in D_u)\wedge(\hat{y}_i=+1)}\xi _i+C_u^-\sum_{(\boldsymbol{x}_i\in D_u)\wedge(\hat{y}_i=-1)}\xi _i \tag{13.37} \end{align}
Cui=l+1∑mξi=Cu+(xi∈Du)∧(y^i=+1)∑ξi+Cu−(xi∈Du)∧(y^i=−1)∑ξi(13.37)
我们修订罚参
C
u
C_u
Cu的控制条件:
- 第3句:初始化( C u − ≪ C l ; C u + = u − u + C u − C_u^- \ll C_l;\,C_u^+=\frac{u_-}{u_+}C_u^- Cu−≪Cl;Cu+=u+u−Cu−),其中, u + u_+ u+与 u − u_- u−为对第2句预测结果的统计。
- 第4句:判断是否停机( ( C u + > C l ) ∧ ( C u − > C l ) (C_u^+>C_l)\wedge(C_u^->C_l) (Cu+>Cl)∧(Cu−>Cl)停机)。
- 第11句:调整参数( C u + : = min ( 2 C u + , C l ) ; C u − : = min ( 2 C u − , C l ) C_u^+:=\min(2C_u^+,C_l);\,C_u^-:=\min(2C_u^-,C_l) Cu+:=min(2Cu+,Cl);Cu−:=min(2Cu−,Cl))。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:13.1 生成式方法详解(样本数据都是由同一个潜在的模型“生成”的)
下一篇:13.3 标记传播算法(亲和矩阵、伪概率标记矩阵、能量函数)

文章详细介绍了TSVM(TransductiveSupportVectorMachine)算法的进化过程,从SVM的基本型到软间隔SVM,再到S3VM和TSVM。TSVM的核心是通过迭代调整惩罚因子C,并在外围增加一个搜索机制,以优化对未标记数据的预测。在每个迭代步骤中,TSVM会根据预测误差调整惩罚因子,逐步提高未标记数据的影响。文章还探讨了如何处理类别不平衡问题,并提出了相应的修订策略。
2461

被折叠的 条评论
为什么被折叠?



