Loss Function
机器学习的本质
目标函数:Log-likelihood对数似然函数
其中,
- \(P(y|x, \theta)\):表示似然函数,给定特征 \(x\) 和参数 \(\theta\),预测类别为 \(y\) 的概率
- \(P(y|x, \theta)\) 由模型的model head原始输出logits,经过sigmoid或softmax所得到
- sigmoid(logit) 的输出,以及深度学习中用于二分类的目标,核心就是预测正类的概率 \(P(y=1∣x)\)
思考1:为什么要使用对数,而不直接使用似然函数作为目标函数呢?
答:如果样本量 \(n\) 很大,似然函数中的数值会变得非常小(因为概率相乘会越来越小),容易引发数值下溢。将原始似然函数乘积转换为多个对数的和,从而简化计算和避免出现数值下溢问题。
logit
logit是输入特征 \(x\) 和参数 \(\theta\) 的线性组合
对于sigmoid,logit = \(\ln(\dfrac{p(y=1|x)}{p(y=0|x)})\) = \(\ln(\dfrac{p^+}{p^-})\) = \(\ln(\dfrac{\dfrac{N_p}{N_p + N_n}}{\dfrac{N_n}{N_p + N_n}})\)
思考2:logits这个公式是怎么来的?
\(P(y=1|x) = \sigma(\text{logit}) = \dfrac{1}{1+\exp(-\text{logit})}\)
机器学习的本质:目标函数与 logit
1. 目标函数:对数似然函数 (Log-Likelihood)
目标函数用于衡量模型的好坏,通过最大化对数似然函数来优化模型参数:
\[\log L(\theta) = \sum_{i=1}^n \log P(y|x, \theta)
\]
-
\(P(y|x, \theta)\):
- 表示似然函数,给定输入特征 \(x\) 和模型参数 \(\theta\),预测类别为 \(y\) 的概率。
- 该概率由模型的原始输出 logits 通过激活函数(如 sigmoid 或 softmax)得到。
-
为什么使用对数?
- 直接使用似然函数的乘积会导致数值下溢(概率值很小,乘积迅速趋近 0)。
- 对数变换将乘法变为加法,简化计算并提高数值稳定性。
-
核心就是预测正类的概率 \(P(y=1∣x)\)
- 的
2. logit:模型输出与概率的联系
-
logit 定义:
\[\text{logit} = x^\top \theta \]是输入特征 \(x\) 和参数 \(\theta\) 的线性组合,用于映射实数空间 \((-\infty, +\infty)\)。
-
logit 与概率的关系:
- logit 表示事件 \(y=1\) 和 \(y=0\) 的对数几率(log-odds):\[\text{logit} = \ln \left( \frac{P(y=1|x)}{P(y=0|x)} \right) \]
- 通过 sigmoid 函数将 logit 转换为概率:\[P(y=1|x) = \sigma(\text{logit}) = \frac{1}{1 + e^{-\text{logit}}} \]
- logit 表示事件 \(y=1\) 和 \(y=0\) 的对数几率(log-odds):
3. Sigmoid 的核心作用
- Sigmoid 函数将 logit 映射为 [0, 1] 范围,用于预测 \(P(y=1|x)\):\[P(y=1|x) = \sigma(\text{logit}) \]
- 核心目标:预测正类(\(y=1\))的概率。
总结:条理化的理解
-
目标函数:
- 最大化对数似然(Log-Likelihood)来优化参数,形式为对数的累加。
- 使用对数是为了避免数值下溢并简化计算。
-
logit 与概率的关系:
- logit 是 \(x^\top \theta\) 的线性组合,表示对数几率。
- 通过 sigmoid 将 logit 转为概率,用于二分类预测。
-
关键点:
- Logit 是线性空间的表达。
- Sigmoid 是从线性空间到概率空间的映射。