概述
逻辑回归与线性回归不同,逻辑回归是用来处理classification的问题的,而线性回归则是真正的回归算法。逻辑回归处理的是单一问题的分类,比如是否得了糖尿病,或者是否该用户可以得到信用卡等问题。
我们知道线性回归的表达式比较类似于线性方程,我们可以把逻辑回归看作对线性回归的一种拓展。为了预测值为1或者0的问题,我们不能利用线性回归让其预测值一直不断的升高和减小。因此,便想出了逻辑回归模型,使其无限拓展的值在0到1的区间范围内,如图1
逻辑回归表达式
该表达式预测的是数值为1的概率,如该病人是否得了癌症的概率。相反要得到数值为0的概率,我们只需要用1减去数值为1的概率就可以得到。
逻辑回归损失函数
如果将线性回归的损失函数 (square error) 作为逻辑回归损失函数的话, 我们发现针对于逻辑回归,其损失函数并不是一个碗状的 (convex function), 得到的学习曲线图如图2
因此,我们无法通过梯度下降来得到全局最优解。然而,如果通过cross entropy,我们就可以让逻辑回归的损失函数变成一个碗状, 所以逻辑回归的损失函数为cross entropy, 其公式和逻辑回归学习曲线如下:
逻辑回归损失函数推导
我们可以根据最大似然估计的方法来进行推导。可什么是最大似然估计呢?首先我们先来说一下似然和概率的区别。
所谓概率,就是在未知结果的情况下,根据所得到的数据性质 (比如普通硬币,性别等特征) 来对未知的结果进行预测。比如给定我们一个普通的硬币,我们可以预测其正面朝上 (预测结果) 的概率为50%,其公式记作
相反,似然则是在已知结果的条件下来估计某个条件发生的可能性。比如投100次硬币, 正面朝上的概率为70次, 反面朝上的概率为30 次。 那么,我们估计其硬币正面朝上的概率 (硬币的性质)最有可能为多少, 或者说最有可能是那种硬币?
我们对其求导, 令其导数为0,得到p为0.7。下面我们就来说一说逻辑回归模型对最大似然估计的应用。
根据逻辑回归的定义,我们知道
我们拥有很多用户的数据,就好比从世界人群中抽样取出的一些数据。根据这些已知的数据结果x,和y, 我们使用最大似然估计来估计其最有可能的权重系数为多少,将其代入公式我们可以得到
对其求导,令其等于0,我们就可以求得其最大值。因为要进行梯度下降,所以在前面加上负号使其变成碗状,求得最小值。
逻辑回归梯度下降公式
逻辑回归基于MXNet代码
引用参考
Cesco.似然与极大似然估计.http://fangs.in/post/thinkstats/likelihood/.
Angelo-凤的博客. 最大似然估计(Maximum likelihood estimation)(通过例子理解). https://blog.csdn.net/qq_36396104/article/details/78171600
Andrew Ng. Machine Learning. https://www.coursera.org/learn/machine-learning/.