【学习笔记】吴恩达机器学习 | 第十章 | 支持向量机

在这里插入图片描述

简要声明


  1. 课程学习相关网址
    1. Bilibili
    2. 网易云课堂
    3. 学习讲义
  2. 由于课程学习内容为英文,文本会采用英文进行内容记录,采用中文进行简要解释。
  3. 本学习笔记单纯是为了能对学到的内容有更深入的理解,如果有错误的地方,恳请包容和指正。
  4. 非常感谢Andrew Ng吴恩达教授的无私奉献!!!

专有名词


Support Vector Machines (SVM)支持向量机Large margin classifiers大间距分类器
Kernels核函数landmark标记

Optimization objective


Alternative view of logistic regression

在这里插入图片描述

在这里插入图片描述

  1. 如果y=1,希望h_θ(x)近似等于1,θTx 远大于0;如果y=0,希望h_θ(x)近似等于0,θTx 远小于0
  2. 支持向量机的Cost_0(z), Cost_1(z)由一条水平直线和倾斜直线组成

Support vector machine

Logistic regression:

min ⁡ θ 1 m ∑ i = 1 m [ y ( i )   l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) )   l o g ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 \min\limits_{\theta}\frac{1}{m}\sum_{i=1}^{m} [y^{(i)}\ log(h_{\theta}(x^{(i)}))+(1-y^{(i)})\ log(1-h_{\theta}(x^{(i)}))] + \frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2 θminm1i=1m[y(i) log(hθ(x(i)))+(1y(i)) log(1hθ(x(i)))]+2mλj=1nθj2

Support vector machine:

min ⁡ θ 1 m ∑ i = 1 m [ y ( i )   c o s t 1 ( θ T x ( i ) ) + ( 1 − y ( i ) )   c o s t 0 ( θ T x ( i ) ) ] + λ 2 m ∑ j = 1 n θ j 2 \min\limits_{\theta}\frac{1}{m}\sum_{i=1}^{m} [y^{(i)}\ cost_1(\theta^Tx^{(i)})+(1-y^{(i)})\ cost_0(\theta^Tx^{(i)})] + \frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2 θminm1i=1m[y(i) cost1(θTx(i))+(1y(i)) cost0(θTx(i))]+2mλj=1nθj2

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_{i=1}^{m} [y^{(i)}\ cost_1(\theta^Tx^{(i)})+(1-y^{(i)})\ cost_0(\theta^Tx^{(i)})] + \frac{1}{2}\sum_{j=1}^n\theta_j^2 θminCi=1m[y(i) cost1(θTx(i))+(1y(i)) cost0(θTx(i))]+21j=1nθj2

h θ ( x ) = { 1 i f   θ T x ≥ 0 0 o t h e r w i s e h_{\theta}(x) = \begin{cases} 1 \qquad if\ \theta^Tx\ge0\\ 0 \qquad otherwise\end{cases} hθ(x)={1if θTx00otherwise

  1. 用cost_1(z)和cost_0(z)代替逻辑回归中的log() →同时乘以m/λ →C=1/λ

SVM Decision Boundary

在这里插入图片描述

  1. SVM 支持向量机 →Large margin classifiers 大间距分类器
  2. 如果y=1,希望θTx≥1;如果y=0,希望θTx≤-1 →代价函数最小化
  3. 相当于在SVM中构建了一个安全因子,一个安全间距

min ⁡ θ   C × 0 + 1 2 ∑ j = 1 n θ j 2 s . t . θ T x ( i ) ≥ 1 i f y ( i ) = 1 θ T x ( i ) ≤ − 1 i f y ( i ) = 0 \min\limits_{\theta} \ C\times0+ \frac{1}{2}\sum_{j=1}^n\theta_j^2 \\ s.t.\quad \theta^Tx^{(i)}\ge1 \quad if \quad y^{(i)}=1 \\\quad\qquad \theta^Tx^{(i)}\le-1 \quad if \quad y^{(i)}=0 θmin C×0+21j=1nθj2s.t.θTx(i)1ify(i)=1θTx(i)1ify(i)=0

在这里插入图片描述

在这里插入图片描述

  1. 决策边界拥有更大的距离(间距margin) →和训练样本的间距更大 →具有鲁棒性(robustness) →分离数据时会尽量用大的间距去分离
  2. 当C非常大的时候SVM会对数据变得敏感,如果C比较小的时候SVM会忽略一些异常数据

The mathematics behind large margin classification

在这里插入图片描述

在这里插入图片描述

  1. 向量内积 →uTv=p*||u||
  2. p(i)是x(i)在向量θ上的映射
  3. 通常θ_0=0 →使决策边界通过原点
  4. 要使得p(i)乘以||θ||(范式)大于等于1或者小于等于-1,目标是使得||θ||足够小,则p(i)要足够大 →支持向量机可以使参数θ的范式变得小得多 →p(i)变大而产生大间距

min ⁡ θ   1 2 ∑ j = 1 n θ j 2 = 1 2 ( θ 1 2 + θ 2 2 + . . . + θ n 2 ) = 1 2 ( θ 1 2 + θ 2 2 + . . . + θ n 2 ) 2 = 1 2 ( ∣ ∣ θ ∣ ∣ ) 2 s . t . θ T x ( i ) = p ( i ) ⋅ ∣ ∣ θ ∣ ∣ ≥ 1 i f y ( i ) = 1 θ T x ( i ) = p ( i ) ⋅ ∣ ∣ θ ∣ ∣ ≤ − 1 i f y ( i ) = 0 \min\limits_{\theta} \ \frac{1}{2}\sum_{j=1}^n\theta_j^2 =\frac{1}{2}(\theta_1^2+\theta_2^2+...+\theta_n^2)=\frac{1}{2}(\sqrt{\theta_1^2+\theta_2^2+...+\theta_n^2})^2 =\frac{1}{2}(||\theta||)^2 \\ s.t.\quad \theta^Tx^{(i)}=p^{(i)}\cdot||\theta||\ge1 \quad if \quad y^{(i)}=1 \\\quad\qquad \theta^Tx^{(i)}=p^{(i)}\cdot||\theta||\le-1 \quad if \quad y^{(i)}=0 θmin 21j=1nθj2=21(θ12+θ22+...+θn2)=21(θ12+θ22+...+θn2 )2=21(∣∣θ∣∣)2s.t.θTx(i)=p(i)∣∣θ∣∣1ify(i)=1θTx(i)=p(i)∣∣θ∣∣1ify(i)=0

在这里插入图片描述

Kernels


Kernel

在这里插入图片描述

  1. 构造新特征f_1, f_2, f_3替代高阶项
  2. 手动选取一些点l(1), l(2), l(3),叫做landmark 标记
  3. 定义特征f_1为一个相似度的度量(度量训练样本x与第一个标记的相似度)
  4. ||x-l(i)||表示点x与标记l之间的欧氏距离
  5. 相似度函数 similarity(x, l(i)) 就是一个核函数 k(x, l(i)) →这里采用高斯核函数
  6. 如果 x ≈ l(i) → f_i ≈ exp(-(02/2σ2)) ≈ 1 →如果x与l相近f接近于1

f i = s i m i l a r i t y ( x , l ( i ) ) = e x p ( − ∣ ∣ x − l ( i ) ∣ ∣ 2 2 σ 2 ) = e x p ( − ∑ j = 1 n ( x j − l j ( i ) ) 2 2 σ 2 ) f_i=similarity(x,l^{(i)})=exp(-\frac{||x-l^{(i)}||^2}{2\sigma^2})=exp(-\frac{\sum_{j=1}^n(x_j-l_j^{(i)})^2}{2\sigma^2}) fi=similarity(x,l(i))=exp(2σ2∣∣xl(i)2)=exp(2σ2j=1n(xjlj(i))2)

在这里插入图片描述

  1. 如果 x 离 l(i) 很远 → f_i ≈ exp(-((很大的数)2/2σ2)) ≈ 0 →如果x与l相远f接近于0
  2. 对于接近标记点 l(i)的点,预测值是1,对于远离标记点 l(i)的点,预测值是0

在这里插入图片描述

SVM with Kernels

  1. Given (x(1), y(1)), (x(2), y(2)), …, (x(m), y(m)), →给定m个训练样本
  2. choose l(1)=x(1), l(2)=x(2), …, l(1)=x(2), →选取与m个训练样本一样的位置作为标记点
  3. Given example x →给定样本x →计算特征 f_i = similarity(x, l(i)) →f是f_i的矩阵(f_0=1)
  4. 给定x(i) →将其映射到f_i(i)= similarity(x(i), l(i))=1 →f_i(i)衡量x(i)与其自身的相似度
  5. 将核函数用于逻辑回归时会变得非常慢

f ∈ R m + 1 , θ ∈ R m + 1 n = m f\in \mathbb{R}^{m+1}, \theta\in \mathbb{R}^{m+1} \\n=m fRm+1,θRm+1n=m

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_{i=1}^{m} [y^{(i)}\ cost_1(\theta^Tf^{(i)})+(1-y^{(i)})\ cost_0(\theta^Tf^{(i)})] + \frac{1}{2}\sum_{j=1}^n\theta_j^2 θminCi=1m[y(i) cost1(θTf(i))+(1y(i)) cost0(θTf(i))]+21j=1nθj2

SVM parameters

  1. C = 1/λ
    1. Large C (small λ): Lower bias, high variance →低偏差高方差
    2. Small C (large λ): Higher bias, low variance →高偏差低方差
  2. σ2
    1. Large σ2 : Features f_i vary more smoothly. Higher bias, lower variance →特征f_i倾向于相对平滑,高偏差低方差
    2. Small σ2 : Features f_i vary less smoothly. Lower bias, high variance →特征f_i变化剧烈不平滑,低偏差高方差

Using an SVM


Using an SVM

  1. Use SVM software package to solve for parameters θ →使用SVM软件包来求解参数
    1. Choice of parameter C →选择参数C
    2. Choice of kernel (similarity function) →选择核函数
      1. No kernel (“linear kernel”) →没有核函数(线性核函数)
      2. Gaussian kernel →高斯核函数 →需要选择σ2
  2. Kernel (similarity) functions
    1. Note: Do perform feature scaling before using the Gaussian kernel →在使用高斯函数之前将特征变量的大小按比例归一化 →特征缩放
function f = kernel (x1,x2)
	f = exp(-(||x1-x2||)^2/(2σ^2))
return
  1. Other choices of kernel
    1. Note: Not all similarity functions similarity(x, l) make valid kernels →不是所有可能提出的相似函数都是有效的核函数
    2. Need to satisfy technical condition called “Mercer’s Theorem” to make sure SVM packages’ optimizations run correctly, and do not diverge →需要满足一个技术条件“默萨尔定理” →确保所有SVM软件包能够用大类的优化方法并从而迅速得到参数θ
    3. Polynomial kernel 多项式核函数 k(x, l) = (xT l+ constant)degree
    4. String kernel 字符串核函数,chi­‐square kernel 卡方核函数,histogram
      intersection kernel 直方相交核函数

Logistic regression vs. SVMs

  1. n = number of features 特征数量,m = number of training examples 训练样本数量
  2. 如果n比m大得多 (n≥m, n=10000, m=10~1000) →使用逻辑回归或者不带核函数的SVM
  3. 如果n很小m大小适中 (n=1~1000, m=10~10000) →使用高斯核函数的SVM
  4. 如果n很小m很大 (n=1~1000, m=10~50000+) →手动创建更多特征变量然后使用逻辑回归或者不带核函数的SVM
  5. Neural network likely to work well for most of these settings, but may be slower to train →神经网络对于这些情况可能会非常有效,但是训练起来会特别慢
  6. SVM具有的优化问题是一种凸优化问题 →好的SVM优化软件包总是会找到全局最小值

吴恩达教授语录


  • “But as I briefly mentioned in an earlier video, I really do not recommend writing your own software to solve for the parameter’s theta yourself.”
  • “When I face a machine learning problem, sometimes its actually just not clear whether that’s the best algorithm to use.”
  • “The algorithm does matter but what often matters even more is things like, how much data do you have. And how skilled are you, how good are you at doing error analysis and debugging learning algorithms, figuring out how to design new features and figuring out what other features to give you learning algorithms and so on.”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chency.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值