Logistic Regression 为什么用极大似然函数

1. 简述 Logistic Regression

Logistic regression 用来解决二分类问题,

它假设数据服从伯努利分布,即输出为 正 负 两种情况,概率分别为 p 和 1-p,

目标函数hθ(x;θ) 是对 p 的模拟,p 是个概率,这里用了 p=sigmoid 函数,

所以 目标函数 为:

损失函数是由极大似然得到,

记:

则可统一写成:

写出似然函数:

取对数:

求解参数可以用梯度上升:

先求偏导:

再梯度更新:

常用的是梯度下降最小化负的似然函数。

2. 先来看常用的几种损失函数:

几种损失函数的曲线:

黑色:Gold Stantard

绿色:Hinge Loss中,当 yf(x)>1 时,其损失=0,当 yf(x)

红色 Log、蓝色 Exponential: 在 Hinge的左侧都是凸函数,并且Gold Stantard损失为它们的下界

要求最大似然时(即概率最大化),使用Log Loss最合适,一般会加上负号,变为求最小

损失函数的凸性及有界很重要,有时需要使用代理函数来满足这两个条件。

3. LR 损失函数为什么用极大似然函数?

因为我们想要让 每一个 样本的预测都要得到最大的概率,

即将所有的样本预测后的概率进行相乘都最大,也就是极大似然函数.

对极大似然函数取对数以后相当于对数损失函数,

由上面 梯度更新 的公式可以看出,

对数损失函数的训练求解参数的速度是比较快的,

而且更新速度只和x,y有关,比较的稳定,

为什么不用平方损失函数

如果使用平方损失函数,梯度更新的速度会和 sigmod 函数的梯度相关,sigmod 函数在定义域内的梯度都不大于0.25,导致训练速度会非常慢。

而且平方损失会导致损失函数是 theta 的非凸函数,不利于求解,因为非凸函数存在很多局部最优解。

学习资料:

https://zhuanlan.zhihu.com/p/25021053

https://www.cnblogs.com/ModifyRong/p/7739955.html

https://zhuanlan.zhihu.com/p/34670728

http://www.cnblogs.com/futurehau/p/6707895.html

https://www.cnblogs.com/hejunlin1992/p/8158933.html

http://kubicode.me/2016/04/11/Machine%20Learning/Say-About-Loss-Function/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180601G084C800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券