svm学习小笔记

作者: 小翔扁小丁 | 来源:发表于2017-11-25 15:12 被阅读0次

    (1)python中1和l,有时容易弄混

    (2)svm中根据kkt条件来选择α,通过目标函数(其他α固定好后就是一个一元二次方程)来优化。

    (3)先选出还没达到kkt条件的a1,因为a1更新公式为a1+(yi(e1-e2))/η。η=k(x1,x1)+k(x2,x2)-2(x1,x2)所以按|e1-e2|最大的那个a2去选这个a2。a1算出来之后还要进行修剪,在按那个和为o更新a2。每次更新一组a之后要更新下b,因为a求解与e有关,e的计算又和b有关,所以每次都要更新以下b。(更正:这样理解不太好,因为也可以用初始化的那个b,最后全部算完后再更新b,这样也能算。但是主要是因为每次要进行kkt条件判断,判断a与yi*ui=1之间的关系,从而判断这个点有没有达到kkt条件,每次更新都设计ui的更新,而ui更新又需要更新b,所以每次都要更新b)

    (4)svm中b的更新方法,若更新后的有一个a在0到c之间,那么,这个就是支持向量,满足y(wx+b)=1,两边同时乘以y得到wx+b=y(因为y的值只取-1或1),w由所有的xiyiai求和得到,这里使用更新后的那一对a,带入得到b的更新,b=y-wx,w是更新后的w。哎,这个b的更新想了整整两天才想到,哎,,,若这对ai和aj不在0到c之间,那么算出它对应的两个b,更新的b值取这两个b的中间值。

    相关文章

      网友评论

        本文标题:svm学习小笔记

        本文链接:https://www.haomeiwen.com/subject/kwojvxtx.html