美文网首页
逻辑回归与正则化

逻辑回归与正则化

作者: 放开那个BUG | 来源:发表于2018-08-23 11:47 被阅读336次

    1、逻辑回归

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


    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,其他的一样。
    上面这种看上去不错,但如果有一个异常点的肿瘤大小特别大(所以建模时去除异常点多重要),那么影响函数图像变为蓝色的直线:

    可以看出大于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)})),其中

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

    这样构建的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:

    求导如下:


    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]
    线性回归的梯度下降算法变为:

    而逻辑回归的代价函数变为:
    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]
    梯度下降算法变为:

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

    相关文章

      网友评论

          本文标题:逻辑回归与正则化

          本文链接:https://www.haomeiwen.com/subject/yskyiftx.html