最小二乘、極大似然、梯度下降有何區別?

求回歸模型的係數的方法中,看到這三個演算法說的比較多,請問其區別是什麼?

另外,logistic回歸,其係數求解不是用極大似然嗎,怎麼看很多機器學習的書,用的是梯度下降呢?

——————————————————————————————————————————

「演算法」一次用錯,抱歉,請忽略,姑且把這三種都稱為「方法」,Andrew Ng在《機器學習》的第二課說到參數估計可以用最小二乘法、也可以用梯度下降法。

@王芊 補充的這些基礎,算是額外收穫,謝謝。但我真正想問的是,

為什麼在logistic回歸的參數估計時,用梯度下降方法,而不是最小二乘法?


這個問題有點外行。

最小二乘和極大似然是目標函數,梯度下降是優化演算法。

機器學習的核心是一個model,一個loss fuction,再加上一個優化的演算法。一個目標函數可以用不同的優化演算法,不同的目標函數也可以用相同的優化演算法。所以最小二乘和極大似然根本不是演算法,和梯度下降毫無可比性。

PS:

最小二乘和極大似然也不是對立的。

最小二乘是從函數形式上來看的,極大似然是從概率意義上來看的。事實上,最小二乘可以由高斯雜訊假設+極大似然估計推導出來。當然極大似然估計還可以推導出其他的loss function,比如logistic回歸中,loss function是交叉熵.

_____________________________________________________________

你的問題還是有點問題,梯度下降和最小二乘不是對立的,你的問題應該是logistic回歸的參數估計時,損失函數為什麼是交叉熵,而不是最小二乘(可能有些人把求解線性最小二乘問題的close form叫最小二乘法,但是這是建立在損失函數是線性最小二乘問題的情況下,所以還是要討論損失函數的問題)

交叉熵和最小二乘都是通過極大似然估計推斷出來的,區別在於logistic回歸predict的結果是在於分類的概率,而線性回歸predict的結果是output, 結果的物理意義不同,所以求似然概率時他們似然概率的形式也就不同,log一下,就會發現他們的損失函數不同。這些其實都是可以推導出來的。

如果的你問題還是為什麼logistic回歸的優化演算法為什麼用梯度下降而不用最小二乘法(姑且這麼叫吧),答案是最小二乘法只能解決線性最小二乘問題,而logistic回歸的損失函數不是線性最小二乘問題,這就好比你用十字交叉法解三次方程一樣。

PS:

我覺得最小二乘這幾個字課本上處理的不好,正常的,我們指的最小二乘其實是一大類問題,而不是方法,而課本上和Ng所講的最小二乘法,是一種求解方法,但只能求解線性最小二乘問題,所以搞得我弄不清題主的意思。

最小二乘法是一種演算法,最小二乘問題是一個loss function.


機器學習的基本框架大都是模型、目標和演算法!

機器學習的基本框架大都是模型、目標和演算法!

機器學習的基本框架大都是模型、目標和演算法!

重要的事情說三遍!

對於一個數據集,首先你要根據數據的特點和目的來選擇合適模型。

就你問的而言,選定的模型是Logistic Regression。現在既然已經選擇了模型,那麼接下來的問題是:怎麼才能讓這個模型儘可能好的擬合或者分類數據呢?那麼就需要有目標,所以要定下模型的cost function,但是cost function怎麼定呢?憑直覺隨便選嗎!不!可!能!

我們都知道,Linear Regression的cost function是最小二乘,即

J(	heta)=frac{1}{2}sum_{i=1}^m(h_	heta(x^{(i)})-y^{(i)})^2

但是Logistic Regression的cost function卻是J(	heta)=sum_{i=1}^m[y^{(i)}logh_	heta(x^{(i)})+(1-y^{(i)})log(1-h_	heta(x^{(i)}))]

為什麼Logistic Regression不使用最小二乘做cost function呢?

答案是各自的響應變數y服從不同的概率分布。

在Linear Regression中,前提假設是y服從正態分布,即ysim N(mu,sigma^2),而Logistic中的y是服從二項分布的,即ysim Bernoulli(phi)。(為什麼不服從正態?因為y非0即1啊!)

因而,在用極大似然估計計算時,所得到的cost function自然是不一樣的。(可自行推導)

然而,只有目標是沒用的,我們還要有方法來達到目標,這裡的方法就是上述的演算法——最優化演算法。包括常用的梯度下降法(最速下降法)、牛頓法、擬牛頓法等。這樣,一個機器學習演算法就算完整了,因為可以用這些最優化演算法來minJ(	heta)求出	heta

所以!結論是:三者完全沒有可比性!

由一些前提假設和極大似然估計從概率的角度推導出了cost function(Linear中是最小二乘,Logistic中是對數似然),而梯度下降只是一個最優化演算法,用來優化cost function的。


最大似然(MLE),最大後驗(MAP)都是構造目標函數的方法,

構造出這個目標函數後,我們可以用各種優化方法來找到它的極值,

這些優化方法中,有一類是使用函數的梯度信息,包括一階的方法,例如梯度下降,以及二階的方法,例如牛頓法等。當然,還有和梯度無關的方法,例如 fixed point iteration,坐標下降等等。

對於線性回歸問題,它的模型p(y|x) = N(w^Tx, sigma^2),我們採用最大似然來構造一個目標函數,最後用梯度下降來找到目標函數的最值。當然,對於這個問題,我們也可以不用梯度下降,直接用向量的投影來直接算出最優解的表達式。我猜這個表達式就是你所說的「最小二乘法」

為什麼 Logistic regression 不存在所謂的 「最小二乘法」 呢,它的模型p(y|x)=Ber(y|sigm(w^Tx)),Ber是伯努利分布,sigm是logistic sigmoid函數,我們採用最大似然來構造一個目標函數,與之前的問題不同,這個目標函數比較複雜,是無法像線性回歸那樣一步直接算出最終的解的,但是,這個目標函數是的,所以我們依然能用梯度下降或者牛頓法來來找到它的最優解。

如果我們給參數 w 加上一個高斯的先驗分布,並用最大後驗來構造目標函數,那麼,這就相當於給目標函數加上一個L2正則項,這時的線性回歸,也叫做嶺回歸(Ridge regression),這時的 logistic regression,叫做。。呃,L2 regularized logistic regression(= =),如果我們給參數 w 加上一個拉普拉斯的先驗分布,那麼我們可以讓 w 變得更加稀疏。

我們還可以接著往下走,利用後驗分布來進行模型平均(model averaging),得到更加完整的貝葉斯方法,不過我覺得這樣已經夠了。


推導關係:極大似然→最小二乘→梯度下降

題主有沒有想過,為什麼用最小二乘(求殘差平方和最小值)來擬合函數?殘差可以理解,那為什麼是平方和,而不是絕對值或者四次方和?對此,極大似然可以完美解釋。

為大量獨立樣本線性擬合,根據中心極限定理可知,其殘差呈高斯分布。也就是說,X確定時,y的可能性呈高斯分布。這時,對於給定的參數θ,我們可以求出P(y|X;θ),表示使用這組θ的情況下,給定一組X,得出這組y的可能性。而關於θ的似然函數可以寫為L(θ)=P(y|X;θ),表示已知(X,y)的情況下,θ值出現的可能性。明顯的,當L(θ)最大時,θ為最佳擬合參數。求L(θ)最大值時,我們會在結果中發現殘差平方和的式子,並且殘差平方和最小L(θ)最大。

梯度下降法,是先給定一組係數θ,根據最小二乘法構造一個損失函數J(θ)。然後不斷迭代以找出新的θ來使J(θ)更小。最終確定最合適的θ。

歡迎討論


第二個問題:最大似然只是一種目標函數,除了最大似然之外你還可以構建其他的目標函數。 而梯度下降是在目標函數構建完成後求出其中的參數的一種優化方法,兩者完全不是一類的東西。

參考」:機器學習演算法與Python實踐之(七)邏輯回歸(Logistic Regression)

Stanford機器學習---第三講. 邏輯回歸和過擬合問題的解決 logistic Regression Regularization


logistic回歸的作用是分類,而最小二乘更適用於連續值的誤差分析。

舉個例子:

輸入x,真實分類是0,而模型分類成了1和2都是一樣的錯,並不因為1-0&>2-0而錯得更嚴重 ;

輸入x,真實值是0,而輸出的預測值變成1和2是不一樣的,因為預測成2的誤差更大。

所以分類模型的loss函數不可能用最小二乘,一般是用最大似然來衡量合理性。

而牛頓方法只是用來求函數極值的而已...


極大似然和最小二乘可以用來構造目標函數。梯度下降是優化演算法,就是在確定目標函數後用梯度下降法求解最優解。

就像logistic回歸可以用極大似然構造目標函數求解使目標函數最優的解;也可以變換一下變成求g=wx,以離差平方和最小為目標求解最優的w。而具體求最優解的方法,比如梯度下降法、牛頓法、黃金分割法等優化演算法。

比如同樣是採用極大似然來構造目標函數,周志華的「機器學習」里求解最優解用了牛頓法,而「機器學習實戰」里則用了梯度上升法(和梯度下降本質一樣)。

至於說為什麼不用最小二乘,一個是我以前貌似看見過是說誤差可能比較大,其他的解釋題主可以看一下http://www.zhihu.com/question/23817253


一個是如何列出方程(最小二乘、極大似然),一個是如何解方程(梯度下降),其實是求最小值。。。。


梯度下降又稱最速下降法,目標函數一階泰勒展開近似得到的,最小二乘法我覺得在線性條件下可以看作牛頓法,利用了二階導數信息,按理說收斂速度應該更快一些。我覺得一個原因在於二階導數實在不好求,即使後續發展了擬牛頓、BFGS這些近似方法,也肯定不如梯度下降法簡單有效。另外,注意邏輯回歸里loss function大多採用交叉熵形式,而非均方誤差的形式,最小二乘未必通用。這裡有解釋為什麼常採用交叉熵形式的損失函數Neural networks and deep learning,主要結論是交叉熵的收斂速度恰好為預測值與實際值的誤差,這樣也就意味著誤差越大收斂越快,因此其初始點的選取對結果影響不是特別大,而均方誤差形式的初始點選取對誤差曲線影響很大,可以參考一下~


推薦閱讀:

人工智慧(AI)是如何處理數據的?
如何通俗理解beta分布?
從[0,1]區間內任取一點,取到任意一點的概率都是0嗎?
從所有有理數中隨機抽取一個,抽中是整數的概率是多少?為什麼呢?
如何用簡單的例子解釋什麼是 Generalized Method of Moments (GMM)?

TAG:數學 | 統計學 | 最優化 | 梯度下降 |