集成网络概述 刘雪飞
主要内容 集成学习基本概念 强学习算法&弱学习算法 神经网络集成原理概述 Bagging算法 Boosting算法实现 三种集成算法 Gasen算法 实验结果
集成学习 集成学习 集成学习是机器学习的一种。 传统的机器学习方法是在一个由各种可能的函数构成的空间(称为“假设空间”)中寻找一个最接近实际分类函数f的分类器h。单个分类器模型主要有决策树、人工神经网络、朴素贝叶斯分类器等等。 集成学习的思路是在对新的实例进行分类的时候,把若干个单个分类器集成起来,通过对多个分类器的分类结果进行某种组合来决定最终的分类,以取得比单个分类器更好的性能。 机器学习是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。 性能互补使得结果最优。
学习算法 强学习算法 令 S 为包含 N 个数据点(x1,y1),(x2,y2),...,(xn,yn)的样本集,其中xt是按照某种固定但未知分布 D(x)随机抽取的。y = f(xt), f 属于某已知布尔函数集 F。如果对于任意的 D,任意的 f ∈ F,任意的 0 <ε, δ ≤1/2,学习算法生成一个满足p[ h(x)≠ f(x)]≤ε的估计h的概率大于 1 −δ,并且学习算法的运行时间与 1/ε,1/δ成多项式关系,则称这种学习算法是强学习算法。 弱学习算法 弱学习算法定义和强学习类似,只需存在某对ε 、δ满足条件即可。一般来说,如果存在一个多项式级学习算法来辨别一组概念,在辨别时的正确率仅比随机猜想略好,则是弱学习算法。反之,辨别的正确率很高,则是强学习算法。 只要有足够的数据,弱学习算法就能通过集成的方式生成任意高精度的估计,即可以直接将弱学习算法提升为强学习算法。
决策树 一个决策树包含三种类型的节点: 1.决策节点—通常用矩形框来表式 2.机会节点—通常用圆圈来表式 3.终结点—通常用三角形来表示 不开工 损益
BP神经网络 BP是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
Ensembling neural network 神经网络集成 神经网络集成通过训练有限个神经网络并将其结论进行合成,该集成可以显著地提高学习系统的泛化能力。 实现方法: 1、如何生成集成中的个体网络 2、怎样将多个神经网络的输出结论进行结合 集成神经网络主要用于分类、回归
Ensembling neural network 输出结论 当神经网络集成用于分类时,集成的输出通常由个体网络的输出投票产生,即某分类成为最终结果当且仅当输出结果为该分类的神经网络的数目最多。(相对、绝对) 当神经网络集成用于回归时,集成的输出通常由各网络的输出通过简单平均或加权平均产生 不开工
Boosting & Bagging Boosting和Bagging算法
Bagging算法 给定一弱学习算法和样本集((x,y,),(x1,y1),…,(xk,yk)),即将数据分为k个子集。 每次从训练集中取样m(m<K)个训练例训练,训练后将取样放回。 得到预测函数序列h1,h2,......hn,最终的预测函数H按照网络结果的集成方法来得到最后的预测结果。
Bagging算法基本概念 Bagging是Bootstrap Aggregating的缩写,是第一批用于多分类器集成算法。 目的:提高分类法或学习算法的准确率 特点:对同一本集进行多次等概率随机抽取(Bootstrap),形成多个与原样本集同等规模的训练样本集。(放回取样) 独立性 另外,bagging算法对不稳定的学习算法能提高预测的准确度; 而对稳定的学习算法效果不明显,有时甚至使预测精确度降低。 不稳定性 含义 如果训练集有较小的变化,学习算法产生的预测函数将发生较大变化!
Boosting算法 Boosting算法分析(Adaptive Boosting) 它们都要求事先知道弱 学习算法学习正确率的 4、最终经过提升的强分类器。即某个数据被分为哪一类要通过分类器多数表决。 它们都要求事先知道弱 学习算法学习正确率的 下限,这在实际问题中 很难做到!! 1) boosting算法对噪声的容忍程度不高。 2) 迭代次数过多,会过拟合,泛化能力会变差
Adaboost Adaboost
Adaboost Adaboost
Adaboost Adaboost
Adaboost
Adaboost
算法比较 1)Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boostlng的训练集的选择是独立的,各轮训练集的选择与前面各轮的学习结果有关; 2)Bagging的各个预测函数没有权重,而Boosting是有权重的; 3)Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。对于象神经网络这样极为耗时的学习方法。Bagging可通过并行训练节省大量时间开销。 ——bagging和boosting都可以有效地提高分类的准确性。在大多数数据集中,boosting的准确性比bagging高。在有些数据集中,boosting会引起退化。
Ensembling neural network 现在设想是否有一种集成网络,使用部分的网络会比使用所有的网络在回归、分类问题上泛化误差更小??也就是去除不好的网络 假设 若满足下式,即新的集成网络泛化能力更强
Gasen算法 以上在理论分析证明集成部分的网络在回归和分类方面泛化能力都比原先的更好是有可能的,但是把不好的网络去除也不是一件容易的工作。 假设权重向量为 ,优化权值应 该使集成的泛化误差最小,则优化的权值向量: (17)
GASEN算法 鉴于遗传算法的优化性能,提出Gasen算法寻找不好的网络。 1、训练20个BP神经网络 Image segment 数据中1500个做训练,810个样本做测试,最大迭代次数为100 2、每个网络随机分配权值,然后使用遗传算法优化权值,构成合适的集成网络,输出最优 3、基于进化的权值选择某些网络构成集成网络 优点:与传统的集成boosting和bagging相比,gasen产生的网络个数少,并且泛化能力更强。 Ensembling neural networks: Many could be better than all, Zhihua Zhou, Nanjing University
Gasen算法 程序:
实验结果 Ensembling neural networks: Many could be better than all, Zhihua Zhou, Nanjing University
分类结果:
Ensembling neural network 回归结果
Ensembling neural network 虽然gasen在实际学习中已经取得了显著成绩,但是gasen还有很大的发展空间,因为绝对大部分还是在理论上具有合理性,优化的性能、实际应用还有待提高,比如寻找更好的集成方法、适应性函数、编码机制、遗传算子等。
Ensembling neural network Thank you!