支持向量机一:线性可分问题

支持向量机(SVM)是一种二类分类模型,通过定义在特征空间上的间隔最大分类器从而有别于感知机模型。

线性可分支持向量机与硬间隔最大化

给定一个特征空间上的训练集:

T={(x1,y1),(x2,y2),,(xN,yN)}T = \{(x_1, y_1), (x_2, y_2), \cdots, (x_N, y_N)\}

其中 xiRnx_i \in \textbf{R}^nyi{+1,1}y_i \in \{+1, -1\}

若训练集是线性可分的,我们就可以找到一个分离超平面将所有的实例点分到不同的类去。在之前的感知机的学习中,我们可以通过迭代调整的方式得到最终的分离超平面,但是对于不同的初值,得到的结果是不唯一的。我们通过定义函数间隔与几何间隔的方式来找出最好的分离平面。

函数间隔与几何间隔

对于一个分离超平面 0=ωx+b0 = \omega \cdot x + bωxi+b|\omega \cdot x_i + b| 是实例 xix_i 到分离平面的距离。一般来说,距离越大说明分类的可信度越高,因此函数间隔就可以定义为:

γ^i=yi(ωxi+b)\hat{\gamma}_i = y_i(\omega \cdot x_i + b)

而超平面关于训练集 TT 的函数间隔就定义为 γ^=minγ^i\hat{\gamma} = \min \hat{\gamma}_i ,通过所有实例到超平面距离的最小值来衡量该分类器的好坏

对于距离进行规范化即 γ=γ^ω\gamma = \dfrac{\hat{\gamma}}{||\omega||} ,就得到了几何间隔,避免了因为系数的等比例放大导致的尺度不统一。

间隔最大化

前面讲了,支持向量机模型不同于感知机的最大特点就在于选择了几何间隔最大化的超分离平面,可以将我们的分类问题,转化为如下的优化问题:

maxω,bγs.t.yiωxi+bωγ,i=1,2,,N\begin{align*} \max_{\omega, b} \quad & \gamma\\ s.t. \quad & y_i\frac{\omega \cdot x_i + b}{||\omega||} \geq \gamma, \quad i = 1, 2, \cdots, N \end{align*}

由于 γ^=ωγ\hat{\gamma} = ||\omega||\gamma,并且函数间隔的实际取值并不影响优化结果,不妨取 γ^=1\hat{\gamma} = 1 ,那么原优化问题可以转化为:

maxω,b1ωs.t.yi(ωxi+b)1,i=1,2,,N\begin{align*} \max_{\omega, b} \quad & \frac{1}{||\omega||}\\ s.t. \quad & y_i(\omega \cdot x_i + b) \geq 1, \quad i = 1, 2, \cdots, N \end{align*}

也等价于

minω,b12ω2s.t.yi(ωxi+b)1,i=1,2,,N\begin{align*} \min_{\omega, b} \quad & \frac{1}{2}||\omega||^2\\ s.t. \quad & y_i(\omega \cdot x_i + b) \geq 1, \quad i = 1, 2, \cdots, N \end{align*}

这样,我们就将原问题转化为了一个凸优化问题。求解得到 ω,b\omega^*, b^*

对偶问题的优化

应用拉格朗日对偶性来解决最优化问题,由于原始问题是凸优化问题,因此可以通过对偶问题来得到原始问题的最优解。

首先给出拉格朗日函数:

L(ω,b,α)=12ω2+i=1Nαii=1Nαiyi(ωxi+b)L(\omega, b, \alpha) = \frac{1}{2}||\omega||^2 + \sum_{i = 1}^N\alpha_i - \sum_{i = 1}^N\alpha_iy_i(\omega \cdot x_i + b)

其中拉格朗日乘子 αi0\alpha_i \geq 0

原始问题的对偶问题即为;

maxαminω,bL(ω,b,α)s.t.αi0\begin{align*} \max_{\alpha}\min_{\omega, b} \quad & L(\omega, b, \alpha)\\ s.t. \quad & \alpha_i \geq0 \end{align*}

首先求 minω,bL(ω,b,α)\min_{\omega, b} L(\omega, b, \alpha)。通过求梯度为零的点,得到:

ωi=1Nαiyixi=0i=1Nαiyi=0\begin{split} \omega - \sum_{i = 1}^N\alpha_iy_ix_i = 0\\ -\sum_{i = 1}^N\alpha_iy_i = 0 \end{split}

代回可以得到:

minω,bL(ω,b,α)=12i=1Nj=1Nαiαjyiyjxixj+i=1Nαii=1Nj=1Nαiαjyiyjxixj=i=1Nαi12i=1Nj=1Nαiαjyiyjxixj\begin{split} \min_{\omega, b} L(\omega, b, \alpha) & = \frac{1}{2}\sum_{i = 1}^N\sum_{j = 1}^N\alpha_i\alpha_jy_iy_jx_i \cdot x_j + \sum_{i = 1}^N\alpha_i - \sum_{i = 1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i \cdot x_j\\ & = \sum_{i = 1}^N\alpha_i - \frac{1}{2}\sum_{i = 1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i \cdot x_j \end{split}

则对偶问题被转化成:

minα12i=1Nj=1Nαiαjyiyjxixji=1Nαis.t.i=1Nαiyi=0αi0,i=1,2,,N\begin{split} \min_{\alpha} \quad & \frac{1}{2}\sum_{i = 1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i \cdot x_j - \sum_{i = 1}^N\alpha_i\\ s.t. \quad & \sum_{i = 1}^N\alpha_iy_i = 0\\ & \alpha_i \geq 0, \quad i = 1, 2, \cdots, N \end{split}

处理该优化问题,得到对偶问题的可行解 α\alpha^* ,对于原始问题的可行解:

ω=i=1Nαiyixi\omega^* = \sum_{i = 1}^N\alpha_iy_ix_i

由于 α\alpha^* 必然不是 00 (显然最优解存在 αj>0\alpha_j > 0,由KTKT条件 yj(ωxj+b)1=0y_j(\omega^* \cdot x_j + b^*) - 1 = 0,可以得到:

b=yji=1Nαiyixixjb^* = y_j - \sum_{i = 1}^N\alpha_iy_ix_i \cdot x_j

支持向量与间隔

我们发现,在模型训练的过程中,最终只有 αi>0\alpha_i > 0 的实例点决定了分离超平面。在可视化图形中,这些间隔点是距离分离超平面最近的几个实例点,称为支持向量,而由经过支持向量且平行于分离超平面的两个超平面之间构成的空间就称之为该模型的间隔。

软间隔最大化

以上构建的模型建立在训练集线性可分的基础上,但线性可分实际上是一个很强的前提,因此考虑引入一个对于间隔的松弛变量 ζ\zeta,对于两个类别中的极端个例,允许出现在间隔中,甚至被误分类。

引入松弛变量,原始问题就变为:

min12ω2+Ci=1Nζis.t.yi(ωxi+b)1ζi,i=1,2,,Nζi0,i=1,2,,N\begin{split} \min \quad & \frac{1}{2}||\omega||^2 + C\sum_{i = 1}^N\zeta_i\\ \text{s.t.} \quad & y_i(\omega\cdot x_i + b) \geq 1 - \zeta_i, \quad i = 1, 2, \cdots, N \\ & \zeta_i \geq 0, i = 1, 2, \cdots, N \end{split}

在这个问题中 CC 是惩罚参数,即模型允许存在误分类,但是目标函数中会对误分类进行惩罚,最终通过最优化达到平衡。

对偶问题

该问题求对偶问题的方式基本上是一致的,首先得到原始的对偶问题:

maxα,βminω,b,ζ12ω2+Ci=1Nζi+i=1Nαi(1ζi)i=1Nαiyi(ωxi+b)i=1Nβiζis.t.αi0,βi0\begin{split} \max_{\alpha, \beta} \min_{\omega, b, \zeta} \quad & \frac{1}{2}||\omega||^2 + C\sum_{i = 1}^N\zeta_i + \sum_{i = 1}^N \alpha_i(1 - \zeta_i) - \sum_{i = 1}^N\alpha_iy_i(\omega \cdot x_i + b) - \sum_{i = 1}^N \beta_i\zeta_i\\ \text{s.t.} \quad & \alpha_i \geq 0, \beta_i \geq 0 \end{split}

首先求极小值:

ωL=ωi=1Nαiyixi=0bL=i=1Nαiyi=0ζiL=Cαiβi=0\begin{split} \nabla_\omega L & = \omega - \sum_{i = 1}^N \alpha_iy_ix_i = 0\\ \nabla_b L & = -\sum_{i = 1}^N\alpha_iy_i = 0\\ \nabla_{\zeta_i} L & = C - \alpha_i - \beta_i= 0 \end{split}

代回可以将原问题转化为:

minα12i=1Nj=1Nαiαjyiyjxixji=1Nαis.t.i=1Nαiyi=0C=αi+βiαi0,βi0,i=1,2,,N\begin{split} \min_{\alpha} \quad & \frac{1}{2}\sum_{i = 1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i \cdot x_j - \sum_{i = 1}^N\alpha_i\\ \text{s.t.} \quad & \sum_{i = 1}^N\alpha_iy_i = 0\\ & C = \alpha_i + \beta_i\\ & \alpha_i \geq 0, \beta_i \geq 0, i = 1, 2, \cdots, N \end{split}

通过等式约束消去 βi\beta_i 来约束变量可以得到

minα12i=1Nj=1Nαiαjyiyjxixji=1Nαis.t.i=1Nαiyi=00αiC\begin{split} \min_{\alpha} \quad & \frac{1}{2}\sum_{i = 1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i \cdot x_j - \sum_{i = 1}^N\alpha_i\\ \text{s.t.} \quad & \sum_{i = 1}^N\alpha_iy_i = 0\\ & 0 \leq \alpha_i \leq C \end{split}

通过解这个最优化问题,得到 α\alpha^* ,以线性可分问题类似的方式可以得到 ω,b\omega^*, b^*