阅读笔记(3) 单层网络:回归(下)
该笔记是DataWhale组队学习计划(共度AI新圣经:深度学习基础与概念)的Task03
以下内容为个人理解,可能存在不准确或疏漏之处,请以教材为主。
1. 为什么书上要提到决策理论?
在刚看到这小节内容的时候很懵,为什么突然蹦出来“决策理论”这一小节?这部分主要是为了回答一个关键问题:在已知条件概率分布 p ( t ∣ x ) p(t|x) p(t∣x) 的前提下,如何做出最优的预测决策?
书中将回归任务建模为 条件概率分布 p ( t ∣ x ) p(t|x) p(t∣x),这是一种概率建模视角,即:
-
我们不再直接预测一个确定的输出值 t t t,而是预测一个关于 t t t 的概率分布(知道了分布,要进行预测就简单了)。
-
这个分布我们通常假设为高斯分布:
p ( t ∣ x ) = N ( t ∣ y ( x , w ) , σ 2 ) p(t | x) = \mathcal{N}(t \mid y(x, w), \sigma^2) p(t∣x)=N(t∣y(x,w),σ2)
其中均值 y ( x , w ) y(x, w) y(x,w) 是由模型参数决定的预测函数,方差 σ 2 \sigma^2 σ2 则表示噪声水平(之前提到过的)。
虽然我们得到了这个分布,但实际应用中往往需要输出一个具体的数值(,这就引出了一个问题:
我们应该从分布 p ( t ∣ x ) p(t|x) p(t∣x) 中选择哪一个值作为最终的预测值?
这个问题本质上涉及到损失函数的设计和风险最小化原则,而决策理论就是在已知预测分布的前提下,回答:“我应该做出什么样的具体决策才能最小化预期损失?”
明白了这一点,再去看书上的内容就更容易理解了。这一小节的核心目的就是说明:在给定损失函数的前提下,如何从分布中选择一个最优的预测值。
2. 书中式(4.35)到式(4.36)的推导过程
个人推导,可能会有误,欢迎指出。(其实这部分推导并不是特别重要,重点在于理解式(4.37)的结论)
我们要解决的是这样一个问题:
在所有可能的函数 f ( x ) f(x) f(x) 中,哪个函数能使如下期望损失最小?
E [ L ] = ∬ ( f ( x ) − t ) 2 p ( x , t ) d x d t \mathbb{E}[L] = \iint \left( f(x) - t \right)^2 p(x, t) dx dt E[L]=∬(f(x)−t)2p(x,t)dxdt
这是一个典型的泛函优化问题,即我们要找一个函数 f ( x ) f(x) f(x),使得某个“关于函数的函数”取极小值。这类问题需要用到变分法。
推导步骤如下:
引入扰动函数:设 f ϵ ( x ) = f ( x ) + ϵ η ( x ) f_\epsilon(x) = f(x) + \epsilon \eta(x) fϵ(x)=f(x)+ϵη(x),其中:
- η ( x ) \eta(x) η(x) 是任意光滑函数(扰动函数)
- ϵ \epsilon ϵ 是一个小参数(标量)
将扰动函数代入期望损失中:
E [ L ϵ ] = ∬ ( f ( x ) + ϵ η ( x ) − t ) 2 p ( x , t ) d x d t \mathbb{E}[L_\epsilon] = \iint \left( f(x) + \epsilon \eta(x) - t \right)^2 p(x, t) dx dt E[Lϵ]=∬(f(x)+ϵη(x)−t)2p(x,t)dxdt
对 ϵ \epsilon ϵ 求导并令其为0:
d d ϵ E [ L ϵ ] ∣ ϵ = 0 = ∬ 2 ( f ( x ) − t ) η ( x ) p ( x , t ) d x d t \frac{d}{d\epsilon} \mathbb{E}[L_\epsilon] \Big|_{\epsilon=0} = \iint 2(f(x) - t)\eta(x) p(x, t) dx dt dϵdE[Lϵ] ϵ=0=∬2(f(x)−t)η(x)p(x,t)dxdt
交换积分顺序:
= ∫ η ( x ) [ ∫ 2 ( f ( x ) − t ) p ( x , t ) d t ] d x = \int \eta(x) \left[ \int 2(f(x) - t)p(x, t) dt \right] dx =∫η(x)[∫2(f(x)−t)p(x,t)dt]dx
因为上式必须对任意扰动函数 η ( x ) \eta(x) η(x) 成立,所以括号内的部分必须恒等于0:
∫ 2 ( f ( x ) − t ) p ( x , t ) d t = 0 \int 2(f(x) - t)p(x, t) dt = 0 ∫2(f(x)−t)p(x,t)dt=0
这就是书中的式(4.36)。
3. 偏差-方差分解的理解
书中讲的内容涉及了很多额外的知识点,这里试着用自己的语言解释一下我对偏差-方差分解的理解。仅供参考
我们现在要分析的是一个回归模型的预测性能。假设:真实的目标函数为 h ( x ) h(x) h(x),即理想情况下我们希望模型学到的函数;模型通过训练数据集 D \mathcal{D} D 学到的函数为 f ( x ; D ) f(x; \mathcal{D}) f(x;D),它是依赖于具体数据集的随机变量;数据集是从某个分布中采样得到的,因此 f ( x ; D ) f(x; \mathcal{D}) f(x;D) 是一个随机函数;使用平方损失衡量误差:
L = ( f ( x ; D ) − t ) 2 L = (f(x; \mathcal{D}) - t)^2 L=(f(x;D)−t)2
我们关心的是,在固定输入 x x x 下,模型预测值与真实值之间的平均误差,即:
E D , t ∣ x [ ( f ( x ; D ) − t ) 2 ] \mathbb{E}_{\mathcal{D}, t|x} \left[ (f(x; \mathcal{D}) - t)^2 \right] ED,t∣x[(f(x;D)−t)2]
这是模型在该点 x x x 的“期望预测误差”。
我们可以把模型预测拆成两个部分:
f ( x ; D ) = E D [ f ( x ; D ) ] ⏟ 平均预测值 + ( f ( x ; D ) − E D [ f ( x ; D ) ] ) ⏟ 偏离平均的部分 f(x; \mathcal{D}) = \underbrace{\mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})]}_{\text{平均预测值}} + \underbrace{(f(x; \mathcal{D}) - \mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})])}_{\text{偏离平均的部分}} f(x;D)=平均预测值 ED[f(x;D)]+偏离平均的部分 (f(x;D)−ED[f(x;D)])
于是有:
f ( x ; D ) − h ( x ) = ( f ( x ; D ) − E D [ f ( x ; D ) ] ) + ( E D [ f ( x ; D ) ] − h ( x ) ) f(x; \mathcal{D}) - h(x) = \left( f(x; \mathcal{D}) - \mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})] \right) + \left( \mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})] - h(x) \right) f(x;D)−h(x)=(f(x;D)−ED[f(x;D)])+(ED[f(x;D)]−h(x))
两边平方得:
( f ( x ; D ) − h ( x ) ) 2 = ( f ( x ; D ) − E D [ f ( x ; D ) ] ) 2 + ( E D [ f ( x ; D ) ] − h ( x ) ) 2 + 2 ⋅ ( f ( x ; D ) − E D [ f ( x ; D ) ] ) ⋅ ( E D [ f ( x ; D ) ] − h ( x ) ) + (f(x; \mathcal{D}) - h(x))^2 = \left( f(x; \mathcal{D}) - \mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})] \right)^2 + \left( \mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})] - h(x) \right)^2 + 2 \cdot \left( f(x; \mathcal{D}) - \mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})] \right) \cdot \left( \mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})] - h(x) \right)+ (f(x;D)−h(x))2=(f(x;D)−ED[f(x;D)])2+(ED[f(x;D)]−h(x))2+2⋅(f(x;D)−ED[f(x;D)])⋅(ED[f(x;D)]−h(x))+
对所有可能的训练集 D \mathcal{D} D 取期望后,最后一项消失(因为期望为0),最终得到:
E D [ ( f ( x ; D ) − h ( x ) ) 2 ] = ( E D [ f ( x ; D ) ] − h ( x ) ) 2 ⏟ 偏差项 (Bias) 2 + E D [ ( f ( x ; D ) − E D [ f ( x ; D ) ] ) 2 ] ⏟ 方差项 (Variance) \mathbb{E}_{\mathcal{D}} \left[ (f(x; \mathcal{D}) - h(x))^2 \right] = \underbrace{(\mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})] - h(x))^2}_{\text{偏差项 (Bias)}^2} + \underbrace{\mathbb{E}_{\mathcal{D}} \left[ (f(x; \mathcal{D}) - \mathbb{E}_{\mathcal{D}}[f(x; \mathcal{D})])^2 \right]}_{\text{方差项 (Variance)}} ED[(f(x;D)−h(x))2]=偏差项 (Bias)2 (ED[f(x;D)]−h(x))2+方差项 (Variance) ED[(f(x;D)−ED[f(x;D)])2]