Logistic Regression (LR) 译为逻辑回归,但实际上这是一种分类模型(二分类或多分类)。下面精要地把模型中的核心概念、推导梳理一下。本文主要内容如下:

  1. 逻辑回归的概率模型
  2. 逻辑回归的含义
  3. 逻辑回归损失函数的由来
  4. 逻辑回归模型的求解方法 :牛顿法、梯度下降法
  5. 多分类问题的一般处理方法
  6. 多分类逻辑回归的概率模型
  7. Softmax 回归形式推导
  8. 逻辑回归与 Softmax 回归的联系
  9. 过拟合问题的处理

模型引入

二分类问题的 LR 模型是如下的条件概率分布:

实际上,又可以写成:

我们称如下形式的函数为 Sigmoid 函数:


建立模型

实际上,LR 模型是用线性回归模型的结果逼近真实标记 (

) 的对数几率

(log odds,logit). 所谓的几率表示事件发生的概率

与事件不发生的概率

之比

那么对数几率就是对几率取自然对数的结果

因此,在周老师的西瓜书中称该模型为“对数几率回归”(对率回归).

给定一组训练数据,要求解上述的条件概率分布,可以应用极大似然估计法 (Maximum Likelihood Estimation, MLE) 估计模型的参数。极大似然估计,即是对样本的似然函数

进行求参.

,似然函数为

对数似然函数(求最大化):

其中 ,

,
.

最后的优化问题(转化为最小化):

针对上述最小化问题,采用 Newton method,quasi-Newton method (BFGS, L-BFGS) , conjugate gradient 或者梯度下降法 (引入超参数

) , SGD 等等求都可以。

下面求带正则项 (考虑结构风险) 的目标函数:

最后,有决策函数:

另外,我们称

为 Cross-entropy loss, or log loss.

模型求解

牛顿法

其中,

其中,

梯度下降法


K分类问题

多分类问题常用的策略

  • One vs. One
类两两配对,共
个而分类问题,测试新样本的时候,输入到所有的分类器中,得到
个分类结果,结果通过投票产生.
  • One vs. Rest (更适用于类别不互斥情形)

每次取一类做为正类余下样例作为反例来训练

个分类器,即为每个类别
预测
的概率:

最后当输入新的样例

时,选择使得概率最大的类别
作为输出
  • Many vs. Many

每次将若干个类作为正类,若干其他类作为反类。


Multinomial Logistic Regression

更适用于类别互斥情形 (logically separate categories),例如血型,党派

The observed outcomes are the party (Y) chosen by a set of people in an election, and the explanatory variables are the demographic characteristics (X) of each person (e.g. sex, race, age, income, etc.). The goal is then to predict the likely vote of a new voter with given characteristics.

训练

个独立的二分类 LR 模型,选第
类为“pivot”

两边作取指数

各类条件概率之和为1

因此

其中,

,到此为止上式即为《统计学习方法, p80》中所提到的多项 LR 模型.

Softmax Regression

这里我们不用线性回归模型表示对数几率,而是用如下对数线性模型 (log-linear)

其中的

为规范化因子,以确保概率之和为1,两边取指数运算可得

由概率和性质

因此

最后模型为

写成我们常见的形式如下(

替换):

一般将参数

写出矩阵形式:
,
表示数据的维度,
表示类别总数

Softmax Regression 代价函数

其中,

表示指示函数,
为真时取1否则取0.

Softmax Regression 与 logistic regression 的联系

标准的 Softmax 函数定义如下:

而 Softmax 函数可以近似为如下指示函数:

于是

那 Softmax 和我们在 Multinomial Logistic Regression 部分得到的模型是不是等价的呢?答案是的。首先我们有如下的关于 Softmax 函数的旋转不变性质

那么,取

因此

可以转换成

显然这里得到的模型与多项逻辑回归模型一致。


过拟合问题

当讨论到模型的过拟合问题时,不妨对算法的期望泛化误差进行讨论。我们已经知道:泛化误差可以分解为 bias, variance, noise 之和。

偏差 (bias) 衡量模型的期望预测与真实结果的偏离程度(模型的拟合能力);方差 (variance) 衡量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动(数据变化对模型预测能力)所造成的影响(或者理解为在测试集上的表现)。噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界, 即刻画了学习问题本身的难度

  • 过拟合:low bias, high variance
  • 欠拟合:high bias, low varience

一般处理方法

  1. 减少特征的数量:人工筛选特征、嵌入式选择
  2. 正则化: 保持所有特征当时减小或者增大特征参数
    ,使得所有变量对最终的预测只贡献一点比例

这里一般采用L1或L2正则化:(损失函数推导见拓展部分)

扩展&总结

二分类问题 LR

Hypothesis function

Cost function

其中


两外还有一种常见的损失函数的形式:([2,3])

需要记住的是,这里的

,用上述极大似然估计推导类似.

Softmax Regression

hypothesis function

决策函数为:


参考文献

[1]李航. 统计学习方法[M]. 清华大学出版社, 2012, p77.

[2] Scikitlearn - LogisticRegression

[3] 沙伊・沙莱夫-施瓦茨, 沙伊・本-戴维. 深入理解机器学习:从原理到算法[M]. 机械工业出版社, 2016, p72.

[4] UFLDL Tutorial - SoftmaxRegression

softmax分类器_[ML] 逻辑回归与 Softmax 回归相关推荐

  1. softmax函数_反向传播之一:softmax函数

    最好的学习方法就是把内容给其他人讲明白. 如果你看了我的文章感觉一头雾水,那是因为我还没学透. 我目前的理解是:反向传播是神经网络的精要,没搞明白反向传播,神经网络就还没入门. 我的学习计划是: (1 ...

  2. 深度学习与计算机视觉(二)线性SVM与Softmax分类器

    2.线性SVM与Softmax分类器 2.1 得分函数(score function) 2.1.1 线性分类器 2.1.2 理解线性分类器 2.2 损失函数 2.2.1 多类别支持向量机损失(Mult ...

  3. 基于pytorch的softmax分类器

    一.概述 本文在pytorch的框架下,基于softmax分类器的原理,给出softmax分类器的源码,实现图像的分类.结合代码阐述神经网络的搭建过程,用测试集检验神经网络的训练结果,最后在本文末给出 ...

  4. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器--在深度学习的视觉分类中的,这两个分类器的原理和比较

    作者: 寒小阳  时间:2015年11月.  出处:http://blog.csdn.net/han_xiaoyang/article/details/49999299  声明:版权所有,转载请注明出 ...

  5. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器

    作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/49999299 声明: ...

  6. ML之SR:Softmax回归(Softmax Regression)的简介、使用方法、案例应用之详细攻略

    ML之SR:Softmax回归(Softmax Regression)的简介.使用方法.案例应用之详细攻略 目录 Softmax回归的简介 Softmax回归的使用方法 Softmax回归的案例应用 ...

  7. 训练softmax分类器实例_第四章.模型训练

    迄今为止,我们只是把机器学习模型及其大多数训练算法视为黑盒.但是如果你做了前面几章的一些练习,你可能会惊讶于你可以在不知道任何关于背后原理的情况下完成很多工作:优化一个回归系统,改进一个数字图像分类器 ...

  8. DNN:逻辑回归与 SoftMax 回归方法

    第四章:SoftMax回归 UFLDL Tutorial 翻译系列:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 简介: ...

  9. softmax分类(多项逻辑回归)的Pyhon实现及其与SVM的比较

    GREAT THANKS TO:http://cs231n.github.io/linear-classify/#softmax 1..softmax分类 SVM和softmax是两大常用的分类方法, ...

最新文章

  1. 非线性求解器Casadi使用简介
  2. 【codeforces 711B】Chris and Magic Square
  3. Hibernate4一对多关系映射
  4. kafka 启动_深入理解Kafka服务端之Acceptor线程是如何启动和工作的
  5. C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻
  6. ftp+linux+使用webdav,群晖-win/mac/nfs ftp tftp webdav文件服务的概念及设置
  7. 由于找不到mfc110.dll,无法继续执行代码的解决方法
  8. java中选择结构有哪些_Java中的选择结构
  9. 找图点击-找图自动点击全能模拟王软件
  10. 调用发票管理系统的方法2
  11. 游戏背景音乐的种类—动态音效
  12. PDF密码可以破解吗?有没有PDF解密的方法
  13. GS运维常用工具及文档
  14. 依赖性检查工具Snyk与Dependency-check对比
  15. 论文书写之如何引用参考文献(简单明了)
  16. uniapp 视频图片切换,视频高度宽度自适应
  17. 【嵌入式linux】使用4G模块EC20自适应运营商和ppp拨号上网
  18. 介绍个人计算机水平,计算机个性自我介绍范文
  19. 国产化的接口测试、接口自动化测试工具apifox的介绍及使用
  20. EAUML日拱一卒-微信小程序实战:位置闹铃 (19)-发布微信小程序

热门文章

  1. 已知前序中序求层序 c语言递归,二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现...
  2. mysql 4升级,MySQL_Sql_打怪升级_进阶篇_进阶4:常见函数
  3. mac 上压测工具_Mac上的触控板/鼠标增强工具推荐
  4. 用python爬取东方财富网网页信息_爬取东方财富网数据的网页分析
  5. 每秒570000的写入,MySQL如何实现?
  6. 1000行MySQL学习笔记,人手一份,建议收藏!
  7. 数仓如何设置大小写不敏感函数
  8. 数仓出现“wait in ccn queue”的时候,怎么迅速定位处理?
  9. 云原生开发者须具备的1+N技能,开启第二曲线
  10. Linux常用命令系列--export