SVM(面试准备)

2020-02-26  本文已影响0人  单调不减

1、手推SVM

整体思路:

变形得到:
\begin{equation*} \begin{array} \text{ min} &\frac{1}{2}{||w||}^2 \\ \text{s.t.} &y_i(wx_i+b) - 1 \ge 0\\ \end{array} \end{equation*}

即:

\begin{aligned} \min_{\alpha}&\ \ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i \cdot x_j)-\sum_{i=1}^N \alpha_i \\ s.t.&\ \ \sum_{i=1}^{N}\alpha_i y_i = 0 \\ &\ \ \alpha_i \ge 0 \\ \end{aligned}

求解此规划得到\alpha^*=(\alpha^*_1,\alpha^*_2,\dots,\alpha^*_N)^T

(1) 原始可行(满足约束):
y_i(w^* \cdot x_i+b^*)-1\ge 0

(2) 对偶可行(满足约束):
\alpha^*\ge 0

(3) 原始内层最优:
\alpha_i[y_i(w^* \cdot x_i+b^*)-1]=0

(4) 对偶内层最优:
\begin{aligned} &w^* - \sum_{ I=1 }^N \alpha^*_i y_i x_i=0 \\ &\sum_{ I=1 }^{N}\alpha_i y_i = 0 \\ \end{aligned}

找到任意\alpha^*_j>0(必定存在),由(3)可得:
y_j(w^* \cdot x_j+b^*)-1=0

两边同乘y_j可得:
(w^* \cdot x_j+b^*)-y_j=0

故:
\begin{aligned} b^* & =y_j-w^* \cdot x_j \\ & = y_j-\sum_{i=1}^N \alpha^*_i y_i (x_i \cdot x_j) \\ \end{aligned}

即约束由\alpha_i\ge 0变成0 \le \alpha_i \le C

相应的,在求解b^*的时候要选择满足0<\alpha^*_j<C\alpha_j^*

K(x_i,x_j)=\phi(x_i)\cdot \phi(x_j)

这样一来,就可以不显示的写出映射的高维空间而达成同样的目的,既实现了非线性又简化了计算。

2、简述SVM 原理

SVM 是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。

3、SVM 为什么采用间隔最大化

当训练数据线性可分时,存在无穷多个分离超平面可以将两类数据正确分开。

线性可分支持向量机利用间隔最大化求得最优分离超平面,间隔最大化能够使得样本都尽量远离分类决策超平面,这会使得模型的结构风险最小,降低模型对数据扰动的敏感性,也就意味着模型有着更强的泛化能力。

4、为什么要将求解 SVM 的原始问题转换为其对偶问题

5、为什么 SVM 要引入核函数

当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

因为特征空间维数可能很高,甚至可能是无穷维,因此直接计算ϕ(x)·ϕ(y)是困难的。相反,直接计算K(x,y)比较容易(即直接在原来的低维空间中进行计算,而不需要显式地写出映射后的结果)。

核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果

除了 SVM 之外,任何将计算表示为数据点的内积的方法,都可以使用核方法进行非线性扩展。

P.S.核函数还有一个特点:对于给定的核函数,高维空间H和映射函数ϕ的取法并不唯一,也就是说,某种程度上,一个核函数的选取可以同时检验多种特征映射的效果。

6、列举几个常用核函数并简要说明优缺点

最常用的是Linear核与RBF核。

  1. Linear核:主要用于线性可分的情形。参数少,速度快,对于一般数据,分类效果已经很理想了。

  2. RBF核:RBF核函数可以将一个样本映射到一个更高维的空间,主要用于线性不可分的情形。参数多,分类结果非常依赖于参数。

  3. 核函数参数的多少直接影响函数的复杂程度。多项式函数参数数量较多,且多项式的阶数比较高时,核矩阵的元素值将趋于无穷大或无穷小,造成数值计算上的困难。与多项式核函数相比,RBF需要确定的参数要少,且会减少数值计算的困难。

具体实践中,如果特征维数很高,往往线性可分(SVM解决非线性分类问题的思路就是将样本映射到更高维的特征空间中),可以采用线性核函数;如果样本数量很多,由于求解最优化问题的时候,目标函数涉及两两样本计算内积,使用高斯核等非线性核函数计算量会明显大于线性核,所以可以手动添加一些特征,使得线性可分,然后再使用线性核函数;如果不满足上述两点,即特征维数少,样本数量正常,可以使用高斯核函数。

7、为什么 SVM 对缺失值敏感,对异常值不敏感

8、SVM 如何处理多分类问题

一对多,就是对每个类都训练出一个分类器,由于 SVM 是二分类,所以将此而分类器的两类设定为目标类为一类,其余类为另外一类。这样针对k个类可以训练出k个分类器,训练时第i个分类器时取训练集中第i类为正类,其余类别点为负类进行训练。判别时,输入信号分别经过k个分类机共得到k个输出值f_i(x)=sgn(g_i(x)),若只有一个+1出现,则其对应类别为输入信号类别;若输出不只一个+1(不只一类声称它属于自己),或者没有一个输出为+1(即没有一个类声称它属于自己),则比较g_i(x)输出值,最大者对应类别为输入的类别。这种方法的优点是,对k类问题,只需要训练k个二分类支持向量机;缺点是,各分类器训练时样本类别不均衡,bias 比较高。

一对一,就是针对任意两个类训练出一个分类器,如果有k类,一共训练出C_k^2个分类器,这样当有一个新的样本要来的时候,用这C_k^2个分类器来测试,每当被判定属于某一类的时候,该类票数就加一,最后票数最多的类别被认定为该样本所属的类。

9、SVM 怎么防止过拟合

软间隔的支持向量机中,我们为各个样本引入的松弛变量\epsilon_i就是用来防止过拟合的。

10、SVM 的优缺点

优点:

缺点:

上一篇 下一篇

猜你喜欢

热点阅读