感知机模型
SVM模型
- 目标:寻找具有最大间隔的超平面,从而将 m 个样本分类。
- m 个样本:
- 每个样本具有n维特征 :x(0)i,x(1)i,...,x(n)i
- 每个样本具有一个输出:y
- E.g:
(x(0)1,x(1)1,...,x(n)1,y)
- 超平面模型:θ0+θ1x1+θ2x2+...+θnxn=0
- 一般来说会假定x0=1 ,超平面模型变成:θ0x0+θ1x1+θ2x2+...+θnxn=0
对于任意样本点(xi,yi), 满足约束条件:yi(wTxi+b)≥0
- 坏点:不满足约束条件的点。对于坏点,添加惩罚项,改变优化目标, 添加 loss function:min12||ω||2+C∑l0/1(yi(wTxi+b)−1)
- 坏点:不满足约束条件的点。对于坏点,添加惩罚项,改变优化目标, 添加 loss function:
经典SVM:将上式中第二部分,
C∑l0/1(yi(wTxi+b)−1),替换为 max(0,1−yi(ωxi+b)),就有了SVM模型:
min12||ω||2+max(0,1−yi(ωxi+b))- SVM模型中以预测值与真实测量值的误差 1−yi(ωxi+b)作为优化目标。
- SVM模型通过学习ω和 b 使得误差最小。
二分类SVM:
二分类模型:
{ωTxi+b≥0→y=+1ωTxi+b<0→y=−1 通过定义margin Δ 来进行优化二分类SVM:
{ωTxi+b≥Δ→y=+1ωTxi+b<Δ→y=−1
yi(ωTxi+b)≥Δ: 当样本不满足该条件时,就会产生loss定义loss function: max(0,Δ−yi(ωTxi+b))
loss function 满足约束:yi(ωTxi+b)≤0
当我们对loss function 加上正则项: C2||ω||2 , 就得到了二分类SVM的数学模型:
C2||ω||2+max(0,Δ−yi(ωTxi+b))对上面的SVM模型使用梯度下降进行优化就可以得到 ω , b。
SMO算法
背景:使用SVM算法,不但计算量很大而且效率很低,SMO算法将SVM拆分成求解一系列小问题,提高了效率并降低了计算量。
目标:找出一系列
α , 通过 α 求出 ω , b原理:为了确保约束条件(∑αy(i)=0)成立, 每次循环会找出一对α,通过增大其中一个并且减小另一个进行优化
算法模型:
W(α)=∑i=1n−12∑i=1n∑j=1nαiαjyiyjxTixj- 约束条件:{∑ni=1αiyi=00≤αi≤C
- 目标:在满足约束条件的情况下求 maxW(α)
- where α=[α1,α2,...,αn]
- 由于α, y 要满足约束条件
∑ni=1αiyi=0 , 所以将 α 成对进行训练,即选择α1,α2, 固定其余α。 - 推导过程如下:
α1y1+α2y2=−∑i=3nαiyi=ξξ为实数将α1=(ξ−α2y2)y1代入W(α)中得到:
W(α2)=W((ξ−α2y2)y1,α2,α3,...,αn)⟹W(α2)=aα22+bα2+C通过计算∂W∂α2取得满足条件H≥α2≥L的估计值α∗2
当y1,y2同号时
{L=max(0,α1+α2−C)H=min(C,α2+α1)当y1,y2异号时
{L=max(0,α2−α1)H=min(C,C+α2−α1)
核函数:
- 目的:将低纬度中线性不可分的数据映射到高纬度,从而实现线性可分。
- 分类:Sigmoid核,线性核,多项式核,高斯核……
方法:通过计算给定数据的内积,将非线性数据从低纬度的输入空间映射到高纬度的特征空间
- 高斯核:K(x1,x2)=exp(−||x1−x2||22σ2)
σ: 达到率,即函数值跌落到 0 的速度参数。在梯度计算中,作为步长。 - 多项式核:K(x1,x2)=(⟨x1,x2⟩+R)d
⟨x1,x2⟩: x1,x2的内积
R: 预先指定的实数
d: 低纬度空间的维数
- 高斯核:K(x1,x2)=exp(−||x1−x2||22σ2)