- 推导 sigmoid
- 推导LR损失函数
- 推导LR梯度下降
- Softmax原理
- softmax 损失函数
- softmax 梯度下降
- Python 实现 LR
sigmoid 函数的由来
考虑二分类问题,即 。由于 是二值的随机变量,因此我们很自然的选择 分布来对分类问题进行建模: .
由此,我们便得到了 Logistic Regression 的 sigmoid 函数了。其函数图像如下:
Logistic Regression 二分类模型定义:
由于 ,我们可以将上面的式子联立起来:
即 当 时候,; 当 时候,。可以看到,这与原先的式子是等价的。
LR 损失函数与梯度下降
LR 模型定义:
模型已定,参数未知,可以使用极大似然估计来估计模型的参数。
根据极大似然估计法的步骤:
1.写出似然函数
2.取对数(对数似然)
将上述的公式取负数就得到了逻辑回归的损失函数,也被称为交叉熵损失函数。损失函数是衡量模型的输出和实际的输出结果之间的差距的一种函数,即
3.求导
4.解似然方程
Softmax: 从二分类到多分类
Softmax 的本质是将一个 维的任意实数向量压缩(映射)成另一个 维的实数向量,其中映射后的向量中每个元素的取值都介于 之间,并且所有元素之和为 。
用于多分类任务中,它将模型的输出映射到 (0, 1) 区间,可以理解为概率。
在实际应用中,使用 Softmax 需要注意数值溢出问题。
label 的分布是 MultiNomial,softmax 是 MultiNomial 的 link function。
import numpy as np
def softmax(X):
x = np.exp(X - np.max(X)) / np.sum(np.exp(x))
return x
softmax 损失函数
其中 代表我们的真实值,代表 softmax 输出的值。
需要注意的是,虽然 L 是一个求和式,但是因为 只有一个为 1(其余都为 0),所以在求导的时候需要