这阵子在看支持向量机,看了许久,但是还有一些问题一直困扰着我,特来论坛求助:
情景1:
    外层循环分两种情况选择第一个乘子的理由:当SMO算法有进展时,界上的乘子(即等于0或者C的乘子)更新后很有可能仍然停留在界上,界内的乘子才发生改变,因此首先在界内乘子中选择,可以加快算法的运行时间。
问题1:
如何理解以下这句话:
界上乘子更新后很有可能仍然停留在界上。
     (已解决):
       界上乘子更新后很有可能仍然停留在界上的解释:
 
上图红点表示待更新的两个乘子的对应坐标,其中a2在界上a2=0,假设核矩阵正定,根据:
 
η>0,因此若a2更新后值发生变化,必须y2(E1-E2)>0,而在后面的工作集选择并不能够确保该式成立,若y2(E1-E2)<=0,则a2的值保持不变,因此更新失败,仍然留在界上。其他情形依次类推。
情景2:
 
补充:
 
问题2.1(已解决):当a1和a2都在界内时,如何推出b1new=b2new?
问题2.2(已解决):为什么当a1和a2都在界上时,b1new=b2new之间b都满足要求?
情景3:
 
 
问题3(已解决):
这一块完全不懂。我们在写内循环的时候,要写当L==H的时候,跳出内循环,因为L==H的时候计算的结果肯定不符合KKT条件,可是为什么呢?完全搞不懂呃~。
希望得到大家帮助,临表涕零,不知所言。