Logistic回归

2018-09-13  本文已影响0人  摩卡坐标

一、简介
logistic回归是经典的二分类方法,其主要思想是: 根据现有数据对分类边界线(Decision Boundary)建立回归公式,以此进行分类。

二、重要概念

  1. logistic分布:
    (1)概率分布函数F(x)和概率密度函数f(x)如下:
        F(x) = P(X<=x) = \frac{1}{1+e^{-z}}
         f(x) = \frac{1}{\gamma(1+e^{-z})}
    (2)logistic分布的图:
    QQ20180913-0.JPG
    可以看出来F(x)的概率分布(右图)和sigmoid函数是类似的,而f(x)(左图)是正态分布的。

2.logistic“回归”
    假设现在有一些数据点,我们用一条直线对这些点进行拟合(这条直线称为最佳拟合直线),这个拟合的过程就叫做回归,就是{z=w^T*x}这条直线。而实际上,我们是对z加一个非线性函数sigmoid,用来做分类。

  1. 二值型输出分类函数Sigmoid
    我们想要的函数应该是: 能接受所有的输入然后预测出类别。例如,在两个类的情况下,上述函数输出 0 或 1.或许你之前接触过具有这种性质的函数,该函数称为 海维塞得阶跃函数(Heaviside step function),或者直接称为 单位阶跃函数。然而,海维塞得阶跃函数的问题在于: 该函数在跳跃点上从 0 瞬间跳跃到 1,这个瞬间跳跃过程有时很难处理。幸好,另一个函数也有类似的性质(可以输出 0 或者 1 的性质),且数学上更易处理,这就是 Sigmoid 函数,又叫logistic函数。sigmoid的计算公式和函数图像如下:


    image.png
image.png
至于为什么要用sigmoid函数作为激活函数呢?
参考这篇文章:
https://blog.csdn.net/wolfblood_zzx/article/details/74453434

4.logistic的代价函数(cost function)
为什么不用平方损失函数,而选择交叉熵(极大似然估计的方法)呢?
(1)平方损失函数


image.png

这里的h函数就是sigmoid函数。
这里的平方损失函数J 是非凸的,而非凸函数存在多个局部最优值,不利于梯度下降法求全局最有值。
如下是凸函数和非凸函数:


image.png
(2)所以用交叉熵表示的损失函数
image.png
这是用log极大似然估计推导出来的公式。
这个J函数的凸函数,函数图像如下:
image.png
image.png

可以看出来,图中只有一个局部最优解。

  1. 梯度下降和梯度上升
    这两个是说的一个东西,梯度下降是说对于cost function,我们用地图下降求最小值;而对于objective function 我们用梯度上升求最大似然估计的值。
    梯度下降的思想:
    要找到某函数的最小值,最好的方法是沿着该函数的梯度方向探寻。梯度分为梯度的方向和数值,梯度的方向是由导数决定,而数值是由步长和导数共同决定的。
    参数迭代的公式如下:


    image.png

6.局部最优现象


image.png

上图表示参数 θ 与误差函数 J(θ) 的关系图 (这里的误差函数是损失函数,所以我们要最小化损失函数),红色的部分是表示 J(θ) 有着比较高的取值,我们需要的是,能够让 J(θ) 的值尽量的低。也就是深蓝色的部分。θ0,θ1 表示 θ 向量的两个维度(此处的θ0,θ1是x0和x1的系数,也对应的是上文w0和w1)。

可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,如我们上图中的右边的梯度下降曲线,描述的是最终到达一个局部最小点,这是我们重新选择了一个初始点得到的。

看来我们这个算法将会在很大的程度上被初始点的选择影响而陷入局部最小点

参考文献:

  1. 机器学习实战:
    https://github.com/apachecn/AiLearning/blob/dev/blog/ml/5.Logistic%E5%9B%9E%E5%BD%92.md

  2. 吴恩达机器学习课程
    https://study.163.com/course/courseMain.htm?courseId=1004570029

3.统计学习方法

上一篇下一篇

猜你喜欢

热点阅读