理论和代码-线性SVM-理论

约定,$x_{i}^{n}$为第n个样本的第i维

步骤1,模型假设,如何选择模型
$f(x)=\sum\limits_{i}w_{i}x_{i} + b=\begin{bmatrix}w & b\end{bmatrix} \cdot \begin{bmatrix}x \\ 1\end{bmatrix}=\begin{bmatrix}w \\ b\end{bmatrix}^{T} \cdot \begin{bmatrix}x \\ 1\end{bmatrix}=w^{T}x$
新的w,新的x
步骤2,模型评估,如何判断模型好坏,通过定义损失函数
$L=\sum\limits_{n}l(f(x^{n}), \hat{y}^{n}) + \lambda\left \|w\right \|_{2}$
$l(f(x^{n}), \hat{y}^{n})=max(0, 1-f(x^{n})\hat{y}^{n}) $
其中$\hat{y}^n$取+1或-1
步骤3,模型优化,筛选出好的模型,常为梯度下降
$\frac{\partial{l(f(x^{n}), \hat{y}^{n})}}{\partial{f(x^{n})}}$
$=\frac{\partial{max(0, 1-f(x^{n})\hat{y}^{n})}}{\partial{f(x^{n})}}$
$=
\begin{cases}
-\hat{y}^{n} \quad & 1-f(x^{n})\hat{y}^{n}>0 \\
0 \quad & otherwise
\end{cases}
$

$\frac{\partial{f(x^{n})}}{\partial{w_i}}=x_{i}^{n}$

$\frac{\partial{l(f(x^{n}), \hat{y}^{n})}}{\partial{w_i}}$
$=\frac{\partial{l(f(x^{n}), \hat{y}^{n})}}{\partial{f(x^{n})}}\frac{\partial{f(x^{n})}}{\partial{w_i}}$
$=
\begin{cases}
-\hat{y}^{n}x_i^n \quad & 1-f(x^{n})\hat{y}^{n}>0 \\
0 \quad & otherwise
\end{cases}
$
$=-\delta(1-f(x^{n})\hat{y}^{n}>0)\hat{y}^{n}x_{i}^{n}$

$\frac{\partial{L}}{\partial{w_i}}$
$=\sum\limits_{n}-\delta(1-f(x^{n})\hat{y}^{n}>0)\hat{y}^{n}x_{i}^{n} + 2\lambda w_i$

$w_i\leftarrow w_i-\eta \frac{\partial{L}}{\partial{w_i}}$

步骤4,必要的优化,如多模型组合,L1/L2正则化,增加参数输入,随机梯度/自适应梯度,特征归一化等

根据上面的推导可知,如果w初始化为0的向量的话(不考虑归一化部分),每次权重更新都是$x^n$的线性组合,所以最终得到的w也是$x^n$的线性组合,不是所有的$x^n$都会加到w中,加入的这些可以认为是支持向量,于是对应上面步骤,有另外的写法
步骤1,模型假设,如何选择模型
$X=\begin{bmatrix}x^1 & x^2 & \cdots & x^n\end{bmatrix}$
$\alpha=\begin{bmatrix}\alpha_1 \\ \alpha_2 \\ \vdots \\ \alpha_n\end{bmatrix}$
$w=\sum\limits_n x^n\alpha_n=X\alpha$
$f(x)=w^{T}x=\alpha^TX^Tx$
$=\sum\limits_n\alpha_n(x^n.x)$
$=\sum\limits_n\alpha_nK(x^n, x)$
即设$K(x^n, x)=x^n\cdot x$为核方法
步骤2,模型评估,如何判断模型好坏,通过定义损失函数
$L=\sum\limits_{n}l(f(x^{n}), \hat{y}^{n})=\sum\limits_nl(\sum\limits_m\alpha_mK(x^m, x), \hat{y}^n)$
$l(f(x^{n}), \hat{y}^{n})=max(0, 1-f(x^{n})\hat{y}^{n}) $
其中$\hat{y}^n$取+1或-1
步骤3,模型优化,筛选出好的模型,常为梯度下降
$\frac{\partial{l(f(x^{n}), \hat{y}^{n})}}{\partial{f(x^{n})}}$
$=\frac{\partial{max(0, 1-f(x^{n})\hat{y}^{n})}}{\partial{f(x^{n})}}$
$=
\begin{cases}
-\hat{y}^{n} \quad & 1-f(x^{n})\hat{y}^{n}>0 \\
0 \quad & otherwise
\end{cases}
$

$\frac{\partial{f(x^{n})}}{\partial{\alpha_i}}=\frac{\partial{\sum\limits_m\alpha_mK(x^m, x^n)}}{\partial{\alpha_i}}=K(x^i, x^n)$

$\frac{\partial{L}}{\partial{\alpha_i}}$
$=\sum\limits_{n}-\delta(1-f(x^{n})\hat{y}^{n}>0)\hat{y}^{n}K(x^i, x^n)$

$\alpha_i\leftarrow \alpha_i-\eta \frac{\partial{L}}{\partial{\alpha_i}}$

坚持原创技术分享,您的支持将鼓励我继续创作!