回顾发现,李航的《统计学习方法》有些章节还没看完,为了记录,特意再水一文。

0 - logistic分布

如《统计学习方法》书上,设X是连续随机变量,X服从logistic分布是指X具有以下分布函数和密度函数:
\[F(x) = P(X \leq x)=\frac{1}{1+e^{-(x-\mu)/\gamma}}\]
\[f(x) = F'(x) = \frac{e^{-(x-\mu)/\gamma}}{1+e^{-(x-\mu)/\gamma}}\]
其中\(\mu\)是位置参数,\(\gamma\)是形状参数,logistic分布函数是一条S形曲线,该曲线以点\((\mu,\frac{1}{2})\)为中心对称,即:
\[F(-x+\mu)-\frac{1}{2} = -F(x-\mu)+\frac{1}{2}\]
\(\gamma\)参数越小,那么该曲线越往中间缩,则中心附近增长越快


图0.1 logistic 密度函数和分布函数

1 - 二项logistic回归

我们通常所说的逻辑回归就是这里的二项logistic回归,它有如下的式子:
\[h_\theta(\bf x)=g(\theta^T\bf x) = \frac{1}{1+e^{-\theta^T\bf x }}\]
这个函数叫做logistic函数,也被称为sigmoid函数,其中\(x_i\in{\bf R}^n,y_i\in\{0,1\}\)且有如下式子:

\(P(y=1|\bf x;\theta) = h_\theta(\bf x)\)
\(P(y=0|\bf x;\theta) =1- h_\theta(\bf x)\)
\(\log\frac{P(y=1|\bf x;\theta) }{1-P(y=1|\bf x;\theta) }=\theta^T\bf x\)
即紧凑的写法为:
\[p(y|\bf x; \theta) = (h_\theta(x))^y(1-h_\theta(\bf x))^{1-y}\]
基于\(m\)个训练样本,通过极大似然函数来求解该模型的参数:
\[\begin{eqnarray}L(\theta) &=&\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta)\\ &=&\prod_{i=1}^m(h_\theta(x^{(i)}))^{y^{(i)}}(1-h_\theta(\bf x^{(i)}))^{1-y^{(i)}} \end{eqnarray}\]
将其转换成log最大似然:
\[\begin{eqnarray}\it l(\theta) &=&\log L(\theta)\\ &=&\sum_{i=1}^my^{(i)}\log h(x^{(i)})+(1-y^{(i)})\log (1-h(x^{(i)})) \end{eqnarray}\]
而该sigmoid函数的导数为:\(g'(z) = g(z)(1-g(z))\),假设\(m=1\)(即随机梯度下降法),将上述式子对关于\(\theta_j\)求导得:

ps:上述式子是单样本下梯度更新过程,且基于第\(j\)个参数(标量)进行求导,即涉及到输入样本\(x\)的第\(j\)个元素\(x_j\)
而关于参数\(\theta\)的更新为:\(\theta:=\theta+\alpha\nabla_\theta\it l(\theta)\)
ps:上面式子是加号而不是减号,是因为这里是为了最大化,而不是最小化
通过多次迭代,使得模型收敛,并得到最后的模型参数。

2 - 多项logistic回归

假设离散型随机变量\(Y\)的取值集合为\({1,2,...,K}\),那么多项logistic回归模型为:
\[P(Y=k|x) = \frac{e^{(\theta_k* \bf x)}}{1+\sum_{k=1}^{K-1}e^{(\theta_k* \bf x)}},k=1,2,...K-1\]
而第\(K\)个概率为:
\[P(Y=K|x) = \frac{1}{1+\sum_{k=1}^{K-1}e^{(\theta_k* \bf x)}}\]
这里\(x\in{\bf R}^{n+1},\theta_k\in {\bf R}^{n+1}\),即引入偏置。

3 - softmax

logistic回归模型的代价函数为:
\[J(\theta) = -\frac{1}{m}\left[\sum_{i=1}^{m} y^{(i)}\log h_\theta({\bf x}^{(i)})+(1-y^{(i)})\log (1-h_\theta({\bf x}^{(i)})) \right]\]
而softmax是当多分类问题,即\(y^{(i)}\in \{1,2,...,K\}\)。对于给定的样本向量\(\bf x\),模型对每个类别都会输出一个概率值\(p(y=j|\bf x)\),则如下图:


其中\(\theta_1,\theta_2,...\theta_k \in R^{n+1}\)都是模型的参数,其中分母是为了归一化使得所有概率之和为1.
从而softmax的代价函数为:
\[\begin{eqnarray}J(\theta) &=& -\frac{1}{m}\left[\sum_{i=1}^{m} \sum_{j=1}^K1\{y^{(i)}=j\}\log \frac{e^{\theta_j^T{\bf x}^{(i)}}}{\sum_{l=1}^Ke^{\theta_l^T{\bf x}^{(i)}}}\right]\\ &=& -\frac{1}{m}\left[\sum_{i=1}^{m} \sum_{j=1}^K1\{y^{(i)}=j\}\left[\log {e^{\theta_j^T{\bf x}^{(i)}}}-\log{\sum_{l=1}^Ke^{\theta_l^T{\bf x}^{(i)}}}\right]\right] \end{eqnarray}\]
其中,\(p(y^{(i)}=j|{\bf x}^{(i)};\theta)=\frac{e^{\theta_j^T{\bf x}^{(i)}}}{\sum_{l=1}^Ke^{\theta_l^T{\bf x}^{(i)}}}\)该代价函数关于第j个参数的导数为:
\[\begin{eqnarray}\nabla_{\theta_j}J(\theta) &=&-\frac{1}{m}\sum_{i=1}^{m}1\{y^{(i)}=j\}\left[\frac{e^{\theta_j^T{\bf x}^{(i)}}* {\bf x}^{(i)}}{e^{\theta_j^T{\bf x}^{(i)}}}-\frac{e^{\theta_j^T{\bf x}^{(i)}}* {\bf x}^{(i)}}{\sum_{l=1}^Ke^{\theta_l^T{\bf x}^{(i)}}}\right]\\ &=&-\frac{1}{m}\sum_{i=1}^{m}1\{y^{(i)}=j\}\left[{\bf x}^{(i)}-\frac{e^{\theta_j^T{\bf x}^{(i)}}* {\bf x}^{(i)}}{\sum_{l=1}^Ke^{\theta_l^T{\bf x}^{(i)}}}\right]\\ &=&-\frac{1}{m}\sum_{i=1}^{m}{\bf x}^{(i)}\left(1\{y^{(i)}=j\}-\frac{e^{\theta_j^T{\bf x}^{(i)}}}{\sum_{l=1}^Ke^{\theta_l^T{\bf x}^{(i)}}}\right)\\ &=&-\frac{1}{m}\sum_{i=1}^{m}{\bf x}^{(i)}\left[1\{y^{(i)}=j\} - p(y^{(i)}=j|{\bf x}^{(i)};\theta)\right] \end{eqnarray}\]
ps:因为在关于\(\theta_j\)求导的时候,其他非\(\theta_j\)引起的函数对该导数为0。所以\(\sum_{j=1}^K\)中省去了其他部分
ps:这里的\(\theta_j\)不同于逻辑回归部分,这里是一个向量;

4 - softmax与logistic的关系

将逻辑回归写成如下形式:
\[\begin{eqnarray}J(\theta) &=& -\frac{1}{m}\left[\sum_{i=1}^{m} y^{(i)}\log h_\theta({\bf x}^{(i)})+(1-y^{(i)})\log (1-h_\theta({\bf x}^{(i)})) \right]\\ &=& -\frac{1}{m}\left[\sum_{i=1}^{m} \sum_{j=0}^11\{y^{(i)}=j\}\log p(y^{(i)}=j|{\bf x}^{(i)};\theta)\right] \end{eqnarray}\]
可以看出当k=2的时候,softmax就是逻辑回归模型

参考资料:
[] 李航,统计学习方法
[] 周志华,机器学习
[] CS229 Lecture notes Andrew Ng
[] ufldl
[] Foundations of Machine Learning

logistic回归和最大熵相关推荐

  1. 06.Logistic回归与最大熵模型(学习笔记)

    06.Logistic回归与最大熵模型 参考: 袁春老师<大数据机器学习公开课>:https://www.xuetangx.com/course/THU08091001026/103331 ...

  2. Logistic回归与最大熵模型

    Logistic回归与最大熵模型 算法介绍 逻辑斯谛分布 二项logistic回归模型 最大熵模型 习题6.1 习题6.2 算法介绍 1.逻辑斯谛回归(logistic regression)是统计学 ...

  3. 复习06统计学习方法(Logistic回归与最大熵模型)---图片版

  4. Logistic回归和SVM的异同

    这个问题在最近面试的时候被问了几次,让谈一下Logistic回归(以下简称LR)和SVM的异同.由于之前没有对比分析过,而且不知道从哪个角度去分析,一时语塞,只能不知为不知. 现在对这二者做一个对比分 ...

  5. 【机器学习】对数线性模型之Logistic回归、SoftMax回归和最大熵模型

    来源 | AI小白入门 作者 | 文杰 编辑 | yuquanle 完整代码见:原文链接 1. Logistic回归 ​ 分类问题可以看作是在回归函数上的一个分类.一般情况下定义二值函数,然而二值函数 ...

  6. sklearn自学指南(part14)--Logistic回归

    学习笔记,仅供参考,有错必纠 Logistic回归 Logistic回归,它是一个线性模型的分类,而不是回归.Logistic回归在文献中也被称为logit回归,最大熵分类(MaxEnt)或对数线性分 ...

  7. 最大熵阈值python_第六章-逻辑斯蒂回归和最大熵模型

    逻辑斯谛回归是统计学习中的经典分类方法,和最大熵模型相比,具有以下的共同点和区别:共同点都属于概率模型,该模型要寻找的是给定一个x,得到输出变量Y的概率分布P(Y|x),如果是二分类,Y取值为0或1, ...

  8. 生成模型 VS. 判别模型 Logistic 回归 VS. Softmax 回归

    生成模型 VS. 判别模型 从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi. 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布. ...

  9. Logistic回归百问

    1. Logistic回归的优缺点 Logistic优点: 模型简单,速度快,适合二分类问题 简单易于理解,直接看到各个特征的权重 能容易地更新模型吸收新的数据 Logistic缺点: Logisti ...

最新文章

  1. Storm程序的并发机制原理总结
  2. class触发后让另一个class加样式_Bootstrap的按钮组样式
  3. 500 cannot be cast to javax.xml.registry.infomodel
  4. 程序员过关斩将——搞定秒杀,只需要这几步!!
  5. 重装系统无法安装在efi分区_001_关于选中的磁盘具有MBR分区表。在 EFI 系统上,Windows 只能安装到 GPT 磁盘。问题解决...
  6. bootstraptable 怎么在特定行添加数据_手把手教你做一个“渣”数据师,用Python代替老情人Excel...
  7. linux 修改自动联网的配置说明
  8. Java基础知识强化之IO流笔记19:FileOutputStream的三个write方法
  9. c#日期转换周几_C#根据日期计算星期几的实例代码
  10. 2021考研数学一123分经验分享
  11. 国二python考试系统_分享自己的国二python经历
  12. ApplePay 支付开发
  13. C# 后台js重定向Response.Write
  14. MATLAB椎体怎么画,求以半径为R的圆为底,平行且等于底圆直径的线段为顶,高为h的正劈锥体的体积.用matlab作!急用...
  15. 全球与中国轨道交通受电弓滑块市场深度研究分析报告
  16. 我的创业你也可以复制:财务做账中常见的问题
  17. HTML正方体滚动特效
  18. Java中的BigDecimal,你真的会用吗?
  19. 关于tomcat点击startup.bat出现闪退,输入http://localhost:8080网页打不开的解决方法
  20. win7系统安装高版本的node教程

热门文章

  1. 原生Android也能做Web开发了
  2. windows下codelite的使用
  3. 大型网站的 HTTPS 实践(1):HTTPS 协议和原理
  4. C# 3.0 入门系列(一)
  5. 从传统运维到云运维演进历程之软件定义存储(五)上
  6. django创建验证码
  7. springcloud 消费者 Feign (类似 webservice)
  8. IE6下绝对定位的DIV被相对定位的DIV挡住的问题
  9. Check the value configured in 'zookeeper.znode.parent'
  10. 条款02:尽量以const,enum,inline代替#define