理论推导

  在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归多元线性回归的模型。
  将线性回归模型简写为:y=ωTx+by = \omega^Tx+b;
  对数线性回归模型可以写成:ln(y)=ωT+bln(y) = \omega^T + b;本质上仍然是线性回归,只不过拟合的是非线性的ln函数了。
  更一般地,考虑单调可微函数g(.)g(.),令y=g−1(ωTx+b)y = g^{-1}(\omega^T x + b);这个模型就叫做广义线性回归模型。(直接抄书的,实在不擅长背定义QAQ)
  对于二分类任务,输出标记为y∈{0,1}y\in\lbrace0, 1\rbrace,而线性回归的预测结果h(x)=ωTx+bh(x) = \omega^T x + b,很明显是一个连续值,所以需要将其转换为0/10 / 1值。
   所以要用到单位阶越函数

y=⎧⎩⎨0,h(x)<0;0.5,h(x)=0;1,h(x)>0;

y = \begin{cases}0, h(x)0;\end{cases}
即,若预测值大于0,就判为正例;若预测值小于0,就判为负例;临界值处,任意判别。
  我们都知道,阶跃函数不可导,不连续,而 g−1(.)g^{-1}(.)必须是一个可微的函数,所以阶跃函数不能用作 g−1(.)g^{-1}(.),还需要找一个连续函数代替阶跃函数。
  我们常用 对数几率函数(logistic function)来进行替代:

y=11+e−z

y = \frac{1}{1+e^{-z}}
  画出图形会看到它形似S,所以也是一种sigmoid函数。
  把对数几率函数作为 g−1(.)g^{-1}(.),代入到广义线性回归的公式中:

y=11+e−(ωTx+b)

y = \frac{1}{1+e^{-(\omega^Tx+b)}}
  做一些化简,可以得到:

ln(y1−y)=ωTx+b

\ln(\frac{y}{1-y}) = \omega^Tx+b
  其中,y是正例的可能性,(1-y)是负例的可能性。
  那么,这个 ln(y1−y)\ln(\frac{y}{1-y})其实就是“对数几率”,等式右边的是什么不用说了吧。可以看出,对数几率回归实质上就是使用线性回归模型( ωTx+b\omega^Tx+b)来逼近这个对数几率( ln(y1−y)\ln(\frac{y}{1-y}))。
  好的,那么问题来了。如何求解出这个模型中的未知参数 ω\omega和 bb呢?
只考虑二分类的情况下,将y换成后验概率P(y=1|x)P(y=1|x)来表示,同理1-y可以换成 P(y=0|x)P(y=0|x)。
  则有:

{ln(P(y=1|x)P(y=0|x))=ωTx+bP(y=1|x)+P(y=0|x)=1

\begin{cases}\ln(\frac{P(y=1|x)}{P(y=0|x)}) = \omega^Tx+b\\P(y=1|x)+P(y=0|x)=1\end{cases}
  解得:

⎧⎩⎨P(y=1|x)=eωTx+b1+eωTx+bP(y=0|x)=11+eωTx+b

\begin{cases}P(y=1|x)=\frac{e^{\omega^Tx+b}}{1+e^{\omega^Tx+b}}\\P(y=0|x)=\frac{1}{1+e^{\omega^Tx+b}}\end{cases}
  通过极大似然法来估计 ω\omega和 bb:

L(ω,b)=∑i=1mln(P(yi|xi;ω,b))

L(\omega,b) = \sum_{i=1}^m\ln(P(y_i|xi;\omega,b))
  为表述方便,使用一个新矩阵 β\beta来表示 ω\omega和 bb,令β={ωb}\beta=\left\{\begin{matrix}\omega & b\end{matrix}\right\}。
  同时也要给x矩阵补上一列1,令 x′={x1}x^{'} = \left\{\begin{matrix} x & 1\end{matrix}\right\}。因为要对应参数b,补上1,保证结果不变。
  那么, ωTx+b=βTx′\omega^Tx+b = \beta^Tx^{'}。
  由于是二分类,即只有 y=0y=0和 y=1y=1的情况,那么可以将似然项重写为 y=0y=0和 y=1y=1的情况相加:

p(yi|xi;β)=yi×p(y=1|x′i;β)+(1−yi)×p(y=0|x′i;β)

p(y_i|x_i;\beta) = y_i \times p(y=1|x_{i}^{'};\beta) + (1-y_i) \times p(y=0|x_{i}^{'};\beta)
  ”西瓜书“上是这么写的,当然这样也不难理解。其实为了后面推导方便和容易理解,我们可以换成对数几率的形式来表示,原理依然是一样的,无非是加了个对数:

ln[p(yi|xi;β)]=yi×ln[p(y=1|x′i;β)]+(1−yi)×ln[p(y=0|x′i;β)]

\ln[p(y_i|x_i;\beta)] = y_i \times \ln[p(y=1|x_{i}^{'};\beta)] + (1-y_i) \times \ln[p(y=0|x_{i}^{'};\beta)]
  将上式代入到前面极大似然的公式中: L(β)=∑mi=1ln(P(yi|xi;β))L(\beta) = \sum_{i=1}^m\ln(P(y_i|xi;\beta))
  联立前面推出的后验概率的结果:

⎧⎩⎨P(y=1|x)=eωTx+b1+eωTx+bP(y=0|x)=11+eωTx+b

\begin{cases}P(y=1|x)=\frac{e^{\omega^Tx+b}}{1+e^{\omega^Tx+b}}\\P(y=0|x)=\frac{1}{1+e^{\omega^Tx+b}}\end{cases}
  得到最后的结果:

L(β)=∑i=1m(yiβTx′i−ln(1+eβTx′i))

L(\beta)=\sum_{i=1}^{m}(y_i \beta^Tx_i^{'} - \ln(1+e^{\beta^Tx_i^{'}}))

  由于是极大似然,我们需要求出其极大值,所以有:

β∗=argmaxmL(β)

\beta^*=argmax_mL(\beta)
  求出使 L(β)L(\beta)最大的最优解等价于求出使 −L(β)-L(\beta)最小的解,所以有:

β∗=argmaxmL(β)=argminmL(β)=∑i=1m(−yiβTx′i+ln(1+eβTx′i))

\beta^*=argmax_mL(\beta)=argmin_mL(\beta)\\=\sum_{i=1}^{m}(-y_i \beta^Tx_i^{'} + \ln(1+e^{\beta^Tx_i^{'}}))
  最后可以通过凸优化中的梯度下降法、牛顿法等方法来求出 L(β)L(\beta)函数的最优解 β∗\beta^*。

以上仅是个人学习笔记分享用,也留作我自己以后温习。
(>.<)

机器学习入门学习笔记:(2.3)对数几率回归推导相关推荐

  1. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  2. 机器学习入门学习笔记:(3.2)ID3决策树程序实现

    前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...

  3. 机器学习入门学习笔记:(2.2)线性回归python程序实现

      上一篇博客中,推导了线性回归的公式,这次试着编程来实现它.(机器学习入门学习笔记:(2.1)线性回归理论推导 )   我们求解线性回归的思路有两个:一个是直接套用上一篇博客最后推导出来的公式:另一 ...

  4. Kaggle教程 机器学习入门学习笔记

    机器学习入门学习笔记 [跳转]<Kaggle教程 机器学习入门>系列课程目录 >> 决策树 简介:是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零 ...

  5. 小白学机器学习西瓜书-第三章对数几率回归

    小白学机器学习西瓜书-第三章对数几率回归 3.3 对数几率回归 3.3.1 对数几率函数 3.3.1 估计参数 上一部分我们介绍了线性回归,包括简单的二元回归和多元回归,这两个主要解决的是拟合预测的问 ...

  6. 机器学习入门学习笔记:(4.1)SVM算法

    前言 支持向量机(Support Vector Machine,简称SVM)可以说是最经典的机器学习算法之一了.这几天再看SVM,参考了一些书籍和博客,这里把自己的笔记记录下来,以便以后复习查看. 间 ...

  7. 机器学习入门学习笔记:(2.4)线性判别分析理论推导

    LDA   线性判别分析(Linear Discriminant Analysis, 简称LDA),最早由Fisher提出,也叫"Fisher判别分析".   线性判别分析的思想: ...

  8. 机器学习入门学习笔记:(2.1)线性回归理论推导

    理论推导   机器学习所针对的问题有两种:一种是回归,一种是分类.回归是解决连续数据的预测问题,而分类是解决离散数据的预测问题.线性回归是一个典型的回归问题.其实我们在中学时期就接触过,叫最小二乘法. ...

  9. 机器学习入门学习笔记:(1)BP神经网络原理推导及程序实现

    机器学习中,神经网络算法可以说是当下使用的最广泛的算法.神经网络的结构模仿自生物神经网络,生物神经网络中的每个神经元与其他神经元相连,当它"兴奋"时,想下一级相连的神经元发送化学物 ...

最新文章

  1. java异常处理机制详解
  2. golang检查tcp是否可用_宕机处理:Kubernetes集群高可用实战总结
  3. http请求中get和post的区别以及其他请求方式
  4. java 矩阵求逆_java实现的顺时针/逆时针打印矩阵操作示例
  5. 北京曲剧《烟壶》也好看
  6. 小菜:Java异常处理的10个最佳实践
  7. 1+X web中级 Laravel学习笔记——blade模版
  8. php 关闭 row,MySql php:检查Row是否存在
  9. Mybatis环境部署
  10. Codeforces Round #375 (Div. 2) F. st-Spanning Tree 生成树
  11. jquery匹配不区分大小写_jQuery实现contains方法不区分大小写的方法教程
  12. python整理表格数据_python --整理数据结构(列表)
  13. 2021年大数据产业城市发展,前20强出炉!
  14. caffe c++实战:通过训练好的模型对人脸图像进行特征提取(单张图像)
  15. 那些年你错过的房子 1980-2017年记录: 深圳真实房价
  16. rrweb学习案例(网页录制,回放)-demo
  17. 【CAD算法】【计算机图形学】Coons Patch曲面生成程序(python/numpy实现)[2]
  18. wxpython动态实时绘图_wxPython实现画图板
  19. Linux 下回收站机制
  20. 人脸识别行业分析报告

热门文章

  1. adc0832对光电二极管进行数据采集_实验十adc0832数模转换的显示
  2. Java中利用socket实现简单的服务端与客户端的通信(基础级)
  3. QString和string互相转换乱码处理
  4. 【c++】22. STL容器的底层实现详解
  5. MyBatis 源码分析 - 插件机制
  6. webpack入门--前端必备
  7. LaTeX文档插入图片的几种常用方法
  8. Hbase shell详情
  9. 高等数学:第十二章 微分方程(1)微分方程的概念,可分离变量的微分方程,齐次方程
  10. Deep Learning论文笔记之(八)Deep Learning最新综述