最近组会汇报了这篇文章,简单梳理了一下思路。搜索深森林的时候可能会看到。这两篇文章的内容基本相同,只有一些小的叙述不同。
下面是我做的ppt内容:参考文章:http://t.csdn.cn/iSKfj
主要内容
深度学习模型主要基于神经网络,即反向传播训练的多层参数可以微分为非线性模块。 探索不可微模块构建深度模型的可能性,提出了深度学习模型--gcforest(multi-Grained Cascade Forest)
特点:
(1)超参数少
(2)模型的复杂性可以通过与数据相关的方式自动确定
(3)深度模型无需反向传播即可实现
提出疑问:
(1)深度模型=DNN?可微模块必须构建深度模型?
(2)是否有可能训练出不需要反向传播的深度模型?
(3)深度模型是否有可能赢得任务,如随机森林?
启发1:综合学习
个构建良好的集成模型,个体学习应准确多样。
提高模型多样性:
(1)数据样本:从不同的个体生成不同的数据样本
(2)输入特征:选择不同特征生成树的模型是不同的
(3)学习参数不同
(4)输出表示: 用不同的输出表示不同的个体。
启发2:DNN
深度模型的优点: 逐层处理(图1) 转换模型中的特征 模型复杂性大
不足之处: 超参数多 需要大量的训练数据 训练前必须确定网络架构
作者认为逐层处理是DNN成功的关键,如图1所示,随着网络层次的深入,更高层次的抽象特征也会逐渐出现。
等级森林结构
采用不同种类的树木来提高模型的多样性
每层级联森林包括两片随机森林(黑色)和两片极端随机森林(蓝色),每片森林包含500棵树。
两种森林的主要区别:
样本空间不同——随机特征子空间/全部样本数据
不同的分裂节点方法-最小基尼指数/随机选择一个
随机森林和极端随机森林:http://t.csdn.cn/c5BZw
级联森林估计的类分布形成类向量,然后与原始特征向量连接,输入下一层。
假设有三类;四个森林中的每一个都会产生一个3D类向量;因此,下一个关卡将获得12个(= 3 × 4) 增强特征。
在这里,我理解的是,这种分布向量形成图显示了输入特征向量进入森林的过程,因此在上图的右侧产生了一个三维向量。
通过k折交叉验证产生每个森林产生的类向量,以降低过拟合的风险。
每个例子将被用作训练数据k?一次,然后将产生的类向量平均得到最终类向量,作为下一级的增强特征。
在扩展新的级联级别后,可以在验证集中估计整个级联的性能。如果没有显著的性能增益,培训过程将终止;因此,可以自动确定级联级别的数量。 即gcForest模型的复杂性是在适当的时候终止训练自适应决定的。这使得它适用于不同规模的训练数据,而不限于大规模的训练数据。
多粒度扫描
滑动窗用于扫描原始特征
连接上述两个步骤gcforest的流程图啦
假设下图中有 3 并单独使用 100 维 200 维 300 原来维的窗口 400 滑动维的特性
级联级联:每个级联由多个级别组成,每个级别对应一个扫描粒度。
超参数和默认设置
黑体字表示影响较大的超参数,"?"需要根据不同的任务进行调整。
表一表明gcforest超参数少,结构简单。
性能
图6 显示当级联级别增加时,gcforest性能趋势。
图8表示更大的模型往往能提供更好的性能。
实验结果
文章中有很多简单的两个实验。
关于代码
我还没有跑好代码,但是已经下载了,看到一篇关于代码构成的详细解释文章。
链接放在这里:http://t.csdn.cn/lo3jX
等我调好再来。