百面机器学习—模型基础知识

时间:2024-10-26 07:14:10

文章目录

    • 引言
    • 一、间隔与支持向量
      • 1.什么是线性可分?
      • 2.什么是超平面?什么是最大间隔超平面?
      • 3.什么是支撑向量?
      • 最优化问题
    • 二、对偶问题
      • 1.约束条件下的目标函数如何求解最优化问题?
      • 2. 怎么理解对偶问题?
      • 3.什么是对偶问题?
      • 约束条件
      • 5.求解硬间隔SVM最优化问题推导
    • 三、软间隔
      • 1.软间隔的提出是解决什么问题的?
      • 2.软间隔后线性SVM的最优化问题是什么?
      • 3.求解软间隔SVM最优化问题推导
    • 四、核函数
      • 1.线性不可分问题怎么解决?
      • 2.什么是非线性SVM?
      • 3.为什么要有核函数?
      • 4. 有了核函数,如何求解非线性SVM问题?
      • 5.一些常用的核函数
    • 五、SMO算法在SVM中的应用


插眼:

  • 百面机器学习—1.特征工程
  • 百面机器学习—2. 特征工程与模型评估要点总结
  • 百面机器学习—3.逻辑回归与决策树要点总结
  • 百面机器学习—模型基础知识
  • 百面机器学习—要点总结
  • 百面机器学习—与LDA要点总结
  • 百面机器学习—均值算法、EM算法与高斯混合模型要点总结
  • 百面机器学习—8.概率图模型之HMM模型
  • 百面机器学习—9.前馈神经网络面试问题总结
  • 百面机器学习—10.循环神经网络面试问题总结
  • 百面机器学习—11.集成学习(GBDT、XGBoost)面试问题总结
  • 百面机器学习—12.优化算法

引言

  SVM有三宝:间隔、对偶、核技巧。下面就这三个方面进行讲解。

一、间隔与支持向量

1.什么是线性可分?

  一个超平面可以将两类点完全分开
数学定义:
在这里插入图片描述

2.什么是超平面?什么是最大间隔超平面?

  将 D 0 D_0 D0 D 1 D_1 D1 完全正确地划分开的平面,就是一个超平面。以最大几何间隔把两类样本分开的超平面为最大间隔超平面,即最大化几何间隔
几何间隔:
在这里插入图片描述
最大化几何间隔:
在这里插入图片描述
约束条件:每个训练样本点关于超平面 ( w , b ) (w,b) (w,b) 的几何间隔至少是 γ γ γ

3.什么是支撑向量?

  离超平面最近的点是支撑向量

最优化问题

  SVM想要最优化的是各类样本点到超平面的距离最远(其实也就是找到最大间隔超平面)
在这里插入图片描述

二、对偶问题

1.约束条件下的目标函数如何求解最优化问题?

  上述得到了有约束的目标函数。对于这类型问题,可以使用拉格朗日乘子法进行求解,将原本有约束的优化问题,转化为对拉格朗日函数的无约束优化问题,然后我们对转化后的目标函数求解极值。
在这里插入图片描述

2. 怎么理解对偶问题?

在这里插入图片描述
转化后的式子与原来的拉格朗日函数想表达的是一样的

3.什么是对偶问题?

在这里插入图片描述

上述的拉格朗日函数具有强对偶关系,这个一般不会要求证明。
在这里插入图片描述

约束条件

  以SVM为例,KKT条件为:
在这里插入图片描述

5.求解硬间隔SVM最优化问题推导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、软间隔

1.软间隔的提出是解决什么问题的?

  当训练数据不是完全线性可分时,就需要通过软间隔最大化来学习一个线性分类器
在这里插入图片描述
在这里插入图片描述

2.软间隔后线性SVM的最优化问题是什么?

在这里插入图片描述

3.求解软间隔SVM最优化问题推导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、核函数

1.线性不可分问题怎么解决?

  当训练数据线性不可分时,就需要通过核技巧与软间隔最大化来学习非线性支持向量机。核技巧的基本思想:通过一个非线性变换将输入空间对应于一个特征空间,使得在输入空间的超曲面模型对应于特征空间的超平面模型。即将输入空间的非线性分类问题转化为特征空间的线性分类问题。比如将二维空间线性不可分样本,
在这里插入图片描述
映射到高维空间,让在高维空间中线性可分。
在这里插入图片描述

2.什么是非线性SVM?

  对于在输入空间中线性不可分的样本,将其映射到更高维度的特征空间里,再通过间隔最大化方式,学习得到非线性支持向量机。
在这里插入图片描述

3.为什么要有核函数?

  对于非线性SVM来说,目标函数与之前主要不同的是 ϕ ( x i ) ⋅ ϕ ( x j ) \phi(x_i)·\phi(x_j) ϕ(xi)ϕ(xj)。由于从低维空间映射到高维空间,然后进行点乘,可见这个映射不管是计算量还是存储量都是非常巨大的。但是有了核函数,就不需要作这样的映射,直接使用原样本维度的点进行计算即可。

4. 有了核函数,如何求解非线性SVM问题?

  有了核函数之后,非线性问题重新转变成了线性问题,和之前求解过程一样,先根据对偶函数求解 λ \lambda λ,然后根据 λ \lambda λ求解w,再根据支撑向量( λ i > 0 \lambda_{i}>0 λi>0)求解b即可。其实,核函数并不是只有在非线性SVM中用到,只要涉及到向量间的点乘,都可以用到核函数。

5.一些常用的核函数

在这里插入图片描述

五、SMO算法在SVM中的应用

可参考机器学习算法实践-SVM中的SMO算法


如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!
在这里插入图片描述