最近Hinton提出使用决策树来解释神经网络。看到周志华老师04年论文,遂做点笔记
原文:NeC4.5: Neural Ensemble Based C4.5
决策树具有很好的理解能力,神经网络集成具有很好的泛化能力。本文将两者融合到一个新的决策树算法Nec4.5。该算法首先训练一个神经网络集成。然后训练的集成被用来生成新的训练集,通过用由训练的集成的输出替代原始训练样本的期望标签,一些额外训练样本也从训练集成中生成并被加入到新的训练集中。最后一个C4.5算法从新的数据集中训练得到。
一般而言,决策树具有很好的理解能力因为学到的知识能在书中精确表达出来,然而神经网络因为学到的知识被隐藏地编码在一系列连接中所以很难理解。
所以网络集成组合了许多神经网络,它的行为就更难理解。本文提出基于C4.5的神经网络集成,可被视为C4.5算法的变形,其中一个神经网络集成被用来预处理训练数据。
2 NeC4.5
假设训练集
S={(x1,y1),(x2,yx),⋅⋅⋅,(xl,yl)}
.一个神经网络集成从S中训练得到。这里使用Bagging 来训练集成,其使用bootstrap 取样来生成多种训练集合从原始训练集,然后从每个生成的训练集中训练神经网络。当然也可以使用不同集成学习方法。
对于每个特征向量
xi(i=1,2,⋅⋅⋅,l)
当它输入到一个训练的神经网络集成N* 后输出一个类别标签
y′i
. 通过使用
y′i
代替yi,得到一个新的样本
(xi,y′i)
。重复此过程得到新的训练集合
S′={(x1,y′1),(x2,y′2),⋅⋅⋅,(xl,y′l)}
, 这样所有的特征向量在S中出现也在S’中出现。
S’可以通过包含额外训练数据(其由神经网络集成生成)来扩大。通过随机生成一些特征向量然后将其输入到训练的集成中。对于每个随机生成的特征向量
x′j(j=1,2,⋅⋅⋅,m)
, 当它输入到N*中会输出一个类别标签
y′l
. 那么得到样本
(x′j,y′j)
。通过额外数据比率来控制额外训练数据,
μ=m/l
, m表示额外训练集中样本个数,l表示原始训练集大小。
为了探索NeC4.5工作的原因,假设目标去学习一个函数
F:X→Y
.这个函数表达了在由X和Y确定的特征空间的一个分布。Fn表示在给定训练集中训练的的神经网络集成的函数。那么Fn等于F函数的概率等于:
Ft 表示在给定训练集中训练的决策树函数。那么Ft等于F的概率为:
ErrT 分成3部分,第一部分是决策树的受限学习能力导致的误差。也就是在无噪声并能捕获整个目标分布时决策树仍然出现的误差。表示为 err(c)T ,值可能很小。
第二部分由包含噪声的训练集产生的误差,表示为 err(n)T .
最后一部分来自受限样本集产生的误差, 表示为 err(s)T
现在假设给定训练集包含完整目标分布,也就是所有可能的特征向量都在训练集中出现。 err(s)T 为0, errT 由 err(s)T 决定, F∗T 表示由神经网络集成产生的训练集得到的决策树的实现函数。从Fn视角,这个训练集无噪声因为所有样本从同一分布生成。然而这个分布不一定是目标分布F,为目标分布的概率 PFN .所以:
PF∗T=PF=F∗T=PFNPF(C)T
等同于
当
这暗示着使用神经网络集成来处理原始训练集那么NeC4.5可以得益于决策树的构造,即使没有额外训练数据生成,基于集成明显高精度于直接从原始数据建立的决策树,并且原始数据包含太多噪声。