1. 逻辑回归
模型:
Binary Cross Entropy Loss(极大似然):
虽然使用了 sigmoid 函数(也叫做 Logistic Function ),但该模型仍然是线性分类器,因为即使不经过 sigmoid 函数也可以得出分类结果(与 0 比较),sigmoid 将其转化为概率。
Logistic Regression 更准确的翻译是 对数几率(Log-Odds)回归 。对数几率定义为:
对数几率也叫做 Logit ,它是 sigmoid 函数的反函数:
Tip
1.1. 基本假设
数据服从 伯努利分布 \(y \sim Bernoulli(\phi)\)
样例为正例的概率为 \(\phi=h_\theta(x)\)
1.2. 求解方法
- 梯度下降
批梯度下降:全局最优;每次参数更新需要遍历所有样本,计算量大,效率低。
随机梯度下降(SGD):以高方差频繁更新,能跳到新的、更好的局部最优解;收敛到局部最优的过程更加复杂。
小批量梯度下降:减少了参数更新次数,达到更稳定的收敛结果。
1.3. 优缺点
- 优点
模型简单,可解释性好,效果不错
训练速度快,资源占用少
直接输出样本的分类概率,便于做阈值划分
- 缺点
准确性不高
很难处理数据不平衡问题
只能处理线性问题
逻辑回归本身无法筛选特征
1.4. 解析
为什么使用极大似然函数作为损失函数?
BCE Loss 是关于参数 \(\theta\) 的凸函数 ,使用梯度下降算法可以找到全局最优解。
极大似然:希望最大化每个样本的分类正确概率,样本服从伯努利分布。
将极大似然取对数后就等同于对数损失函数,在 LR 模型中,这个损失函数使参数更新速度较快:
\[\theta^{(j)} \leftarrow \theta^{(j)} + \alpha \times \frac{1}{m} \sum_{i=1}^m (y_i - h_\theta(x_i))x_i^{(j)}\]可见梯度只与 \(y_i,x_i\) 有关,与 \(h_\theta\) 的导数无关。其中上标 \((j)\) 表示向量的第 \(j\) 维分量。
为什么不用平方损失函数(多用于线性回归)?
MSE Loss 是关于参数 \(\theta\) 的非凸函数,容易陷入局部最优解。
在线性回归中,前提假设是 \(y\) 服从正态分布,即 \(y \sim \mathcal{N}(\mu, \sigma^2)\) 。
如果使用平方损失函数, \(\theta\) 更新与 \(h_\theta\) 的梯度有关,而 sigmoid 函数的梯度在定义域内小于0.25,导致参数更新慢。
训练中如何有很多特征高度相关或将某个特征重复 100 遍,影响如何?
如果损失函数收敛,不影响分类结果(每个特征对应的权重 \(\theta_j\) 变为原来的百分之一)。将相关特征去除,使模型具有更好的解释性,也能加快训练速度。
1.5. 参考资料
逻辑回归的常见面试点总结
LR逻辑斯回归分析(优缺点)
logistic 回归(内附推导)
周志华《机器学习》Page 57 – 60。
Logistic regression - Prove That the Cost Function Is Convex