深度学习深度学习-推荐系统-CV-NLP机器学习之TensorFlow

SVM(2)

2019-11-20  本文已影响0人  zidea
svm_07.jpg

点到直线距离

这里我们来看一看点(x_0,y_0)Ax + By + C = 0直线的距离,点到直线距离公式是不是初中的知识点已经不记得了。

f(x_0,y_0) = \frac{|Ax_0 + By_0 + C|}{\sqrt{A^2 + B^2}}
对公式进行化简,
\frac{A}{\sqrt{A^2 + B^2}} x_0 + \frac{B}{\sqrt{A^2 + B^2}} y_0 + \frac{C}{\sqrt{A^2 + B^2}}
其实点到直线方程就可以写出这个样子
A\prime x_0 + B \prime y_0 + C \prime
利用我们在前面学到直线表达式,就会得到
(A\prime + B \prime ) \cdot \left( x_0,y_0 \right)^T+ C
也就是 \vec{w}^T \vec{x} + b,不也就是一条直线那么,也就是将点到直线的距离直线,扩展到 n 维,w 为直线法线的方向然后我们对
(w_1,w_2, \dots w_n)
向量的模如下
||w||_2 = (w_1,w_2, \dots w_n) \cdot (w_1,w_2, \dots w_n)^T

N = \{(x_1,y_1),(x_1,y_1),\dots ,(x_n,y_n) \}
x_i \in \mathbb{R}

f(x,w,b) = 0 表示直线,假设已知 w 和 b 那么我们就得到一条直线

\frac{w x^{i} + b }{||w||} y^{i}
这是所有样本到分割平面距离,我们接下来就要找距离分割平面最近点
\min_{i=1,2 \dots n} \frac{w x^{i} + b }{||w||} y^{i}
这是表示所有样本点(x_i,y_i)到某一条直线f(w_j,b_j)的最近点,

max( \min_{i=1,2 \dots n} \frac{w_j x_{i} + b_j }{||w||} y^{i} )
到样本最近距离取最大,这就是 SVM 的任务。我们现在用数学公式表达了 SVM 的任务,就是找到距离分割平面点的间隔最大值。

那么我们现在将问题扩展到 n 维特征空间,W^TX + b 这里 W 和 X 是 n 维,
d = \frac{|W^T + b|}{||w||}

y(x) = w^T \Phi(x) + b
这里解释一下\Phi 主要是样本的特征一种映射,将样本x^i(x_1,x_2,x_3) 三维特征映射到下面多维特征向量
\Rightarrow (1,x_1,x_2,x_3,x_1^2,x_2^2,x_3^2,x_1x_2,x_2x_1,x_3x_1,x_3x_2)
将原始特征通过\Phi就变成了更多的特征,对数据的特征进行可能特征映射。做一阶\Phi 就是特征向量本身。
求解分割平面问题其实就是凸二次规划问题

推导目标函数

y(x) = w^T \Phi(x) + b
其中y(x) 表示第i样本估计值,我们知道位于分割面法线方法为y(x)为正那么其真实值为1 ,f(x) 和 y 相乘为正,反之亦然。
\begin{cases} f(x_i) > 0 \Leftrightarrow y_i = 1 \\ f(x_i) < 0 \Leftrightarrow y_i = -1 \end{cases} \Leftrightarrow y_i f(x_i) > 0
下面是点到直线距离公式
\frac{y_i \cdot f(x_i)}{||w||} = \frac{y_i \cdot (w^T \cdot \Phi(x_i) + b)}{||w||}

下面公式 arg 表示对于y_i \cdot (w^T \cdot \Phi(x_i) + b) 这样距离对所有点求最近在求最远。
arg \max_{w,b} \{ \min_i \frac{1}{||w||}[y_i \cdot (w^T \cdot \Phi(x_i) + b)] \}
arg \max_{w,b} \{ \frac{1}{||w||} \min_i [y_i \cdot (w^T \cdot \Phi(x_i) + b)] \}
我们需要求 w 和 b 来满足上面目标函数,怎么优化是比较麻烦,

化简目标函数

其实我们这些支持向量点到分割平面一定是一个参数假设是 C 那么他们距离表示是将这些支持向量点带入上面点到直线方程,因为可以对直线做线性变换除以一个常量 C
\frac{y_i (w^T \Phi(x_i) + b)}{||w||} = C
\frac{y_i (w^T \Phi(x_i) + b)}{C||w||} = 1
w 向量乘上常数 C 后方程是没有变化的。等比例缩放 w 总是可以办到。就可以将距离直线距离取 1。
总可以通过等比缩放w方法,使得函数值满足 |y \ge 1|
y_i (W^T \Phi(x_i) + b ) \ge 1
如果满足上面条件那么y_i (W^T \Phi(x_i) + b )最小值就是 1 将 1 带入上面方程
\arg \max_{w,b} \frac{1}{||w||}
s.t. y_i (W^T \Phi(x_i) + b ) \ge 1 , i = 1,2, \cdots , n

\max_{w,b} \frac{1}{||w||}
s.t. y_i (W^T \Phi(x_i) + b ) \ge 1 , i = 1,2, \cdots , n

\max_{w,b} \frac{1}{||w||} 就等价于 \min_{w,b} ||w||^2

\Rightarrow \min_{w,b} \frac{1}{2}||w||^2
s.t. y_i (W^T \Phi(x_i) + b ) \ge 1 , i = 1,2, \cdots , n

上一篇下一篇

猜你喜欢

热点阅读