来源:原始 Jupyter Notebook。内容已转换为网页阅读格式;下载原文件

线性回归总结

我们先回顾一下线性回归问题,线性模型一般表示成:

h(x)=hθ(x)=θ0+θ1x1+...+θdxd h(x) = h_\theta(x) = \theta_0 + \theta_1x_1 + ... + \theta_dx_d

也可以写成向量表示:

hθ(x)=θTX h_\theta(x) = \theta^TX

最常用的求解方法是 最小二乘法,它采用 平方损失 作为损失函数:

J(θ)=i=1m(hθ(x(i))y(i))2 J(\theta) = \sum_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})^2

要求解的模型参数就是损失函数取最小值时参数取值:

θ=minθJθ \theta = \min_{\theta} J_\theta

最小二乘法有两种常见的求解思路,一种使用正规方程:

θ=(XTX)1XTy \theta = (X^TX)^{-1}X^Ty

另一种使用优化算法梯度下降:

θj:=θj+α(y(i)hθ(x(i)))xj(i) \theta_j := \theta_j + \alpha(y^{(i)} - h_\theta(x^{(i)}))x_j^{(i)}

逻辑回归总结

逻辑回归模型一般表示成:

hθ(x)=g(θTx)=11+eθTx h_\theta(x) = g(\theta^Tx) = \frac{1}{1 + e^{-\theta^Tx}}

其中,g(z)=11+ezg(z) = \frac{1}{1 + e^{-z}},假设预测分类的概率满足伯努利分布:

P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x) \begin{align} P(y = 1 | x; \theta) &= h_\theta(x) \\ P(y = 0 | x; \theta) &= 1 - h_\theta(x) \end{align}

我们把上面两个式子合在一起,有:

P(y x;θ)=hθy(x)(1hθ(x))1y P(y\ | x; \theta) = h_\theta^{y}(x) (1-h_\theta(x))^{1-y}

根据 极大似然估计 我们有:

L(θ)=i=1mhθy(i)(x(i))(1hθ(x(i)))1y(i) L(\theta) = \prod_{i=1}^m h_\theta^{y^{(i)}}(x^{(i)}) (1-h_\theta(x^{(i)}))^{1-y^{(i)}}

对其取对数得到逻辑回归的损失函数:

(θ)=logL(θ)=i=1my(i)loghθ(x(i)))+(1y(i))(1hθ(x(i))) \ell(\theta) = \log L(\theta) = \sum_{i=1}^m y^{(i)}\log h_\theta(x^{(i)})) + (1-y^{(i)}) (1 - h_\theta(x^{(i)}))

和线性回归一样,可以使用梯度下降法求 (θ)\ell(\theta) 的最小值:

θj:=θj+α(y(i)hθ(x(i)))xj(i) \theta_j := \theta_j + \alpha(y^{(i)} - h_\theta(x^{(i)}))x_j^{(i)}

可以看到梯度下降公式和线性回归是一样的,差别在于 hθ()h_\theta(\cdot),线性回归的 hθ(x)=θTXh_\theta(x) = \theta^TX,而逻辑回归的 hθ(x)=g(θTx)h_\theta(x) = g(\theta^Tx),这个 g()g(\cdot) 通常称为连接函数(link function,或称为联系函数),它必须是单调可微的,通过连接函数得到的模型称为广义线性模型(generalized linear model)。

线性回归和逻辑回归的比较

回归问题中经常使用基于欧式距离的损失函数,而分类问题中,损失函数是基于概率分布,学术上被称为 交叉熵(Cross Entropy)。虽然两种损失函数的形式不同,但是它们的值都对应着模型的预测误差,因此这个值越小越好,这也是损失函数参数估计的基本原则。