逻辑回归的损失函数是对数损失函数,对数损失函数的方程式与信息论中的熵测量密切相关。它也是似然函数的负对数(假设“y‘ ’” 属于伯努利分布)。实际上,最大限度地降低损失函数的值会生成最大的似然估计值。对数损失函数的方程式如下图
其中:
- (x,y)ϵD 是包含很多有标签样本 (x,y) 的数据集。
- “ y ” 是有标签样本中的标签。由于这是逻辑回归,因此 “y” 的每个值必须是 0 或 1。
- “ y' ” 是对于特征集“x”的预测值(介于 0 和 1 之间)
假设预测函数 hypothesis 在 0 和 1 之间 (概率):
其中:
- 是逻辑回归模型针对特定样本的输出。
- 是 b + w1x1 + w2x2 + … wNxN
- “w” 值是该模型学习的权重
- “b” 值是该模型学习的偏差。
- “x” 值是特定样本的特征值。
请注意, 该假设函数也称为对数几率
假设函数推理过程:
假设 函数, 服从伯努利分布,为正的概率为 p, 为负的概率为 1 - p.
逻辑回归中该样本为正的概率 为负的概率
odds优势比是事件发生概率和不发生概率之间的比值:
我们可以将[0,1]之间的任意数映射到[0,∞]之间的任意实数。但是,线性回归的输出还可以是负数,我们还需要另一步变换将[0,∞]的实数域映射到这个实数域R空间;
然后,在众多非线性函数中,log函数的值域为整个实数域且单调,因此,我们可以计算优势比的对数(ln 是log 底数为 e的数):
求解过程, , 取消 ln底数
然后消除分子 p, 两边加 1
由上面可得
为负的概率 :
为正的概率:
需要的是为正的概率, 分子分母同除以 , 化简可得:
而 所以最终假设样本为正的概率为:
极大对数似然推理(逻辑回归(0和1分类)):
假设有 M 个样本,样本值分别为 ,设 为给定条件下得到 的概率,
同样地, 的概率为 ,所以得到一个样本值的概率为,
注意,大写p(没有下标 i): 是函数形式,小写p(有小标 i): 是一个值(概率)
则取对数似然依据
运用对数运算和差 , =
当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。所以加个负号
又根据 p(即) 上面的公式 ,
由于该极大似然函数无法直接求解,一般是进行梯度下降来不断接近最优解。
梯度下降有三种方式:
- 批梯度下降: 会获得全局最优解,缺点是在更新每个参数的时候需要遍历所有的数据,计算量会很大,并且会有很多的冗余计算,导致的结果是当数据量大的时候,每个参数的更新都会很慢。
- 随机梯度下降: 以高方差频繁更新,优点是使得随机梯度会跳到新的和潜在更好的局部最优解,缺点是使得收敛到局部最优解的过程更加的复杂。
- 小批量梯度下降: 结合了随机梯度下降和批梯度下降的优势,每次梯度更新的时候使用n个样本。减少了参数更新的次数,可以达到更加稳定收敛结果。(深度学习一般使用该方法优化)
TensorFlow 简单实现:
主要是这两个函数求解
源码参考GitHub地址:TensorFlow逻辑回归实现