(《机器学习》完整版系列)第13章 半监督学习——13.2 半监督SVM(SVM的进化路线)

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

沿着SVM的进化路线,不断改进SVM算法。
TSVM算法的思路是在SVM的外面套了一个搜寻 y ^ \hat{y} y^,有意思的是它将惩罚因子也作为迭代的调整参数。
本文从编程优化的角度讨论了TSVM 算法的来龙去脉,并给出了伪代码。

半监督SVM

我们先看看【西瓜书式】第6章中,SVM的进化路线:最大化间隔【西瓜书式(6.5)】 ⟶ \longrightarrow 最小化 ∣ ∣ w ∣ ∣ 2 ||\boldsymbol{w }||^2 ∣∣w2【西瓜书式(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 Cll+Cuu)即TSVM。

TSVM算法的思路是在SVM的外面套了一个搜寻 y ^ \hat{y} y^,有意思的是它将惩罚因子也作为迭代的调整参数。

TSVM的直接逻辑(如图13.1所示):
图13.1 TSVM原理

图13.1 TSVM原理

(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 CuCl

(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 所示):
图13.2 TSVM

图13.2 TSVM

我们回到【西瓜书式(6.41)】下面的讨论:“ ⋯ \cdots α i = C \alpha _i=C αi=C,则有 μ i = 0 \mu _i=0 μi=0,此时,若 ξ i ⩽ 1 \xi _i\leqslant 1 ξi1 ⋯ \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 CuCl
  • 第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+1mξi=Cu+(xiDu)(y^i=+1)ξi+Cu(xiDu)(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^- CuCl;Cu+=u+uCu),其中, 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 标记传播算法(亲和矩阵、伪概率标记矩阵、能量函数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值