SVM 支持向量机(3) SMO算法小结
来源:互联网 发布:二级备案域名 编辑:程序博客网 时间:2024/06/05 03:42
SMO算法 (Sequential Minimal Optimization)
基本原理: 优化目标函数
先给出KKT条件中的互补松驰条件
注意到
可以看出当
现在进入算法, 可能有些简化
取初始值
α⃗ =0⃗ , 这里比较重要, 由KKT条件之互补松驰条件可知,αi=0 所对应的样本点都是在界内的, 在边界上的支持向量只占了很少一部分, 对于分类问题这意味着绝大部分αi 是等于0的. 这样只需要找出少量的αi 进行调整即可.在一定精度
ε 内查找那些违反KKT条件的样本, 综合(4)~(5)就是αi<CbutyiEi<0−ε αi>0butyiEi>0+ε 其中优先选择
0<αi<C 样本点, 如果这些样本点都满足KKT条件, 则遍历整个样本, 是不是通常第一步都是要遍历样本的.假设找到了第一个乘子
α1 , 现在选择α2 , 为了使得|E1−E2| 比较大,E1 为正, 就取最小的E2 所对应的α2 , 若E1 为负, 就取最大的E2 所对应的α2 , 即max|E1−E2| . 某些神奇的情况下??(Ei 都不知道等于几或者全为0??), 那就先遍历0<αi<C 的样本点, 不行再遍历全部样本, 再不行重新选αi .之后根据无约束求极值的方法可得(相关推导网上书上都有很多, 注意这里的
αold2 是凑出来的)αnew,unclipped2=αold2+y2(E1−E2)η η=K11+K22−2K12s.t. η>0 然后对
α2 裁剪, 让其满足不等式约束. 先计算边界值:L=max(0,αold2−αold1),H=min(C,C+αold2−αold1)if y1≠y2 L=max(0,αold2+αold1−C),H=min(C,αold2+αold1)if y1=y2 之后更新
α2 :αnew2=⎧⎩⎨⎪⎪⎪⎪Hαnew,unclipped2Lαnew,unclipped2>HL≤αnew,unclipped2≤Hαnew,unclipped2<L
然后更新α1 :αnew1=αold1+y1y2(αold2−αnew2)
这里要注意一下η 恰好是目标函数Ψ(α2) 的二阶导数,η>0 意味抛物线开口向上, 能取最小值, 这样就用上面的公式算, 如果η=0 , 目标函数是条直线,η<0 开口向下, 这两种情况最小值都是在边界上取到, 要算一下左边和右边的Ψ 值, 哪边的小就取哪边的α1, α2 , 具体参见 Platt的论文.用间隔边界上的样本更新阀值
b :bnew1=−E1−y1K11(αnew1−αold1)−y2K21(αnew2−α2old)+bold bnew2=−E2−y1K12(αnew1−αold1)−y2K22(αnew2−α2old)+bold 如果
αi(i=1,2) 有一个在界内(0<αi<C) , 则bnew=bnewi , 否则取bnew=(bnew1+bnew2)/2 (实际上这里取bnew1 和bnew2 之间的数都行).更新下
Ei 值:Ei=∑SyiαiK(x⃗ i,x⃗ j)+bnew−yi S 是支持向量的集合, 就是那些0<αi≤C 所对应的样本点.若所有样本满足KKT条件, 则停止迭代
- SVM 支持向量机(3) SMO算法小结
- 支持向量机(SVM) SMO算法详解
- 支持向量机SVM-SMO算法
- SVM支持向量机四(SMO算法)
- 支持向量机(Support Vector Machine)-----SVM之SMO算法
- 支持向量机(SVM)(五)-- SMO算法详解
- SVM支持向量机(SMO算法)的R实现
- 支持向量机SVM(五)SMO算法
- 深入浅出机器学习之支持向量机SVM(SMO算法)
- 支持向量机(SVM)的SMO算法详解
- SVM-非线性支持向量机及SMO算法
- SVM支持向量机原理(四)SMO算法原理
- 支持向量机(SVM)(四)----SMO
- 支持向量机SMO算法
- 支持向量机smo算法
- 支持向量机 smo算法
- SVM-支持向量机学习(7):求解SVM算法-SMO-序列最小最优化
- 【机器学习算法-python实现】svm支持向量机(2)—简化版SMO算法
- 进程间通信——信号量(P、V操作)
- objdump 反编译
- 一次完整的HTTP请求与响应涉及了哪些知识?
- Android读写assets目录下面的资源文件(文件夹)
- Qt之Tab键切换焦点顺序
- SVM 支持向量机(3) SMO算法小结
- JAVA字符串转化为数字(可以适合大部分)
- 32.日志文件
- caffe ubuntu14.04 截屏版
- RecyclerView 练习(二)
- 设计模式之---观察者模式简单分析
- 把外部文件拷贝的AVD安卓模拟器上的sdcard上,并且在AVD中浏览sdcard的文件
- java环境变量配置
- PAT L2-012. 关于堆的判断