# 线性回归

# 概念

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

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

h(xi)=j=1dwixij+bh(\boldsymbol{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{\boldsymbol{x}}_i = (1, x_{i1}, x_{i2}, \dots, x_{id}) \in \mathbb{R}^{d+1} \\ \widehat{\boldsymbol{w}} = (b,w_1,w_2,\dots, w_d) \in \mathbb{R}^{d+1}

那么得到

h(xi)=w^xi^h(\boldsymbol{x}_i) = \widehat{\boldsymbol{w}}^\top \widehat{\boldsymbol{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(\boldsymbol{w}) = \sum_{i}(h(\boldsymbol{x}_i)-y_i)^2\\ & s.t. && h(\boldsymbol{x}_i) = \boldsymbol{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(\boldsymbol{x}_i)-y_i)^2 \\ & = \sum_i (\boldsymbol{w}^\top \boldsymbol{x}_i - y_i)^2 \\ & = \sum_i (\boldsymbol{x}_i^\top \boldsymbol{w} - y_i)^2 \\ & = \| X\boldsymbol{w} - \boldsymbol{y}\|^2 \end{aligned}

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

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

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

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

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

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

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

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

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

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

# 求解线性回归

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

# 逻辑回归

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

# sigmoid 函数

# 缘起

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

# 常用的 sigmoid 函数

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

  • logistic 函数: \displaystyle \mathrm{logistic}(x) = \frac{1}
  • 双曲正切函数:\displaystyle \tanh(x) = \frac{\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 函数。

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

# 激活函数

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

# 极大似然估计

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

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

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

对于