从逻辑回归到软边界SVM
令 z = θ T x z = \theta^Tx z=θTx,那么逻辑回归某个样本的损失函数就可以写成
C o s t ( x ) = y ( − l o g 1 1 + e − z ) + ( 1 − y ) ( − l o g ( 1 − 1 1 + e − z ) ) + 1 2 ∑ j = 1 n θ j 2 . Cost(x)=y(-log\frac{1}{1+e^{-z}})+(1-y)(-log(1-\frac{1}{1+e^{-z}}))+ \frac{1}{2}\sum_{j=1}^n\theta_j^2. Cost(x)=y(−log1+e−z1)+(1−y)(−log(1−1+e−z1))+21j=1∑nθj2.
这里用的其实就是交叉熵损失函数。当分类为 y = 1 y=1 y=1时,该损失函数就是 − l o g 1 1 + e − z -log\frac{1}{1+e^{-z}} −log1+e−z1,当 y = 0 y=0 y=0 时,损失函数是 − l o g ( 1 − 1 1 + e − z ) -log(1-\frac{1}{1+e^{-z}}) −log(1−1+e−z1),对应的函数如下图两条曲线所示。现在我们将逻辑回归的代价函数做一些修改,以 y = 1 y=1 y=1的曲线为例,将函数替换成如下图左图的粉色折线所示的函数,可以看出在0附近这两个函数很相近。我们用修改后的代价函数 c o s t 1 ( z ) cost_1(z) cost1(z) 代替原来逻辑回归 y = 1 y=1 y=1 时的代价函数,用 c o s t 0 ( z ) cost_0(z) cost0(z) 表示替代逻辑回归 y = 0 y=0 y=0 时的代价函数的函数。令 h θ ( x ) = 1 1 + e − θ T x h_\theta(x) = \frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+e−θTx1,经过变换后
m i n θ C ∑ i = 1 m [ y ( i ) c o s t 1 ( θ T x ( i ) ) + ( 1 − y ( i ) ) c o s t 0 ( θ T x ( i ) ) ] + 1 2 ∑ j = 1 n θ j 2 . min_\theta C \sum_{i=1}^m [y^{(i)}cost_1(\theta^Tx^{(i)}) + (1-y^{(i)})cost_0(\theta^Tx^{(i)}) ] + \frac{1}{2}\sum_{j=1}^n\theta_j^2 . minθCi=1∑m[y(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i))]+21j=1∑nθj2.
观察 y ( i ) c o s t 1 ( θ T x ( i ) ) y^{(i)}cost_1(\theta^Tx^{(i)}) y(i)cost1(θTx(i))可以发现小于1的直线斜率相当于软边界SVM里法向量的长度,即超过边界的单位惩罚,于是上面损失函数其实就是软边界SVM的损失函数。可以发现软边界SVM和逻辑回归损失函数其实在接近0时是非常相近的。