# 线性回归

# 概念

线性回归 (Linear Regression, LR) 是最基础的回归问题。

给定一组数据集 D={(xi,yi)}i=1m\mathcal{D} = \{(\bm{x}_i,y_i)\}_{i=1}^m. 其中,xi=(xi1,xi2,,xid)\bm{x}_i = (x_{i1}, x_{i2}, \dots, x_{id})^\top 是一个 dd 维向量,yiRy_i \in \mathbb{R} 是在条件 xi\bm{x}_i 下对应的真实数据 (ground truth). 线性回归即假设 x\bm{x} 中诸因素对 yy 的影响是(近似)线性的,因此构造预测模型

h(xi)=j=1dwixij+bh(\bm{x}_i) = \sum_{j=1}^d w_ix_{ij} + b

为简化形式,记

x^i=(1,xi1,xi2,,xid)Rd+1w^=(b,w1,w2,,wd)Rd+1\widehat{\bm{x}}_i = (1, x_{i1}, x_{i2}, \dots, x_{id}) \in \mathbb{R}^{d+1} \\ \widehat{\bm{w}} = (b,w_1,w_2,\dots, w_d) \in \mathbb{R}^{d+1}

那么得到

h(xi)=w^xi^h(\bm{x}_i) = \widehat{\bm{w}}^\top \widehat{\bm{x}_i}

!!!warning
在大多数时候,我们的训练集不是全体真实数据,因而其不一定能反映数据的真实分布,我们称训练集的分布为经验分布 (empirical distribution),这与采用真实数据之间存在一个误差,称为经验误差 (empirical error).
!!!

# 优化目标

在线性回归中,机器学习的过程就是将 h(x)h(x) 最优化的过程。一般采用残差平方和 (Mean Square Error, MSE) 衡量 h(x)h(x) 的优劣。因此,最小化的目标函数是

minE(w)=i(h(xi)yi)2s.t.h(xi)=wxi\begin{aligned} & \min && E(\bm{w}) = \sum_{i}(h(\bm{x}_i)-y_i)^2\\ & s.t. && h(\bm{x}_i) = \bm{w}^\top x_i \end{aligned}

其中对全体 ii 求和即对全体训练样本点求和。

注意到,

E(w)=i(h(xi)yi)2=i(wxiyi)2=i(xiwyi)2=Xwy2\begin{aligned} E(w) & = \sum_i (h(\bm{x}_i)-y_i)^2 \\ & = \sum_i (\bm{w}^\top \bm{x}_i - y_i)^2 \\ & = \sum_i (\bm{x}_i^\top \bm{w} - y_i)^2 \\ & = \| X\bm{w} - \bm{y}\|^2 \end{aligned}

因此,上式采用矩阵形式,可以表示为

E(w)=Xwy2E(w) = \|X\bm{w}-\bm{y}\|^2

此处的范数是 l2l_2 范数,E(w)E(\bm{w}) 的含义是一个关于 w\bm{w} 的能量函数。一般情况下,最终的损失函数还需要加入 λw2\lambda \|\bm{w}\|^2 项防止过拟合。

采用矩阵形式,结合矩阵求导公式得到

E(w)=2(XXwXy)\nabla E(\bm{w}) = 2(X^\top X\bm{w}- X^\top \bm{y})

于是极值点(最优解)为使得 E(w)=0E(\bm{w}^\star) = 0 的点 w\bm{w}^\star. 容易解得,

w=(XX)1Xy\bm{w}^\star = (X^\top X)^{-1}X^\top \bm{y}

X(XX)1XX^\dag \coloneqq (X^\top X)^{-1}X^\top 为矩阵 XX伪逆 (pseudo-inverse). 于是

w=Xy\bm{w}^\star = X^\dag \bm{y}

关于矩阵伪逆的具体求解和更多知识,可以参考矩阵伪逆 & 摄动法

# 求解线性回归

除了采用矩阵伪逆直接求解线性回归之外,我们还有更一般的参数求解方法。主要包括梯度下降法牛顿法等。

# 逻辑回归

逻辑回归基于线性回归解决二分类问题的方法,即对样本点 x\bm{x}, 给出该样本点为正类的概率 h(x)=p(+1x)h(\bm{x}) = p(+1|\bm{x}). 其中,h(x)h(x) 来自于 hypothesis, 表示一个假设的模型。

在这里,实际上是使用了 sigmoid 函数将线性回归的输出重映射到 (0,1)(0,1), 使得线性回归模型可以解决二分类问题,即将分类问题转化为回归问题。

# sigmoid 函数

# 缘起

对于一个线性模型 y=wxy = \bm{w^\top x}, 逻辑回归的创举在于其构造了一个函数 S(x)S(x). 该函数将值域为 (,+)(-\infty, +\infty) 的线性回归模型重映射到 (0,1)(0,1), 作为二分类的概率。这样,我们就可以采用线性模型解决二分类问题了。该函数称为 sigmoid 函数 (sigmoid function),因函数形状类似 "S" 而得名。

# 常用的 sigmoid 函数

注意,sigmoid 函数的意思是 "S" 形函数,因此 sigmoid 函数的选择不是唯一的。常用的 sigmoid 函数包括:

  • logistic 函数: logistic(x)=11+exp(x),\displaystyle \mathrm{logistic}(x) = \frac{1}{1+\exp(-x)},
  • 双曲正切函数:tanh(x)=exp(x)exp(x)exp(x)+exp(x),\displaystyle \tanh(x) = \frac{\exp(x)-\exp(-x)}{\exp(x)+\exp(-x)},
  • 反正切函数:arctan(x),\displaystyle \arctan(x),

注意到,logistic 函数与双曲正切函数相似。实际上,tanh(x)=2logistic(2x)1\tanh(x) = 2\mathrm{logistic}(2x)-1. 而 logistic 函数计算更简便,因此采用 logistic 函数作为一般使用的 sigmoid 函数。需要注意 logistic 函数的值域是 (0,1)(0,1), 双曲正切函数的值域是 (1,1)(-1, 1).

在很多情况下,sigmoid 函数直接代指 logistic 函数。但我们仍需知道 sigmoid 函数的本义,其不应等同于 logistic 函数。

# 激活函数

在深度学习的训练过程中,每层需要一个激活函数 (activate function) 实现线性模型的非线性化。除 ReLU 函数之外,上述的诸 sigmoid 函数也是激活函数的主要选择。

# 极大似然估计

由于 sigmoid 函数是非线性的,因此不能采用均方误差进行参数优劣度量。在这里,我们一般采用极大似然估计 (Maximum Likelihood Estimation, MLE) 进行参数估计。

独立同分布样本组成的数据集 D={x1,x2,,xn}\mathcal{D} = \{\bm{x}_1,\bm{x}_2, \dots, \bm{x}_n\} 和参数集 θ\bm{\theta}, 极大似然估计通过最大化 p(Dθ)p(\mathcal{D}|\bm{\theta}), 得到 θ\bm{\theta} 的估计值 θ^\hat{\bm{\theta}}:

θ^=arg maxθp(Dθ),p(Dθ)=k=1np(xkθ)k=1npθ(xk).\hat{\bm{\theta}} = \argmax_{\bm{\theta}} p(\mathcal{D}|\bm{\theta}), \quad p(\mathcal{D}|\bm{\theta}) = \prod_{k=1}^n p(\bm{x}_k|\bm{\theta}) \triangleq \prod_{k=1}^n p_{\bm{\theta}}(\bm{x}_k).

对于二分类问题,这里令 pθ(xi)p_{\bm{\theta}}(\bm{x}_i)xi\bm{x}_i 为正类的概率,即 pθ(xi)=p(+1xi,θ)p_{\bm{\theta}}(\bm{x}_i) = p(+1|\bm{x}_i,\bm{\theta}). 则对于伯努利分布,有

θ^=arg maxθpθ(x)m(1pθ(x))nm,\hat{\bm{\theta}} = \argmax_{\bm{\theta}} p_{\bm{\theta}}(\mathcal{\bm{x}})^m \left(1 - p_{\bm{\theta}}(\mathcal{\bm{x}})\right)^{n-m},

其中 mm 是正类样本的数量,nn 是样本总数。该问题可以用对数似然函数简化求解。