沿着SVM的进化路线,不断改进SVM算法。
TSVM算法的思路是在SVM的外面套了一个搜寻半监督目标检测源码 半监督svm_支持向量机,有意思的是它将惩罚因子也作为迭代的调整参数。
本文从编程优化的角度讨论了TSVM 算法的来龙去脉,并给出了伪代码。

半监督SVM

我们先看看【西瓜书式】第6章中,SVM的进化路线:最大化间隔【西瓜书式(6.5)】半监督目标检测源码 半监督svm_机器学习_02最小化半监督目标检测源码 半监督svm_学习_03【西瓜书式(6.6)】(即SVM基本型)半监督目标检测源码 半监督svm_机器学习_02放开硬控制,不满足约束的样本尽可能少【西瓜书式(6.29)】半监督目标检测源码 半监督svm_机器学习_02软间隔支持向量机【西瓜书式(6.35)】.

进一步地:若改为分隔线穿过数据的低密度区,则为S3VM【西瓜书图13.3】;若对半监督目标检测源码 半监督svm_机器学习_06打上预测标记半监督目标检测源码 半监督svm_半监督目标检测源码_07,则可用半监督目标检测源码 半监督svm_半监督目标检测源码_07来监督SVM,由此可将【西瓜书式(6.35)】推广到【西瓜书式(13.9)】(将半监督目标检测源码 半监督svm_机器学习_09改为半监督目标检测源码 半监督svm_学习_10)即TSVM。

TSVM算法的思路是在SVM的外面套了一个搜寻半监督目标检测源码 半监督svm_半监督目标检测源码_07,有意思的是它将惩罚因子也作为迭代的调整参数。

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

半监督目标检测源码 半监督svm_人工智能_12

图13.1 TSVM原理

(1)初始化:用半监督目标检测源码 半监督svm_机器学习_13训练一个半监督目标检测源码 半监督svm_半监督目标检测源码_14,用半监督目标检测源码 半监督svm_半监督目标检测源码_14半监督目标检测源码 半监督svm_机器学习_06中样本进行预测,得半监督目标检测源码 半监督svm_支持向量机_17,初始化两惩罚因子半监督目标检测源码 半监督svm_支持向量机_18

(2)循环调整:

(2.1)基于半监督目标检测源码 半监督svm_人工智能_19,求解【西瓜书式(13.9)】(求解方法见【西瓜书式(6.35)】),得到新的SVM;

(2.2)用新的半监督目标检测源码 半监督svm_半监督目标检测源码_14重新预测半监督目标检测源码 半监督svm_机器学习_06中的样本,更新半监督目标检测源码 半监督svm_支持向量机_17

(2.3)调大半监督目标检测源码 半监督svm_学习_23,即半监督目标检测源码 半监督svm_机器学习_06的作用越来越大;

(2.4)未到结束条件时,返回(2.1)。

然而,(2.2)步重新预测半监督目标检测源码 半监督svm_学习_25可以改为: 根据原半监督目标检测源码 半监督svm_学习_25半监督目标检测源码 半监督svm_支持向量机_27间的不协调性,调整出新的半监督目标检测源码 半监督svm_学习_25(如图13.2 所示):

半监督目标检测源码 半监督svm_机器学习_29

图13.2 TSVM

我们回到【西瓜书式(6.41)】下面的讨论:“半监督目标检测源码 半监督svm_学习_30半监督目标检测源码 半监督svm_半监督目标检测源码_31,则有半监督目标检测源码 半监督svm_学习_32,此时,若半监督目标检测源码 半监督svm_学习_33半监督目标检测源码 半监督svm_学习_30,若半监督目标检测源码 半监督svm_机器学习_35则该样本被错误分类”,即: 当半监督目标检测源码 半监督svm_机器学习_35则对该样本的预测可能错误(在前述“该样本被错误分类”的肯定结论中,去掉了部分前提条件,则结论改为“可能”)。

将该结论应用于(2.2)步:当半监督目标检测源码 半监督svm_机器学习_35时,认为半监督目标检测源码 半监督svm_学习_25可能错误,调整:半监督目标检测源码 半监督svm_人工智能_39,调整后,再训练,再调整半监督目标检测源码 半监督svm_学习_30,即

(2.2)的修订

半监督目标检测源码 半监督svm_学习_41

当然,细节上还应该考虑避免死循环(后续也一样)。

然而,上述对(2.2)的修订破坏了初始化时得到的半监督目标检测源码 半监督svm_机器学习_06伪标记半监督目标检测源码 半监督svm_支持向量机_17中正反例的比例。 由于初始化半监督目标检测源码 半监督svm_机器学习_06伪标记是由有监督学习基于半监督目标检测源码 半监督svm_机器学习_13训练半监督目标检测源码 半监督svm_半监督目标检测源码_14来预测得到的,虽然对个体的预测可能不准确,但认为总体上正、反例的比例正确。 为了不破坏这个比例关系,应在半监督目标检测源码 半监督svm_人工智能_47半监督目标检测源码 半监督svm_半监督目标检测源码_48之间,配对反号:即一个由正改负,另一个由负改正,式子表示为:半监督目标检测源码 半监督svm_支持向量机_49

(2.2)的再修订

半监督目标检测源码 半监督svm_支持向量机_50

(2.2)定稿

进一步地,有人研究认为:将范围半监督目标检测源码 半监督svm_半监督目标检测源码_51稍扩大为半监督目标检测源码 半监督svm_支持向量机_52更好。 由此得到TSVM算法【西瓜书图(13.4)】的第6至10行。即

半监督目标检测源码 半监督svm_半监督目标检测源码_53

我们以罚参半监督目标检测源码 半监督svm_学习_23作为停机的控制条件:

  • 第3句:初始化半监督目标检测源码 半监督svm_支持向量机_55
  • 第4句:判断是否停机(半监督目标检测源码 半监督svm_支持向量机_56停机);
  • 第11句:调整参数(半监督目标检测源码 半监督svm_半监督目标检测源码_57)。

为解决类别不平衡问题(如,正例远小于反例),修订【西瓜书式(13.9)】,将半监督目标检测源码 半监督svm_机器学习_06的处罚项分拆为两项

半监督目标检测源码 半监督svm_学习_59
我们修订罚参半监督目标检测源码 半监督svm_学习_23的控制条件:

  • 第3句:初始化(半监督目标检测源码 半监督svm_学习_61),其中,半监督目标检测源码 半监督svm_学习_62半监督目标检测源码 半监督svm_半监督目标检测源码_63为对第2句预测结果的统计。
  • 第4句:判断是否停机(半监督目标检测源码 半监督svm_半监督目标检测源码_64停机)。
  • 第11句:调整参数(半监督目标检测源码 半监督svm_半监督目标检测源码_65)。