# 线性回归
# 概念
线性回归 (Linear Regression, LR) 是最基础的回归问题。
给定一组数据集 D={(xi,yi)}i=1m. 其中,xi=(xi1,xi2,…,xid)⊤ 是一个 d 维向量,yi∈R 是在条件 xi 下对应的真实数据 (ground truth). 线性回归即假设 x 中诸因素对 y 的影响是 (近似) 线性的,因此构造预测模型
h(xi)=j=1∑dwixij+b
为简化形式,记
xi=(1,xi1,xi2,…,xid)∈Rd+1w=(b,w1,w2,…,wd)∈Rd+1
那么得到
h(xi)=w⊤xi
!!!warning
在大多数时候,我们的训练集不是全体真实数据,因而其不一定能反映数据的真实分布,我们称训练集的分布为经验分布 (empirical distribution),这与采用真实数据之间存在一个误差,称为经验误差 (empirical error).
!!!
# 优化目标
在线性回归中,机器学习的过程就是将 h(x) 最优化的过程。一般采用残差平方和 (Mean Square Error, MSE) 衡量 h(x) 的优劣。因此,最小化的目标函数是
mins.t.E(w)=i∑(h(xi)−yi)2h(xi)=w⊤xi
其中对全体 i 求和即对全体训练样本点求和。
注意到,
E(w)=i∑(h(xi)−yi)2=i∑(w⊤xi−yi)2=i∑(xi⊤w−yi)2=∥Xw−y∥2
因此,上式采用矩阵形式,可以表示为
E(w)=∥Xw−y∥2
此处的范数是 l2 范数,E(w) 的含义是一个关于 w 的能量函数。一般情况下,最终的损失函数还需要加入 λ∥w∥2 项防止过拟合。
采用矩阵形式,结合矩阵求导公式得到
∇E(w)=2(X⊤Xw−X⊤y)
于是极值点(最优解)为使得 E(w⋆)=0 的点 w⋆. 容易解得,
w⋆=(X⊤X)−1X⊤y
称 X†:=(X⊤X)−1X⊤ 为矩阵 X 的伪逆 (pseudo-inverse). 于是
w⋆=X†y
关于矩阵伪逆的具体求解和更多知识,可以参考矩阵伪逆 & 摄动法。
# 求解线性回归
除了采用矩阵伪逆直接求解线性回归之外,我们还有更一般的参数求解方法。主要包括梯度下降法和牛顿法等。
# 逻辑回归
逻辑回归基于线性回归解决二分类问题的方法,即对样本点 x, 给出该样本点为正类的概率 h(x)=p(+1∣x). 其中,h(x) 来自于 hypothesis, 表示一个假设的模型。
# sigmoid 函数
# 缘起
对于一个线性模型 y=w⊤x, 逻辑回归的创举在于其构造了一个函数 S(x). 该函数将值域为 (−∞,+∞) 的线性回归模型重映射到 (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)
注意到,logistic 函数与双曲正切函数相似。实际上,tanh(x)=2logistic(2x)−1. 而 logistic 函数计算更简便,因此采用 logistic 函数作为一般使用的 sigmoid 函数。
在很多情况下,sigmoid 函数直接代指 logistic 函数。但我们仍需知道 sigmoid 函数的本义,其不应等同于 logistic 函数。
# 激活函数
在深度学习的训练过程中,每层需要一个激活函数 (activate function) 实现线性模型的非线性化。除 ReLU 函数之外,上述的诸 sigmoid 函数也是激活函数的主要选择。
# 极大似然估计
由于 sigmoid 函数是非线性的,因此不能采用均方误差进行参数优劣度量。在这里,我们一般采用极大似然估计 (Maximum Likelihood Estimation, MLE) 进行参数估计。
对独立同分布样本组成的数据集 D={x1,x2,…,xn} 和参数集 θ, 极大似然估计通过最大化 p(D∣θ), 得到 θ 的估计值 θ^:
θ^=θargmaxp(D∣θ),p(D∣θ)=k=1∏np(xk∣θ)
对于