在使用 OpenCV 进行提升后,我正在尝试实现我自己的Adaboost
算法版本(查看此处、此处和原始论文以获取一些参考资料)。
通过阅读所有材料,我提出了一些关于算法实现的问题。
1)我不清楚每个弱学习器的权重 a_t 是如何分配的。
在我指出的所有来源中,选择是a_t = k * ln( (1-e_t) / e_t )
,k 是一个正常数,而 e_t 是特定弱学习器的错误率。
在此来源的第 7 页,它说该特定值最小化了某个凸可微函数,但我真的不明白这段话。
谁能给我解释一下?
2)我对训练样本的权重更新程序有一些疑问。
显然,应该以确保它们保持概率分布的方式来完成。所有参考文献都采用这种选择:
D_{t+1}(i) = D_{t}(i) * e^(-a_t y_i h_t(x_i)) / Z_t(其中 Z_t 是选择的归一化因子,因此 D_{t+1} 是一个分布)。
- 但是为什么权重更新的特定选择与特定弱学习器的错误率指数相乘?
- 还有其他可能的更新吗?如果是,是否有证据表明此更新保证了学习过程的某种最优性?
我希望这是发布此问题的正确位置,如果不是,请重定向我!
提前感谢您提供的任何帮助。