目录
一、复习(原问题、对偶问题、KKT条件、凸函数)
二、将最优化问题标准化为原问题(严格转化为标准形式)
1、原最优化问题
2、标准化后的问题
三、转化为对偶问题(注意变量的对应关系)
四、对对偶问题的目标函数进行简化(利用L函数的偏导)
1、L函数
2、对L函数各待定系数求偏导
1)向量求导
2)L函数求偏导
3、对偶问题目标函数简化(将fai用核函数K替换)
1)由后面两个偏导等式可以将L化简为:
2)再通过第一个偏导等式进一步化简:
3)L函数最终简化形式——对偶问题的简化形式
五、回归原问题求解w和b
1、求解w
2、求解b
六、SVM算法总结(训练+测试)
1、训练流程(根据训练样本求解b,获得最优化模型)
2、测试流程(利用最优化模型对新的样本进行分类)
七、易产生的疑惑
1、原问题是求解w,b,为什么后面只需要求b就好了,原问题的最优解不管了吗?
一、复习(原问题、对偶问题、KKT条件、凸函数)
二、将最优化问题标准化为原问题(严格转化为标准形式)
1、原最优化问题
2、标准化后的问题
三、转化为对偶问题(注意变量的对应关系)
注:这里的w指的是问题中的待定系数,如在非线性问题中w代表的是w、b和松弛变量
注:这里的α表示的是原问题中限制条件中不等式约束中的待定系数,如下面α有两个变量因为有两个不等式约束;β表示原问题中限制条件中等式约束中的待定系数,如下面β没有,因为没有等式约束。
四、对对偶问题的目标函数进行简化(利用L函数的偏导)
1、L函数
2、对L函数各待定系数求偏导
1)向量求导
2)L函数求偏导
3、对偶问题目标函数简化(将fai用核函数K替换)
将L函数求偏导得到的等式都带入到L函数中,可以将L函数进行简化,也就是对对偶问题的目标函数进行了简化
1)由后面两个偏导等式可以将L化简为:
2)再通过第一个偏导等式进一步化简:
上面只有fai是向量,其余的均为标量
3)L函数最终简化形式——对偶问题的简化形式
求解以上问题的算法称为:SMO算法
五、回归原问题求解w和b
>>>问题1:原问题是为了求解W,b,但是上面经过对偶化后求解的却是α和β,那w,b该怎么返回去求解?
1、求解w
根据测试流程实际上不需要知道w的确切值,只需要知道上图等式和0的关系即可
由L函数对w求偏导=0的等式和核函数来进行计算。
2、求解b
通过KKT条件和核函数来对b进行求解:
KKT条件
求得b
六、SVM算法总结(训练+测试)
1、训练流程(根据训练样本求解b,获得最优化模型)
已知:yi,yj,xi,xj,K(xi,xj)
未知:αi,αj,b
求解αi,αj可以用《SMO算法》进行求解,求解b利用公式即可求解
实际情况下求解b时,会选取多个α的值求得多个b,然后将多个b的值进行平均化,将平均值作为b最终的取值
2、测试流程(利用最优化模型对新的样本进行分类)
七、易产生的疑惑
1、原问题是求解w,b,为什么后面只需要求b就好了,原问题的最优解不管了吗?
答:刚开始我也有这个疑惑,以为是通过对偶化作为一种手段来求解原问题的最优解w,b。这里我们不能拘泥于解方程,而是得记住最终的目的,为什么求解w,b呢?即使为了得到最优化的模型,而得到的模型是为了对新的样本数据实现标签分类(y=1或y=-1),这才是机器学习的真正目的所在,通过对偶化我们将原问题求解w,b转化为了求解核函数以及b,最终依然得到了最优化的模型,利用该模型可以对新的样本数据进行分类!!!这里也就是说最终我们得到的是一个SVM模型,或者说我们通过训练样本训练出来了一个SVM模型,利用这个模型我们就可以对测试样本进行分类啦