注册 登录
编程论坛 C++教室

[求助]老师然我们用c++实现ada boost算法,什么是ada boost算法啊!

perdater 发布于 2007-07-05 13:43, 1053 次点击
老师然我们用c++实现ada boost算法,什么是ada boost算法啊!请帮忙解释一下,网上找了好久,急需!!!
6 回复
#2
野比2007-07-05 13:54

应该是人工智能...神经网络方面的算法...
好像是转化学习算法用的...

#3
perdater2007-07-05 13:56
拜托说具体点,
#4
野比2007-07-05 14:10

帮你搜了一下... 有介绍.. 你自己应该看过...如果你找过的话..

Boosting是一个将弱学习(weak learn)算法融合为强学习算法(strong)的方法。Ada-Boost算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将每次训练得到的分类器最后融合起来,作为最后的决策分类器。目前在人脸侦测的领域,就有人将Ada-Boost + cascade 作为一个很有效的运算法。Boost是一种常用来增进learning algorithm正确率的方法。使用boost分类器可以排除一些不必要的特徵,并将关键放在关键的特徵上面。在下面将介绍Ada-Boost。

Ada-Boost

Ada-Boost的理论由1995年提出[1],并且解决了当时许多在boosting实作上的困难。图1.所表示的是pseudocode 。在输入的方面是一组训练集合(),……()。其中是属於事件空间X,而标签则是属於一个标签的集合Y。此处为方便假设Y={-1,+1}也就是仅将事件分为两种。Ada-Boost重覆执行t=1,……,T次weak 或 base learning algorithm。主要的目的就是要去维持分布以及在训练集合中集合的权重。在这里我们以表示事件i在周期t时权重的分布。初始时下所有的权重皆相同,但每经过一次次训练后被分类错误的事件其权重会一直增加,也就是经由这个训练,我们会将焦点放在较难分类的事件上面。
参考资料:http://140.113.87.114/cvrc/edm/vol_6/tech1.htm

#5
野比2007-07-05 14:11

至于源代码... 网上只有MATLAB的.. C++的不太可能放出来...

#6
perdater2007-07-05 14:14
谢谢了,确实看过了,那个提问就是我提的,没看懂,看原文还是繁体的,头都大了,再次说谢谢!
#7
野比2007-07-05 14:22

不客气
你可以到图书馆找找AI方面的书.. 有详细讲算法的..
有了公式原理你就好编程序了.

1