结构化随机森林源码分析

转载:http://blog.csdn.net/wdhxek/article/details/50437556

文章信息与源码来源
  • <Structured Class-Labels in Random Forests for Semantic Image Labelling>
  • http://www.dsi.unive.it/~srotabul/#publications

Random Tree 类库设计分析

  • 看完作者的源码,对C++的继承与派生,派生,更为深刻的理解。基类指定规则,固定好程序的算法框架或者是逻辑流程,派生类则给出一个具体的细节化的方案,使用什么样的数据类型,具体每一步的执行过程怎么定义;使用模板类给出抽象化的类型,使用virtual函数给出抽象的流程,比如在RT中的split虚函数,作为构树过程中很重要的一环,基类指定了这个函数实现的是对当前节点的数据分流功能,规定函数的输入是当前节点Node,返回值是数据的分流结果,左右数据流的统计信息,当前节点的路径选择函数的参数,但是至于怎样的实现,是在派生类中完成的。
  • 几个具体的RT成员分析:RT在设计过程中更加注重的是构树这个过程以及树本身的物理含义,从数据结构的角度分析:与上一篇文章相似,节点在构树过程中需要保存哪些信息,路径选择函数的参数信息,自己的左右两个孩子节点的链接信息,自己要处理的数据流的头尾信息,如果是leaf节点,自己对应做出的预测是什么?驱动节点生成的结构:程序逻辑上是非leaf节点都要加入队列建立自己的孩子节点。
    • ①建立root节点,使用这棵树的全部训练样本初始化root节点
    • ② 将root 加入到驱动队列vec_0中
    • ③ 检测驱动队列vec_0中有节点存在,逐个为所有的节点选择最优的数据流分割方案,保存最优的路径分割函数的参数,输出分割后的数据流(已经完成了重排序,排序总是一个焊好的功能),如果能并生成自己的左右孩子节点(构建好链接关系),使用分流的数据分别初始化孩子节点,leaf == false;如果当下节点不能生成孩子节点, leaf==true;
    • ④检测vec_0中的所有节点,如果是非leaf节点,将孩子节点全部放入vec_1中,如果是leaf节点,依据该节点的所有数据流,生成节点标签Prediction,但是不加入vec;
    • ⑤ vec_0 vec_1 地位交替,清空已经处理完的那个vec,作为下一层孩子节点加入训练的驱动结构,直到另一个vec也是空,只有leaf==false 的节点才会有子节点,才能把子节点加入到vec中继续对数据进行分流。


RT或者Random Foresrt引入结构化信息

  • pixel - image patch - feature patch - RF - label patch - label ;
  • 所谓的结构化信息,在这篇文章中指的是上下像素类别的位置信息,原来对于一个点pt(x,y),取出局部patch,计算feature vector ,按照pt对应的类别标签完成训练,训练样本是从Rn -> R ; 机构化的信息,类别不再是real value ,而是一个具有相互制约关系的vector,反应在图像上就是像素与其邻域像素的各自类别的对应关系信息,从feature patch ==> label  变化 feature patch ==》 label patch ;输出的变化带来的问题
    • ① 对于分流评价的指标:information gain 的计算
    • ② 训练过程中随机树的leaf节点的输出怎样计算:从leaf的数据流中找出最好的一个作为标签
    • ③ 使用过程中,一个样本使用RF,每一个RT都会有个标签输出,怎样进行merge model 
    • ④ 一个像素点pt 使用Structured RF 后会产生一个label patch , 相邻位置的像素点pt-0也会产生label patch 来影响当前节点的label,怎样确定!


源码分析

  • 虚函数的使用
  • 模板类的构建与使用
  • 面型对象的多态机制,什么时候 以及为什么使用多态
  • 怎样阅读C++的类库?流程!
  • 基于RT实现自己的解决方案,需要考虑哪些问题?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值