集成学习技术

本文探讨了深度学习中集成学习的重要性,特别是通过Bagging(自助采样法)和Boosting(弱学习器增强)降低模型方差的方法。介绍了如何从输入、模型和输出三个角度进行集成,以及典型算法如Bagging的随机子集训练和Boosting的弱学习器迭代提升过程。

一、概述

        因为大多深度学习模型是基于随机梯度下降来更新权重参数的,使得训练出来的模型方差偏高,所以不能完全复现某次训练最好的结果。

        集成学习通过创建并学习多个模型,然后根据多个模型的输出结果,采用一定的决策方式得到最终的目标。它的好处是可以降低模型方差,准确率一般比使用单个模型要高。

二、集成方式

        典型的神经网络架构通常包含输入、模型和输出。因此,可以从这三个角度进行集成。

1、从输入考虑

        即利用不同数据集,单个模型进行学习。如k折交叉验证,将一个大的数据集平均分成k份,每次训练从中取k-1份作为训练集,剩下1份作为验证集,重复k次,每次取的都不一样。

2、从模型考虑

        即利用同一个数据集,多个不同模型进行学习。这里可以改变模型的层数,每层的神经元数量,亦或者采用不同的方式初始化不同模型的参数等。

3、从输出考虑

        即对多个输出结果,采用一定的策略进行综合考虑。常用的策略有简单平均、投票、加权等。

三、典型集成学习算法

1、Bagging

1.1 算法思想

        Bagging算法从大小为N的数据集中随机等概率有放回地取出M个大小为K的子集,结合分类、回归等算法,在这M个子集上进行训练得到M个候选值,最后通过平均、投票等方法得到Bagging算法的决策结果。

1.2 特性分析

1)Bagging有利于降低模型方差

2)其性能与模型的稳定性有关,当模型不稳定时,输出误差得到改善,整体偏低;如果稳定,则模型的误差主要由映射错误导致。

3)由于是随机等概率取样本,所以Bagging算法对所有的样本具有一致性。

2、Boosting

        Boosting可理解为“提升”,即将弱学习器提升为强学习器。它是一种指导算法思想,由其衍生出了很多具体的提升算法,比较经典的是AdaBoost。在实际中,训练一个弱学习器往往比强学习器容易的多,AdaBoost要做的就是就联合多个弱学习器,将整体的学习效果提升为可匹配强学习器的输出。其算法流程为:AdaBoost会重复调用弱学习器,数据样本会被分配一个值,代表每次加入训练的概率;第一次选取训练子集时各样本的概率是相同的,如果在该轮训练中没学习到,则该样本的选取概率增加,加大其在下一轮训练中被选取的概率;经过N次迭代训练后,得到N个学习器,每个弱学习器依据其学习效果,有不同的权值,最后的强学习器由多个弱学习器加权得到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值