http://antkillerfarm.github.io/

序列最小优化方法(续)

同理:

L−y(2)Lv2=Lf2

L-y^{(2)}Lv_2=Lf_2

f2=y(2)(b−E2)+sα1K12+α2K22

f_2=y^{(2)}(b-E_2)+s\alpha_1K_{12}+\alpha_2K_{22}

由《机器学习(五)》中的公式5可得:

WL=L1f1+Lf2−12L21K11−12L2K22−sLL1K12

W_L=L_1f_1+Lf_2-\frac{1}{2}L_1^2K_{11}-\frac{1}{2}L^2K_{22}-sLL_1K_{12}

αnew2=H\alpha_2^{new}=H的情况,同理可得:

αnew1=H1=α1+s(α2−H)

\alpha_1^{new}=H_1=\alpha_1+s(\alpha_2-H)

WH=H1f1+Hf2−12H21K11−12H2K22−sHH1K12

W_H=H_1f_1+Hf_2-\frac{1}{2}H_1^2K_{11}-\frac{1}{2}H^2K_{22}-sHH_1K_{12}

根据WHW_H和WLW_L哪个是极值,可以反过来确定αnew2=L\alpha_2^{new}=L,还是,还是αnew2=H\alpha_2^{new}=H。

至此,迭代关系式除了b的推导式以外,都已经推出。

由《机器学习(五)》中的公式8可得:

unew1−bnew−y(1)αnew1K11−y(2)αnew2K12=u1−b−y(1)α1K11−y(2)α2K12

u_1^{new}-b^{new}-y^{(1)}\alpha_1^{new}K_{11}-y^{(2)}\alpha_2^{new}K_{12}=u_1-b-y^{(1)}\alpha_1K_{11}-y^{(2)}\alpha_2K_{12}

迭代的目的是使预测更为准确,因此设置unew1=y(1)u_1^{new}=y^{(1)}是很直观的做法,因此:

−bnew=u1−unew1+y(1)(αnew1−α1)K11+y(2)(αnew2−α2)K12=(u1−y(1))+y(1)(αnew1−α1)K11+y(2)(αnew2−α2)K12=E1+y(1)(αnew1−α1)K11+y(2)(αnew2−α2)K12

\begin{align} -b^{new}&=u_1-u_1^{new}+y^{(1)}(\alpha_1^{new}-\alpha_1)K_{11}+y^{(2)}(\alpha_2^{new}-\alpha_2)K_{12} \\&=(u_1-y^{(1)})+y^{(1)}(\alpha_1^{new}-\alpha_1)K_{11}+y^{(2)}(\alpha_2^{new}-\alpha_2)K_{12} \\&=E_1+y^{(1)}(\alpha_1^{new}-\alpha_1)K_{11}+y^{(2)}(\alpha_2^{new}-\alpha_2)K_{12} \end{align}

上式是根据u1u_1得到的bnewb^{new},我们将之记作b1b_1。

同理,可得:

−b2=E2+y(1)(αnew1−α1)K12+y(2)(αnew2−α2)K22

-b_2=E_2+y^{(1)}(\alpha_1^{new}-\alpha_1)K_{12}+y^{(2)}(\alpha_2^{new}-\alpha_2)K_{22}

如果αnew1\alpha_1^{new}在边界内,则bnew=b1b^{new}=b_1;如果αnew2\alpha_2^{new}在边界内,则bnew=b2b^{new}=b_2。

如果αnew1\alpha_1^{new}和αnew2\alpha_2^{new}都在边界内,则bnew=b1=b2b^{new}=b_1=b_2。

如果αnew1\alpha_1^{new}和和αnew2\alpha_2^{new}都在边界上,则b1b_1和b2b_2之间的任意值都满足KKT条件,一般取bnew=b1+b22b^{new}=\frac{b_1+b_2}{2}。

SMO算法在线性SVM时的简化

由《机器学习(四)》一节的公式3,可得:

wnew−y(1)αnew1x(1)−y(2)αnew2x(2)=w−y(1)α1x(1)−y(2)α2x(2)

w^{new}-y^{(1)}\alpha_1^{new}x^{(1)}-y^{(2)}\alpha_2^{new}x^{(2)}=w-y^{(1)}\alpha_1x^{(1)}-y^{(2)}\alpha_2x^{(2)}

wnew=w+y(1)(αnew1−α1)x(1)+y(2)(αnew2−α2)x(2)

w^{new}=w+y^{(1)}(\alpha_1^{new}-\alpha_1)x^{(1)}+y^{(2)}(\alpha_2^{new}-\alpha_2)x^{(2)}

需要注意的是,虽然我们在之前的讨论中,使用KijK_{ij}代替⟨x(i),x(j)⟩\langle x^{(i)},x^{(j)}\rangle进行扩展,然而两者只有在线性的情况下,才是等价的,即ϕ(x)=x\phi(x)=x。

K函数最大的作用不在于计算线性SVM,而在于计算非线性的SVM。

SMO中拉格朗日乘子的启发式选择方法

所谓的启发式选择方法主要思想是每次选择拉格朗日乘子的时候,优先选择0<αi<C0的αi\alpha_i作优化,因为边界上的αi\alpha_i在迭代之后通常不会更改。

给定初始值αi=0\alpha_i=0后,先对所有样例进行循环,循环中碰到违背KKT条件的(不管边界上还是边界内)都进行迭代更新。等这轮过后,如果没有收敛,第二轮就只针对0<αi<C0的样例进行迭代更新。

软边距SVM问题的KKT条件为:

αi=0⇔y(i)ui≥1

\alpha_i=0 \Leftrightarrow y^{(i)}u_i\ge 1

0<αi<C⇔y(i)ui=1

0

αi=C⇔y(i)ui≤1

\alpha_i=C \Leftrightarrow y^{(i)}u_i\le 1

在第一个乘子选择后,第二个乘子也使用启发式方法选择, 第二个乘子的迭代步长大致正比于∣E1−E2∣\lvert E_1-E_2\rvert,选择能使∣E1−E2∣\lvert E_1-E_2\rvert最大的α2\alpha_2即可。

最后的收敛条件是在界内(0<αi<C0)的样例都能够遵循KKT条件,且其对应的αi\alpha_i只在极小的范围内变动。

学习理论

偏差和方差

回到之前的欠拟合与过拟合的例子。我们把预测值和实际值之间的误差称为泛化误差。注意:泛化误差不是拟合模型和训练样本值之间的差,后者通常被称作模型误差。

偏差(bias)和方差(variance)都是泛化误差(generalization error)的组成部分。但遗憾的是,这两个名词至今也没有公认的严格定义,这里只做定性的描述,即:欠拟合的误差主要是偏差,而过拟合的误差主要是方差。

学习理论的预备知识

学习理论(learning theory)主要解决三大问题:

1.偏差和方差的权衡。这实际上是模型选择的问题。如何才能自动确定模型的阶数呢?

2.如何关联模型误差和泛化误差?

3.如何确定我们的学习算法是有效的?

首先介绍两个定理:

The union bound定理

如果A1,…,AkA_1,\dots,A_k是k个不同的事件,则:

P(A1∪⋯∪Ak)≤P(A1)+⋯+P(Ak)

P(A_1\cup \dots\cup A_k)\le P(A_1)+\dots+P(A_k)

Hoeffding不等式

Z1,…,ZmZ_1,\dots,Z_m是m个独立且具有相同分布的随机变量(independent and identically distributed,IID)。如果它们满足Bernoulli(ϕ\phi)分布,即P(Zi=1)=ϕ,P(Zi=0)=1−ϕP(Z_i=1)=\phi,P(Z_i=0)=1-\phi,则:

P(∣ϕ−ϕ^∣>γ)≤2exp(−2γ2m)

P(\lvert\phi-\hat\phi\rvert>\gamma)\le 2\exp(-2\gamma^2m)

其中,ϕ^=(1/m)∑mi=1Zi\hat\phi=(1/m)\sum_{i=1}^mZ_i,γ\gamma是大于0的任意常数。

这个不等式是Wassily Hoeffding于1963年证明的。它表明样本数量越大,则随机变量的平均值越接近其数学期望值。

注:Wassily Hoeffding,1914~1991,芬兰统计学家,柏林大学博士,无偏统计学(U-statistics)创始人。

这个不等式在统计学领域也叫做Chernoff bound,但实际上是Herman Chernoff的朋友Herman Rubin发现的。他们的关系有点像苹果公司的那两个Steve,都是统计学领域的巨擘。

注:Herman Chernoff,1923年生,美国数学家、物理学家,布朗大学博士,先后执教于MIT和哈佛。

Herman Rubin,1926年生,美国数学家,21岁获得芝加哥大学的博士学位。现为普渡大学教授。
Herman Chernoff写过一篇文章回忆他和Herman Rubin的友谊,其中提到后者IQ 180,比他牛多了。其实,Herman Chernoff 24岁获得博士学位,也是妥妥的学霸级人物。

以下假定y的取值为0或1,则:

ε^(h)=1m∑i=1m1{h(x(i))≠y(i)}

\hat\varepsilon(h)=\frac{1}{m}\sum_{i=1}^m1\{h(x^{(i)})\neq y^{(i)}\}

ε^(h)\hat\varepsilon(h)被称作训练误差(training error),也叫做经验风险(empirical risk)或经验误差(empirical error),它表征的是在训练样本集上,预测函数误分类的比率。

ε(h)=P(x,y) D(h(x)≠y)

\varepsilon(h)=P^{(x,y)~\mathcal{D}}(h(x)\neq y)

ε(h)\varepsilon(h)表示泛化误差,(x,y)(x,y)表示被预测的样本,D\mathcal{D}表示样本所遵循的概率分布。

注意:ε^(h)\hat\varepsilon(h)和ε(h)\varepsilon(h)针对的样本集是不同的,后面定义的变量h和h^\hat h也遵循相同的约定。

这里我们假设:训练数据和预测数据都具有相同的概率分布D\mathcal{D}。这个假设是PAC理论的假设之一。

PAC(Probably approximately correct)理论是Leslie Valiant于1984年提出的。这里的大部分讨论都和PAC有关。

注:Leslie Valiant,1949年生,英国计算机科学家,华威大学博士。哈佛大学教授,英国皇家学会会员,图灵奖获得者(2010)。

对于线性分类hθ(x)=1{θTx≥0}h_\theta(x)=1\{\theta^Tx\ge 0\}来说,寻找合适的参数θ\theta,还有另一种方法,即最小化训练误差,并令:

θ^=argminθε^(hθ)

\hat\theta=\arg\min_\theta\hat\varepsilon(h_\theta)

我们将这个过程称为经验风险最小化(empirical risk minimization,ERM)。其最终的预测函数为h^=hθ^\hat h=h_{\hat\theta}。

ERM是一类基本的学习算法,也是本节关注的焦点。

我们定义预测函数类(hypothesis class )H\mathcal{H},用以表示解决某类学习问题的所有可能的分类器的集合。(实际上也就是参数θ\theta所有可能取值的集合。)则ERM算法可表示为:

h^=argminh∈Hε^(h)

\hat h=\arg\min_{h\in \mathcal{H}}\hat\varepsilon(h)

H\mathcal{H}为有限集的情况

根据之前的讨论,我们做如下定义:

Z=1{hi(x)≠y}

Z=1\{h_i(x)\neq y\}

Zj=1{hi(x(j))≠y(j)}

Z_j=1\{h_i(x^{(j)})\neq y^{(j)}\}

ε^(hi)=1m∑j=1mZj

\hat\varepsilon(h_i)=\frac{1}{m}\sum_{j=1}^mZ_j

其中,hi∈Hh_i\in \mathcal{H}。

由Hoeffding不等式可知:

P(∣ε(hi)−ε^(hi)∣>γ)≤2exp(−2γ2m)

P(\lvert\varepsilon(h_i)-\hat\varepsilon(h_i)\rvert>\gamma)\le 2\exp(-2\gamma^2m)

这个公式表明:对于特定的hih_i,在m很大的情况下,训练误差有很大的概率接近于泛化误差。

如果我们用AiA_i表示事件∣ε(hi)−ε^(hi)∣>γ\lvert\varepsilon(h_i)-\hat\varepsilon(h_i)\rvert>\gamma,则上式可改为P(Ai)≤2exp(−2γ2m)P(A_i)\le 2\exp(-2\gamma^2m)。

P(∃h∈H.∣ε(hi)−ε^(hi)∣>γ)=P(A1∪⋯∪Ak)

P(\exists h\in\mathcal{H}.\lvert\varepsilon(h_i)-\hat\varepsilon(h_i)\rvert>\gamma)=P(A_1\cup \dots\cup A_k)

≤∑i=1kP(Ai)≤∑i=1k2exp(−2γ2m)=2kexp(−2γ2m)

\le \sum_{i=1}^kP(A_i)\le \sum_{i=1}^k2\exp(-2\gamma^2m)=2k\exp(-2\gamma^2m)

1−P(∃h∈H.∣ε(hi)−ε^(hi)∣>γ)=P(¬∃h∈H.∣ε(hi)−ε^(hi)∣>γ)=P(∀h∈H.∣ε(hi)−ε^(hi)∣≤γ)≥1−2kexp(−2γ2m)

\begin{align} &1-P(\exists h\in\mathcal{H}.\lvert\varepsilon(h_i)-\hat\varepsilon(h_i)\rvert>\gamma)=P(\lnot\exists h\in\mathcal{H}.\lvert\varepsilon(h_i)-\hat\varepsilon(h_i)\rvert>\gamma) \\&=P(\forall h\in\mathcal{H}.\lvert\varepsilon(h_i)-\hat\varepsilon(h_i)\rvert\le\gamma)\ge 1-2k\exp(-2\gamma^2m) \end{align}

上面的结果表明,对于所有的h∈Hh\in \mathcal{H},实际上也有一个收敛性质。这个性质被称为一致收敛(uniform convergence)。

上式变形可得:

m≥12γ2log2kδ

m\ge \frac{1}{2\gamma^2}\log\frac{2k}{\delta}

其中,δ=2kexp(−2γ2m)\delta=2k\exp(-2\gamma^2m)。

上式表明,在固定γ\gamma和δ\delta的情况下,至少需要多少训练样本,才能保证对于所有的h∈Hh\in \mathcal{H},P(∣ε(hi)−ε^(hi)∣≤γ)P(\lvert\varepsilon(h_i)-\hat\varepsilon(h_i)\rvert\le \gamma)至少为1−δ1-\delta。

这里的m也被称为算法的样本复杂度(sample complexity),它表征达到一定性能所需要的训练样本的数量。

同样的,我们固定m和δ\delta,可得:

∣ε(h)−ε^(h)∣≤12mlog2kδ−−−−−−−−−√

\lvert\varepsilon(h)-\hat\varepsilon(h)\rvert\le \sqrt{\frac{1}{2m}\log\frac{2k}{\delta}}

如果我们定义h∗=argminh∈Hε(h)h^*=\arg\min_{h\in \mathcal{H}}\varepsilon(h),则根据一致收敛性质∣ε(hi)−ε^(hi)∣≤γ\lvert\varepsilon(h_i)-\hat\varepsilon(h_i)\rvert\le \gamma可得:

ε(h^)≤ε^(h^)+γ

\varepsilon(\hat h)\le \hat\varepsilon(\hat h)+\gamma

因为h^\hat h已经是ε^(h)\hat \varepsilon(h)中最小的一个,因此ε^(h^)≤ε^(h)\hat\varepsilon(\hat h)\le \hat\varepsilon(h)对所有都是成立的,其中当然包括h∗h^*,即ε^(h^)≤ε^(h∗)\hat\varepsilon(\hat h)\le \hat\varepsilon(h^*)。因此,上式可改为:

ε(h^)≤ε^(h∗)+γ

\varepsilon(\hat h)\le \hat\varepsilon(h^*)+\gamma

根据一致收敛性质,我们还可以得出ε^(h∗)≤ε(h∗)+γ \hat\varepsilon(h^*)\le \varepsilon(h^*)+\gamma,因此,上式继续变形为:

ε(h^)≤ε(h∗)+2γ

\varepsilon(\hat h)\le \varepsilon(h^*)+2\gamma

这个公式表明,作为ERM结果的h^\hat h,比最好的h,至多只差2γ2\gamma。

我们将之前的结果合到一起,可得如下定理:

令∣H∣=k\lvert\mathcal{H}\rvert=k,并固定m,δm,\delta的取值,且一致收敛的概率至少为1−δ1-\delta,则:

ε(h^)≤(minh∈Hε(h))+212mlog2kδ−−−−−−−−−√

\varepsilon(\hat h)\le \left(\min_{h\in \mathcal{H}}\varepsilon(h)\right)+2\sqrt{\frac{1}{2m}\log\frac{2k}{\delta}}

假设我们需要从预测函数类H\mathcal{H}切换到一个更大的预测函数类H′⊇H\mathcal{H'}\supseteq\mathcal{H},则上面公式的第一项只会变得更小,也就是说偏差会变小,但由于k的增加,第二项会变大,也就是方差会变大。

同理,可得以下针对m的定理:

令∣H∣=k\lvert\mathcal{H}\rvert=k,并固定δ,γ\delta,\gamma的取值,为了保证ε(h^)≤(minh∈Hε(h))+2γ\varepsilon(\hat h)\le \left(\min_{h\in \mathcal{H}}\varepsilon(h)\right)+2\gamma的概率至少为1−δ1-\delta,则:

m≥12γ2log2kδ=O(1γ2logkδ)

m\ge \frac{1}{2\gamma^2}\log\frac{2k}{\delta}=O\left(\frac{1}{\gamma^2}\log\frac{k}{\delta}\right)

机器学习(六)——SVM(4)、学习理论相关推荐

  1. 【机器学习】SVM学习(三):线性分类器的求解

    [机器学习]SVM学习(三):线性分类器的求解 2016-10-10 19:56 239人阅读 评论(0) 收藏 举报 本文章已收录于:  机器学习知识库  分类: 机器学习(37)  目录(?)[+ ...

  2. Scikit-Learn 机器学习笔记 -- SVM

    Scikit-Learn 机器学习笔记 – SVM 参考文档: handson-ml import numpy as np# 加载鸢尾花数据集 def load_dataset():from skle ...

  3. 【机器学习】SVM理论与python实践系列

    理论部分: <机器学习--支持向量机SVM之线性模型> <机器学习--支持向量机SVM之非线性模型低维到高维映射> <机器学习--支持向量机SVM之非线性模型原问题与对偶 ...

  4. 数据挖掘机器学习[六]---项目实战金融风控之贷款违约预测

    相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据挖掘机器学习---汽车交易价格预测详细版本[二]{EDA-数据探索性分析} 数据挖掘机器学习 ...

  5. 系统学习机器学习之SVM(三)--Liblinear,LibSVM使用整理,总结

    1.Libsvm与Liblinear区别,简单源码剖析. http://blog.csdn.net/zhzhl202/article/details/7438160 http://blog.csdn. ...

  6. python机器交易_[原创]Python 机器学习之 SVM 预测买卖 -- 基于 BotVS 量化平台

    Python 机器学习之 SVM 预测买卖 Python入门简单策略 sklearn 机器学习库的使用 回测系统自带的库有 numpy pandas TA-Lib scipy statsmodels  ...

  7. 百面机器学习—4.SVM模型基础知识

    文章目录 引言 一.间隔与支持向量 1.什么是线性可分? 2.什么是超平面?什么是最大间隔超平面? 3.什么是支撑向量? 4.SVM最优化问题 二.对偶问题 1.约束条件下的目标函数如何求解最优化问题 ...

  8. 系统学习机器学习之SVM(二)

    实际上,之前:http://blog.csdn.net/app_12062011/article/details/50385522的内容,与这里一样,但是,相对来说,这里介绍了整个原理及推到过程,由于 ...

  9. 系统学习机器学习之SVM(四)--SVM算法总结

     这边文章介绍的相当浅显易懂,写的很好.算是SVM总结吧. 转自:http://www.blogjava.net/zhenandaci/category/31868.html (一)SVM的简介 ...

  10. 机器学习——支持向量机SVM之非线性模型(原问题转化为对偶问题)

    目录 一.复习(原问题.对偶问题.KKT条件.凸函数) 二.将最优化问题标准化为原问题(严格转化为标准形式) 1.原最优化问题 2.标准化后的问题 三.转化为对偶问题(注意变量的对应关系) 四.对对偶 ...

最新文章

  1. python往mysql存入数据_Python操作mysql之插入数据
  2. android 图片与内存加载
  3. 675. Cut Off Trees for Golf Event
  4. 爬取B站免费视频--python代码赶快拿
  5. console vue 打包之后怎么去掉_Vue Cli 3 打包配置--自动忽略 console.log 语句
  6. xamarin之 安装工具介绍
  7. RPN Calculator for mac(RPN计算器)
  8. CRMPM如何帮助企业创造最优销售绩效
  9. 小程序“头脑王者” 因违规被微信下架整改 小程序不可逾越的红线
  10. 英尺、英寸、磅和厘米的换算
  11. vscode 修改注释颜色
  12. 剑指offer——44.翻转单词顺序序列
  13. HDU6438 Buy and Resell
  14. 破壳2周造百万销量,荣耀20系列:三个超级炸弹的“寒潮逆袭”
  15. 双非渣本,他是如何逆袭拿到3W高薪
  16. 什么样的视频号内容更容易火?视频号怎么做推送上热门
  17. STM32CubeMX HAL F103 BKP备份寄存器使用
  18. Typecho博客后台登录页面美化插件
  19. Python Iterator 学习小记
  20. kong翻译_Kong[孔]的中文翻译及英文名意思

热门文章

  1. DNS 服务器地址大全
  2. CG-CTF-Web-MYSQL
  3. Kali Linux2使用基础
  4. Angular实现tab切换
  5. JavaScript面向对象——多继承的实现与理解
  6. TypeScript--es5中的类,继承,静态方法
  7. 小白都能玩的算法day2-数量级、输入和输出
  8. 1周第1课 Linux 认知、安装 Centos7
  9. resteasy经验谈
  10. Invokedynamic:Java的秘密武器