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

[ML Notes] Logistic 回归

1. 基本模型

  Logistic 回归的基本形式为

f(x)=g(wTx)=11+ewTx

其中 w 为参数向量,x 为特征向量

w=[w0w1w2wn],x=[1x1x2xn]

  f(x) 为预测样本为正例的概率,即

P(y=1|x;w)=f(x)

P(y = 0|\boldsymbol{x};\boldsymbol{w}) = 1 – f(\boldsymbol{x}) \tag{3}

上面两式可以写为

P(y|\boldsymbol{x};\boldsymbol{w}) = \big(f(\boldsymbol{x})\big)^y \big(1 – f(\boldsymbol{x})\big)^{(1 – y)} \tag{4}

  此外,由式 (1) 可以解得

\boldsymbol{w}^\mathrm{T} \boldsymbol{x} = \log \frac{f(\boldsymbol{x})}{1 – f(\boldsymbol{x})} = \log \frac{P(y = 1|\boldsymbol{x};\boldsymbol{w})}{P(y = 0|\boldsymbol{x};\boldsymbol{w})}

\boldsymbol{w}^\mathrm{T} \boldsymbol{x} 可以看成是对 y = 1|\boldsymbol{x} 这一事件发生的对数几率的线性回归。

2. Sigmoid 函数

  式 (1) 中的 g(z) 为 Sigmoid 函数

g(z) = \frac{1}{1 + e^{-z}} \tag{5}

其图像如图 1 所示。

  计算 g(z) 的导数为

\begin{aligned} g'(z) &= -\frac{1}{(1 + e^{-z})^2} (-e^{-z}) \\ &= \frac{1}{1 + e^{-z}} \cdot \frac{e^{-z}}{1 + e^{-z}} \\ &= \frac{1}{1 + e^{-z}} \bigg( 1 – \frac{1}{1 + e^{-z}} \bigg) \\ &= g(z) \big(1 – g(z)\big) \end{aligned} \tag{6}

3. 最大似然估计

  由式 (4),可以得到似然函数

\begin{aligned} L(\boldsymbol{w}) &= p(\boldsymbol{y}|X; \boldsymbol{w}) \\ &= \prod_{i=1}^m p(y^{(i)}|\boldsymbol{x}^{(i)}; \boldsymbol{w}) \\ &= \prod_{i=1}^m \big(f(\boldsymbol{x}^{(i)})\big)^{y^{(i)}} \big(1 – f(\boldsymbol{x}^{(i)})\big)^{(1 – y^{(i)})} \end{aligned} \tag{7}

其中 \boldsymbol{x}^{(i)}y^{(i)} 分别为第 i 个样本的特征和标签,m 为样本总数。

  对数似然函数为

\begin{aligned} l(\boldsymbol{w}) &= \log L(\boldsymbol{w}) \\ &= \sum_{i=1}^m y^{(i)} \log f(\boldsymbol{x}^{(i)}) + (1 – y^{(i)}) \log \big(1 – f(\boldsymbol{x}^{(i)})\big) \end{aligned} \tag{8}

最大化对数似然函数即可得到最优的参数 \boldsymbol{w}

4. 梯度下降

  定义代价函数为负的对数似然函数,即

\begin{aligned} J(\boldsymbol{w}) = -l(\boldsymbol{w}) = – \sum_{i=1}^m y^{(i)} \log f(\boldsymbol{x}^{(i)}) + (1 – y^{(i)}) \log \big(1 – f(\boldsymbol{x}^{(i)})\big) \end{aligned} \tag{9}

则梯度下降最小化代价函数相当于最大化对数似然函数。此时单个样本 (\boldsymbol{x}, y) 的损失函数

Loss(\boldsymbol{w}) = -\Big( y \log f(\boldsymbol{x}) + (1 – y) \log \big(1 – f(\boldsymbol{x})\big) \Big) \tag{10}

即为交叉熵。

  计算式 (9) 关于第 j 个参数 \boldsymbol{w}_j 的偏导,对于单个样例 (\boldsymbol{x}, y),有

\begin{aligned} \frac{\partial}{\partial \boldsymbol w_j} J(\boldsymbol{w}) &= -\bigg( \frac{y}{f(\boldsymbol{x})} – \frac{1-y}{1 – f(\boldsymbol{x})} \bigg) \frac{\partial}{\partial \boldsymbol w_j} f(\boldsymbol{x}) \\ &= -\bigg( \frac{y}{f(\boldsymbol{x})} – \frac{1-y}{1 – f(\boldsymbol{x})} \bigg) g(\boldsymbol{w}^\mathrm{T} \boldsymbol{x}) \big(1 – g(\boldsymbol{w}^\mathrm{T} \boldsymbol{x})\big) \frac{\partial}{\partial \boldsymbol w_j} \boldsymbol{w}^\mathrm{T} \boldsymbol{x} \\ &= -\bigg( \frac{y}{f(\boldsymbol{x})} – \frac{1-y}{1 – f(\boldsymbol{x})} \bigg) f(\boldsymbol{x}) \big(1 – f(\boldsymbol{x})\big) x_j \\ &= -\Big( y\big(1 – f(\boldsymbol{x})\big) – (1 – y) f(\boldsymbol{x}) \Big) x_j \\ &= -\big(y – f(\boldsymbol{x}) \big) x_j \end{aligned} \tag{11}

梯度下降的更新规则为

w_j := w_j – \alpha \frac{\partial}{\partial w_j} J(\boldsymbol{w})

w_j := w_j + \alpha \big(y^{(i)} – f(\boldsymbol{x}^{(i)}) \big) \boldsymbol{x}^{(i)}_j \tag{12}