SVM 求解使通过建立二次规划原始问题,引入拉格朗日乘子法,然后转换成对偶的形式去求解,这是一种理论非常充实的解法。这里换一种角度来思考,在机器学习领域,一般的做法是经验风险最小化 ERM ,即构建假设函数为输入输出间的映射,然后采用损失函数来衡量模型的优劣。求得使损失最小化的模型即为最优的假设函数,采用不同的损失函数也会得到不同的机器学习算法,比如这里的主题 SVM 采用的是 Hinge Loss ,Logistic Regression 采用的则是负 loglog 损失,
L(Y,P(Y|X))=−logP(Y|X)L(Y,P(Y|X))=−logP(Y|X)
从二项分布的角度来考虑 Logistic 回归:
P(Y=1|X)P(Y=0|X)=11+e−θx=1−P(Y=1|X)P(Y=1|X)=11+e−θxP(Y=0|X)=1−P(Y=1|X)
这里另 z=θTxz=θTx , δδ 为 sigmod 映射,则:
E(z)=−log(δ(z))E(z)=−log(δ(z))
E(z)E(z) 的图形如下图的红色曲线,可见 zz 越接近 1 , E(z)E(z) 的取值越小,即损失越小。反之另:
E(z)=1−log(δ(z))E(z)=1−log(δ(z))
此时得到的图像应该为关于 E(z)E(z) 对称的红色的线(没画出),此时 zz 越接近 -1,E(z)E(z) 的取值越小,即损失越小。
注: 图中绿色的线为 square loss ,蓝色的线为 hinge loss, 红的的线为负 log 损失。
给定数据集 T={(xi,yi)}Ni=1T={(xi,yi)}i=1N , 要用这些数据做一个线性分类器,即求得最优分离超平面 w⋅x+b=0w⋅x+b=0 来将样本分为正负两类,给定数据集后只需求得最优的参数 w,bw,b 即可,为了解决这个问题,首先做出如下线性映射函数
y=w⋅x+by=w⋅x+b
根据经验风险最小化原则, 这里引入二分类的 Hinge Loss :
max(0,1−yi(w⋅xi+b))max(0,1−yi(w⋅xi+b))
上图中对应的 E(z)=max(0,1−z)E(z)=max(0,1−z) ,所以SVM可以通过直接最小化如下损失函数二求得最优的分离超平面:
minw,b∑i=1Nmax(0,1−yi(w⋅xi+b))+λ||w||2minw,b∑i=1Nmax(0,1−yi(w⋅xi+b))+λ||w||2
对于多分类问题,现在要用这些数据做一个 k 类的线性分类器 ,现在需要优化的参数变为 W,bW,b , 此时的 W∈Rk×nW∈Rk×n,为一个k×nk×n 的矩阵,b∈Rkb∈Rk 为一个向量,现在的映射关系如下 :s=Wxi+bs=Wxi+b,此时有 s∈Rks∈Rk ,ss 中的每个分量代表分类器在该类别的得分,样本 xixi 的标签 yi∈Rkyi∈Rk , 这里若 xixi 属于类别 kk ,则 yiyi 中除了第 kk 个分量外其余元素全为 0 ,比如 5 分类问题, xixi 属于第 3 类,则有 yi=0,0,1,0,0yi=0,0,1,0,0 , 用 sjsj 表示得分向量 ss 中的第 jj 个分量 , syisyi 表示对应 yi=1yi=1 的分量,则单个样本多分类的Hinge Loss可表示为:
∑j≠yimax(0,sj−syi+1)∑j≠yimax(0,sj−syi+1)
,
所以 kk 分类线性分类SVM 的 Hinge Loss表示为:
minW,b∑i=1N∑j≠yimax(0,sj−syi+1)+λ∑k∑nW2k,n