在无线通信中,有一种广受欢迎的“MIMO”传输技术。MIMO 的全称是多输入多输出(Multiple Input Multiple Output),其早期配置是在发送端和接收端同时布置多个发射机和多个接收机,每个发射机发送相同的信号副本,而每个接收机则接收到来自多个发射机的不同信号,这些信号经历的衰减是相互独立的。这样一来,在接收端多个信号同时被严重衰减的概率就会以指数形式减小,通过获得分集增益带来误码率的下降与信道容量的提升。
无线通信中的分集思想在机器学习中的对应就是集成学习。集成学习正是使用多个个体学习器来获得比每个单独学习器更好的预测性能。
人工智能之机器学习——集成学习监督学习的任务是通过假设空间搜索来找到能够对特定问题给出良好预测的假设。但问题是即使这样的假设存在,能否找到也在两可之间。因而集成学习的作用就是将多个可以得到假设整合为单个更好的假设,其一般结构是先产生一组个体学习器,再使用某种策略将它们加以整合。每个组中的个体学习器如果属于同一类型(比如都是线性回归或者都是决策树),形成的就是同质集成;相应地,由不同类型学习器得到的集成则称为异质集成。
在 MIMO 中,一个重要的前提条件是不同信号副本传输时经历的衰减要相互独立。同样的原则在机器学习中体现为个体学习器的误差相互独立。但由于个体学习器是为了解决相同问题训练出来的,要让它们的性能完全独立着实是勉为其难。尤其是当个体学习器的准确性较高时,要获得多样性就不得不以牺牲准确性作为代价。由此,集成学习的核心问题在于在多样性和准确性间做出折中,进而产生并结合各具优势的个体学习器。
个体学习器的生成方式很大程度上取决于数据的使用策略。根据训练数据使用方法的不同,集成学习方法可以分为两类:个体学习器间存在强依赖关系因而必须串行生成的序列化方法,和个体学习器之间不存在强依赖关系因而可以同时生成的并行化方法。
序列化方法中的数据使用机制被称为提升(Boosting),其基本思路是对所有训练数据进行多次重复应用,每次应用前需要对样本的概率分布做出调整,以达到不同的训练效果。
与 Boosting 相比,并行化方法中的数据使用机制是将原始的训练数据集拆分成若干互不交叠的子集,再根据每个子集独立地训练出不同的个体学习器。这种方法被称为自助聚合(Bootstrap AGgregation),简称打包(Bagging)。在 Bagging 机制中,不同个体学习器之间的多样性容易得到保证;但由于每个个体学习器只能使用一小部分数据进行学习,其效果就容易出现断崖式下跌。
典型的序列化学习算法是自适应提升方法(Adaptive Boosting),人送绰号 AdaBoost。在解决分类问题时,提升方法遵循的是循序渐进的原则。先通过改变训练数据的权重分布,训练出一系列具有粗糙规则的弱个体分类器,再基于这些弱分类器进行反复学习和组合,构造出具有精细规则的强分类器。从以上的思想中不难看出,AdaBoost 要解决两个主要问题:训练数据权重调整的策略和弱分类器结果的组合策略。
典型的并行化学习方法是随机森林方法。正所谓“独木不成林”,随机森林就是对多个决策树模型的集成。“随机”的含义体现在两方面:一是每个数据子集中的样本是在原始的训练数据集中随机抽取的,这在前文中已有论述;二是在决策树生成的过程中引入了随机的属性选择。在随机森林中,每棵决策树在选择划分属性时,首先从结点的属性集合中随机抽取出包含 $k$ 个属性的一个子集,再在这个子集中选择最优的划分属性生成决策树。
网友评论