泰勒公式推导过程_论泰勒级数在机器学习家庭中的地位
胖友們,很久沒見了,最近工作確實太忙。離上一篇文章的時間已經有一個多月了。上回說到學習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-