機器學習之迴歸

最近複習了一下機器學習的知識,在這裏想總結一下,網上也有不少,大多都是不全或者是錯誤的。下面主要看我來簡單總結一下回歸分析的知識點。機器學習

一、內容概要函數

(1)線性迴歸學習

(2)邏輯迴歸(Logistic )spa

(3)最大似然估計數學

(4)梯度降低變量

二、線性迴歸擴展

(1)咱們之前初中學過線性函數y=a*x+b,都知道這是一個線性函數,而且它的圖像是一條直線。以下圖所示:(這其實在機器學習當中的單變量的狀況。)方法

 

(2)若咱們將上面一維的變量擴展到多維的變量上來,就會造成以下所示的公式:im

y=WT*X +b   在這裏W是列向量,X是列向量。展開來表示的是以下所示:總結

y=w0+w1*x1+w2*x2+w3*x3+...+wn*xn =∑WTX

書上是把上面的式子寫成:那咱們就按照書上的來好了。

咱們知道,在線性迴歸當中,須要解決的問題是:根據已有的樣本,構建一個線性模型,再利用該模型去預測未知的樣本。那麼咱們來分析一下:線性迴歸的主要問題就是如何構建這樣的一個線性模型。要想構建一個線性模型,是否是本質行就是隻要獲得一組θT便可?是的,沒錯。那麼如何獲得一組θT呢?

(3)利用似然函數能夠推導出最小二乘

那麼如今咱們假設有m個訓練樣本,咱們能夠姑且假設咱們的模型以下所示:

i表示的是從1到m個樣本,ε表示的與實際樣本之間的偏差。咱們知道偏差ε應該是服從均值爲0,方差爲σ2的高斯分佈。那麼咱們能夠將偏差寫成以下的高斯函數的形式:

將咱們的模型的代入到偏差的分佈函數中,獲得以下所示:

對上面的偏差分佈函數進行取對數,求得似然函數以下所示:

根據極大似然估計可知,要使咱們的似然函數最大,那就是要咱們以下式子最小。

再看看上面那個式子,不就是咱們的最小二乘嗎?是的。就是它。整個問題如今就轉化爲了如何求解下面的式子最小:

(4)求解最小二乘的方法

  1)能夠直接求解

  經過上面的方法直接能夠求得θ的值。

  2)梯度降低

    i)初始化θ(隨機初始化θ)

    ii)沿着負梯度的方向進行迭代,迭代公式以下:

      

    iii)梯度能夠經過以下公式獲得:

      

      注意:線性迴歸的梯度與邏輯迴歸的梯度恰好是相反數。

三、邏輯迴歸(Logistic)

實際上邏輯迴歸本質上也是現象迴歸,它主要與線性迴歸的主要區別是將現象模型的值代入到sigmod函數中。其餘的沒什麼區別。因此,咱們先來了解一下sigmod函數究竟是什麼東西:

(1)sigmod函數

  1)表達式:

    

  2)這是它的圖像:

從圖像上能夠看出,sigmod函數能夠對任意一個響應給出一個[0,1]之間的一個值。所以,邏輯迴歸僅僅是處理兩類問題,若須要處理多類問題就是咱們的softmax迴歸了,稍後會介紹。

(2)邏輯迴歸的模型

從這個式子咱們能夠看出,它僅僅是將線性模型的θTX代入到sigmod函數中獲得的。

  對sigmod函數求導咱們能夠獲得以下所示:

  

(3)邏輯迴歸的參數估計,根據最大似然估計可知,有以下的推導:

  

這裏面須要注意一點是:對於一個樣原本講咱們只須要保證機率P(y|x;θ)最大,假設m個樣本,則對應的聯合機率L(θ)=∏P(y|x;θ)。因此根據最大似然函數能夠獲得下面的公式:

(這裏面咱們能夠看到,最大似然函數與交叉熵函數幾乎是如出一轍,而最大似然函數這裏是是的每一個樣本都分對的機率最大。交叉熵做爲損失函數來講是指望損失最小。因此能夠最大似然函數的前面加上負號就能夠變成了交叉熵損失函數了。)

    注意:線性迴歸的梯度與邏輯迴歸的梯度恰好是相反數。

(4)參數的迭代 (邏輯迴歸是沿着似然函數的梯度的正方向進行迭代,若是以最大似然函數做爲目標函數的話,最後迭代方向是梯度上升方向迭代

  1)邏輯迴歸的參數學習規則以下所示:

    

  2)比較線性迴歸和邏輯迴歸參數的迭代規則:它們在公式的形式上是相同的。(左邊線性迴歸,右邊邏輯迴歸)

    
四、線性迴歸與邏輯迴歸之間的區別

(1)不一樣點

  i)線性迴歸是沿着似然函數的梯度負方向進行迭代,邏輯迴歸是沿着似然函數的梯度的正方向進行迭代

  ii)線性迴歸解決的是迴歸問題,邏輯迴歸解決的是分類問題

(2)相同點

  i)參數的迭代公式是同樣的

  ii)本質上都是線性迴歸

五、邏輯迴歸解決多類問題的模型——softmax迴歸模型

(1)softmax迴歸模型其實是對Logistic迴歸模型進行擴展獲得的,softmax的模型以下所示:

  

  其中K表示的K類問題,P(c=k|x;θ)表示的是對應參數θ,對於樣本x爲k類的機率。

  注意觀察softmax的公式模型,發現實際上它是將每一個類別的對應一個模型exp(θTkX),經過訓練出K個這樣的模型,經過計算每一個模型的可能性。最後將結果歸爲可能性最大的那個類別的模型。這就是softmax的本質思想。

(2)來看看softmax的似然函數和對數似然函數

  1)似然函數

    

  注意這裏使用長度爲K的向量y=(0,0...1,0..)表示樣本的類別,其中,用yk表示y的第k個類別,所以,似然函數是須要在指數上增長yk的。

  2)對數似然函數

    

(3)參數的迭代

  1)計算對數似然函數的梯度,該梯度是對θk的梯度,也就是說,有多少個類別,對應會有多少個梯度,即對應多少個θ更新公式。

    

  2)更新公式

    

 

問題思考:爲何線性迴歸參數的迭代是梯度的負方向,邏輯迴歸和softmax迴歸都是梯度的正方向?

答:其實這是因爲使用的參數估計是最大似然估計的緣由。在線性迴歸中,要使得對數似然函數最大就必須是須要最小二乘的那個式子最小,而那個式子就是一個凸函數,凸函數的最小值就是沿着梯度降低的方法去迭代;在邏輯迴歸和softmax迴歸中,要使得對數似然函數最大,那就是對對數似然函數求導後,獲得梯度上升的方向找最大值。

相關文章
相關標籤/搜索