learn++算法综述.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
learn算法综述

Learn++算法综述 摘要:learn++ 算法是一种适用于监督学习的、集成的、增量学习的、能学习新类的算法。在进行训练时,把训练数据按不同子集分别进行训练。采用投票机制,将若干弱学习机以权重投票的方式集成。在线学习时,不需要载入原始数据。具有训练耗时少、所需存储空间少、算法效率高、训练结果不受训练数据顺序影响等优点。也存在不少缺点,为此提出了不少改进算法。 关键词:learn++;增量学习;监督学习;综述 一 引言 Learn+ + 最早由 Polikar 等人于 2001年提出,是一种用于解决分类问题的、监督学习的神经网络增量训练算法, 主要针对多分类问题, 其灵感来自于AdaBoost 集成算法[15]。它在数据融合、信号的无损评价等诸多模式识别领域有重要应用[1,3,4,5]。Learn++算法能够增量的学习新来数据,即使新来数据属于新的类,而不忘记已经学习到的旧知识,较好的解决了稳定性/可塑性难题[6]。Learn++是一种集成算法,它采用投票机制,将若干弱学习机以权重投票的方式集成(分类性能高的弱学习机,具有高的投票权重)。弱学习机的“投票权重”依赖与其正确分类数据的权值,而数据的权值又根据分类结果的正确与否而动态变化。在这一点上,learn++和AdaBoost很相似。learn++和AdaBoost最大的区别在于:AdaBoost的目的在于提高分类器的分类性能,而learn++的目的在于增量的学习新来的数据[2]。 二 算法步骤 Learn++算法的主要步骤如下: 1 初始化阶段: 1.1 获得原始数据集D,并将D分成K个子数据集S(k) 。其中k=1,2…K, S(k) = [(x1, y1),( x2, y2) ……… (xm, ym)] 。 1.2 确定弱学习机的个数T。 1.3 获得T个弱学习机。 2 训练阶段: 循环 k= 1,2………K 2.1初始化 w1(i) = D1(i) = 1/m(k) , ?i,i=1,2……m(k)。其中w1(i)代表样本i的权重,m(k)代表数据集的数量。 2.2 循环 t = 1,2…… T 2.2.1 将每个样本的概率归一化,建立分布Dt Dt=ωt\i=1m(k)ωt(i) 2.2.2 根据Dt任意选择训练子集TRt和测试子集TE t; 2.2.3 用 TRt 训练弱学习机并得到假设ht: X ?Y; 2.2.4 计算此假设在训练子集和测试子集上的错误率: εt=i:hxi≠yiDti on TRt+TE t 如果εt1/2.删除此弱学习机,回到步骤2.2.2.否则计算正规化错误率: Bt=Et/(1-Et) 2.2.5 将本次循环已经训练的弱学习机 hs进行集成,其中s=1,2….t,得假设 Ht=argmaxy∈Y t:htx=ylog?(1βt)。 计算ht的在训练子集TRt 和测试子集TE t的错误率: Et=i:hxi≠yiDti=i=1mDti[ Ht(Xi≠yi] 如果Et1/2,删除弱学习机ht,t=t-1。回到步骤2.2.2。 2.2.6 设Bt=Et/(1-Et)。修改数据集中每个样本的权值: Wt+1i=Wti×{1, 其他Bt, if Htxi=yi 最终假设为: Hfinal=argmaxy∈Y k=1Kt:htx=ylog?(1βt) 三 算法评价及相关改进算法 从上述算法步骤可看出learn++算法具有诸多优点。 (1) 需要设置的参数相对较少。从上述算法步骤可看出,learn++算法仅需设置子数据集的个数K和弱学习机的个数k 两个参数。 (2) 能增量的学习新来的数据,而不会忘记“旧知识”,有效的避免的神经网络学习中“突然遗忘”[7]现象。当然Learn++算法在增量的学习新来信息的过程中,有一些“旧知识”确实会被忘记,但是这些被忘记的“旧知识”是可以忽略的[1]. (3) 因为learn++算法能够增量的学习新来的数据,所以它不需要存储 “旧数据”,所需存储空间少。 (4) 训练时间短。通常的强学习算法为找到最优分类面,而不得不进行大量循环运算。learn++算法采用若干弱算法权重投票机制,而训练弱算法不需要获得最优分类面,仅需获得一个大致分类面,所以训练时间短;同时learn++算法对子集进行分别训练,因而其训练时间将进一步减少[1]。 (5) 能够增量的学习新的类。 (6) 不受训练数据的顺序影响[8]. 和众多其他算法一样,Learn++算法也存在诸多缺点,为此提出了不少改进算法。 当有新类出现

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档