Skip to content

Commit

Permalink
add notes thanks to http://disq.us/p/2fweopf and adjust subscript of …
Browse files Browse the repository at this point in the history
  • Loading branch information
szcf-weiya committed May 8, 2021
1 parent 8947180 commit a116235
Showing 1 changed file with 12 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
| 翻译 | szcf-weiya |
| 时间 | 2017-12-31 |
| 更新 |{{ git_revision_date }} |
|状态|Done|

[8.4 节](8.4-Relationship-Between-the-Bootstrap-and-Bayesian-Inference/index.html)我们根据一种非参贝叶斯分析,将估计器的 bootstrap 值看成对应参数近似的后验值.从这个角度看,bagged 估计 \eqref{8.51} 是后验贝叶斯均值的近似.相反,训练样本估计量 $\hat f(x)$ 对应后验的**最大值 (mode)**.因为后验均值(不是最大值)最小化平方误差损失,所以 bagging 可以经常降低均方误差也不奇怪.

Expand Down Expand Up @@ -51,13 +50,13 @@ $$

原则上,可以确定先验 $\Pr(\theta_m\mid \cM_m)$,然后根据式 \eqref{8.55} 数值上计算后验概率,从而作为模型平均的权重.然而,相比更简单的 BIC 近似,我们没有看到任何实际的证据来表明值得这样做.

我们怎么从频率的角度来实现模型平均?给定平方损失下的预测值 $\hat f_1(x),\hat f_2(x),\ldots, \hat f_M(x)$,我们可以寻找权重 $w=(w_1,w_2,\ldots,w_M)$ 使得
我们怎么从频率的角度来实现模型平均?给定平方损失下的预测值 $\hat f_{\\!1}(x),\hat f_{\\!2}(x),\ldots, \hat f_{\\!M}(x)$,我们可以寻找权重 $w=(w_1,w_2,\ldots,w_M)$ 使得

$$
\hat w=\underset{w}{\argmin} \E_{\cP}\left[Y-\sum\limits_{m=1}^Mw_m\hat f_m(x)\right]^2\tag{8.56}
\hat w=\underset{w}{\argmin} \E_{\cP}\left[Y-\sum\limits_{m=1}^Mw_m\hat f_{\!m}(x)\right]^2\tag{8.56}
$$

这里输入值 $x$ 是固定的,数据集 $\mathbf Z$(以及目标 $Y$)中的 $N$ 个观测服从 $\cal P$ 分布.解是 $Y$ 在 $\hat F(x)^T\equiv [\hat f_1(x), \hat f_2(x), \ldots, \hat f_M(x)]$ 上的 **总体线性回归 (population linear regression)**.
这里输入值 $x$ 是固定的,数据集 $\mathbf Z$(以及目标 $Y$)中的 $N$ 个观测服从 $\cal P$ 分布.解是 $Y$ 在 $\hat F(x)^T\equiv [\hat f_{\\!1}(x),\hat f_{\\!2}(x),\ldots, \hat f_{\\!M}(x)]$ 上的 **总体线性回归 (population linear regression)**.

$$
\hat w=\E_{\cal P}[\hat F(x)\hat F(x)^T]^{-1}\E_{\cal P}[\hat F(x)Y]\tag{8.57}\label{8.57}
Expand All @@ -66,25 +65,29 @@ $$
则全回归模型比任意单模型有更小的误差

$$
\E_{\cal P}\left[Y-\sum\limits_{m=1}^M\hat w_m\hat f_m(x)\right]^2\le \E_{\cal P}[Y-\hat f_m(x)]^2\quad\forall m\tag{8.58}
\E_{\cal P}\left[Y-\sum\limits_{m=1}^M\hat w_m\hat f_{\!m}(x)\right]^2\le \E_{\cal P}[Y-\hat f_{\!m}(x)]^2\quad\forall m\tag{8.58}
$$

所以在总体水平下,结合后的模型不会变得更糟.

当然总体线性回归 \eqref{8.57} 不可行,很自然地用在训练集上的线性回归来替换.但是有简单的例子表明这效果并不好.举个例子,如果 $\hat f_m(x),m=1,2,...,M$ 表示从 $M$ 个输入中取 $m$ 个输入的最优子集的预测,则线性回归将会把所有的权重放在最大的模型上面,也就是,$\hat w_M=1,\hat w_m=0,m < M$.问题是没有考虑模型的复杂性(例子中输入的个数 $m$)将每个模型放在同一水平.
当然总体线性回归 \eqref{8.57} 不可行,很自然地用在训练集上的线性回归来替换.但是有简单的例子表明这效果并不好.举个例子,如果 $\hat f_{\\!m}(x),m=1,2,...,M$ 表示从 $M$ 个输入中取 $m$ 个输入的最优子集的预测,则线性回归将会把所有的权重放在最大的模型上面,也就是,$\hat w_M=1,\hat w_m=0,m < M$.问题是没有考虑模型的复杂性(例子中输入的个数 $m$)将每个模型放在同一水平.

**堆栈泛化 (Stacked generalization)**,或者称为 **堆栈 (stacking)**,是一种做这件事的方式.令 $\hat f^{-i}_m(x)$ 采用模型 $m$,应用到除去第 $i$ 个训练观测的数据集上得到的 $x$ 处的预测.权重的堆栈估计是通过 $y_i$ 在 $\hat f_m^{-i}(x_i),m=1,2, \ldots,M$ 上的最小二乘线性回归得到.具体地,堆栈参数由下式给出

$$
\hat w^{st}=\underset{w}{\argmin}\sum\limits_{i=1}^N\left[y_i-\sum\limits_{m=1}^Mw_m\hat f_m^{-i}(x_i)\right]^2\tag{8.59}\label{8.59}
\hat w^{st}=\underset{w}{\argmin}\sum\limits_{i=1}^N\left[y_i-\sum\limits_{m=1}^Mw_m\hat f_{\!m}^{-i}(x_i)\right]^2\tag{8.59}\label{8.59}
$$

最终的预测为 $\sum_m\hat w_m^{st}\hat f_m(x)$.通过采用交叉验证的预测值 $\hat f_m^{-i}(x)$,堆栈避免了对高复杂度的模型赋予不公平的过高权重.更好的结果可以通过约束权重为非负值并且和为 1 得到.如果我们将权重理解为式 \eqref{8.54} 中的后验模型概率,这似乎是个合理的约束,这导出了易处理的二次规划问题.
最终的预测为 $\sum_m\hat w_m^{st}\hat f_{\\!m}(x)$.通过采用交叉验证的预测值 $\hat f_{\\!m}^{-i}(x)$,堆栈避免了对高复杂度的模型赋予不公平的过高权重.更好的结果可以通过约束权重为非负值并且和为 1 得到.如果我们将权重理解为式 \eqref{8.54} 中的后验模型概率,这似乎是个合理的约束,这导出了易处理的二次规划问题.

堆栈法和模型选择通过舍一法交叉验证紧密联系起来([7.10 节](/7.10-Cross-Validation/index.html)).如果我们将 \eqref{8.59} 的最小化限制到只有一个单元有权重而其它为 0 的权重向量 $w$ 上,这导出了有最小舍一法交叉验证误差的模型 $\hat m$.与其选择单模型,堆栈法将之与估计的最优权重结合起来.这通常会有更好的预测,但是解释性会比从 $M$ 个模型中选择一个的更差.

堆栈的思想实际上比上面所描述的更一般.不仅仅是线性回归,可以采用任意学习的方法来结合 \eqref{8.59} 中的模型;这些权重也可以依赖输入变量的位置 $x$.用这种方式,学习方法被堆栈到其它方法的上面来改善预测的效果.

!!! note "weiya 注:Stacked Generalization"
Abstract from the seminal paper [Wolpert, D. H. (1992). Stacked generalization. Neural Networks, 5(2), 241–259.](https://doi.org/10.1016/S0893-6080(05)80023-1):
首先这种泛化可以表达成(感谢[@Jerry](https://disqus.com/by/disqus_K99eOJYIKr/)提到的 Notes)
$$
\tilde f(x) = \hat f(\hat f_{\!1}(x),\hat f_{\!2}(x),\ldots,\hat f_{\!M}(x), x)\,.
$$
另外,更多细节可以阅读 the seminal paper [Wolpert, D. H. (1992). Stacked generalization. Neural Networks, 5(2), 241–259.](https://doi.org/10.1016/S0893-6080(05)80023-1),下面摘录了其 abstract:
> This paper introduces **stacked generalization**, a scheme for minimizing the generalization error rate of one or more generalizers. Stacked generalization works by deducing the biases of the generalizer(s) with respect to a provided learning set. This deduction proceeds by generalizing in a second space whose inputs are (for example) **the guesses of the original generalizers when taught with part of the learning set**(这里的 $\hat f_m^{-i}(x_i)$) and **trying to guess the rest of it**(这里的 $y_i$), and whose output is (for example) the correct guess. When used with multiple generalizers, stacked generalization can be seen as **a more sophisticated version of cross-validation**, exploiting a strategy more sophisticated than **cross-validation's crude winner-takes-all for combining the individual generalizers** (交叉验证中选择最低误差的模型,而这里对模型进行加权,但是损失了解释性). When used with a single generalizer, stacked generalization is a scheme for estimating (and then correcting for) the error of a generalizer which has been trained on a particular learning set and then asked a particular question. After introducing stacked generalization and justifying its use, this paper presents two numerical experiments. The first demonstrates how stacked generalization improves upon a set of separate generalizers for the NETtalk task of translating text to phonemes. The second demonstrates how stacked generalization improves the performance of a single surface-fitter. With the other experimental evidence in the literature, the usual arguments supporting cross-validation, and the abstract justifications presented in this paper, the conclusion is that for almost any real-world generalization problem one should use some version of stacked generalization to minimize the generalization error rate. This paper ends by discussing some of the variations of stacked generalization, and how it touches on other fields like chaos theory.

0 comments on commit a116235

Please sign in to comment.