機器學習之對數幾率回歸(Logistic Regression)
來自專欄 人工智慧之路
作者:朱濤
原文地址:https://github.com/towerjoo/myML/issues/2署名 保持完整性 CC什麼是對數幾率回歸(logistic regression)
logistic regression,在英語的術語里準確而簡潔,但是翻譯成中文則有多種譯法,例如:邏輯回歸(比較常見),對數幾率回歸(周志華),邏輯斯諦回歸(Understanding Machine Learning:From Theory to Algorithms中譯本)等等,個人比較喜歡周老師的翻譯,從名稱中可以看到背後的意義。(後文都採用此譯法)
對數幾率回歸是一種常用於分類(classification)的演算法,例如binary classification, multiclass classification等,和 #1 (線性回歸)處理連續分布比較而言,對數幾率回歸處理的是離散的結果分布。
也就是給定x和在參數theta下,y=1的概率。
如何進行對數幾率回歸?
對於binary classification,結果只有y=0|1兩種,可以使用階躍函數來描述其輸出:
h(x) = 1 p>0.5
h(x) = 0 p<0.5由於這個函數不連續,所以通常我們使用某個連續函數使得h(x)結果位於0,1之間,而我們通常選用的就是所謂的sigmoid函數,也叫logistic函數(這也就是為什麼叫logistic regression的原因)
上圖就是sigmoid函數的曲線,可以看到x->負無窮時,h(x)->0; x->正無窮時,h(x) -> 1
那麼回想 #1 (linear regression)中的函數,我們進行sigmoid變換即可得到logistic regression函數
此時,離散的問題化解為連續的線性回歸(注意classifcation的結果是離散的,而這裡經過sigmoid變換後的結果是連續的)
進行變換後可得到:
直觀的理解y(也就是h(x))如果作為正例的概率,那麼1-y就是反例的概率,兩者的比率 y / (1-y)就是正反例的比值,成為「幾率」(odds),反映了x作為正例的相對可能性,取對數則得到「對數幾率」(log odds, logit),而等式右邊是線性回歸模型的函數,所以logistic回歸就是在用線性回歸的預測結果去逼近真實標記的對數幾率。
根據概率我們可以將等式替換為
根據 p(y=1|x) + p(y=0|x) = 1有:
下來的就要用極大似然法(maximum likelihood estimation)來估計參數theta的值。
那麼arg max L(theta) 即可求出theta. (因為是凸函數,必定存在最優解),可以通過 #1 (linear regression)類似的梯度下降法求解。
MLE: maximum likelihood estimation這個方法在ML學習中是經常遇到的,它是假定一個數據集X1, X2, ..., Xn的分布依賴於參數theta,MLE就是對數據集找到theta的近似(estimator)的方法。直觀地,theta的值就是使得x1,x2...符合數據集分布的概率(可能性, likelihood)的最大估計,所謂的maximum likelihood estimation如何計算?L(theta) = P(X1=x1, X2=x2, ..., Xn=xn) = f(x1;theta)*f(x2;theta)...*f(xn;theta) 注意這裡Xi之間是獨立分布的,f是密度函數,L(theta)就是likelihood function於是我們就是要求出max L(theta)時,theta的值。https://onlinecourses.science.psu.edu/stat414/node/191 有很好的解釋和說明
對於multiclass classification可以通過One vs. All(或者叫One vs. Rest)演算法來轉換為binary classification按照上面的方法來處理,最終可以輸出一個一維數組(通常只有一個值為1,其它為0)
為什麼進行對數幾率回歸?
對數幾率回歸因為比較簡單常用於分類(classification),例如email spamming, 癌症檢測等學習問題上。通過sigmoid變換後給出的結果分布是連續的,因而可以得到相應的概率值,從而可以給出一個概率性的結果(more explainable),例如明天的降水概率,癌症的概率等。
最後
看Andrew Ng的lecture越多,越是喜歡他的風格,他能夠把問題講的特別清晰,在intuition/big picture方面非常出色,哪怕嚴謹性不夠。
Andrew Ng 2016年的lecture Nuts and Bolts of Applying Deep Learning非常出色,非常推薦大家看下,具體關於ML職業道路上他提到:
- learn ML
- learn DL
- phD student process( to get more insights)
- read papers
- replicate the results
- dirty work is needed(data gathering, clearing, debugging, diagnosing, etc.)
- work hard(in weekends)
參考文獻
- Understanding Machine Learning:From Theory to Algorithms 中譯本: 深入理解機器學習:從原理到演算法 (豆瓣)
- Logistic regression
- Advanced Data Analysis from an Elementary Point of View
- Maximum Likelihood Estimation
- 周志華 ML
- Andrew Ngs ML in Coursera
- https://www.youtube.com/watch?v=F1ka6a13S9I (Nuts and Bolts of Applying Deep Learning)
推薦閱讀:
※Generative Learning Algorithms VS discriminative Learning Algorithms
※假裝在專欄里發乾貨之邏輯回歸
※Google 使用機器學習來製作音樂
※什麼是超網路?
※2.7 蒙特卡洛近似
TAG:機器學習 | 人工智慧 | 深度學習DeepLearning |