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)=Pw(y=1|x)−Pw(y=−1|x)

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+1i=∑xj∈B(i),yj=1wj

W_i^{+1}=\sum_{x_j \in B(i), y_j=1}w_j

W−1i=∑xj∈B(i),yj=−1wj

W_i^{-1}=\sum_{x_j \in B(i), y_j=-1}w_j
后验概率为:
公式(2)

Pw(y=1|x∈B(i))=W+1iW+1i+W−1i

P_w(y=1|x \in B(i)) = \frac{W_i^{+1}}{W_i^{+1}+W_i^{-1}}

Pw(y=−1|x∈B(i))=W−1iW+1i+W−1i

P_w(y=-1|x \in B(i)) = \frac{W_i^{-1}}{W_i^{+1}+W_i^{-1}}
将公式(2)代入公式(1)即可得到弱分类器。
如下公式(3):

f(x)=W+1i−W−1iW+1i+W−1i

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中,节点分裂规则为均方误差法则。

强分类器训练流程为:

  • 可以看出,leftevaluerightvalue为节点左右分裂结果
  • 同时也是弱分类器的输出结果,他们可看作某一区域划分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−1i

    leftvalue=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解释相关推荐

  1. 谈谈对Gentle Adaboost的一点理解~

    基于非度量特征的Gentle Adaboost 之前看过一些关于Gentle Adaboost的文献,尤其是那几篇经典的文献,但是有几处当时一直没有彻底理解,比如说文献<Face Detecti ...

  2. 集成学习—Adaboost加性模型(论文研读)

    上一篇博客在理解Adaboost时涉及到了一篇经典的论文:Friedman等人的<Additive logistic regression: a statistical view of boos ...

  3. 人脸检测(五)--adaboost总结,整理

    20170706新增: 各种Adaboost variants的比较以及不均衡问题 http://blog.csdn.net/scarecrow_wiscom/article/details/4980 ...

  4. 程序员的机器学习入门笔记(九):人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联

    一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发 ...

  5. 人脸识别之人脸检测(五)--adaboost总结,整理

    原文:https://blog.csdn.net/app_12062011/article/details/50627836 20170706新增: 各种Adaboost variants的比较以及不 ...

  6. adaboost mh matlab,Adaboost算法的前世今生

    Adaboost算法的前世今生 引言 众所周知,模式识别的方法可以按照参与识别特征的属性来区分,可以分为两大类:一.使用定量特征(可度量)如物体长度.宽度等,来描述的各种模式,这一类主要是指决策理论, ...

  7. 基于Adaboost的音乐情绪分类算法

    基于Adaboost的音乐情绪分类算法-2015实习设计总结 ========================================= 基于Adaboost的音乐情绪分类算法-2015实习设 ...

  8. 如何用OpenCV自带的adaboost程序训练并检测目标

    http://www.cnblogs.com/easymind223/archive/2012/07/03/2574826.html OpenCV自带的adaboost程序能够根据用户输入的正样本集与 ...

  9. adaboost训练 之 强分类器训练原理

    最近看opencv中adaboost训练强分类器源码,记录下自己对adaboost训练强分类器的原理理解. adaboost训练强分类器的基本流程: 1.初始化训练样本的类别与权重分布. 2.迭代循环 ...

最新文章

  1. 如何破解压缩文件密码-省时省力的方法
  2. LDD3源码分析之ioctl操作 .
  3. Android Volley彻底解决(三),定制自己Request
  4. PHP实现四种基本排序算法
  5. Spring Boot—thymeleaf语法规则以及使用
  6. 心电图心电轴怎么计算_心电图导联及心电轴
  7. S4 extension field的异步创建和后台作业
  8. 狄利克雷分布公式_深入机器学习系列11-隐式狄利克雷分布
  9. 不同路径 II-dp
  10. C++或C 实现AES ECB模式加密解密,支持官方验证
  11. java dom读写xml文件_java通过dom读写xml文件
  12. react style: 二级菜单
  13. [USACO14OPEN]Fair Photography【前缀和】
  14. SHELL 002 -- ps命令常用方法
  15. SPSS到底怎么入门?这些干货你收藏了么?
  16. 三角函数计算,Cordic 算法入门
  17. 结婚时贴红“囍”字的来历
  18. android Room框架学习
  19. OpenChatKit :开源的 ChatGPT ,开箱即用!前OpenAI团队打造,GitHub 7000+星
  20. 零基础手把手教你做FMEDA

热门文章

  1. win10下桌面图标显示异常
  2. Python图片马赛克工具:photomosaic
  3. 【每日英文】2021.8.10
  4. ios Universal Link 配置教程 + 踩坑记录
  5. vue 七牛上传图片
  6. 【外接屏幕】Win10外接屏幕缩放比例异常
  7. 在linux中tldr的用法,快速查看linux命令的用法----------TLDR
  8. 基本运用(一个一个字读)
  9. CTF里面的WEB题的一些解决思路
  10. 微信推文图片间距有缝的代码_使用记录接缝进行旧代码单元测试