今日面试题分享:为什么xgboost要用泰勒展开,优势在哪里?

2019 年 3 月 13 日 七月在线实验室


今日面试题分享
为什么xgboost要用泰勒展开,优势在哪里?


参考答案:


解析:

xgboost使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准. 使用泰勒展开取得函数做自变量的二阶导数形式, 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算, 本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 这种去耦合增加了xgboost的适用性, 使得它按需选取损失函数, 可以用于分类, 也可以用于回归。 


更进一步,引用的知乎答主宋佳慧的话,说: 实际上使用二阶泰勒展开是为了xgboost能够自定义loss function,如果按照最小二乘法的损失函数直接推导,同样能够得到xgboost最终的推导式子:


二阶泰勒展开实际不是 约等于 最小二乘法,平方损失函数的二阶泰勒展开=最小二乘法。但为何想用二阶泰勒展开呢,一方面是为了xgboost库的可扩展性,因为任何损失函数只要二阶可导即能复用xgboost所做的关于最小二乘法的任何推导。而且泰勒的本质是尽量去模仿一个函数,毕竟二阶泰勒展开已经足以近似大量损失函数了,典型的还有基于分类的对数似然损失函数。 


这样同一套代码就能完成回归或者分类了,而不是每次都推导一番,重写训练代码。 


此外,Xgboost官网上有说,当目标函数是MSE时,展开是一阶项(残差)+二阶项的形式(官网说这是一个nice form),而其他目标函数,如log loss的展开式就没有这样的形式。为了能有个统一的形式,所以采用泰勒展开来得到二阶项,这样就能把MSE推导的那套直接复用到其他自定义损失函数上。


简短来说,就是为了统一损失函数求导的形式以支持自定义损失函数。当然,这是从为什么会想到引入泰勒二阶的角度来说的。


题目来源:七月在线官网(www.julyedu.com)——面试题库——面试大题——机器学习




今日学习推荐

Spark大数据实战班

开课时间:3月16日(本周六)

五位大厂架构师

只教工程实战和实际应用

四大课程特色  十一大实战项目

帮你清楚的知道如何在企业中实战应用


咨询/报名/组团可添加微信客服

julyedukefu_02


扫描下方二维码

查看更多课程详情

长按识别二维码


往期推荐






【实战分享】电影推荐系统项目实战应用

万字长文概述NLP中的深度学习技术

34个最优秀好用的Python开源框架

神经网络P图新神器:摘墨镜戴美瞳都能搞定,加首饰换发型真假难分 | 代码开源

一文详解机器学习中最好用的提升方法:Boosting 与 AdaBoost



咨询,查看课程,请点击“阅读原文

给我【好看

你也越好看!

登录查看更多
22

相关内容

最新《自动微分手册》77页pdf
专知会员服务
99+阅读 · 2020年6月6日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
116+阅读 · 2020年5月10日
专知会员服务
31+阅读 · 2020年4月24日
【WWW2020】DGL深度图神经网络实战教程,PPT+代码
专知会员服务
175+阅读 · 2020年4月12日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
81+阅读 · 2020年1月13日
树形结构为什么不需要归一化?
七月在线实验室
8+阅读 · 2019年4月30日
今日面试题分享:L1和L2的区别
七月在线实验室
7+阅读 · 2019年3月14日
今日面试题分享:简单介绍下LR
七月在线实验室
7+阅读 · 2019年2月20日
BAT机器学习面试1000题(721~725题)
七月在线实验室
11+阅读 · 2018年12月18日
BAT机器学习面试1000题(716~720题)
七月在线实验室
19+阅读 · 2018年12月17日
深度学习面试100题(第81-85题)
七月在线实验室
16+阅读 · 2018年8月6日
AI笔试面试题库-Python题目解析1
七月在线实验室
5+阅读 · 2018年6月27日
BAT题库 | 机器学习面试1000题系列(第196~200题)
七月在线实验室
17+阅读 · 2017年11月16日
BAT机器学习面试1000题系列(第116~120题)
七月在线实验室
16+阅读 · 2017年10月24日
Arxiv
5+阅读 · 2019年10月31日
Arxiv
4+阅读 · 2019年9月26日
Arxiv
6+阅读 · 2018年6月20日
Arxiv
3+阅读 · 2018年4月11日
Arxiv
4+阅读 · 2018年2月13日
VIP会员
相关VIP内容
最新《自动微分手册》77页pdf
专知会员服务
99+阅读 · 2020年6月6日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
116+阅读 · 2020年5月10日
专知会员服务
31+阅读 · 2020年4月24日
【WWW2020】DGL深度图神经网络实战教程,PPT+代码
专知会员服务
175+阅读 · 2020年4月12日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
81+阅读 · 2020年1月13日
相关资讯
树形结构为什么不需要归一化?
七月在线实验室
8+阅读 · 2019年4月30日
今日面试题分享:L1和L2的区别
七月在线实验室
7+阅读 · 2019年3月14日
今日面试题分享:简单介绍下LR
七月在线实验室
7+阅读 · 2019年2月20日
BAT机器学习面试1000题(721~725题)
七月在线实验室
11+阅读 · 2018年12月18日
BAT机器学习面试1000题(716~720题)
七月在线实验室
19+阅读 · 2018年12月17日
深度学习面试100题(第81-85题)
七月在线实验室
16+阅读 · 2018年8月6日
AI笔试面试题库-Python题目解析1
七月在线实验室
5+阅读 · 2018年6月27日
BAT题库 | 机器学习面试1000题系列(第196~200题)
七月在线实验室
17+阅读 · 2017年11月16日
BAT机器学习面试1000题系列(第116~120题)
七月在线实验室
16+阅读 · 2017年10月24日
Top
微信扫码咨询专知VIP会员