您的位置:首页 > 其它

ML--SVM学习小结(一)

2017-11-26 21:39 549 查看
-上个星期看LR的决定是对的,在我的理解svm算上是更加纯正的最优化问题。代码还没完全理解完,所以下周继续贴啦。SMO算法清晰了我原来对于模型和求解之间关系的模糊概念。顺便思考了张老师布置的二次优化问题,有些许帮助吧,期待老师的答疑。(文章里面一定漏洞百出,以后会慢慢提升自己再后头修改=。=)

基本思路

-一刷的时候跳过了大段的公式,这次基本是从头到尾推了一遍,但是对于正定核的证明内段,涉及到泛函的问题,以后给自己一个解答吧。先在线性可分的假设下,假设有个超平面可以进行分类,那么策略就是使得间隔最大化,简单的说就是距离两类都很远,产生尽量少的误分类。由间隔最大化问题简化到解决一个二次优化问题,引入拉格朗日算子解决对偶问题,需要满足KKT条件。从而可以算出超平面,问题就解决了。

其中的问题

-(1)超平面唯一问题,蓝皮书给出了证明,没有深究;(2)线性不可分,引入软间隔的概念,在约束条件上对alpha给出上限,本质上对于解没有原理性的影响;(3)非线性问题,引入核函数概念,转化到特征空间上进行线性分类,书上说核函数的给出是特殊的或者是根据经验的,推出欧式或者离散空间(原始空间)到希尔伯特空间或者欧式空间(特征空间)的转移方程很难,这里留下一个疑问吧,大致理解一个思路。(4)数值问题,求解二次优化问题matlab上有专门的库函数,但是对于大量级的数据速度上非常不可观,所以出现了各种针对这个算法的优化,很多书上着重介绍了SMO,98年Platt提出的启发式算法,有种从梯度下降问题推到随机梯度下降的感觉,不知道理解的对不对,从批量数据求解到用某种数值方法遍历。

SMO的思想

-折磨了我很长时间。果然,没有实践原始算法不知道它的缺点,还是跟着书走一波。SMO可以浓缩成两个问题,alpha的更新和alpha的选择。(1)提出假设,为了保证约束条件成立,对alpha对进行更新,将优化的目标函数转化成关于这两个alpha的函数,根据约束条件,同时是凸函数,很容易求出极值点,同时满足约束条件,得出更新的alpha。这里面涉及到一个小技巧,将偏差E预先存在列表里,便于查询更新。(2)外层循环,首先遍历支持向量上的点,是否满足kkt条件,再遍历整个数据集,其实svm只对支持向量比较敏感,可以理解成对少数数据集。内层循环依据是偏差的大小,即更新的幅度是否大。(3)重新求b,依据是KKT条件。从上述步骤来看,最重要的是对于KKT条件的灵活运用和在SVM中的地位,下周继续贴。

总结

-对于svm的理解有助于我们进一步理解监督学习的步骤,从数据集到模型到学习的过程。模型的理解,从低维理解物理结构,而从高维分析。当然这才是从原理上理解算法,高度是没有的,很平面的理解问题不利于理解实际问题的需求,但我觉得这些细节在优化需求的时候起到作用。当然中间这个从model 到 application的能力可能需要大量的阅读和锻炼才能获得,默默加油一下吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: