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





暫無(wú)評(píng)論,快來(lái)評(píng)論吧!