首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Logistic Regression 为什么用极大似然函数

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

作者头像
杨熹
发布于 2018-06-07 15:29:31
发布于 2018-06-07 15:29:31
2.8K0
举报
文章被收录于专栏:杨熹的专栏杨熹的专栏

1. 简述 Logistic Regression

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

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

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

所以 目标函数 为:

为什么用 sigmoid 函数?请看:Logistic regression 为什么用 sigmoid ?

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

记:

则可统一写成:

写出似然函数:

取对数:

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

先求偏导:

再梯度更新:

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


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

损失函数

举例

定义

​

0-1损失

用于分类,例如感知机

​

预测值和目标值不相等为1,否则为0

绝对值损失

​

​

​

平方损失

Linear Regression

​

使得所有点到回归直线的距离和最小

对数损失

Logistic Regression

​

常用于模型输出为每一类概率的分类器

Hinge损失

SVM

​

用于最大间隔分类

指数损失

AdaBoost

​

​

几种损失函数的曲线:

黑色:Gold Stantard

绿色:Hinge Loss中,当 yf(x)>1 时,其损失=0,当 yf(x)<1时,其损失呈线性增长(正好符合svm的需求)

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

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

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


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

  1. 因为我们想要让 每一个 样本的预测都要得到最大的概率, 即将所有的样本预测后的概率进行相乘都最大,也就是极大似然函数.
  2. 对极大似然函数取对数以后相当于对数损失函数, 由上面 梯度更新 的公式可以看出, 对数损失函数的训练求解参数的速度是比较快的, 而且更新速度只和x,y有关,比较的稳定,
  3. 为什么不用平方损失函数 如果使用平方损失函数,梯度更新的速度会和 sigmod 函数的梯度相关,sigmod 函数在定义域内的梯度都不大于0.25,导致训练速度会非常慢。 而且平方损失会导致损失函数是 theta 的非凸函数,不利于求解,因为非凸函数存在很多局部最优解。

​

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.06.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 1. 简述 Logistic Regression
  • 2. 先来看常用的几种损失函数:
  • 3. LR 损失函数为什么用极大似然函数?
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档