Cousera - Machine Learning - 课程笔记 - Week 7

2018年8月版本

Week 7

大间距分类 Large Margin Classification

优化目标 Optimization Objective

  • 支持向量机(Support Vector Machine,SVM):在拟合复杂非线性函数问题上表现比较出众
  • SVM优化目标函数: min ⁡ θ C ∑ i = 1 m y ( i ) c o s t 1 ( θ T x ( i ) ) + ( 1 − y ( i ) ) c o s t 0 ( θ T x ( i ) ) + 1 2 ∑ j = 1 n θ j 2 \min\limits_{\theta}C\sum\limits_{i=1}^{m}y^{(i)}cost_1(\theta^Tx^{(i)})+(1-y^{(i)})cost_0(\theta^Tx^{(i)})+\frac{1}{2}\sum\limits_{j=1}^{n}\theta_j^2 θminCi=1my(i)cost1(θTx(i))+(1y(i))cost0(θTx(i))+21j=1nθj2,两个cost函数分别对应y取1和0是的代价函数取值

大间距 Large Margin

  • SVM的一个性质,我们不仅希望能够大致进行分类,我们还希望能够更加精确的分类,因此上图中的1和-1实际上是一个“安全因子”

  • 我们希望:

    • 任何时候,当 y ( i ) = 1 y^{(i)}=1 y(i)=1,应当有 θ T x ( i ) ≥ 1 \theta^Tx^{(i)} \ge 1 θTx(i)1
    • 任何时候,当 y ( i ) = 0 y^{(i)}=0 y(i)=0,应当有 θ T x ( i ) ≤ − 1 \theta^Tx^{(i)} \le -1 θTx(i)1
  • 大间距:分类边界与样本有更大(最优解应当是最大)的最短距离

  • 假设C非常大,那么上面的代价函数的第一项就会被迫接近于0,因此后一项决定了结果(产生了线性可分内容),但在这种情况下,异常点会更容易影响分类结果

  • 因此,SVM又被称为大间距分类器

  • C和正则化系数的作用相似,可以控制分类结果对数据的拟合效果,二者的关系大致为 C = 1 λ C=\frac{1}{\lambda} C=λ1

核函数 Kernels

  • 针对非线性分类的情形,使用 θ 0 + θ 1 f 1 + θ 2 f 2 + … ≥ 0 \theta_0+\theta_1f_1+\theta_2f_2+\ldots \ge 0 θ0+θ1f1+θ2f2+0的线性表示,其中的f表示成由特征x组成的内容,将非线性问题尝试转换成线性问题

  • 一种特征取法:根据给定的x,依据其与标记 l ( 1 ) , l ( 2 ) , l ( 3 ) l^{(1)},l^{(2)},l^{(3)} l(1),l(2),l(3)的相似度计算新的特征

    • f 1 = s i m i l i a r i t y ( x , l ( 1 ) ) = exp ⁡ ( − ∣ ∣ x − l ( 1 ) ∣ ∣ 2 σ 2 ) f_1=similiarity(x,l^{(1)})=\exp(-\frac{||x-l^{(1)}||}{2\sigma^2}) f1=similiarity(x,l(1))=exp(2σ2xl(1))
    • f 2 = s i m i l i a r i t y ( x , l ( 2 ) ) = exp ⁡ ( − ∣ ∣ x − l ( 2 ) ∣ ∣ 2 σ 2 ) f_2=similiarity(x,l^{(2)})=\exp(-\frac{||x-l^{(2)}||}{2\sigma^2}) f2=similiarity(x,l(2))=exp(2σ2xl(2))
    • f 3 = s i m i l i a r i t y ( x , l ( 3 ) ) = exp ⁡ ( − ∣ ∣ x − l ( 3 ) ∣ ∣ 2 σ 2 f_3=similiarity(x,l^{(3)})=\exp(-\frac{||x-l^{(3)}||}{2\sigma^2} f3=similiarity(x,l(3))=exp(2σ2xl(3)
    • 以上的similarity函数即核函数(高斯核函数),记为 k ( x , l ( i ) ) k(x,l^{(i)}) k(x,l(i))
    • 将问题转化成,根据 θ 0 + θ 1 f 1 + θ 2 f 2 + θ 3 f 3 ≥ 0 \theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3 \ge 0 θ0+θ1f1+θ2f2+θ3f30
  • (忽略0分量,因为其恒等于1)有详细解释 f 1 = s i m i l i a r i t y ( x , l ( 1 ) ) = exp ⁡ ( − ∣ ∣ x − l ( 1 ) ∣ ∣ 2 σ 2 ) = exp ⁡ ( − ∑ j = 1 n ( x j − l j ( 1 ) ) 2 2 σ 2 ) f_1=similiarity(x,l^{(1)})=\exp(-\frac{||x-l^{(1)}||}{2\sigma^2})=\exp(-\frac{\sum\limits_{j=1}^{n}(x_j-l_j^{(1)})^2}{2\sigma^2}) f1=similiarity(x,l(1))=exp(2σ2xl(1))=exp(2σ2j=1n(xjlj(1))2)

    • 如果 x ≈ l ( 1 ) x\approx l^{(1)} xl(1),有 f 1 ≈ 1 f_1 \approx 1 f11
    • 如果 x ≫ l ( 1 ) x \gg l^{(1)} xl(1),有 f 1 ≈ 0 f_1 \approx 0 f10
    • σ决定了从最高点(最高点时, f 1 = 1 f_1=1 f1=1)向其他方向衰减到0的速度,其值越大,衰减速度越慢
  • 一种选择标记点的思路:让每一个样本点都作为一个标记点

  • 有了标记点,我们可以生成对应于 x ( i ) x^{(i)} x(i)的新特征向量 f ( i ) f^{(i)} f(i),就会有新的目标函数:

    • min ⁡ θ C ∑ i = 1 m y ( i ) c o s t 1 ( θ T f ( i ) ) + ( 1 − y ( i ) ) c o s t 0 ( θ T f ( i ) ) + 1 2 ∑ j = 1 n θ j 2 \min\limits_{\theta}C\sum\limits_{i=1}^{m}y^{(i)}cost_1(\theta^Tf^{(i)})+(1-y^{(i)})cost_0(\theta^Tf^{(i)})+\frac{1}{2}\sum\limits_{j=1}^{n}\theta_j^2 θminCi=1my(i)cost1(θTf(i))+(1y(i))cost0(θTf(i))+21j=1nθj2
    • 在上述选择标记点的情形下, n = m n=m n=m
  • 对于第二项,常见的SVM中的写法是 ∑ j θ j 2 = Θ T Θ \sum\limits_j \theta_j^2=\Theta^T\Theta jθj2=ΘTΘ

  • 大多数实现中,使用 Θ T M Θ \Theta^TM\Theta ΘTMΘ替换上面的式子,M是由核函数决定的矩阵,整个过程变成了最小化另一种度量,这使得SVM能够更加有效率地运行

偏差和方差

  • 对于更大的C,对应更小的偏差,更大的方差(即更小的λ)

  • 对于更小的C,对应更大的变差,更小的方差(即更大的λ)

  • 对于更大的 σ 2 \sigma^2 σ2 f i f_i fi变化更加平滑,会有更高的偏差和更小的方差

  • 对于更小的 σ 2 \sigma^2 σ2 f i f_i fi变化更加剧烈,会有更低的偏差和更大的方差

使用SVM

  • 使用现成的软件库实现SVM
  • 需要额外注意的内容:
    • C的选择
    • 核函数的选择
      • 没有核函数/线性核函数(n很大,m很小)
      • 高斯核函数(n很小,m很大)
  • 在使用高斯核函数之前,需要进行特征缩放
  • 需要注意,所有的核函数(不是所有的相似度函数都能作为核函数)都需要满足默塞尔定理(Mercer’s Theorem),确保SVM软件包能够使用大量的优化方法,以很快地得到参数
  • 其他的核函数
    • 多项式核函数 k ( x , l ) = ( x T l + c o n s ) d k(x,l)=(x^Tl+cons)^d k(x,l)=(xTl+cons)d(要求x和l严格非负)
    • 字符串核函数
    • X 2 \Chi^2 X2核函数
    • 直方图交叉核函数

多元分类

  • one-vs-all方法

LR vs. SVMs

  • 已知特征数量n和样本数量m
    • 如果n更大,使用逻辑回归,或者线性核的SVM
    • 如果n比较小,m适中,使用高斯核SVM
    • 如果n比较小,m特别大,就应该使用逻辑回归或者线性核的SVM
  • 逻辑回归和线性核SVM的表现十分相似
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值