逻辑回归与正则化

1、逻辑回归

其实逻辑回归是从线性回归演化而来的(逻辑回归虽然有回归两字,但其实是做分类任务)。就举吴恩达的肿瘤预测为例,假如肿瘤是这样分布的,横轴为肿瘤大小,纵轴为是否是肿瘤(0或1),那么将样本点画在图上


img_69beee854b7b32bf1ad0baf8ad14f5d1.png

h_\theta(x) >= 0.5时,预测y = 1
h_\theta(x) >= 0.5时,预测y = 1
这里有一点我要讲明白,根据函数图像,为1的点几乎都在函数图形上方,为0的点几乎都在线下方。h_\theta(x) >= 0.5时,预测y = 1指的是点向x轴做垂线与图像相交的地方大于0.5为1,其他的一样。
上面这种看上去不错,但如果有一个异常点的肿瘤大小特别大(所以建模时去除异常点多重要),那么影响函数图像变为蓝色的直线:

img_8fd901c25ed5ea73272622d07a36ca20.png

可以看出大于0.5为1的话,那么就有两个为1的归为不是肿瘤,导致分类错误。
所以引入sigmoid函数:g(z) = \frac{1}{1 + e^{-z}},而z = h_\theta(x),得g(z) = \frac{1}{1 + e^{- h_\theta(x)}}。损失函数也可以用平方差损失函数,但是J(\theta)的图像是一个非凸函数,影响梯度下降寻找最小值。
我们重新定义逻辑回归的损失函数为:J(\theta) = \frac{1}{m}\sum_{i=1}^m Cost(h_\theta(x^{(i)}, y^{(i)})),其中

img_769617d0c76c6e18b850109247d4a844.png

h_\theta(x)Cost(h_\theta(x), y)之间的关系如图,横轴是h_\theta(x),纵轴是Cost(h_\theta(x), y),每个图像都有一个定值1或0(重要!!):

img_1b2eb3fa3c65e864c2aee2d73e7d8de8.png

这样构建的Cost(h_\theta(x), y)函数的特点是:当实际上y = 1h_\theta(x) = 1时,误差为0,当y = 1h_\theta(x) \neq 1时,误差随着h_\theta(x)的变小而变大;当y = 0时类似。
将构建的Cost(h_\theta(x), y)简化如下:
Cost(h_\theta(x), y) = -y \times log(h_\theta(x)) - (1-y) \times (1 - h_\theta(x))
代入J(\theta)得到:
J(\theta) =\frac{1}{m}\sum_{i=1}^m[-y \times log(h_\theta(x)) - (1-y) \times log(1 - h_\theta(x))]
即:J(\theta) =-\frac{1}{m}\sum_{i=1}^m[y^{(i)} \times log(h_\theta(x^(i))) + (1-y^{(i)}) \times log(1 - h_\theta(x^{(i)}))]
然后,我们使用梯度下降来求\theta:

img_b3f452ab4ff41cf0652851eb8c05ff7d.png

求导如下:


img_a83b6637691702f86693835c2f370f76.png

2、正则化

正则化的思想是,\theta前面的参数会使得函数变得很大,如果想要最小化整个函数的话,那么正则化部分的\theta必须要小才能满足要求(可以将\theta压缩到接近0)。一般正则化不对\theta增加惩罚项,只对1到n,只是约定俗成的,就算对0惩罚也没有什么影响。一般我们不知道是哪个参数导致过拟合,所以我们惩罚所有的参数。那么,加了惩罚项的损失函数为(一逻辑回归为例):
J(\theta) =\frac{1}{m}\sum_{i=1}^m[-y^{(i)} \times log(h_\theta(x^{(i)})) - (1-y^{(i)}) \times log(1 - h_\theta(x^{(i)})) + \lambda\sum_{j=1}^n\theta_j^2]
上述模型加的是L2正则化,当然也可以用L1正则化。

经过正则化后,线性回归的代价函数变为:
J(\theta) = \frac{1}{2m}\sum_{i=1}^m [(h_\theta(x^{(i)}) - y^{(i)})^2 + \lambda\sum_{j=1}^n\theta_j^2]
线性回归的梯度下降算法变为:

img_5d8fe9c0ab4946f69f7f0c56062db9db.png

而逻辑回归的代价函数变为:
J(\theta) =\frac{1}{m}\sum_{i=1}^m[-y^{(i)} \times log(h_\theta(x^{(i)})) - (1-y^{(i)}) \times log(1 - h_\theta(x^{(i)})) + \lambda\sum_{j=1}^n\theta_j^2]
梯度下降算法变为:

img_e266b7a459fb826488ca5da48887ba6a.png

两种算法的h_\theta(x)是不一样的,虽然看上去形式一样。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值