当前位置: 首页 > news >正文

wordpress的ajax好慢做优化的网站

wordpress的ajax好慢,做优化的网站,固定ip做网站,app成本原始的SVM早在1963年就被发明了,但直到1992年才发明了核方法,使得SVM可以用于非线性分类。 SVM的应用: handwritten character recognition手写字符识别 face detection 人脸检测 pedestrian detection行人检测 text categorization 文本分类…

原始的SVM早在1963年就被发明了,但直到1992年才发明了核方法,使得SVM可以用于非线性分类。

SVM的应用:
handwritten character recognition手写字符识别
face detection 人脸检测
pedestrian detection行人检测
text categorization 文本分类

SVM把训练样本都看作高维空间的点,找一个超平面,使得两类样本尽可能宽地分开。新来的测试样本被映射到同一个空间,看它在hyperlane的哪一侧就能线性二分类。

Note:  p维空间是用p-1维的Hyperlane分隔开的。

SVM,顾名思义,支持向量是对于求解学习模型的关键(实际上SVM最终的模型只和支持向量有关,和其他的数据点向量无关),所以问题求解的复杂度直接和支持向量的个数有关。所以先说两个重点基础概念——margin & support vector。

(一) 间隔和支持向量

SVM(Support Vector Machine)的思想和其他线性模型做2分类一样,都是找个超平面(hyperplan)然后一刀切。但SVM这么成功(在90年代直接造成了NN的第二冬),自然有其独到之处,那就是在超平面的概念上,多引入了“间隔”和"支持向量"的概念。

可实现分类的超平面不唯一,我们怎么选择一个更好的超平面呢?直观上,应该是去找位于两类样本的“正中间”的那个。
在这里插入图片描述
超平面的方程:
wTx+b=0w^Tx+b=0wTx+b=0
www是法向量,他的方向与超平面正交,决定超平面的方向 ;
b是位移项,决定超平面和原点的距离。
这俩参数完全决定了超平面,所以就直接把超平面记为(w,b)(w,b)w,b
(实际上最小二乘回归,逻辑回归好不容易求解出来的线性模型也是个超平面,LDA最后求出来的是个过原点的超平面,b=0)

超平面建模完毕,那么空间中任意一点到它的距离:
r=wTx+b∣∣w∣∣r=\frac{w^Tx+b}{||w||}r=wwTx+b
不明白可以以二维为例,二维空间的对应的划分超平面是一条直线w1x1+w2x2+b=0w_1x_1+w_2x_2+b=0w1x1+w2x2+b=0,点到直线的距离公式为d=∣Ax+By+C∣A2+B2d=\frac{|Ax+By+C|}{\sqrt{A^2+B^2}}d=A2+B2Ax+By+C,则点到超平面的距离为r=∣w1x1+w2x2+b∣w12+w22r=\frac{|w_1x_1+w_2x_2+b|}{\sqrt{w_1^2+w_2^2}}r=w12+w22w1x1+w2x2+b,推广到高维就明白上式了。

可正确分类的超平面满足:
(1){wTxi+b&gt;0,yi=+1wTxi+b&lt;0,yi=−1\left\{ \begin{aligned} w^Tx_i+b&gt;0&amp;,&amp;y_i=+1\\ w^Tx_i+b&lt;0&amp;,&amp;y_i=-1 \end{aligned} \right. \tag1{wTxi+b>0wTxi+b<0,,yi=+1yi=1(1)
but! 我们现在不仅要正确分类,而且要提出更高的标准,要留有“裕量”,即“间隔”:
(2){wTxi+b≥+1,yi=+1wTxi+b≤−1,yi=−1\left\{ \begin{aligned} w^Tx_i+b\geq+1&amp;,&amp;y_i=+1\\ w^Tx_i+b\leq-1&amp;,&amp;y_i=-1 \end{aligned} \right. \tag 2{wTxi+b+1wTxi+b1,,yi=+1yi=1(2)
支持向量support vector使(2)中不等式的等号成立的那些距离超平面最近的那几个训练样本点。
间隔margin两个异类支持向量到超平面的距离之和。γ=2∣∣w∣∣\gamma=\frac{2}{||w||}γ=w2

在这里插入图片描述


(二)SVM的对偶问题推导

前面讲了间隔(硬间隔),我们希望硬间隔γ=2∣∣w∣∣2\gamma=\frac{2}{||\boldsymbol w||_2}γ=w22尽量大,也就是∣∣w∣∣2||\boldsymbol w||_2w2尽量小,so问题转化为
min⁡12∣∣w∣∣22,s.t.{wTx+b≥+1,yi=+1wTx+b≤−1,yi=−1\min \frac12||\boldsymbol w||^2_2,\quad s.t.\left\{ \begin{aligned} \boldsymbol w^T\boldsymbol x+b\geq+1&amp;,&amp;y_i=+1\\ \boldsymbol w^T\boldsymbol x+b\leq-1&amp;,&amp;y_i=-1 \end{aligned} \right.min21w22,s.t.{wTx+b+1wTx+b1,,yi=+1yi=1

(1)min⁡12∣∣w∣∣22,s.t.yi(wTx+b)≥1,yi∈{+1,−1}\min \frac12||\boldsymbol w||^2_2,\quad s.t.\quad y_i(\boldsymbol w^T \boldsymbol x+b)\geq1,y_i\in\left\{+1,-1\right\}\tag1min21w22,s.t.yi(wTx+b)1,yi{+1,1}(1)

这是个二次规划问题(目标函数是变量的二次函数,约束是变量的线性不等式),并且标准形式中的Q矩阵在这里就是单位阵E,E是正定的,所以这是个凸二次规划,且在约束规定的可行域内有唯一的全局最小解。(关于二次规划详细介绍请移步xxxx)

常见的通用的二次规划算法有椭球法(ellipsoid method),内点法(interior point),增广拉格朗日法(augmented Lagrangian),梯度投影法(gradient projection),etc. 但是这个问题的规模正比于训练样本数,开销很大,所以需要根据问题特点开发更高效的算法,1998年由Platt提出的SMO算法就是典型代表。

先暂时不管具体求解,先把问题再深入分析分析,分析完了再说用SMO怎么求解α\boldsymbol \alphaα

我们先用之前学的拉格朗日乘子法把问题转化为它的对偶问题(dual problem),共m个样本组成的不等式约束,那就引入m个KKT乘子(松弛变量)αi(αi≥0)\alpha_i(\alpha_i\geq0)αi(αi0)(这里不明白的话请移步我的这篇博客),把约束写进目标函数中,构造出拉格朗日函数为:

(2)L(w,b,α)=[12wTw+∑i=1mαi(1−yi(wTx+b))],αi≥0,yi∈{+1,−1}L(\boldsymbol w,b,\boldsymbol \alpha)=[ \frac12 \boldsymbol w^T\boldsymbol w+\sum_{i=1}^m\alpha_i(1-y_i(\boldsymbol w^T \boldsymbol x+b))],\alpha_i\geq0,y_i\in\left\{+1,-1\right\} \tag2L(w,b,α)=[21wTw+i=1mαi(1yi(wTx+b))],αi0,yi{+1,1}(2)

松弛变量(slack variable)和训练样本是一一对应的。(one-to-one relationship)

为了得到拉格朗日对偶函数,对变量w,b\boldsymbol w ,bw,b求偏导等于0,分别得到:

(3)w=∑i=1mαiyixi,∑i=1mαiyi=0\boldsymbol w=\sum_{i=1}^m\alpha_iy_i\boldsymbol x_i,\quad \sum_{i=1}^m\alpha_iy_i=0 \tag3w=i=1mαiyixi,i=1mαiyi=0(3)
也就是说,法向量w\boldsymbol ww等于m个样本点向量的加权和,加权系数是αiyi\alpha_iy_iαiyi,且这些加权系数之和为0.

把(3)代回拉格朗日函数(2),得到拉格朗日对偶函数

g(α)=[12(∑i=1mαiyix)T(∑i=1mαiyix)−∑i=1mαi],yi∈{+1,−1}g(\boldsymbol \alpha)= [\frac12 \boldsymbol (\sum_{i=1}^m\alpha_iy_i\boldsymbol x)^T\boldsymbol (\sum_{i=1}^m\alpha_iy_i\boldsymbol x)-\sum_{i=1}^m\alpha_i]\quad, y_i\in\left\{+1,-1\right\} g(α)=[21(i=1mαiyix)T(i=1mαiyix)i=1mαi],yi{+1,1}

拉格朗日对偶问题为:

(4)max⁡α[12∑i=1m∑j=1mαiyiαjyjxiTxj−∑i=1mαi],s.t.∑i=1mαiyi=0,αi≥0\max_{\boldsymbol \alpha} [\frac12 \sum_{i=1}^m\sum_{j=1}^m\alpha_iy_i\alpha_jy_j\boldsymbol {x_i}^T\boldsymbol {x_j}-\sum_{i=1}^m\alpha_i]\quad ,s.t.\sum_{i=1}^m\alpha_iy_i=0,\alpha_i\geq0 \tag4αmax[21i=1mj=1mαiyiαjyjxiTxji=1mαi],s.t.i=1mαiyi=0,αi0(4)

记录一下:我至今没懂为啥第二项符号是负??????

由于SVM的模型里有不等式约束,所以必须满足KKT条件:
{αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0\left\{ \begin{aligned} \alpha_i\geq0\\ y_if(x_i)-1\geq0\\ \alpha_i(y_if(x_i)-1)=0 \end{aligned} \right.αi0yif(xi)10αi(yif(xi)1)=0
这三个式子就表明:非支持向量的KKT乘子为0,在式(3)求法向量时根本不做贡献,只有支持向量(满足KKT条件2的样本点)对模型求解有贡献。


(三)对偶问题具体求解(SMO算法)

前面第二节把SVM的基本模型转化为了对偶问题。由于原问题是凸优化问题,且训练样本里一定至少有一个非支持向量使得slater’s condition成立,所以强对偶成立,所以原问题的最优解就是对偶问题的最优解,这节就来具体讲怎么求出对偶问题的参数α\boldsymbol \alphaα.

SMO算法是解析的方式求解,而不是数值优化,所以非常高效快速。

基本思路:每次选两个优化变量αi,αj\alpha_i,\alpha_jαi,αj,固定其他m−2m-2m2个变量。即初始化参数α\boldsymbol \alphaα后,迭代两个步骤till convergence:

  1. 选一对需要更新的变量αi,αj\alpha_i,\alpha_jαi,αj
  2. 固定其他m−2m-2m2个变量,解析求出更新后的αi,αj\alpha_i,\alpha_jαi,αj

可以看出,这个思路像极了坐标上升/下降,不过坐标上升/下降是一次优化一个变量,这里一次优化两个而已。那这里为啥要优化俩呢?这是因为第二节的公式(4),也就是最后的对偶问题里有个约束
∑i=1mαiyi=0\sum_{i=1}^m\alpha_iy_i=0i=1mαiyi=0
如果你一次只选一个变量进行优化固定其他m−1m-1m1个,那这个约束使得被选中的变量也直接固定下来了。。没得优化了。于是那就一次选俩,则有:
(1)αiyi+αjyj=−∑k=1,k̸=i,jmαkyk=c\alpha_iy_i+\alpha_jy_j=-\sum_{k=1,k\not=i,j}^m\alpha_ky_k=c\tag1αiyi+αjyj=k=1,k̸=i,jmαkyk=c(1)
αj\alpha_jαjαi\alpha_iαi表示,代回第二节的(4),则对偶问题只有一个变量(αi\alpha_iαi),成了一个单变量的二次规划问题,直接对αi\alpha_iαi求导等于0,就可以解析求出更新后的αi∗\alpha_i^*αi,再代入本节(1),求出更新后的αj∗\alpha_j^*αj。涉及到的全是解析步骤,没有一点数值迭代优化的内容,求出来的都是闭式解(即解析解),所以极其高效。

那么关键问题来了,每次依据什么准则选两个变量呢?

  1. 第一个变量:选择KKT条件违背程度最大的变量。
    我们知道,KKT条件是成为极值点的必要条件,满足KKT则有可能是极值点。现在还没找到极值点,所以KKT肯定不满足。那么优化KKT违背程度越大的变量,目标函数的变化幅度越大。
    回顾KKT:
    {αi≥0(1)yif(xi)−1≥0(2)αi(yif(xi)−1)=0(3)\left\{ \begin{aligned} \alpha_i\geq0 (1)\\ y_if(x_i)-1\geq0(2)\\ \alpha_i(y_if(x_i)-1)=0(3) \end{aligned} \right.αi0(1)yif(xi)10(2)αi(yif(xi)1)=0(3)
    对偶问题中,只有α\boldsymbol \alphaα是未知变量,w,b\boldsymbol w,bw,b都已知。和αi\alpha_iαi有关的只有(1)(3),而(1)是对偶问题的约束,必须满足,所以初始化α\boldsymbol \alphaα时一定是满足(1)的。

至于条件(3):

  • yif(xi)−1̸=0y_if(x_i)-1\not=0yif(xi)1̸=0,则 αi\alpha_iαi 必须为0,所以若αi̸=0\alpha_i\not=0αi̸=0,则违背KKT,且αi\alpha_iαi越大,违背程度越大。
  • yif(xi)−1=0y_if(x_i)-1=0yif(xi)1=0,则αi≥0\alpha_i\geq0αi0 ,怎么都不会违背。
  1. 第二个变量:选择对应样本点和第一个变量对应的样本点距离最远的变量。这样两个变量的差别很大,对目标函数带来的变化会比更新两个相似变量大。

求出α\boldsymbol\alphaα后,w\boldsymbol ww由下式求出:
(2)w=∑i=1mαiyixi\boldsymbol w=\sum_{i=1}^m\alpha_iy_i\boldsymbol x_i \tag2w=i=1mαiyixi(2)

而偏移项bbb的求解就要用到支持向量(xs,ys)(\boldsymbol x_s,y_s)(xs,ys)了:
ys(wTxs+b)=1y_s(\boldsymbol w^T\boldsymbol x_s+b)=1ys(wTxs+b)=1
但支持向量通常不止一个,所以b的解也不唯一,现实中常用所有支持向量求出的b的平均值作为最终解,这样比较鲁棒:

(3)b=1∣S∣∑s∈S(ys−wTxs)=1∣S∣∑s∈S(ys−∑i=1mαiyixiTxs)b=\frac{1}{|S|}\sum_{s\in S}(y_s-\boldsymbol w^T\boldsymbol x_s)=\frac{1}{|S|}\sum_{s \in S}(y_s-\sum_{i=1}^m\alpha_iy_i\boldsymbol x_i^T \boldsymbol x_s)\tag3b=S1sS(yswTxs)=S1sS(ysi=1mαiyixiTxs)(3)

SSS是支持向量集,∣S∣|S|S是支持向量的个数

由(2)(3),w,b\boldsymbol w,bw,b只和支持向量有关。直观上也很好理解,看下图,SVM的思想不像逻辑回归那样去拟合每个样本点,而是直接去找个划分平面把两类分开,那这个平面自然应该在两类的边界向量中间,它的位置bbb和方向w\boldsymbol www\boldsymbol ww的方向不是划分平面的方向,而是和划分平面正交)都由这两类样本的边界上的点决定。w\boldsymbol ww定了后,每个支持向量都能算出一个bbb,对应的平面和我们想要的超平面平行,但过那个支持向量,所以最终bbb用(3)这种方式算,使划分超平面位于两类的正中间。

在这里插入图片描述

至此为止,则SVM的线性二分类模型参数全部求解完毕,训练完成。

感觉还是很神奇的,这么简单的一个想法,竟然能写出这么多的复杂的数学推导,而且最后得到的结论还和直观思考结果完全吻合,不得不叹服数学的神奇和强大,把朴素的思想用数学表示出来,很难,但一旦做到了,就贡献老大了。

呜呼!关于引入核方法把SVM用于非线性分类,后面会另开博文详细分析。

http://www.lbrq.cn/news/2747845.html

相关文章:

  • 江西网站建设现在怎么做网络推广
  • 微信下载并登录seo技术分享博客
  • 电子商务网站开发的意义互联网营销师怎么做
  • 59网站一起做网店广州seo排名哪家有名
  • wordpress建站模版推广赚钱一个50元
  • 网站怎么申请支付宝google关键词分析
  • 买网站需要多少钱企业培训考试系统
  • 做淘宝相关网站湖南网站制作公司
  • 日照公司做网站淘宝流量助手平台
  • 网站建设推广邮件百度seo优
  • 东莞贸易公司寮步网站建设价格刷关键词要刷大词吗
  • 东莞网站建设类岗位廊坊网站seo
  • 做包装盒效果图网站优化大师下载安装
  • 雅安市住房和城乡建设局网站全专业优化公司
  • 阜宁专业做网站的公司全网营销推广靠谱吗
  • 电子商务网站建设与实践上机指导教程百度快照在哪里
  • 专业医疗建站营销型网站建设方案
  • 深圳制作网站软件百度seo网站优化服务
  • 给人做网站免费发外链平台
  • 徐州整站优化南宁seo推广外包
  • 网站左侧的导航是怎么做的西安seo网站排名
  • 石嘴山网站关于两学一做广告网页
  • 网站链接数广州网站制作实力乐云seo
  • wordpress英文站源码达州seo
  • 建个网站 费用bt蚂蚁
  • 专业的网站制作中心2024年3月新冠高峰
  • 浙江省建设厅网站地址关键信息基础设施安全保护条例
  • 网站平台搭建要多少钱seo优化易下拉排名
  • 广州万网建网站正规接单赚佣金的平台
  • WordPress怎么两个标题海淀区seo全面优化
  • Mysql笔记-错误条件\处理程序
  • 云智智慧停充一体云-allnew全新体验-路内停车源码+路外停车源码+充电桩源码解决方案
  • 从冒泡到快速排序:探索经典排序算法的奥秘(二)
  • SysTick寄存器(嘀嗒定时器实现延时)
  • 【读论文】医疗AI大模型:百川开源Baichuan-M2
  • 利用Minicsv库解析csv文件的c程序及读入测试