结构化随机森林_2

来源:互联网 发布:医疗人工智能 杭州 编辑:程序博客网 时间:2024/05/16 02:21

原文链接

本文是结构化随机森林方法的第一篇文章,这里阅读了其中的算法部分。

4.随机森林中的结构化学习

在上节提到的那些传统分类方法中,输入样本和单个原子级的标签关联起来,这些标签没有考虑标签之间的相互依赖关系,就像一种任意选择的标签。对于大多数计算机问题,这个模型很受局限,因为分类任务的标号空间(label space)具有明显的固有拓扑结构,这使得标签之间连接紧密。虽然这个结构化的标号空间已经在训练数据中体现了,但传统的方法都没有利用到这一点,如前面提到的随机森林。所以,把这样的方法用于图像语义标号时,得到的结果有很多噪点。的确,从已经标号的图像中随机抽取一个patch,它会显示一些模式,这些模式不会出现在groundtruth分类中。(Indeed, a random patch extracted from the labelled image will likely show a configuration which never appeared in the groundtruth classification used to train the classifier.)

为了解决这个问题,提出一种增强传统随机森林的方法,通过告诉它们标签空进啊的局部拓扑结构。为了达到这个目的,我们放弃了传统的分类步骤,从结构化学习的角度看待这个问题,基于随机森林框架。

4.1 结构化标签空间

结构化标签空间P由d’xd’大小的patch组成,表示对象的类标签。p_ij中的i,j表示patch中的位置。另外,(0,0)表示中心位置。为了区分特征空间的patch,这两种分别叫做”label patch p”和”feature patch x”。每个x(u,v,I)和p关联起来,p包含了(u,v)邻域中所有像素的标号。换句话说,p_ij是图像I中位置为(u+i,v+j)的像素的标签。注意,label patch和feature patch的大小d’和d可以不一样。

下面要介绍新标签空间下的分割函数的选择方法。到目前为止,仅仅假设训练集中的训练样本需要穿越整棵树,达到叶子节点。考虑这样的叶子节点t,以及长出这个叶子所需要的标签patch集合Pt。类标号\pi变成了结构化标签lable patch(d’xd’大小),而不再是单个标号。一种好的方法应该表示出label patches的联合概率分布。

为了降低复杂度,假设各个像素是独立的,这样联合概率可以写成

连乘符号右边那一砣表示位置为(i,j)像素在所有label patches的类边缘分布。Pt对应的标号\pi通过下面这个式子获得:

4.2 结构化标签的测试函数选择

测试函数要能够利用结构化标签空间蕴含的信息。一种简单的方法是,用patch中心像素的label来表示该patch的label,从而把传统随机森林的那几种测试函数导入到我们当前情况下。然而,这种方法并没后利用label的拓扑信息。

为了能充分利用结构化标签空间,我们先计算两个label的联合概率分布,再计算信息增益,根据信息增益来选择最佳分割函数。特别地,我们把每一个训练样本(x,p)和两个labels关联起来:一个label是p这个patch的中心像素对应的标号p_00,另一个是p_ij。这种新的测试函数,可以让一个label patch里的所有元素,都对节点上的判断,产生影响。

这种方法的缺点是,复杂度增加了。由于现在需要计算2个label的联合分布,而不是单个label的分布。为了避免这个问题,我们采取了一种不同的测试函数选择机制,使得与每个训练对(x,p)关联的仅一个label。用一个随机选择的p_ij来代替p_00,每个节点产生一个这样的随机(i,j)。这样做,依然可以保证每个元素都对结果有影响,同时还避免了计算复杂。

4.3 结构化标签预测

结构化标签的预测结果需要组合转换成单一标签预测。为了达到这个目的,我们采取同4.1相似的步骤,在叶子节点选择\pi。

F表示训练好的随机森林,一个测试样本x=(u,v,I),Pf表示每棵树预测的结果的集合,Pf表示如下:

类似上面第二个式子,随机森林F对测试样本x的预测结果,可以通过最大化label patch的联合概率来获得,如下所示:

(就是在预测结果的集合里面数数,出现次数多的,就是结果)

4.4 结构化预测的简单融合

相对于传统预测算法,给一张图片,对于每一个像素,分配一个类标号;我们的分类器考虑了邻域信息来预测每一个像素。如果对于(u,v)处像素的预测结果是p,那么p领域位置(u+i,v+j)处的像素可以分类为p_ij(这个p是(u,v)处的patch)。也就是说,对于测试图片的每一个像素,我们都获得了d’xd’个预测结果,这些预测结果需要处理成为一个预测标号。一个简单的方法是选择其中出现最多的那个。如下图所示:

融合这一步的结果,是在给图像标号,从所有可能的标号空间中,选择一种标号可能。

4.5 优化label patch的选择

(略,这部分内容,作者有意把读者引入他写的另一篇文章。我才不上这个当呢)

总结

这部分内容,作为第一篇考虑把传统随机森林结构化的文章,对如何把传统的随机森林方法,变成结构化,阐述地非常清楚明白。“结构化”三个字,体现在以下几点:

  1. 叶子节点不再对应一个label,一个单独的标号,一个孤立的数字,而是一个label patch。它由图像中(u,v)位置的像素及其邻域(d’xd’)的标签构成。
  2. 由于第一条带来的改变,每棵决策树的分割函数(测试函数)也需要做相应的调整。
  3. 由于第一条带来的改变,决策树的预测结果不再是分类结果,但是我们最终是要获得分类结果。所以,对于output带来的变化是,随机森林的预测结果(结构或标签预测)不是最终结果,而是中间过程,需要再加一步处理,才得到最后的分类结果。

不变的是:

  1. 决策森林的输入没有变,输入叫做feature patch。“feature”表示它是一个向量,它有多少维呢?这取决于要考虑哪些cue,比如梯度,颜色,纹理等等。“patch”表示,它不仅仅代表一个像素,它里面有一个邻域(dxd)这么多个像素放在一起,作为一条样本。

从上面这条也可以发现,如果要把模式识别(机器学习)的各种方法用于计算机视觉问题,首先要解决的问题是:
1. 什么是特征空间X?
2. 什么是标签空间Y?

0 0
原创粉丝点击