Loading [MathJax]/jax/element/mml/optable/SuppMathOperators.js

Logistic回归与最大熵模型

文章记录的内容是参加DataWhale的组队学习统计学习方法(第二版)习题解答过程中的笔记与查缺补漏!
参考解答地址Logistic回归与最大熵模型

1. 确认Logistic分布属于指数分布族。

解答思路

  1. 列出 Logistic 分布的定义
  2. 列出指数分布族的定义
  3. 通过指数倾斜,证明Logistic分布的分布函数无法表示成指数分布族的分布函数形式

先看一下什么是 Logistic 分布:

X是连续随机变量,X服从Logistic分布是指X具有下列分布函数和密度函数:

F(x)=P(X

式中,\mu为位置参数,\gamma > 0为形状参数。

再了解与以下指数分布族(注意不是指数分布!):

对于随机变量x,在给定参数\theta下,其概率分别满足如下形式:

f(x|\theta)=h(x)g(\theta)\exp(\eta(\theta)\cdot T(x))

称之为指数分布族。
其中:g(\theta)表示归一化系数,h(x)>0

后续的证明没有看懂,可以参考:

2. 写出 Logistic 回归模型学习的梯度下降算法。

解答思路

  1. 写出 Logistic 回归模型
  2. 根据书中附录A梯度下降法,写出 Logistic 回归模型学习的梯度下降法
  3. 自编程实现 Logistic 回归模型学习的梯度下降法

回顾一下 Logistic 模型:

P(Y = 1 \mid X) = \frac{ e^{ w \cdot x + b } }{ 1 + e^{ w \cdot x + b }}

P(Y = 0 \mid X) = \frac{ 1 }{ 1 + e^{ w \cdot x + b }}

既然要求梯度,那么肯定是要目标函数的。在求解逻辑回归模型的参数时,可以通过极大似然法估计参数,也可以用交叉熵损失函数。当然,这二者是等价的。

从极大似然的角度出发。随机变量 Y 的概率分布为:P(Y \mid X) = (\frac{ e^{ w \cdot x + b } }{ 1 + e^{ w \cdot x + b }}\: )^{I(Y=1)} \cdot \: (\frac{ 1 }{ 1 + e^{ w \cdot x + b }}\: )^{I(Y=0)}。那么似然函数为:

L = \prod_{i=1}^N P(y_i \mid x_i)

取对数后的似然函数为:

\begin{align} \log L &= \log \prod_{i=1}^N P(y_i \mid x_i) \\ &= \sum_{i=1}^N \log (\frac{ e^{ w \cdot x_i + b } }{ 1 + e^{ w \cdot x_i + b }}\: )^{I(y_i=1)} \cdot \: (\frac{ 1 }{ 1 + e^{ w \cdot x_i + b }}\: )^{I(y_i=0)} \\ &= \sum_{i=1}^N I(y_i = 1) \log \frac{ e^{ w \cdot x_i + b } }{ 1 + e^{ w \cdot x_i + b }} + I(y_i = 0) \log \frac{ 1 }{ 1 + e^{ w \cdot x_i + b }} \\ &= \sum_{i=1}^N y_i \log \frac{ e^{ w \cdot x_i + b } }{ 1 + e^{ w \cdot x_i + b }} + (1 - y_i) \log \frac{ 1 }{ 1 + e^{ w \cdot x_i + b }} \\ &= \sum_{i=1}^N y_i (w \cdot x_i + b) - \log (1 + e^{w \cdot x_i + b}) \end{align}

\log L 求偏导后可得:

\begin{cases}\frac{ \partial \log L }{ \partial w } = \sum_{i=1}^N (y_i - \frac{ e^{w \cdot x_i + b} }{ 1 + e^{w \cdot x_i + b} }\: ) x_i, & \\ \frac{ \partial \log L }{ \partial w } = \sum_{i=1}^N y_i - \frac{ e^{w \cdot x_i + b} }{ 1 + e^{w \cdot x_i + b} } & \end{cases}

3. 写出最大熵模型学习的DFP算法。

解答思路

  1. 写出最大熵模型
  2. 根据附录B的DFP算法,写出最大熵模型学习的DFP算法
  3. 自编程实现最大熵模型学习的DFP算法

最大熵模型一直没看太懂,参考这里

posted @ 2021-12-28 15:22  Milkha  阅读(196)  评论(0)    收藏  举报
编辑推荐:
· 35+程序员的转型之路:经济寒冬中的希望与策略
· JavaScript中如何遍历对象?
· 领域模型应用
· 记一次 ADL 导致的 C++ 代码编译错误
· MySQL查询执行顺序:一张图看懂SQL是如何工作的
阅读排行:
· 35+程序员的转型之路:经济寒冬中的希望与策略
· 全球首位 AI 程序员 Devin 诞生了,对于程序员的影响到底多大?
· 使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统
· 做这么个免费在线拼图工具,如何赚钱呢
· 我在厂里搞wine的日子
点击右上角即可分享
微信分享提示