从逻辑回归到支持向量机算法

本文详细介绍了如何从Logistic回归逐步演化到支持向量机(SVM)算法,通过调整代价函数,引入正则化参数,并最终形成SVM的独特优化目标。文中探讨了在Logistic回归中正则化参数λ的作用,而在SVM中这一作用由参数C承担,用于平衡训练样本的代价与正则化项。通过对成本函数的修改,明确了在SVM中,当目标变量为1时,预测值z需大于等于1,目标变量为0时,预测值z需小于等于-1,以找到最优解。

        在监督学习中,许多学习算法的性能非常相似,下面介绍一个更加强大的广泛应用于工业界和学术界的算法------支持向量机算法,支持向量机可以理解为从Logistic回归模型一点一点修改而来。

我们先回顾一下Logistic回归的假设函数:

当z → +∞   g(z) → 1

当z → -∞    g(z) → 0

Logistic回归的代价函数:     

J(\theta ) = \frac{1}{m} \sum_{i=1}^{m} [-y^{(i)} log(h_{\theta}(x^{(i)})) - (1-y^{(i)}) log(1-h_{\theta}(x^{(i)})) ] + \frac{ \lambda }{ 2m } \sum_{j=1}^{n} \theta_{j}^{2}

将‘—’负号移进去,上式可以写成:

 J(\theta ) = \frac{1}{m}[ \sum_{i=1}^{m} y^{(i)} (-logh_{\theta}(x^{(i)})) + (1-y^{(i)}) ( -log(1-h_{\theta}(x^{(i)}))) ] + \frac{ \lambda }{ 2m } \sum_{j=1}^{n} \theta_{j}^{2}

下面从Logistic回归的代价函数开始一点一点修改:

第一步、简化Logistic回归代价函数的 \frac{1}{m} 

因  \frac{1}{m} 为常量,且m>0,则m的取值对 求代价函数J最小值时 的最优解θ 无影响:

min(J(\theta ))

= _{ \, \, \, \theta}^{min} \frac{1}{m}[ \sum_{i=1}^{m} y^{(i)} (-logh_{\theta}(x^{(i)})) + (1-y^{(i)}) ( -log(1-h_{\theta}(x^{(i)}))) ] + \frac{ \lambda }{ 2m } \sum_{j=1}^{n} \theta_{j}^{2}---------------------------------(1)

举例说明

假设表达式为  y = \frac{1}{m}(x-1)^{2} + \frac{1}{2m}   

在y存在最小值、并且m > 0的前提下,y取得最小值时的 x 不会随m变化而变化(始终都是 x=1 时取得最小值)。

因此,简化后(1)式变为:

_{ \, \, \, \theta}^{min} b[ \sum_{i=1}^{m} y^{(i)} (-logh_{\theta}(x^{(i)})) + (1-y^{(i)}) ( -log(1-h_{\theta}(x^{(i)}))) ] + \frac{ \lambda }{ 2 } \sum_{j=1}^{n} \theta_{j}^{2}---------------------------------(2)

(2)式的结构可以写为 A + λ×B

第二步、改造 A + λ×B

延续第一步,代价函数可写成 J(θ) = A + λ×B 的结构形式,在Logistic回归中:

A:表示训练样本的代价

λ:表示正则化参数

λ×B:表示正则化项(用来平衡A,防止过拟合)

        Logistic回归中我们是通过设置不同的正则参数 λ 达到优化目的,这样我们就能够权衡对应的项,是使得训练样本拟合的更好(即最小化A),还是保证正则参数足够小;但在支持向量机中,使用一个不同的参数来替换这里使用的 λ ,来权衡这两项,这个参数称为C,于是 J(θ) = A + λ×B 改造为 J(θ) = C×A + B 。

在 Logistic回归中:J(θ) = A + λ×B ,如果给定 λ 一个非常大的值,意味着给予B更大的权重;

在支持向量机中:J(θ) = C×A + B,如果给定C一个非常小的值,意味着给予B更大的权重;

可以理解为无论 A + λ×B 还是 C×A + B 只是以不同的方式来控制这种权衡而已 ,即用一个参数来决定是更关心第一项的优化还是更关心第二项的优化。

因此,改造后(2)式变为:

_{ \, \, \, \theta}^{min} C[ \sum_{i=1}^{m} y^{(i)} (-logh_{\theta}(x^{(i)})) + (1-y^{(i)}) ( -log(1-h_{\theta}(x^{(i)}))) ] + \frac{ 1 }{ 2 } \sum_{j=1}^{n} \theta_{j}^{2}---------------------------------(3)

第三步、根据y的取值进一步修改

针对一个训练样本而言,

Cost = y (-logh_{\theta}(x)) + (1-y) ( -log(1-h_{\theta}(x)))

\because  

->  Cost = y (-log\frac{1}{1+e^{-\theta ^{T}x}}) + (1-y) ( -log(1-\frac{1}{1+e^{-\theta ^{T}x}}))

\because z=\theta ^{T}x

->  Cost = y (-log\frac{1}{1+e^{-z}}) + (1-y) ( -log(1-\frac{1}{1+e^{-z}}))

那么:

我们将上图图像做一点修改,如下图中粉色线所示,得到新的代价函数:

令:

当y=1时,cost记为 cost_{1}^{(z)} 

当y=0时,cost记为 cost_{0}^{(z)} 

则,由上图可知:

当y=1时,如果 z≥1 ,则 cost_{1}^{(z)} = 0

当y=0时,如果 z≤-1 ,则 cost_{0}^{(z)} = 0

即 :

当y=1时, z≥1(即\theta ^{T}x≥1),代价函数可以取得最优解

当y=0时,z≤-1(即\theta ^{T}x≤-1),代价函数可以取得最优解

因此,(3)式变为:

_{ \, \, \, \theta}^{min} C[ \sum_{i=1}^{m} y^{(i)} cost_{1}^{(\theta ^{T}x)} + (1-y^{(i)})cost_{0}^{(\theta ^{T}x)}] + \frac{ 1 }{ 2 } \sum_{j=1}^{n} \theta_{j}^{2}

对应的假设函数:

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值