Gentle adaboost解释
1 算法原理
1.1 Gentle adaboost
参考文献:
1.2 算法实现2
参考
实现Gentle Adaboost的关键是要能估计出后验概率,即给定特征向量xx的情况下,估计出当前权值分布下的该样本正样本的概率Pω(y=1|x)P_{\omega}(y=1|x)。
在Gentle Adaboost中,弱分类器定义为:
公式(1)
f(x)=P_w(y=1|x)-P_w(y=-1|x)
在特征向量是1维的情况下,可以利用lookup table将特征的取值范围分为 多个区间,然后通过统计每个区间中的权值总和来估计后验概率。具体来说,令 W+1iW_i^{+1}和 W−1iW_i^{-1}分别表示第 ii个区间B(i)B(i)内正负样本权值的总和。
W_i^{+1}=\sum_{x_j \in B(i), y_j=1}w_j
W_i^{-1}=\sum_{x_j \in B(i), y_j=-1}w_j
后验概率为:
公式(2)
P_w(y=1|x \in B(i)) = \frac{W_i^{+1}}{W_i^{+1}+W_i^{-1}}
P_w(y=-1|x \in B(i)) = \frac{W_i^{-1}}{W_i^{+1}+W_i^{-1}}
将公式(2)代入公式(1)即可得到弱分类器。
如下公式(3):
f(x)= \frac{W_i^{+1}-W_i^{-1}}{W_i^{+1}+W_i^{-1}}
Gentle adaboost代码段for i = 1:length(nodes)curr_tr = nodes{i};step_out = calc_output(curr_tr, Data); %节点分裂没有体现least-squres原则??s1 = sum( (Labels == 1) .* (step_out) .* distr);s2 = sum( (Labels == -1) .* (step_out) .* distr);if(s1 == 0 && s2 == 0)continue;endAlpha = (s1 - s2) / (s1 + s2); %%弱分类器结果。与公式(3)一致Weights(end+1) = Alpha;Learners{end+1} = curr_tr;final_hyp = final_hyp + step_out .* Alpha; enddistr = exp(- 1 * (Labels .* final_hyp));Z = sum(distr);distr = distr / Z; end
1.3算法实现3
openCV中对Gentle Adaboost算法弱分类器训练流程如下:
openCV中,节点分裂规则为均方误差法则。
强分类器训练流程为:
- 可以看出,leftevalue和rightvalue为节点左右分裂结果
- 同时也是弱分类器的输出结果,他们可看作某一区域划分B(−1)、B(+1)B(-1)、B(+1)的弱置信度.
- leftvalue 和 rightvalue 可看作y的均值,lefterror 和righterror可看作 y的均方误差。
可以看出:leftvalue=f(x)left=∑iwiyi∑iwi=∑yi=1wiyi+∑yi=−1wiyi∑iwi=∑yi=1wi−∑yi=−1wi∑yi=1wi+∑yi=−1wi=W+1i−W−1iW+1i+W−1ileftvalue=f(x)_{left}= \frac{\sum_{i}w_iy_i}{\sum_{i}w_i}=\frac{\sum_{y_i=1}w_iy_i +\sum_{y_i=-1}w_iy_i}{\sum_{i}w_i}=\frac{\sum_{y_i=1}w_i -\sum_{y_i=-1}w_i}{\sum_{y_i=1}w_i+\sum_{y_i=-1}w_i}=\frac{W_i^{+1}-W_i^{-1}}{W_i^{+1}+W_i^{-1}}同理rightvaluerightvalue可得同样结论。
2 原理推导
参考文献:《基于Gentle Adaboost的行人检测》
《基于AdaBoost检测器的似然估计方法》
《采用Gentle AdaBoost和嵌套级联结构的实时人脸检测》
《Additive Logistic Regression: a Statistical View of Boosting》
http://blog.csdn.net/wsj998689aa/article/details/42652827
Gentle adaboost解释相关推荐
- 谈谈对Gentle Adaboost的一点理解~
基于非度量特征的Gentle Adaboost 之前看过一些关于Gentle Adaboost的文献,尤其是那几篇经典的文献,但是有几处当时一直没有彻底理解,比如说文献<Face Detecti ...
- 集成学习—Adaboost加性模型(论文研读)
上一篇博客在理解Adaboost时涉及到了一篇经典的论文:Friedman等人的<Additive logistic regression: a statistical view of boos ...
- 人脸检测(五)--adaboost总结,整理
20170706新增: 各种Adaboost variants的比较以及不均衡问题 http://blog.csdn.net/scarecrow_wiscom/article/details/4980 ...
- 程序员的机器学习入门笔记(九):人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发 ...
- 人脸识别之人脸检测(五)--adaboost总结,整理
原文:https://blog.csdn.net/app_12062011/article/details/50627836 20170706新增: 各种Adaboost variants的比较以及不 ...
- adaboost mh matlab,Adaboost算法的前世今生
Adaboost算法的前世今生 引言 众所周知,模式识别的方法可以按照参与识别特征的属性来区分,可以分为两大类:一.使用定量特征(可度量)如物体长度.宽度等,来描述的各种模式,这一类主要是指决策理论, ...
- 基于Adaboost的音乐情绪分类算法
基于Adaboost的音乐情绪分类算法-2015实习设计总结 ========================================= 基于Adaboost的音乐情绪分类算法-2015实习设 ...
- 如何用OpenCV自带的adaboost程序训练并检测目标
http://www.cnblogs.com/easymind223/archive/2012/07/03/2574826.html OpenCV自带的adaboost程序能够根据用户输入的正样本集与 ...
- adaboost训练 之 强分类器训练原理
最近看opencv中adaboost训练强分类器源码,记录下自己对adaboost训练强分类器的原理理解. adaboost训练强分类器的基本流程: 1.初始化训练样本的类别与权重分布. 2.迭代循环 ...
最新文章
- 如何破解压缩文件密码-省时省力的方法
- LDD3源码分析之ioctl操作 .
- Android Volley彻底解决(三),定制自己Request
- PHP实现四种基本排序算法
- Spring Boot—thymeleaf语法规则以及使用
- 心电图心电轴怎么计算_心电图导联及心电轴
- S4 extension field的异步创建和后台作业
- 狄利克雷分布公式_深入机器学习系列11-隐式狄利克雷分布
- 不同路径 II-dp
- C++或C 实现AES ECB模式加密解密,支持官方验证
- java dom读写xml文件_java通过dom读写xml文件
- react style: 二级菜单
- [USACO14OPEN]Fair Photography【前缀和】
- SHELL 002 -- ps命令常用方法
- SPSS到底怎么入门?这些干货你收藏了么?
- 三角函数计算,Cordic 算法入门
- 结婚时贴红“囍”字的来历
- android Room框架学习
- OpenChatKit :开源的 ChatGPT ,开箱即用!前OpenAI团队打造,GitHub 7000+星
- 零基础手把手教你做FMEDA