
牛頓法解機器學(xué)習(xí)中的Logistic回歸
這仍然是近期系列文章中的一篇。在這一個系列中,我打算把機器學(xué)習(xí)中的Logistic回歸從原理到應(yīng)用詳細(xì)串起來。最初我們介紹了在Python中利用Scikit-Learn來建立Logistic回歸分類器的方法
Python機器學(xué)習(xí)之Logistic回歸
此后,我們對上述文章進行了更深一層的探討,介紹了利用Logistic回歸在自然語言處理中的應(yīng)用(對微博進行Sentiment Analysis)
自然語言處理實戰(zhàn)之微博情感偏向分析
從應(yīng)用角度介紹了Logistic回歸之后,我們又從源頭介紹了Logistic回歸的數(shù)學(xué)原理
機器學(xué)習(xí)之詳解Logistic回歸
在這篇文章的最后,我們得到了一個似然函數(shù)為
然后我們的目標(biāo)是求出使這一似然函數(shù)值最大的參數(shù)估計,于是對函數(shù)取對數(shù),再求一階偏導(dǎo)數(shù)得到
從這個偏導(dǎo)數(shù)出發(fā),在實際中有很多方法可以解決前面的似然函數(shù)最大化參數(shù)估計問題,而我們這里要介紹的就是其中非常重要的一種,即牛頓法和擬牛頓法。
牛頓迭代法解方程的簡單回顧
現(xiàn)代計算中涉及大量的工程計算問題,這些計算問題往往很少采用我們通常在求解計算題甚至是考試時所采用的方法,因為計算機最擅長的無非就是“重復(fù)執(zhí)行大量的簡單任務(wù)”,所以數(shù)值計算方面的迭代法在計算機時代便有了很大的作用。例如我們之前介紹過的利用“Jacobi迭代法與Gauss-Seidel迭代法”求解方程組的方法。另外一個例子則是利用牛頓迭代法近似求解方程的方法。牛頓迭代又稱為牛頓-拉夫遜(拉弗森)方法(Newton-Raphson method)。如果讀者對這部分內(nèi)容感興趣,可以詳細(xì)參閱
牛頓迭代法與一道經(jīng)典編程問題
我們在此做簡要回顧。有時候某些方程的求根公式可能很復(fù)雜(甚至有些方程可能沒有求根公式),導(dǎo)致求解困難。這時便可利用牛頓法進行迭代求解。
假設(shè)我們要求解方程f(x)=0的根,首先隨便找一個初始值x0,如果x0不是解,做一個經(jīng)過(x0,f(x0)) 這個點的切線,與x軸的交點為x1。同樣的道理,如果x1不是解,做一個經(jīng)過(x1,f(x1))這個點的切線,與x軸的交點為x2。 以此類推。以這樣的方式得到的xi會無限趨近于 f(x)=0 的解。
判斷xi是否是f(x)=0的解有兩種方法:一是直接計算f(xi)的值判斷是否為0,二是判斷前后兩個解xi和xi?1是否無限接近。經(jīng)過(xi,f(xi))這個點的切線方程為(注意這也是一元函數(shù)的一階泰勒展式)
其中,f′(x)為f(x)的導(dǎo)數(shù)。令切線方程等于 0,即可求出
于是乎我們就得到了一個迭代公式,而且它必然在 f(x?)=0處收斂,其中x?就是方程的根,由此便可對方程進行迭代求根。
牛頓法在最優(yōu)化問題中的應(yīng)用
假設(shè)當(dāng)前任務(wù)是優(yōu)化一個目標(biāo)函數(shù) f,也就是求該函數(shù)的極大值或極小值問題,可以轉(zhuǎn)化為求解函數(shù) f 的導(dǎo)數(shù) f′=0 的問題,這樣求可以把優(yōu)化問題看成方程 f′=0 求解問題。剩下的問題就和前面提到的牛頓迭代法求解很相似了。
這次為了求解方程 f′=0 的根,把原函數(shù) f(x) 的做泰勒展開,展開到二階形式(注意之前是一階):
當(dāng)且僅當(dāng) Δx 無線趨近于0時,(可以舍得后面的無窮小項)使得等式成立。此時上式等價與:
注意因為Δx 無線趨近于0,前面的的常數(shù) 1/2 將不再起作用,可以將其一并忽略,即
求解
得出迭代公式
在之前的文章中我們也提到最優(yōu)化問題除了用牛頓法來解之外,還可以用梯度下降法來解。但是通常來說,牛頓法可以利用到曲線本身的信息,比梯度下降法更容易收斂,即迭代更少次數(shù)。
再次聯(lián)系到我們之前給出的一篇文章“Hessian矩陣與多元函數(shù)極值”,對于一個多維向量 X, 以及在點 X0 的鄰域內(nèi)有連續(xù)二階偏導(dǎo)數(shù)的多元函數(shù) f(X) ,可以寫出該函數(shù)在點 X0 處的(二階)泰勒展開式
其中,o(∥X?X0∥2) 是高階無窮小表示的皮亞諾余項。而 Hf(X0) 是一個Hessian矩陣。依據(jù)之前的思路,忽略掉無窮小項,寫出迭代公式即為
由此,高維情況依然可以用牛頓迭代求解,但是問題是Hessian矩陣引入的復(fù)雜性,使得牛頓迭代求解的難度大大增加。所以人們又提出了所謂的擬牛頓法(Quasi-Newton method),不再直接計算Hessian矩陣,而是每一步的時候使用梯度向量更新Hessian矩陣的近似。這一點我們后續(xù)還會再討論。
牛頓迭代法求解Logistic回歸
現(xiàn)在回歸到最開始的那個問題上。我們已經(jīng)求出了Logistic回歸的似然函數(shù)的一階偏導(dǎo)數(shù)
由于lnL(w)是一個多元函數(shù),變量是 w=w0,w1,?,wn ,所以根據(jù)多元函數(shù)求極值問題的規(guī)則,易知極值點處的導(dǎo)數(shù)一定均為零,所以一共需要列出n+1個方程,聯(lián)立解出所有的參數(shù)。下面列出方程組如下
當(dāng)然,在具體解方程組之前需要用Hessian矩陣來判斷極值的存在性。求Hessian矩陣就得先求二階偏導(dǎo),即
顯然可以用Hessian矩陣來表示以上多元函數(shù)的二階偏導(dǎo)數(shù),于是有
所以得到Hessian矩陣H=XTAX,可以看出矩陣A是負(fù)定的。線性代數(shù)的知識告訴我們,如果A是負(fù)定的,那么Hessian矩陣H也是負(fù)定的。也就是說多元函數(shù)存在局部極大值,這剛好符合我們的要求的最大似然估計相吻合。于是我們確信可以用牛頓迭代法來繼續(xù)求解最優(yōu)化問題。
對于多元函數(shù)求解零點,同樣可以用牛頓迭代法,對于當(dāng)前討論的Logistic回歸,可以得到如下迭代式
其中H是Hessian矩陣,U的表達式如下
由于Hessian矩陣H是對稱負(fù)定的,將矩陣A提取一個負(fù)號出來,得到
然后Hessian矩陣H變?yōu)镠′=XTA′X,這樣H′就是對稱正定的了。那么現(xiàn)在牛頓迭代公式變?yōu)?nbsp;
現(xiàn)在我們需要考慮如何快速地算得(H′)?1U,即解方程組(H′)?1X=U,通常的做法是直接用高斯消元法求解,但是這種方法的效率一遍比較低。而當(dāng)前我們可以利用的一個有利條件是H′是對稱正定的,所以可以用Cholesky矩陣分解法來解。Cholesky分解原理可以參考線性代數(shù)方面的書籍,此處不再贅述。
到這里,牛頓迭代法求解Logistic回歸的原理已經(jīng)介紹完了,但正如前面所提過的,在這個過程中因為要對Hessian矩陣求逆,計算量還是很大。而在后續(xù)的文章里我們會再來詳細(xì)探討擬牛頓法原理及應(yīng)用,它是針對牛頓法的弱點進行了改進,更具實踐應(yīng)用價值。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03