机器学习之回归算法

前言

在机器学习的世界里,回归是解决预测问题的基本方法之一。回归模型的任务是学习输入变量(特征)与输出变量(目标)之间的映射关系,尤其是输出为连续值时,回归显得尤为重要。本文将结合经典的线性回归、多项式回归以及常用的正则化方法,详细讲解机器学习中的回归算法。

一、回归问题的基本概念

在机器学习中,回归问题是指给定输入变量 x = [ x 1 , x 2 , … , x d ] \mathbf{x} = [x_1, x_2, \dots, x_d] x=[x1,x2,,xd],预测输出 y y y 的任务。我们假设存在某种函数 f ( x ) f(\mathbf{x}) f(x) ,描述了输入与输出之间的关系,但我们并不知道这个函数的具体形式。回归的目标就是通过有限的训练数据 D = { ( x 1 , y 1 ) , … , ( x n , y n ) } D = \{(\mathbf{x}_1, y_1), \dots, (\mathbf{x}_n, y_n)\} D={(x1,y1),,(xn,yn)} 来学习一个近似的映射函数 f ^ ( x ; θ ) \hat{f}(\mathbf{x}; \theta) f^(x;θ),其中 θ \theta θ是模型参数。


二、线性回归:最经典的回归模型

1. 线性回归的假设

线性回归假设输出 y y y 与输入 x \mathbf{x} x 之间呈线性关系,数学上可以表示为:
f ( x ; w , b ) = w T x + b f(\mathbf{x}; \mathbf{w}, b) = \mathbf{w}^T \mathbf{x} + b f(x;w,b)=wTx+b
其中, w \mathbf{w} w 是权重向量, b b b 是偏置项。线性回归的目标是通过学习合适的 w \mathbf{w} w b b b,使模型的输出尽量逼近真实的目标值 y y y

2. 损失函数:最小化误差

在线性回归中,常用的损失函数是均方误差(Mean Squared Error,MSE),其定义为预测值与真实值之差的平方:
L ( w , b ) = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 = 1 n ∑ i = 1 n ( y i − ( w T x i + b ) ) 2 L(\mathbf{w}, b) = \frac{1}{n} \sum_{i=1}^{n} \left( y_i - \hat{y}_i \right)^2 = \frac{1}{n} \sum_{i=1}^{n} \left( y_i - (\mathbf{w}^T \mathbf{x}_i + b) \right)^2 L(w,b)=n1i=1n(yiy^i)2=n1i=1n(yi(wTxi+b))2
通过最小化这个损失函数,我们可以得到最优的 w \mathbf{w} w b b b

3. 求解方法:正规方程与梯度下降

  • 正规方程(Normal Equation):通过解析的方法,我们可以直接求出最优的参数。令损失函数对 w \mathbf{w} w b b b​ 的导数为 0,得到正规方程:

  • 训练误差表示成向量形式: ϵ ^ ( w ) = ∑ i = 1 n ( w T x i − y i ) 2 \hat{\epsilon}(w)=\sum_{i=1}^n(w^Tx_i-y_i)^2 ϵ^(w)=i=1n(wTxiyi)2= ∥ X w − y ∥ 2 \|Xw-y\|^2 Xwy2令梯度为0得:
    ∇ ϵ ^ ( w ) = 2 X T ( X w − y ) = 0 ⇒ X T X w = X T y \nabla\hat{\epsilon}(w)=2X^T(Xw-y)=0\Rightarrow X^TXw=X^Ty ϵ^(w)=2XT(Xwy)=0XTXw=XTy
    w = ( X T X ) − 1 X T y \mathbf{w} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{y} w=(XTX)1XTy

    其中, X \mathbf{X} X是输入数据的矩阵表示, y \mathbf{y} y 是标签向量。

  • 梯度下降法(Gradient Descent):对于大规模数据集,正规方程计算复杂度较高,因此我们可以使用梯度下降法。其核心思想是通过不断调整参数,使得损失函数逐渐减小。梯度下降更新公式为:
    w ← w − η 1 n ∑ i = 1 n ( y ^ i − y i ) x i \mathbf{w} \leftarrow \mathbf{w} - \eta \frac{1}{n} \sum_{i=1}^{n} \left( \hat{y}_i - y_i \right) \mathbf{x}_i wwηn1i=1n(y^iyi)xi
    其中, η \eta η 是学习率,控制参数更新的步长。


三、非线性场景:多项式回归

在现实问题中,输入与输出之间的关系并不总是线性的。当线性回归无法很好地拟合数据时,可以通过多项式回归来捕捉非线性关系。

1. 多项式回归的模型

多项式回归的本质是通过将输入特征进行非线性变换,构造出更复杂的特征空间。对于一维输入 ( x ),多项式回归的模型形式为:
f ( x ; w ) = w 0 + w 1 x + w 2 x 2 + ⋯ + w d x d f(x; \mathbf{w}) = w_0 + w_1 x + w_2 x^2 + \dots + w_d x^d f(x;w)=w0+w1x+w2x2++wdxd
也可以用向量形式表示:
f ( x ; w ) = w T ϕ ( x ) f(\mathbf{x}; \mathbf{w}) = \mathbf{w}^T \mathbf{\phi}(\mathbf{x}) f(x;w)=wTϕ(x)
其中, ϕ ( x ) \mathbf{\phi}(\mathbf{x}) ϕ(x) 是输入的多项式特征映射。

2. 过拟合问题与解决方法

随着多项式阶数的增加,模型的拟合能力增强,但也可能导致过拟合,即模型对训练数据拟合得很好,但对新数据泛化能力差。为了解决过拟合问题,我们需要控制模型的复杂度,这就引出了正则化方法。


四、正则化回归:岭回归与套索回归

正则化是一种通过对模型参数施加约束,防止模型过拟合的方法。在回归问题中,常用的正则化方法有岭回归(L2 正则化)和套索回归(L1 正则化)。

1. 岭回归(Ridge Regression)

岭回归是在线性回归的基础上加上 L2 正则化项,其损失函数为:
L ( w , b ) = 1 n ∑ i = 1 n ( y i − ( w T x i + b ) ) 2 + λ ∥ w ∥ 2 2 L(\mathbf{w}, b) = \frac{1}{n} \sum_{i=1}^{n} \left( y_i - (\mathbf{w}^T \mathbf{x}_i + b) \right)^2 + \lambda \|\mathbf{w}\|_2^2 L(w,b)=n1i=1n(yi(wTxi+b))2+λw22
其中, λ \lambda λ 是正则化强度的超参数, ∥ w ∥ 2 2 \|\mathbf{w}\|_2^2 w22 是权重向量的 L2 范数。通过惩罚权重的大小,岭回归抑制了模型的复杂度,降低了过拟合的风险。

2. 套索回归(Lasso Regression)

套索回归则使用 L1 正则化,其损失函数为:
L ( w , b ) = 1 n ∑ i = 1 n ( y i − ( w T x i + b ) ) 2 + λ ∥ w ∥ 1 L(\mathbf{w}, b) = \frac{1}{n} \sum_{i=1}^{n} \left( y_i - (\mathbf{w}^T \mathbf{x}_i + b) \right)^2 + \lambda \|\mathbf{w}\|_1 L(w,b)=n1i=1n(yi(wTxi+b))2+λw1
L1 正则化的特点是能够产生稀疏解,即将一些不重要的特征权重压缩为 0,从而实现特征选择。

3. 正则化的几何解释

L2 正则化将参数限制在一个 L2 范数球内,使参数平滑且不容易变得很大;而 L1 正则化将参数限制在 L1 范数球内,促使某些参数变为 0,实现稀疏解。


五、Logistic 回归与 Softmax 回归

回归模型不仅可以用于连续值预测,还可以扩展到分类问题。例如,Logistic 回归用于二分类问题,而Softmax 回归用于多分类问题。

1. Logistic 回归

Logistic 回归模型通过将线性模型的输出映射到 ( [0, 1] ) 区间,用于预测类别概率。其模型形式为:
p ( y = 1 ∣ x ) = σ ( w T x ) = 1 1 + e − w T x p(y=1|\mathbf{x}) = \sigma(\mathbf{w}^T \mathbf{x}) = \frac{1}{1 + e^{-\mathbf{w}^T \mathbf{x}}} p(y=1∣x)=σ(wTx)=1+ewTx1
其中,$\sigma(\cdot) $ 是 Sigmoid 函数。模型通过最大化似然函数来求解参数:
L ( w ) = ∏ i = 1 n p ( y i ∣ x i ) L(\mathbf{w}) = \prod_{i=1}^{n} p(y_i|\mathbf{x}_i) L(w)=i=1np(yixi)
通常通过最小化负对数似然来求解:
w ^ = arg ⁡ min ⁡ w − ∑ i = 1 n ( y i log ⁡ p ( y i ∣ x i ) + ( 1 − y i ) log ⁡ ( 1 − p ( y i ∣ x i ) ) ) \hat{\mathbf{w}} = \arg \min_{\mathbf{w}} - \sum_{i=1}^{n} \left( y_i \log p(y_i|\mathbf{x}_i) + (1 - y_i) \log (1 - p(y_i|\mathbf{x}_i)) \right) w^=argwmini=1n(yilogp(yixi)+(1yi)log(1p(yixi)))

2. Softmax 回归

当分类问题有多个类别时, L o g i s t i c Logistic Logistic 回归可以推广为 Softmax 回归。其输出通过 Softmax 函数映射到多个类别的概率:
p ( y = j ∣ x ) = e w j T x ∑ k = 1 K e w k T x p(y=j|\mathbf{x}) = \frac{e^{\mathbf{w}_j^T \mathbf{x}}}{\sum_{k=1}^{K} e^{\mathbf{w}_k^T \mathbf{x}}} p(y=jx)=k=1KewkTxewjTx

也就是说如果是二分类,Logistic 回归和 Softmax 回归是等价的。

对于二分类问题,类别 y y y 只有两个可能的值 y = 1 y = 1 y=1 y = 2 y = 2 y=2 。因此 Softmax 的输出形式简化为:

P ( y = 1 ∣ x ) = exp ⁡ ( w 1 T x ) exp ⁡ ( w 1 T x ) + exp ⁡ ( w 2 T x ) P(y = 1 | \mathbf{x}) = \frac{\exp(\mathbf{w}_1^T \mathbf{x})}{\exp(\mathbf{w}_1^T \mathbf{x}) + \exp(\mathbf{w}_2^T \mathbf{x})} P(y=1∣x)=exp(w1Tx)+exp(w2Tx)exp(w1Tx)
为了简化表达式,我们将分子和分母同时除以 exp ⁡ ( w 1 T x ) \exp(\mathbf{w}_1^T \mathbf{x}) exp(w1Tx),得到:

P ( y = 1 ∣ x ) = 1 1 + exp ⁡ ( ( w 2 − w 1 ) T x ) P(y = 1 | \mathbf{x}) = \frac{1}{1 + \exp((\mathbf{w}_2 - \mathbf{w}_1)^T \mathbf{x})} P(y=1∣x)=1+exp((w2w1)Tx)1
这个公式清楚地展示了二分类问题下的 Softmax 输出的简化形式。

接下来,使用新的权重向量 w ′ = w 2 − w 1 \mathbf{w}' = \mathbf{w}_2 - \mathbf{w}_1 w=w2w1进行替换,Softmax 输出的表达式变为:

P ( y = 1 ∣ x ) = 1 1 + exp ⁡ ( − w ′ T x ) P(y = 1 | \mathbf{x}) = \frac{1}{1 + \exp(-\mathbf{w}'^T \mathbf{x})} P(y=1∣x)=1+exp(wTx)1
这个公式看起来与 Logistic 回归的输出形式完全一致。Logistic 回归的输出是:

P ( y = 1 ∣ x ) = 1 1 + exp ⁡ ( − w T x ) P(y = 1 | \mathbf{x}) = \frac{1}{1 + \exp(-\mathbf{w}^T \mathbf{x})} P(y=1∣x)=1+exp(wTx)1
这表明,Softmax 回归在二分类问题下等价于 Logistic 回归。

六、总结

本文详细介绍了回归问题中常用的模型和方法,从经典的线性回归、多项式回归,到应对过拟合的正则化方法(岭回归和套索回归),再到分类问题中的回归模型(Logistic 回归和 Softmax 回归)。

undefined

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐