学习笔记|序列最小最优化算法介绍
【摘要】 序列最小最优化算法是支持向量机学习的主要实现方法。我们知道,支持向量机的学习问题可以形式化为求解凸二次规划问题。这样的凸二次规划问题具有全局最优解,并且有许多最优化算法可以用于这一问题的求解。但是当训练样本容量很大时,这些算法往往变得非常低效。目前人们已提出许多快速实现算法。序列最小最优化(sequential minimal optimization,SMO)算法,于1998年由Platt...
序列最小最优化算法是支持向量机学习的主要实现方法。我们知道,支持向量机的学习问题可以形式化为求解凸二次规划问题。这样的凸二次规划问题具有全局最优解,并且有许多最优化算法可以用于这一问题的求解。但是当训练样本容量很大时,这些算法往往变得非常低效。目前人们已提出许多快速实现算法。序列最小最优化(sequential minimal optimization,SMO)算法,于1998年由Platt提出。
SMO算法要解如下凸二次规划的对偶问题:
SMO算法是一种启发式算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件(参见学习笔记|广义拉格朗日函数与KKT条件的应用),那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充分必要条件。否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。重要的是,这时子问题可以通过解析方法求解,这样就可以大大提高整个算法的计算速度。子问题有两个变量,一个是违反KKT条件最严重的那一个,另一个由约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目标。
整个SMO算法包括两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。
参考文献
1.统计学习方法(第2版),李航著,清华大学出版社
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)