阅读笔记(2) 单层网络:回归

发布于:2025-06-29 ⋅ 阅读:(14) ⋅ 点赞:(0)

阅读笔记(2) 单层网络:回归

该笔记是DataWhale组队学习计划(共度AI新圣经:深度学习基础与概念)的Task02

以下内容为个人理解,可能存在不准确或疏漏之处,请以教材为主。

1. 从泛函视角来看线性回归

还记得线性代数里学过的“基”这个概念吗?一组基向量是一组线性无关的向量,它们通过线性组合可以张成一个向量空间。也就是说,这个空间里的任意一个向量,都可以表示成这组基的线性组合。

函数其实也可以看作是某种“向量”,只不过它们所在的“空间”是无限维的。而我们选择的一组基函数,就是在这个函数空间中选出有限个“方向”,然后试图用这些方向的线性组合去逼近真实的目标函数。(如果你接触过一点泛函分析的话可能会更容易理解这一点。)

我们可以把模型看作是在一个函数空间中寻找某个目标函数。这个目标函数我们不知道长什么样,但我们可以假设它可以用一组已知的**基函数(basis functions)**的线性组合来近似表示。比如常见的线性回归模型形式如下:
y ( x , w ) = w 0 + ∑ j = 1 M − 1 w j ϕ j ( x ) y(x, w) = w_0 + \sum_{j=1}^{M-1} w_j \phi_j(x) y(x,w)=w0+j=1M1wjϕj(x)
其中:

  • x x x是输入变量;
  • ϕ j ( x ) \phi_j(x) ϕj(x)是第 j j j个基函数;
  • w j w_j wj是对应的权重参数;
  • M M M是基函数的数量。

换句话说,我们不是直接去猜那个“上帝才知道”的真实函数,而是先选好一组我们觉得靠谱的基函数,然后用这些基函数的加权和去逼近真实函数。剩下的问题就变成了:怎么找到这一组权重 w = ( w 0 , w 1 , . . . , w M − 1 ) \mathbf{w} = (w_0, w_1, ..., w_{M-1}) w=(w0,w1,...,wM1)

另外附上常用的基函数(具体的形式可以看书):

  1. 多项式函数
  2. Sigmoid函数
  3. tanh函数
  4. 傅里叶基

2. 三种方式推导线性回归

在正式开始之前,我们先统一一下符号和模型形式(也参考书中的约定):

我们使用如下形式的线性模型来进行预测:

y ( x , w ) = w T ϕ ( x ) y(\mathbf{x}, \mathbf{w}) = \mathbf{w}^T \phi(\mathbf{x}) y(x,w)=wTϕ(x)

其中:

  • x \mathbf{x} x是输入特征向量;
  • ϕ \phi ϕ: 基函数, 上面提到过的;
  • w \mathbf{w} w是我们要学习的参数向量。

我们用 t \mathbf{t} t来表示真实的目标值(也就是训练数据中的标签)。


2.1 均方误差损失函数

目标:让模型输出尽可能接近真实值

最直观的想法是:我们希望模型的输出值和真实值之间的差距越小越好。这个差距可以用一个度量标准来衡量,比如最常见的——均方误差

对于单个样本 ( ϕ n , t n ) (\phi_n, t_n) (ϕn,tn),误差为:

E n = 1 2 ( t n − w T ϕ n ) 2 E_n = \frac{1}{2} (t_n - \mathbf{w}^T \phi_n)^2 En=21(tnwTϕn)2

这里加了 1 2 \frac{1}{2} 21是为了后面求导时方便消掉系数 2。

对所有样本来说,总的误差就是它们的累加:

E ( w ) = 1 2 ∑ n = 1 N ( t n − w T ϕ n ) 2 E(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^{N} (t_n - \mathbf{w}^T \phi_n)^2 E(w)=21n=1N(tnwTϕn)2

我们的目标是找到一组参数 w \mathbf{w} w,使得这个误差最小化。

数学推导:求梯度并令其为零

我们可以将这个损失函数写成矩阵形式,这样更容易处理:

令:

  • Φ \Phi Φ是设计矩阵(design matrix),每一行是一个样本的基函数输出 ϕ n T \phi_n^T ϕnT
  • t \mathbf{t} t是目标值组成的列向量

则损失函数可以写作:

E ( w ) = 1 2 ∥ t − Φ w ∥ 2 E(\mathbf{w}) = \frac{1}{2} \| \mathbf{t} - \Phi \mathbf{w} \|^2 E(w)=21tΦw2

展开后:

E ( w ) = 1 2 ( t − Φ w ) T ( t − Φ w ) E(\mathbf{w}) = \frac{1}{2} (\mathbf{t} - \Phi \mathbf{w})^T (\mathbf{t} - \Phi \mathbf{w}) E(w)=21(tΦw)T(tΦw)

w \mathbf{w} w求导并令导数为零:

∇ w E ( w ) = − Φ T ( t − Φ w ) = 0 \nabla_\mathbf{w} E(\mathbf{w}) = -\Phi^T (\mathbf{t} - \Phi \mathbf{w}) = 0 wE(w)=ΦT(tΦw)=0

整理得:

Φ T Φ w = Φ T t \Phi^T \Phi \mathbf{w} = \Phi^T \mathbf{t} ΦTΦw=ΦTt

Φ T Φ \Phi^T \Phi ΦTΦ可逆,则最优解为:

w ∗ = ( Φ T Φ ) − 1 Φ T t \mathbf{w}^* = (\Phi^T \Phi)^{-1} \Phi^T \mathbf{t} w=(ΦTΦ)1ΦTt

整个形式是不是很像最小二乘法的解,

2.2 极大似然估计

接下来我们尝试从概率建模的角度出发,重新理解线性回归。这个视角和前面的均方误差不同,它不是直接定义一个损失函数,而是先对数据生成过程做一个合理的假设,然后通过极大似然法来求解参数。(书上的推导其实就是这个方法, 所以这部分不想写太多,可以看书)

基本假设:目标值由确定性函数 + 高斯噪声组成

我们假设观测到的目标值 t n t_n tn是由真实函数输出加上一个高斯噪声构成的:

t n = y ( x n , w ) + ϵ n t_n = y(\mathbf{x}_n, \mathbf{w}) + \epsilon_n tn=y(xn,w)+ϵn

其中:

  • y ( x n , w ) = w T ϕ ( x n ) y(\mathbf{x}_n, \mathbf{w}) = \mathbf{w}^T \phi(\mathbf{x}_n) y(xn,w)=wTϕ(xn)是模型预测值;
  • ϵ n ∼ N ( 0 , σ 2 ) \epsilon_n \sim \mathcal{N}(0, \sigma^2) ϵnN(0,σ2)是独立同分布的高斯噪声。

根据高斯分布的可加性,我们可以得出:

t n ∼ N ( y ( x n , w ) ,   σ 2 ) t_n \sim \mathcal{N}\left(y(\mathbf{x}_n, \mathbf{w}),\ \sigma^2\right) tnN(y(xn,w), σ2)

也就是说,对于每一个输入 x n \mathbf{x}_n xn,对应的标签 t n t_n tn是一个以模型输出为期望、方差为 σ 2 \sigma^2 σ2的正态分布随机变量。

于是,给定输入 x n \mathbf{x}_n xn和参数 w \mathbf{w} w,观察到某个输出 t n t_n tn的概率密度可以表示为:

p ( t n ∣ x n , w , σ 2 ) = N ( t n ∣ y ( x n , w ) , σ 2 ) p(t_n | \mathbf{x}_n, \mathbf{w}, \sigma^2) = \mathcal{N}(t_n \mid y(\mathbf{x}_n, \mathbf{w}), \sigma^2) p(tnxn,w,σ2)=N(tny(xn,w),σ2)

极大似然估计的目标:让观测数据出现的概率最大

现在我们有一组训练样本:

D = { ( x 1 , t 1 ) ,   ( x 2 , t 2 ) ,   … ,   ( x N , t N ) } \mathcal{D} = \{ (\mathbf{x}_1, t_1),\ (\mathbf{x}_2, t_2),\ \dots,\ (\mathbf{x}_N, t_N) \} D={(x1,t1), (x2,t2), , (xN,tN)}

我们要找一组参数 w \mathbf{w} w,使得这些数据出现的概率尽可能大——这就是极大似然估计的核心思想。

由于各个样本是独立的,联合概率可以写成乘积形式:

p ( t ∣ X , w , σ 2 ) = ∏ n = 1 N N ( t n ∣ w T ϕ ( x n ) , σ 2 ) p(\mathbf{t} | \mathbf{X}, \mathbf{w}, \sigma^2) = \prod_{n=1}^{N} \mathcal{N}(t_n \mid \mathbf{w}^T \phi(\mathbf{x}_n), \sigma^2) p(tX,w,σ2)=n=1NN(tnwTϕ(xn),σ2)

为了方便计算,我们通常取对数,得到对数似然函数(log-likelihood)

ln ⁡ p ( t ∣ X , w , σ 2 ) = − N 2 ln ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ n = 1 N ( t n − w T ϕ n ) 2 \ln p(\mathbf{t} | \mathbf{X}, \mathbf{w}, \sigma^2) = -\frac{N}{2} \ln(2\pi\sigma^2) - \frac{1}{2\sigma^2} \sum_{n=1}^{N} (t_n - \mathbf{w}^T \phi_n)^2 lnp(tX,w,σ2)=2Nln(2πσ2)2σ21n=1N(tnwTϕn)2

注意到只有第二项与 w \mathbf{w} w有关,所以最大化对数似然就等价于最小化下面这个量:

∑ n = 1 N ( t n − w T ϕ n ) 2 \sum_{n=1}^{N} (t_n - \mathbf{w}^T \phi_n)^2 n=1N(tnwTϕn)2

这正是我们在 2.1 节中提到的均方误差损失函数, 剩下的内容就和前面差不多了.

2.3 贝叶斯视角

前面我们从损失函数的角度推出了线性回归,又从概率建模的角度用极大似然估计得到了同样的结果。现在我们来看看第三种方法——贝叶斯方法,它会让我们对模型参数有一个“不确定性”的理解,但最终也会导向几乎一样的解。

想法:不只是找一个最好的参数,而是找一个最可能的参数分布

之前的方法都直接去求一个具体的 w \mathbf{w} w值,比如最小二乘法求闭式解。而贝叶斯方法更“保守”一点,它不是说“哪个 w \mathbf{w} w是对的”,而是问:“给定数据之后,哪个 w \mathbf{w} w最有可能解释这些数据?”

换句话说,我们要计算的是:

在看到数据之后, w \mathbf{w} w的后验概率是多少?

根据贝叶斯定理:

p ( w ∣ 数据 ) ∝ p ( 数据 ∣ w ) ⋅ p ( w ) p(\mathbf{w} | \text{数据}) \propto p(\text{数据} | \mathbf{w}) \cdot p(\mathbf{w}) p(w数据)p(数据w)p(w)

也就是:

  • 后验概率 ≈ 似然 × 先验
具体设定

我们先像前面一样做一个假设:

  • 目标值是由模型输出加上高斯噪声构成的:
    t n = y ( x n , w ) + ϵ n , ϵ n ∼ N ( 0 , σ 2 ) t_n = y(\mathbf{x}_n, \mathbf{w}) + \epsilon_n,\quad \epsilon_n \sim \mathcal{N}(0, \sigma^2) tn=y(xn,w)+ϵn,ϵnN(0,σ2)

  • 我们还为参数 w \mathbf{w} w加一个先验分布,通常是零均值高斯分布(相当于加了一个正则项):
    p ( w ) = N ( 0 , α − 1 I ) p(\mathbf{w}) = \mathcal{N}(\mathbf{0}, \alpha^{-1} I) p(w)=N(0,α1I)

这里的 α \alpha α可以理解为对参数大小的一种控制,类似于正则化系数。

推导后验分布的最大值(MAP 估计)

虽然贝叶斯方法通常是要算整个分布,但我们这里的目标还是想找出那个“最可能的 w \mathbf{w} w”。所以我们可以做最大后验估计(MAP),即最大化后验概率:

w MAP = arg ⁡ max ⁡ w p ( w ∣ X , t ) \mathbf{w}_{\text{MAP}} = \arg\max_{\mathbf{w}} p(\mathbf{w} | \mathbf{X}, \mathbf{t}) wMAP=argwmaxp(wX,t)

代入公式:

log ⁡ p ( w ∣ X , t ) ∝ − 1 2 σ 2 ∑ n = 1 N ( t n − w T ϕ n ) 2 − α 2 ∥ w ∥ 2 \log p(\mathbf{w} | \mathbf{X}, \mathbf{t}) \propto -\frac{1}{2\sigma^2} \sum_{n=1}^{N} (t_n - \mathbf{w}^T \phi_n)^2 - \frac{\alpha}{2} \|\mathbf{w}\|^2 logp(wX,t)2σ21n=1N(tnwTϕn)22αw2

这就是我们在第一节讲到的带 L2 正则化的损失函数!

如果我们忽略常数项,这个目标函数就变成了:

E ( w ) = 1 2 ∥ t − Φ w ∥ 2 + λ 2 ∥ w ∥ 2 E(\mathbf{w}) = \frac{1}{2} \| \mathbf{t} - \Phi \mathbf{w} \|^2 + \frac{\lambda}{2} \|\mathbf{w}\|^2 E(w)=21tΦw2+2λw2

其中 λ = σ 2 α \lambda = \frac{\sigma^2}{\alpha} λ=ασ2

然后我们对这个函数求导,令导数为零:

∇ w E = − Φ T ( t − Φ w ) + λ w = 0 \nabla_\mathbf{w} E = -\Phi^T (\mathbf{t} - \Phi \mathbf{w}) + \lambda \mathbf{w} = 0 wE=ΦT(tΦw)+λw=0

整理得到:

( Φ T Φ + λ I ) w = Φ T t (\Phi^T \Phi + \lambda I) \mathbf{w} = \Phi^T \mathbf{t} (ΦTΦ+λI)w=ΦTt

于是最终的解是:

w = ( Φ T Φ + λ I ) − 1 Φ T t \mathbf{w} = (\Phi^T \Phi + \lambda I)^{-1} \Phi^T \mathbf{t} w=(ΦTΦ+λI)1ΦTt

当没有正则化( λ → 0 \lambda \to 0 λ0)时,就是我们熟悉的普通最小二乘解:

w = ( Φ T Φ ) − 1 Φ T t \mathbf{w} = (\Phi^T \Phi)^{-1} \Phi^T \mathbf{t} w=(ΦTΦ)1ΦTt

3. 习题(1-7)

在这里插入图片描述

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到