1. 程式人生 > >邏輯迴歸、線性迴歸、最小二乘、極大似然、梯度下降

邏輯迴歸、線性迴歸、最小二乘、極大似然、梯度下降

轉自

http://www.zhihu.com/question/24900876

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

重要的事情說三遍!
對於一個數據集,首先你要根據資料的特點和目的來選擇合適模型。
就你問的而言,選定的模型是Logistic Regression。現在既然已經選擇了模型,那麼接下來的問題是:怎麼才能讓這個模型儘可能好的擬合或者分類資料呢?那麼就需要有目標,所以要定下模型的cost function,但是cost function怎麼定呢?憑直覺隨便選嗎!不!可!能!
我們都知道,Linear Regression的cost function是最小二乘,即
J(\theta)=\frac{1}{2}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2
但是Logistic Regression的cost function卻是J(\theta)=\sum_{i=1}^m[y^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))]

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

答案是各自的響應變數y服從不同的概率分佈。
在Linear Regression中,前提假設是y服從正態分佈,即y\sim N(\mu,\sigma^2),而Logistic中的y是服從二項分佈的,即y\sim Bernoulli(\phi)。(為什麼不服從正態?因為y非0即1啊!)
因而,在用極大似然估計計算時,所得到的cost function自然是不一樣的。(可自行推導)

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

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

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