diff --git a/docs/ml/traditional/logistic-regression.md b/docs/ml/traditional/logistic-regression.md index f7963b4..caa916e 100644 --- a/docs/ml/traditional/logistic-regression.md +++ b/docs/ml/traditional/logistic-regression.md @@ -5,35 +5,91 @@ 我们可以使用 Logistic Function 来实现这个目标: $$ -g(x) = \frac 1 {1 + e^{-x}} +g(z) = \frac 1 {1 + e^{-z}} $$ !!! note - 好多参考内容在这里喜欢添油加醋的说一句它的导数计算的问题, 大概是这样: + 好多参考内容在这里喜欢添油加醋的提一下它的导数计算的问题, 大概是这样: $$ - \frac {\mathrm{d}}{\mathrm{d}x} g(x) = g(x)(1 - g(x)) + \frac {\mathrm{d}}{\mathrm{d}z} g(z) = g(z)(1 - g(z)) $$ - 其实也可以拿这个作为微分方程反过来推 $g(x)$ 的形式, 结果是这样: + 其实也可以拿这个作为微分方程反过来推 $g(z)$ 的形式, 结果是这样: $$ - g(x) = \frac 1 {C + e^{-x}} + g(z) = \frac 1 {C \cdot e^{-z} + 1} $$ - + 考虑 $g(0) = 1 / 2$, 因此 $C=1$. 我们得到了 Sigmoid 这样一个导数容易计算, 而且性质很好的函数, 大概是这个意思。 - 然后只需要考虑两个极限 $x \to \infty$ 和 $x \to -\infty$,就能得到 $C = 1$。 +有了 Logistic Function 之后我们将模型假设为: - 导数容易计算, 而且性质很好的函数, 大概是这个意思。 +$$ +h_\theta(x) = g(\theta^T x) = \frac 1 {1 + e^{-\theta^T x}} +$$ -Logistic Function 显然并没有直接给出一个 $\{0,1\}$ 的分类结果 (不过如果有这样的东西再用 $l_1$ cost 真的能跑通吗?),我们可以将其视为一个概率值,即: +这样我们就可以得到: $$ \begin{cases} -p(y=1|x;\theta) &= h_\theta(x) = g(\theta^T x)\\ -p(y=0|x;\theta) &= 1 - h_\theta(x) +p(y=1|x;\theta) &=h_\theta(x)\\ +p(y=0|x;\theta) &=1 - h_\theta(x) \end{cases} $$ +与 Linear Regression 的部分类似,我们同样提供两种等价的视角来得到 $\theta$ 的最优解。 + +- MLE: 极大似然估计 + + 对于样本 $(x^{(i)}, y^{(i)})$,我们有: + + $$ + p(y^{(i)}|x^{(i)};\theta) = (h_\theta(x^{(i)}))^{y^{(i)}}(1 - h_\theta(x^{(i)}))^{1 - y^{(i)}} + $$ + + 考虑所有样本,将概率视作参数的函数: + + $$ + \begin{aligned} + L(\theta) &= \displaystyle\prod_{i=1}^{n} p(y^{(i)}|x^{(i)};\theta)\\ + &= \displaystyle\prod_{i=1}^{n} (h_\theta(x^{(i)}))^{y^{(i)}}(1 - h_\theta(x^{(i)}))^{1 - y^{(i)}} + \end{aligned} + $$ + + 为了方便计算,我们取对数: + + $$ + l(\theta) = \log L(\theta) = \displaystyle\sum_{i=1}^{n} y^{(i)} \log h_\theta(x^{(i)}) + (1 - y^{(i)}) \log (1 - h_\theta(x^{(i)})) + $$ + + 得到最大化的优化目标。 + +- Cost Function + + 我们构造这样一个 Cost Function $l (t,y): (0,1) \times \{0, 1\} \rightarrow \left[0, +\infty \right)$, 特殊在与它衡量 $h_\theta(x) \in (0,1) $ 与标签 $y \in \{0, 1\}$ 之间的差距: + + $$ + l(t,y) \triangleq -y \log t - (1 - y) \log (1 - t) + $$ + + !!! note + + 这里有的文献会以另一种角度介绍这个距离函数,将 Sigmoid 视作距离函数的一部分,而不是 $h_\theta(x)$ 的一部分,形式如下: + + $$ + l_{\text{logistic}}(t, y) \triangleq -y \log \left(\frac 1 {1 + e^{-t}}\right) - (1 - y) \log \left(1 - \frac 1 {1 + e^{-t}}\right) + $$ + +然后考虑 Gradient Descent 的问题: + +$$ +\frac{\partial}{\partial \theta_j} l(\theta) = \displaystyle\sum_{i=1}^{n} \left(h_\theta(x^{(i)}) - y^{(i)}\right)x_j^{(i)} +$$ + +SGD 保持一个类似的形式: + +$$ +\theta_j \leftarrow \theta_j - \alpha \left(h_\theta(x^{(i)}) - y^{(i)}\right)x_j^{(i)} +$$