ERM 是从函数集 F 中选择最优函数 的标准 。这个模型类和 ERM 原理可以将学习问题转变成优化问题 。模型类可以被看作是候选的解决方案函数 , 而 ERM 则为我们提供了选择最小化函数的标准 。针对优化问题的方法有很多 , 其中两种主要方法是梯度下降法和牛顿法;MART 和 XGBoost 分别使用了这两种方法 。
这篇论文也总结了常见的学习方法:1. 常数2. 线性方法3. 局部最优方法4. 基函数扩展:显式非线性项、样条、核方法等5. 自适应基函数模型:GAM(广义相加模型)、神经网络、树模型、boosting另一个机器学习概念是模型选择(model selection) , 这要考虑不同的学习方法和它们的超参数 。
首要的问题一直都是:增加模型的复杂度是否更好?而答案也总是与模型自身的泛化性能有关 。如下图 1 所示 , 我们也许可以在模型更加复杂的同时得到更好的表现(避免欠拟合) , 但我们也会失去泛化性能(过拟合):图 1:泛化性能 vs 训练误差(仅)为平方损失使用预期条件风险的经典的偏置-方差分解(bias-variance decomposition) , 我们可以观察风险相对于复杂度的变化:图 2:预期风险 vs 方差 vs 偏置为此通常使用的一种技术是正则化(regularization) 。
通过隐式和显式地考虑数据的拟合性和不完善性 , 正则化这种技术可以控制拟合的方差 。它也有助于模型具备更好的泛化性能 。不同的模型类测量复杂度的方法也不一样 。LASSO 和 Ridge(Tikhonov regularization)是两种常用于线性回归的测量方法 。我们可以将约束(子集化、步进)或惩罚(LASSO、Ridge)直接应用于复杂度测量 。
理解 boosting、树方法和树提升boostingboosting 是一种使用多个更简单的模型来拟合数据的学习算法 , 它所用的这些更简单的模型也被称为基本学习器(base learner)或弱学习器(weak learner) 。其学习的方法是使用参数设置一样或稍有不同的基本学习器来自适应地拟合数据 。
Freund 和 Schapire (1996) 带来了第一个发展:AdaBoost 。实际上 AdaBoost 是最小化指数损失函数 , 并迭代式地在加权的数据上训练弱学习器 。研究者也提出过最小化对数损失的二阶近似的新型 boosting 算法:LogitBoost 。Breiman (1997a,b 1998) 最早提出可以将 boosting 算法用作函数空间中的数值优化技术 。
这个想法使得 boosting 技术也可被用于回归问题 。这篇论文讨论了两种主要的数值优化方法:梯度提升和牛顿提升(也被称为二阶梯度提升或 Hessian boosting , 因为其中应用了 Hessian 矩阵) 。让我们一步一步了解 boosting 算法:boosting 拟合同一类的集成模型(ensemble model):其可以被写成自适应基函数模型: 其中 且 , m=1,…,M , Φm 是按顺序累加的基本函数 , 可用于提升当前模型的拟合度 。
因此 , 大多数 boosting 算法都可以看作是在每次迭代时或准确或近似地求解 所以 , AdaBoost 就是为指数损失函数求解上述等式 , 其约束条件为:Φm 是 A={-1,1} 的分类器 。而梯度提升或牛顿提升则是为任意合适的损失函数近似求解上述等式 。梯度提升和牛顿提升的算法如下:最常用的基本学习器是回归树(比如 CART) , 以及分量形式的线性模型(component-wise linear model)或分量形式的平滑样条(component-wise smoothing spline) 。
基本学习器的原则是要简单 , 即有很高的偏置 , 但方差很低 。boosting 方法中的超参数有:1. 迭代次数 M:M 越大 , 过拟合的可能性就越大 , 因此需要验证集或交叉验证集 。2. 学习率 η :降低学习率往往会改善泛化性能 , 但同时也会让 M 增大 , 如下图所示 。在 Boston Housing 数据集上的不同学习率的样本外(out-of-sample)RMSE树方法树模型是简单和可解释的模型 。
推荐阅读
- 学电工从哪入手,想学电工
- 学习软件开发要多久,41040102
- 手术机器人的霸主,达芬奇手术机器人
- 赛尔号灭世之心怎么得,3种常见机器人灭世场景
- 麦迪金针怎么学,赛尔号2麦麦迪麦迪金针的学习方法是
- 汽车维修技术网,手机维修技术学习
- 性爱机器人对女性,我的性爱机器人
- 机械翻译,机器翻译之父韦弗
- 索比斯刷什么,赛尔号索比斯学习力推荐
- 学英语哪个词典软件好,学习英语是用APP就够了吗