Combing multiple neural networks to improve generalization
Why it helps to combine models
-
模型的拟合能力很难选择:
- 弱拟合能力会造成模型对数据拟合不好
- 强拟合能力会造成模型对训练数据的过拟合
- 多个不同拟合能力的模型混合,可以在这两个极端之间取一个权衡
-
偏差-方差的权衡
- 当训练数据量有限时,很容易发生过拟合
- 平均数个模型的结果可以有效缓解过拟合情形
- 当不同的模型产生的结果差异很大时,这种作用也更加明显
- 对回归问题,平方误差可以分解为一个偏置项和一个方差项
- 弱拟合能力下,偏置项会很大
- 强拟合能力下,方差项会很大
- 当训练数据量有限时,很容易发生过拟合
-
使用不同的训练数据产生不同的模型
- Bagging:训练子集,基于训练集,从其中随机采样得到
- Boosting:训练集,各个样例的权重在不同的模型下不同
Mixtures of Experts
- 将一个数据集(来自多个领域)分成几个部分(按领域划分),分别给不同的网络进行训练,最后再综合到一起
- 专门化:每一个专家(模型)专注于针对其已经表现比其他专家好的领域上完成预测
- 不同于使用一个全局拟合模型或者数个局部模型,这里的模型使用几个中等复杂性的网络来实现
- 基于输入-输出关系对数据进行划分
- 鼓励各个小模型间的合作:将平均值与目标进行比较得到误差,以减小模型之间的差异——很容易过拟合
- 鼓励专门化:将每一个模型的预测结果与目标独立比较,同时对每一个专家的各个施加不同的概率(权重)
- 大多数专家会忽略掉大多数非专业化的样例
- E=∑ipi(t−yi)2E=\sum_ip_i(t-y_i)^2E=∑ipi(t−yi)2
- 一个更好的损失函数
- 每一个专家模型对应一个局部于数据集上的高斯分布
- 概率施加者是对这些分布的放缩器
- p(tc∣MoE)=∑ipic12πe−12(tc−yic)2p(t^c|MoE) = \sum_ip_i^c\frac{1}{\sqrt {2\pi}}e^{-\frac12(t^c-y^c_i)^2}p(tc∣MoE)=∑ipic2π1e−21(tc−yic)2
The idea of full Bayesian learning
- 全贝叶斯学习:不同于学习一组单一的参数集,这一学习方法学习所有可能参数集合的全后验分布
- 不同的参数集进行自己的预测,并在最终的平均结果中使用其后验概率作为权重进行融合
- 我们可以在少量的数据下拟合足够复杂的模型
- 避免过拟合
- 根据先验概率p(Data∣W)p(Data|\bold W)p(Data∣W),预测后验概率p(W∣Data)p(\bold W| Data)p(W∣Data)
- 近似全贝叶斯学习
- 如果只有少量的一些参数,可以在参数空间设置格栅,针对每一个格栅点估计后验概率
- 根据得到的各个格点的预测结果得到最终的结果:p(ttest∣inputtest)=∑g∈gridp(Wg∣D)p(ttest∣inputtest,Wg)p(t_{test} | input_{test}) = \sum_{g \in grid}p(\bold W_g | D)p(t_{test}|input_{test}, \bold W_g)p(ttest∣inputtest)=∑g∈gridp(Wg∣D)p(ttest∣inputtest,Wg)
Making full Bayesian learning practical
- 当参数个数很大的时候,这种画格子计算概率的方法会因为各自数量指数增长而无法实现
- 如果有足够多的数据让大多数参数概率很低,那么一小部分格点就可以用于预测
- 思路:根据后验概率取样,只取采样格的权重,预测结果就足够好了
- 一个有趣的事实:
- 如果我们使用适量的噪声,并让权重迭代足够多次,我们采样将获得一个真正后验概率的无偏采样结果
- 马尔科夫链蒙特卡洛(MCMC)
Dropout
- 两种平均不同模型产生结果的方法:
- 混合,对输出概率取平均值
- 乘积,对所有输入取乘法结果,然后开根号(几何均值),然后对其进行归一化
- Dropout:
- 以一定的概率隐藏同一层的每个单元
- 对H个单元的隐藏层,在从2H2^H2H个架构中随机采样
- 这些结构共享权重
- Dropout实际上是一种形式的模型平均方法
- 采样过程中,只取所有可能模型中的一小部分,只有一个训练样例,bagging的一种极端形式
- 权重共享,对所有模型进行很强的正规化
- 测试时:开放所有权重但折半
- 确保输出期望值和训练时相同
- 实际上完成了对模型的几何平均
- 对输入层可以使用同样的隐藏策略,但概率需要高一些
- 可以有效地避免过拟合问题
本文探讨了通过结合多个神经网络模型来改善模型泛化能力的方法,包括Bagging、Boosting和专家混合等策略,以及全贝叶斯学习和Dropout技术在避免过拟合中的应用。
3411

被折叠的 条评论
为什么被折叠?



