0
点赞
收藏
分享

微信扫一扫

如何构建“集成神经网络”“Ensemble neural network”

参考:

https://arxiv.org/pdf/1603.05691.pdf


如何构建“集成神经网络”“Ensemble neural network”_git



本文要讨论的是如何构建“集成神经网络”(“Ensemble neural network”),其实“集成神经网络”其本质就是一种“集成学习”的模型,只不过个体学习器不再是传统的机器学习模型而是神经网络模型,不过一般情况下“集成神经网络”的具体形式并不能简单等价于传统的“集成学习”模型。



“集成神经网络”“Ensemble neural network”构建的关键:

The ensemble averages the logits predicted by each model before the softmax layers.


The logits (the scores just prior to the final softmax layer) from each of the CNN in the ensemble model are averaged for each class.


个体神经网络(CNN模型):

CNN层 + 全连接层(输出的是logits) + softmax层 + 交叉熵损失函数


集成神经网络:

训练N个CNN模型,这些CNN模型结构可以是不同的,并且每个CNN模型个体都是使用不同的超参数,不同的训练数据集,这里N一般是一个比较大的数值,如N=200. 需要注意的是集成神经网络往往是模型参数不太大的模型,并且每个模型的各自的训练数据集不是特别大的那种情况,因为一般集成神经网络需要单独训练出比较多的个体,这里假设是200个,如果每个个体模型的训练都很费时的话那么就需要一个极大的训练时长的,也正因此集成神经网络在现在的大数据集和大模型参数的背景下基本是不会采用的。


这里不同的神经网络个体采用不同的训练数据集,可以通过数据增强的方式对某个原有的单一数据集进行扩增,具体构建时每个模型在读入随机抽取的原训练集中数据后进行实时的数据增强,以此实现不同神经网络个体的训练数据的差异性。


假设训练200个模型个体完成后需要选出一个最优的组合,即选出M个个体神经网络,使者M个进行组合后性能最优。在具体选择个体模型的时候,需要使用验证数据集而不是训练数据集。

这个选择过程并没有找到具体的算法描述,因此这里给出一个个人给出的步骤:

对200个模型按照验证数据集的准确度进行从高到低的排序,需要选择出的模型集合为S={},默认将0号模型加入到S集合中(因为0号个体模型的验证数据集准确度最高),从1号模型开始到199号模型,判断这些模型加入到S集合后是否可以提升集成模型的性能,如果能提高则加入,如果不能则跳过,这样我们只需要用验证数据集验证199个集成模型即可。但是该种选择方法其实并不难保证最优的组合,比如该种方法选择出的集合包含1号个体模型,但是我们如果跳过1号模型(将1号模型从集合S中取出),然后从2号模型开始进行选择,那么选出的新的集合 S' 是有可能比S集合性能更优,但是考虑到这样会急剧增加运算时长,因此也不建议采用该种选择方法。


需要注意的是,从200个个体模型中最后选择出的集合往往也是有着较多个体的,比如最终选择出的M值,即S集合的大小为16或19这样的数值,因此最终构建的“集成神经网络”往往在进行预测推理时也是很费时的。



构建“集成神经网络”和传统的“集成学习”之间一个明显的不同是:

  • The ensemble averages the logits predicted by each model before the softmax layers.
  • The logits (the scores just prior to the final softmax layer) from each of the CNN in the ensemble model are averaged for each class.


传统的“集成学习”是将个体模型的预测输出进行融合(比如进行平均),而“集成神经网络”则是将个体模型输出的logits进行平均,而不是预测值p,这个区别是极为重要的。


紧邻softmax层的全连接层输出的是logits,而softmax层输出的是预测值概率P。


个体神经网络(CNN模型):

CNN层 + 全连接层(输出的是logits) + softmax层(输出的是预测值概率P) + 交叉熵损失函数



PS. 虽然集成神经网络基本被淘汰出了历史舞台,但是经典的神经网络理论模型的实证研究都是喜欢用这个“集成神经网络”的,因为虽然“集成神经网络”构建十分费时,但是其往往可以获得比单独个体的神经网络模型更好的performance(一般在一个百分点到1.5个百分点的准确度),这个“集成神经网络”作为知识盲区也是有必要补上的。



举报

相关推荐

0 条评论