PRML笔记 - 回归损失函数

这篇记录了一下回归损失函数的推导过程,主要是 PRML 的式 1.88 和式 1.90。我在 Google 上搜了过 1.88 的推导。有一些中文博客的推导,不过写的什么 J8 玩意,看着推导的时候被带到沟里去了。最后找了 stackexchange 以及这里 stackexchange 才算得到完美解答。

回归损失函数

我们首先给出回归损失函数的定义 \(L(t,y(x))\) 。其中 \(x\) 是输入,\(y(x)\) 是对 \(t\) 的具体估计。\(t\) 可以认为是真值。函数 \(L\) 可以理解为损失函数,或者是惩罚函数。那么平均损失(或者说期望损失)就是

\[E[L]=\int\int L(t,y(x))p(x,t)dx\ dt\]

我们考虑最常见的平方损失函数,定义为 \(L(t,y(x))=\{y(x)-t\}^2\),那么上式就可以写为

\[E[L]= \int \int \{y(x)-t\}^2p(x,t)dx\ dt\]

关键点来了,在 PRML 的原书上只说了变分法就得到了

\[\frac{\delta E[L]}{\delta y(x)}=2 \int\{y(x)-t\}p(x,t)\ dt=0\]

我第一次看到反正是一脸懵逼。

式 1.88 推导

首先我们可以把式子改写如下

\[\begin{split}&\int\int[y(x)-t]^2p(x,t)dx\ dt \\ =&\int G(y(x),y'(x),x)dx\end{split}\]

\[G(y,y',x)=\int[y-t]^2p(x,t)dt\]

好了,根据变分法我们有

\[ \frac{\partial G}{\partial y}-\frac {d}{dx}\left( \frac{\partial G}{\partial y'}\right)=0\]

因为在 \(G(y,y',x)\) 中没有 \(y'\) 的项,所以有

\[\frac{\partial G}{\partial y}= \int2[y-t]p(x,t)dt\]

将式子变形一下,我们有

\[y(x)=\frac{\int tp(x,t)\ dt}{p(x)}=E_t[t|x]\]

这样我们就得到了 \(x\) 条件下 \(t\) 的均值,被称为回归函数。

式 1.90 推导

紧接着就是一个可以把损失函数分解为两部分的公式 1.90。这个公式会在后面用于偏置方差分解。

我们先搞个引理如下

\[\begin{split} E_{x,t}[g(x,t)]&=\int_x \int_t g(x,t)p(x,t)dx\ dt \\ &=\int_x\int_tg(x,t)p(x)p(t|x)dx\ dt \\ &=\int_xp(x)\int_tg(x,t)p(t|x)dt \ dx \\ &=\int_xE_t[g(x,t)|x]p(x)dx \\ &=E_x[E_t[g(x,t)|x]]\end{split}\]

对于 \(\{y(x)-t\}^2\),我们可以做如下变化

\[\begin{split}\{y(x)-t\}^2&=\{y(x)-E_t[t|x]+E_t[t|x]-t\}^2 \\ &=\{y(x)-E_t[t|x]\}^2+2\{y(x)-E_t[t|x]\}\{E_t[t|x]-t\}+\{E_t[t|x]-t\}^2 \\ &=L_1+2L_2+L_3\end{split}\]

根据引理,我们有

\[E_{x,t}[L]=E_{x,t}[L_1]+2E_{x,t}[L_2]+E_{x,t}[L_3]\]

然后分别计算三项

\[\begin{split}E_{x,t}[L_1]&=E_{x,t}[(y(x)-E_t[t|x])^2] \\ &=E_x[(y(x)-E_t[t|x])^2] \end{split}\]

\[\begin{split}E_{x,t}[L_2]&=E_{x,t}[(y(x)-E_t[t|x])(E_t[t|x]-t)] \\ &=E_x[ E_t[\{(y(x)-E_t[t|x])(E_t[t|x]-t)\}]|x] \\ &=E_x[(y(x)-E_t[t|x])E_t[(E_t[t|x]-t)|x]]\end{split}\]

注意到 \(E_t[(E_t[t|x]-t)|x]=E_t[t|x]-E_t[t|x]=0\),所以 \(E_t[L_2]=0\)

\[\begin{split}E_{x,t}[L_3]&=E_{x,t}[(E_t[t|x]-t)^2] \\ &=E_x[E_t[(E_t[t|x]-t)^2|x]] \\ &=E_x[var_t[t|x]]\end{split}\]

所以(这里原版的英文书是有问题的)

\[E_{x,t}[L]=\int_x(y(x)-E_t[t|x])^2p(x)dx+\int_xvar_t[t|x]dx\]