泰勒公式推导过程_论泰勒级数在机器学习家庭中的地位
胖友们,很久没见了,最近工作确实太忙。离上一篇文章的时间已经有一个多月了。上回说到学习python占用了我很大部分的时间。但是在一次我面试别人与别人的交流中,我醒悟到了一些机器学习理论基础的重要性,最近多花了一些时间这方面的学习上。因为在一些业务场景中,我们在建模的时候必须要知道怎样样的算法才能结合业务产生价值,那算法理论就是我们的基础。在学习的过程中,我发现泰勒级数在机器学习理论中经常用到,如xgboost的推导。但是在跟一些朋友的交流中,他们会提问,他们虽然大致知道泰勒级数式长什么样的,但一些背景和详细解释没有太了解,导致在后面的学习中一脸懵逼,没办法把知识点串联起来。所以这次想看看我们这次的学习分享能不能帮到大家。那么我们应该怎么去理解泰勒级数和泰勒级数在机器学习领域中的应用?我们可以从泰勒级数的定义和它在机器学习中的应用例子说起。
01泰勒级数是什么泰勒级数是以于1715年发表了泰勒公式的英国数学家布鲁克·泰勒(Sir Brook Taylor)的名字来命名的。通过函数在自变量零点的导数求得的泰勒级数又叫做迈克劳林级数,以苏格兰数学家科林·麦克劳林的名字命名。泰勒级数是因为需要用一个多项式来逼近所有函数而产生。一个函数f(x)只要满足在含有以下公式点a的某个区间I内有任意阶导数,就能使用泰勒级数去逼近f(x),而且最后级数需要收敛。
泰勒级数公式如下:
可以看到,f(x)最后通过一系列的多项式去表示。这就是泰勒级数的作用,用一系列多项式去逼近一个函数。
02熵与gini指数的关系先解释什么是熵,记得之前的文章已经有些涉及。熵是一种不确定性的度量,可以用来度量决策树分裂过程中的分裂效果。熵越大说明一个集合中的类别分别越不明确。gini指数也是一样的含义。
两者的公式对比如下:
在公式中,Pk代表在集合中k类别的占比,所以可以根据Pk计算熵和基尼指数。后面就能用到利用泰勒级数让熵近似转化为基尼指数。我们让f(x)=-lnx在x=1处进行一阶泰勒展开:
f(x)
≈f(x0)+f(x)´∗(x−x0)+0(′)=f(1)+f(1)´∗(x−1)+0(′)=1−x
根据上面的关系我们就能看到-ln(Pk)=1-Pk,最后得到熵H(x)和Gini(x)近似相等。
03XGboost中的应用当把上面泰勒级数中的x赋值为a+Δx,让x在x=a处泰勒二阶展开,得到:
f(a+Δx)≈f(a)+f(a)´∗Δx+f(a)′′∗(Δx)2/2
XGboost的损失函数为以下目标函数,我们这边不详细讨论以下等式的细节,可以详见之前讲解XGboost的文章《XGboost原理基础直梯度提升树》,这里主要描述的是泰勒级数在这个XGboost中的应用。
而:
所以:
在等式中
相当于泰勒二阶展开式中的a+Δx,
相当于x ,相当于Δx,所以得到:
等于
最后得到:.
所以总的来说,以上的转换需要泰勒级数在整个过程中的使用。
04梯度下降法中的应用最后的一个例子就是大家经常见的梯度下降法。我们目标是最小化损失函数,参数迭代公式为:
θt=θt−1+Δθ
我们把损失函数在θt−1处泰勒一阶展开,得到:
L(θt)=L(θt−1+Δt)≈L(θt−1)+L(θt−1)′∗Δx
为了让我们的损失函数是越来越小的,即下一步迭代的L(θt)小于L(θt−1),有以下推导:
L(θt)=> L(θt)-L(θt−1)=L(θt−1)′∗Δx<0
那么我们控制Δx,令Δx=−α*L(θt−1)′,然后再控制α>0,那样代入上面的式子就能保证L(θt)-L(θt−1)<0,在每一步迭代之后,损失函数都在减少。最后就能最小化损失函数。当然我们给的只是一种梯度下降的例子,实际上在别的梯度下降算法中α值不是固定的,大家有兴趣我们可以跟多交流。
//最后的感悟//总的来说,如果在我们数据建模这一行,业务和模型都很重要,没有了业务理解,我们没有了让模型产生价值的方向,做出来的模型没办法落地。没有模型算法的基本理解,就没有建模的基础,也无从下手,而模型算法的基础中数学基础也很重要,以上泰勒级数在机器学习中的三个例子也有一定的说明。所以我们在下班之余可以多学习一些模型算法并且思考怎么结合业务实际,使它有落地的价值,然后才能升职加薪,迎娶白富美,成为人生赢家啦。
总结
以上是生活随笔为你收集整理的泰勒公式推导过程_论泰勒级数在机器学习家庭中的地位的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python cx_oracle_Pyt
- 下一篇: python中的diff_python-