增强神经网络

机器算法验证 神经网络 深度学习 助推 集成学习 辍学
2022-02-02 04:20:16

最近我正在研究提升算法,例如 adaboost、梯度提升,并且我知道最常用的弱学习器是树。我真的很想知道最近有没有一些成功的例子(我的意思是一些论文或文章)使用神经网络作为基础学习器。

2个回答

在 boosting 中,弱或不稳定的分类器被用作基础学习器。之所以如此,是因为目标是生成截然不同的决策边界。那么,一个好的基学习器是一个高度偏差的,换句话说,即使基学习器的训练参数稍微改变,输出也基本保持不变。

在神经网络中,dropout是一种可以与训练集成相比较的正则化技术。不同之处在于集成是在潜在空间(神经元存在与否)中完成的,从而降低了泛化误差。

“因此,每个训练示例都可以被视为为不同的、随机采样的架构提供梯度,以便最终的神经网络有效地代表一个巨大的神经网络集合,具有良好的泛化能力”——从这里引用。

有两种这样的技术:在 dropout 中,神经元被丢弃(意味着神经元以一定的概率存在或不存在),而在dropconnect中,权重被丢弃。

现在,为了回答您的问题,我相信神经网络(或感知器)不会用作增强设置中的基础学习器,因为它们训练速度较慢(只是需要太多时间)并且学习器并不那么弱,尽管他们可以设置得更不稳定。所以,不值得努力。

可能已经对这个主题进行了研究,但是很遗憾,效果不佳的想法通常不会成功发表。我们需要更多的研究来涵盖那些不会通往任何地方的途径,也就是“不要费心尝试这个”。

编辑:

我对此有更多的了解,如果您对大型网络的集合感兴趣,那么您可能指的是组合多个此类网络的输出的方法。大多数人根据任务平均或使用多数投票 - 这可能不是最佳的。我相信应该可以根据特定记录上的错误来更改每个网络输出的权重。输出的相关性越低,您的集成规则就越好。

我看到这没有一个公认的答案,所以我会给出一个非常启发式的答案。是的,它已经完成了......例如,它在 JMP Pro 中可用(可能是您从未听说过的最好的统计数据包)。 http://www.jmp.com/support/help/Overview_of_Neural_Networks.shtml

页面中间有说明它的用途。我没有对这个理论进行任何循环研究,但似乎他们暗示它与在单个更大模型中使用更多节点的结果基本相同。[他们声称]的优势在于模型拟合的速度。

对于一个非常粗略的衡量标准,我在我拥有的具有 2 个 sigmoid 和 2 个高斯节点的数据集上进行了比较,并在单个模型中针对 12 个 sigmoid 和 12 个高斯节点将模型提升了 6 倍,结果在我的测试数据集上几乎相同.

我也没有注意到任何速度差异……但数据集只有 1600 个点,而且我只使用 12 个变量,因此在具有更多变量的较大数据集上,可能存在明显的计算差异。