5秒導(dǎo)讀,本文將介紹適用于求解線性回歸以及Logistic回歸的牛頓方法,以及泰勒展開
線性回歸的求解,其實(shí)就是求解使代價函數(shù)取得最小值的θ,而Logistic回歸則是求解使得對數(shù)似然函數(shù)取得最大值的θ,或許熟悉微積分的朋友會問:“要求最值,為什么不直接取偏導(dǎo)數(shù)等于0的點(diǎn)?”
答案其實(shí)非常簡單,首先,很多方程非常難解,其次解的結(jié)果帶有矩陣求逆,并不是每個矩陣都可逆,并且逆矩陣十分難求。
不過梯度上升/下降并不是唯一的辦法。今天我們就將介紹一種來自莫高雷的神秘方法——牛頭方法!
靠!說錯了,是牛頓方法!?。。。?!
說起牛頓,那可真是百科全書式的天才,其著名的牛頓運(yùn)動三定律,可謂改變了全世界,比如:
當(dāng)然還有微積分最著名的牛頭—德萊尼人公式!其實(shí)是牛頓-萊布尼茨公式:
這個沒有開玩笑!
這個沒有開玩笑!
這個沒有開玩笑!重要的事說三遍
調(diào)侃到此為止,回到今天的正題——牛頓方法,牛頓方法可以用于求解復(fù)雜方程的近似解。比如說我們的線性回歸的代價函數(shù),Logistic回歸的似然函的導(dǎo)函數(shù)等于0的解。
首先讓我們考慮一個任意函數(shù)f(x)=0的解,隨便取一點(diǎn)x0,并在(x0,f(x0))處求出切線的表達(dá)式,以切線與x軸的交點(diǎn)x1重復(fù)幾次上述步驟,我們就可以得到f(x)=0的近似解,過程如圖
Ok,x1怎么算?還記得函數(shù)的導(dǎo)數(shù)表示斜率么?不記得可以翻翻玩ai第4期,斜率不就是tanθ,也就是夾角的正切,那么
稍微整理一下就得到
關(guān)于這等式怎么來的,一個比較容易理解的解釋是使用泰勒展開。什么叫泰勒展開?我們知道很多函數(shù)在某點(diǎn)的值很容易算,比如說
也有的函數(shù)很難算,比如說sinx,而泰勒展開就是用容易算的函數(shù)逼近難算的函數(shù),最終求得我們想要的值。方法是取某個點(diǎn),使兩個函數(shù)在該點(diǎn)的函數(shù)值,以及1到N階導(dǎo)數(shù)值都相等,求解a0到an的值,得到逼近。泰勒公式如下圖
Ok,因?yàn)槲覀円蟮氖欠匠痰慕平?,所以我們只取泰勒公式的前兩?xiàng),那么
這是啥?稍微整理一下不就是是上面的斜率嘛!
OK,牛頓方法講清楚了,不過我們的線性回歸的代價函數(shù),Logistic回歸的似然函的導(dǎo)函數(shù)都是n元函數(shù),怎么求解呢?其實(shí)也差不多
如果把
記作F(x),這玩意叫做向量值函數(shù),也就是你喂一組數(shù)字進(jìn)去,他還你一個向量。那么
因?yàn)镕(x)=0,所以
這里的F'(x)是一個稱為雅可比矩陣的玩意
由此我們可得
其中的F’(x)^-1表示雅可比矩陣的逆矩陣。一個問題是,上述的F(x)其實(shí)是代價函數(shù)的導(dǎo)函數(shù)。不過問題不大!再求導(dǎo)一次就行了:
其中的▽是梯度的意思,不記得可以翻《玩AI 5 ——雞你太美》。而H為Hessian矩陣,其中的元素為
Hessian矩陣寫出來就是
就是再導(dǎo)一次,沒啥大不了的!
這些數(shù)學(xué)的玩意,確實(shí)煩人!不過,請你相信,數(shù)學(xué)在AI算法中,是最最重要的東西,雖然做為一個工程師,我們不需要像數(shù)學(xué)家那樣搞那么嚴(yán)謹(jǐn)?shù)姆治龊妥C明!但是只有理解一個東西,我們才能將其用的更好,不是么?
關(guān)注我們,獲取更多有關(guān) AI與大數(shù)據(jù)的信息,ASRay明日麗科技——科技助力企業(yè)發(fā)展,攜手共創(chuàng)更美明天!





暫無評論,快來評論吧!