深入浅出机器学习之支持向量机SVM(SMO算法)

第一版,主要介绍算法的大概流程。细节推导等我写纸上再拍张上传。主要基于统计学习方法这本书。

SMO算法看了好长时间,大体看了看推导特别多,遂想直接看代码,但是代码是基于数学公式,于是重新回去看了看,发现推导其实不是很复杂,先了解整个算法的流程,然后再仔细的看每一块的推导。

SMO算法的目的就是要求出所有的a(alpha),然后根据a去求W和b。但是由于a的数量繁多,想达到一起全部求出最优值还是挺麻烦的,因此:选取两个a作为变量,其他的看做是常数。然后在两个变量的基础上进行优化。以此类推,直到所有的a优化后,达到要求。要求就是KKT条件。KKT条件和目标是充分必要的关系。

  

深入浅出机器学习之支持向量机SVM(SMO算法)_第1张图片

深入浅出机器学习之支持向量机SVM(SMO算法)_第2张图片


我就可耻的直接截图了。

这是整个的流程但是貌似还不是很具体。这样,将第二再细分。

1.首先是选取两个a。开始的时候,我们将a都设置为0,然后一步步的将a迭代成最优值。如果想加速这个进程,就得尽量选取那些容易违反kkt条件的,尽早的将他们优化,然后再细调。最好,优化后的值要变化大一些,加快收敛的速度。

2.选取好了以后如何进行优化。由于存在一些约束条件,我们选取的两个a,可以将其中一个用另外一个来表示。在这,,由此,(注意此处y方为1)。那么问题就转化成了一个变量的优化问题。通俗的办法就是求导后,使其等于0.这样就能求出来a的优化后的值。

3.既然两个a都优化了,其他的参数也得变化。

4做完这些后,一个优化就完成了。继续迭代吧,直到达到要求。

你可能感兴趣的:(深入浅出机器学习)