Adaboost在神经网络上的实现

The implementation of Adaboost on neural network

嗨,我最近参加了 Adaboost 课程并做了一些调查

我查看了一些使用 Adaboost 提升神经网络性能的代码

据我所知,多个 类 Adaboost 可以通过以下方式完成:

(1)对每个数据将训练数据加权为1。

(2)训练后我们通过添加权重来重新加权数据,如果

分类器做错了,如果分类器预测正确,则减少权重。

(3)最后我们采用所有分类器的组合并取最大的一个(概率)

我可以用 Keras 和 sklearn 编写一些代码:

model = Model( img_input , o )
model.fit_generator(#some parameters)
from sklearn.ensemble import AdaBoostClassifier
adaboost = AdaBoostClassifier(base_estimator=model,algorithm='SAMME')
adaboost.fit_generator(#some parameters)

我的问题是:

我想知道 Adaboost 是如何与神经网络一起使用的

我可以想象两种方法来做到这一点,但不确定 Adaboost 在这里如何做:

(1)训练完成后(1小时),我们对训练数据重新加权,然后反复进行,直到迭代结束。

(2)如果第一轮的所有数据都已经输入神经网络,然后我们对训练数据重新加权。

(1) 和 (2) 的区别在于我们在 Adaboost 中如何定义一次迭代:

(1) 需要很长时间才能完成整个迭代

(2) 只是有些对我来说没有意义,因为我不认为整个过程会收敛得那么快,或者迭代次数需要设置得很大。

好像很少有人走这条路。

我想我会选择 "stack" 方法。