【阅读笔记】AutoEncoder by Forest+Deep Forest+Ladder Networks+PU learning

这周看的文章,感觉都还挺有意思,但是实用价值一般,就简要的存个档。

前两篇时周志华的深度森林3弹的前两弹,第三弹以前介绍过,我也是跟风读了读,毕竟周志华知名度还是比较高的,感觉还是挺有想法的,但是距离实用还是有一些距离。总体而言,第一篇借鉴神经网络多层的想法,然随机森林也搞成多层,每层也做表征学习。第二篇是自编码,用最大兼容规则(MCR)重构出原图。第三篇是借鉴反向传播,构造逆函数,把误差传回去更精确的学习。

Ladder Network和PU learning(Positive and Unlabeled Learning)都属于半监督学习,都是标注数据占很少的一部分的情况。

Deep Forest

作者:
Zhi-Hua Zhou, Ji Feng
National Key Laboratory for Novel Software Technology,
Nanjing University, Nanjing 210023, China
{zhouzh, fengj}@lamda.nju.edu.cn

Abstract

探索对于不可微模型构造深度模型。
深度学习成功背后的原因是有这三个特性: layer-by-layer processing, in-model feature transformation and sufficient model complexity.
我们提出的gcForest在生成深度模型的同时保持了深度学习的三个特性。
而且树模型与深度学习相比,有更少的超参数,这可以使得模型调参工作大大减轻。

1 Introduction

2 Inspiration

2.1 Inspiration from DNNs

representation learning(layer-by-layer processing)

2.2 Inspiration from Ensemble Learning

It is well known that an ensemble can usually achieve better generalization performance than single learners.
To construct a good ensemble, the individual learners should be accurate and
diverse.

3 The gcForest Approach

3.1 Cascade Forest Structure

we include different types of forests to encourage the diversity, because diversity is crucial for ensemble construction.
随机森林+极端随机数->每一个类别的概率+原始输入作为下一层的特征。最后一层再平均

3.2 Multi-Grained Scanning

多个窗口扫描作为特征输入,产生的结果作为输出concatenate到后面作为那一层的输出。

4 Experiments

4.1 Configuration

In all experiments gcForest is using the same cascade structure: Each level consists of 4 completely-random tree forests and 4 random forests, each containing 500 trees.
Three-fold cross validation is used for class vector generation.
The number of cascade levels is automatically determined.
把数据分为80%的growing set和20%的estimating set,当在estimating set准确率不在提升时,层数停止生长。
For d d raw features, we use feature windows with sizes of [d/16],[d/8],[d/4] [ d / 16 ] , [ d / 8 ] , [ d / 4 ]

4.2 Results

Image Categorization

Comparison of test accuracy on MNIST

gcForest 99.26%
LeNet-5 99.05%
Deep Belief Net 98.75%
SVM (rbf kernel) 98.60%
Random Forest 96.80%

Comparison of test accuracy on CIFAR-10

ResNet 93.57%
AlexNet 83.00%
gcForest(gbdt) 69.00%
gcForest(5grains) 63.37%
Deep Belief Net 62.20%
gcForest(default) 61.78%
Random Forest 50.17%
MLP 42.20%
Logistic Regression 37.32%
SVM (linear kernel) 16.32%

AutoEncoder by Forest

Abstract

Experiments show that, compared with DNN autoencoders, eForest is able to obtain lower reconstruction error with fast training speed, while the model itself is reusable and damage-tolerable.

1. Introduction

In this paper, we present the EncoderForest, (abbrv. eForest), by enabling a tree ensemble to perform forward encoding and backward decoding operations and can be trained in both supervised or unsupervised fashion. Experiments showed the eForest approach has the following advantages:

  • Accurate: Its experimental reconstruction error is lower than a MLP or CNN based auto-encoders.
  • Efficient: eForest on a single KNL (many-core CPU) runs even faster than a CNN auto-encoder runs on a Titan-X GPU for training.
  • Damage-tolerable: The trained model works well even when it is partially damaged.
  • Reusable: A model trained from one datase

3. The Proposed Method

AutoEncoder有两个基本功能:编码和解码。对于随机森林来说,编码是没有困难的,因为叶节点的信息可以被看作是一种编码;更不用说,节点的子集甚至是路径的分支都可以提供更多的编码信息。

eForest编码过程:给定训练好的森基森林,把输入数据输入到森林的每颗树中,将每个数结果叶子结点的索引的集合作为编码特征。该编码过程与如何分割树节点的特定学习规则是彼此独立的。因此,可以监督学习决策规则,也可以无监督学习(例如完全随机树)。

eForest解码过程:每个叶节点对应于来自根的路径,每条路径对应一个符号规则,然后推导出最大兼容规则(MCR)。 MCR规则:每个组件覆盖范围都不能扩大,否则会出现不兼容的问题。

Ladder Networks

key idea: 将有监督学习与无监督学相结合,通过反向传播最小化无监督和有监督的损失函数(不需要层预训练)。

Ladder Networks目的是把无监督学习很好的融入有监督学习中。虽然有些算法也能够同时实施有监督和无监督学习,但是往往无监督学习是一个辅助任务,提供预训练。在复杂的任务中,无监督学习往往不能够提取对于有监督学习有用的信息,因为无监督学习的目的是尽可能的保留原始数据的信息,而有监督学习的特征提取过程中有过滤与任务无关的信息的作用,有点像以前介绍的LDA和PCA的区别,这个不同点使得有监督学习和无监督学习的兼容(半监督学习)很困难。

Ladder Networks的原始数据是一小部分标注数据 {(x1,y1),(x2,y2),...,(xN,yN)} { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } 和大量未标注数据 {xN+1,xN+2,...,xN+M,} { x N + 1 , x N + 2 , . . . , x N + M , } NM N ≪ M

Ladder Networks的结构是:
encoder: xz(1)z(2)y x ⟶ z ( 1 ) ⟶ z ( 2 ) ⟶ y
decoder: yz(2)z(1)x y ⟶ z ( 2 ) ⟶ z ( 1 ) ⟶ x

对于有标注数据,我们想要最小化encoder的误差,对于我们想要最小化encoder和decoder过程中所有变量的差距。为了增加鲁棒性,我们会无标注数据在encoder过程中产生的特征上加噪声。loss function是 loss=Ni=1ylog y^+λN+Mi=N+1d|zd^zd¯|2 l o s s = ∑ i = 1 N y l o g   y ^ + λ ∑ i = N + 1 N + M ∑ d | z d ^ − z d ¯ | 2

这样就把无标注数据在特征提取中利用上了。

参考文献:
Semi-Supervised Learning with Ladder Networks[https://arxiv.org/abs/1507.02672] - 24 Nov 2015
Deconstructing the Ladder Network Architecture[https://arxiv.org/abs/1511.06430] - 24 May 2016

PU learning(Positive and Unlabeled Learning)算法简介

问题描述

给定一个正例数据集P和一个无标注数据集U,在无标注数据集中同时含有正例和反例。通过使用P和U建立一个分类器能够辨别U或测试集中的正例。

应用

  • 从多个无标注集中学习
  • 从不可靠的反例数据中学习
  • 发现测试集中的突发样本
  • 发现异常值

理论基础

问题最终被转换成一个有限制的最优化问题(Constrained Optimization Problem),即算法试图在使得正例数据中的错误率低于1-r的情况下最小化无标注数据中正例数据的数目。

基于限制最优化问题,可采用两种方法来建立PU分类器:

  • 两步方法(Two-step Approach)
  • 直接方法(Direct Approach)

建立分类器:两步方法

两个步骤组成:

  • A.从无标注数据集U中发现一些可靠的反例文档集合(Reliable Negative Documents)(RN)
  • B.利用P、RN和U-RN(Q=U-RN,Q也被称为可能正比例集)来建立分类器,根据RN集合中数据的质量和数量的不同,在该步骤中可能会使用某个现有的学习算法一次或循环使用多次。

A中所采用的技术

间谍技术(Spy Technique):

  • a.随机地从P中选取一个正例文档集合S,并把S加入到U中

  • b.通过把P-S当成是正例集合,U+S当成是反例集合,在这两个集合上运行朴素贝叶斯算法,得到NB分类器被用于给U+S中的每个样本d进行分类,即为每个文档赋予一个概率类别标识Pr(1|d),其中1代表正例类别

  • c.利用间谍文档的概率标识来决定哪些文档最有可能是反例。使用一个阈值t来确定,U中那些概率Pr(1|d)小于t的文档被认为是最有可能的反例文档,用RN表示。

1DNF技术:首先建立一个正例特征集合PF,其中包括那些在正例集合P中出现次数大于在无标注数据U中出现次数的特征,得到U与P中出现的所有特征并得到一个词汇表V,从U中发现可靠反例文档,U中的某个文档如果不含有PF中任何特征的话被认为是一个可靠的反例。

NB(朴素贝叶斯)技术:用NB分类器从无标注数据集U中发现一组可靠反例集合RN。

Rocchio技术:与NB技术类似,只需有Rocchio分类器代替NB分类器。

B中所采用的技术:

在P和RN上运行一个学习算法(如NB或SVM),集合U-RN中的文档不在考虑范围内;迭代地运行某个学习算法直到它收敛或达到某个停止条件。

使用NB分类器的EM算法

迭代SVM(Iterative SVM):该方法中,SVM通过使用P,RN和Q(U-RN)不断地循环运行。

你可能感兴趣的:(机器学习)