1. 程式人生 > >邏輯迴歸和神經網路之間有什麼關係?

邏輯迴歸和神經網路之間有什麼關係?

本文討論的關鍵詞:Logistic Regression(邏輯迴歸)、Neural Networks(神經網路)

之前在學習LR和NN的時候,一直對它們獨立學習思考,就簡單當做是機器學習中的兩個不同的models,從來沒有放在一起觀察過,最近通過閱讀網路資料,才發現,原來LR和NN之間是有一定的聯絡的,瞭解它們之間的聯絡後,可以更好地理解

Logistic Regression(邏輯迴歸)和Neural Networks(神經網路)

  • Logistic Regression:典型的二值分類器,用來處理兩類分類問題,當然,也可以用來處理多類問題,但要轉換為One-vs-All或者是One-vs-One問題;Andrew Ng的機器學習課程中有對此的詳細介紹 
    • 專門用來進行多類分類問題的多維邏輯迴歸器為: 
      Softmax regression
       / multinomial Logistic Regression;
    • 雖然邏輯迴歸器有許多的kernelized variants,但standard model(即最原始的LR)是一個線性分類器,主要用來處理資料集為more or less線性可分的情況;
  • Neural Networks:神經網路,由多個神經元構造,可以有多個輸入、多個輸出

Logistic Regression(邏輯迴歸)和Neural Networks(神經網路)之間到底有什麼關係呢?

Logistic Regression

Basically, we can think of logistic regression as a one layer neural network.

實際上,可以將Logistic Regression看做是僅含有一個神經元的單層的神經網路!

  • 下面以圖例的方式給出了Logistic Regression的結構,該圖清晰地展示了Logistic Regression的結構 
    這裡寫圖片描述 
    圖中的Activation function為sigmoid function(也稱為logistic activation functions),該啟用函式的示意圖如下: 
    這裡寫圖片描述
  • 從該圖中可以看到,LR結構圖的前半部分(不包含step function的部分,如下圖紅框所示)其實就是一個簡單的神經元模型(關於神經網路的介紹見下文) 
    這裡寫圖片描述
  • 上圖中綠色框中的部分為LR的threshold function(這裡使用了step function),用來對前面啟用函式的輸出進行相應的閾值處理,從而實現兩類分類問題(例如,threshold function函式輸出為0時,對應類1,threshold function函式輸出為1時,對應類2)

Softmax regression

Softmax regression其實是多維的Logistic regression,它其實可以看做是單層多個神經元的神經網路!

下圖給出了softmax regression的基本結構,可以看到,其實,softmax regression可以看做是含有k個神經元的一層神經網路, 
這裡寫圖片描述

這裡應該注意到:

  • 如果僅僅是要進行類別的預測,那麼,只需要計算到sigma即可,不需要再求後面的softmax函式(上圖所示的函式,注意,它與logistic regression中用到的sigmoid函式是不同的)
  • 使用softmax函式,只是為了使輸出具有概率意義,並且,有利於利用訓練集去學習網路的權值;也可以這樣理解,其實,softmax function只是在train的時候比較有用,利用它學習完網路引數後,在做predict的時候,其實就不需要它了(因為它是增函式) 
    這裡寫圖片描述
    這裡寫圖片描述

神經網路的啟用函式

神經元對應的啟用函式 
在神經網路中,神經元的啟用函式多用sigmoid function,上面提到的logistic regression也用到了該函式,但實際上,另外一個啟用函式:tanh函式的效果要比sigmoid函式好些,因為tanh函式並不會將神經元的輸出侷限於大於0,tanh的函式輸出值區間為[-1,1] 
tanh = the hyperbolic tangent

這裡寫圖片描述

仍考慮具有sigmoid fucntion的神經元:logistic regression的一個優點是logistic cost fucntion (or max-entropy) 是一個凸函式,可以求得全域性最小值。

關於神經網路的代價函式

但是,對於神經網路而言,由於它將多個sigmoid function連線在一起了,這種凸函式的性質將不存在了。對於僅含有一個權值的多層神經網路(認為其他權值都為已知),它的cost function也具有非常崎嶇的性質,如下圖所示,可以看到,該cost function具有多個區域性最小值 
這裡寫圖片描述

實際應用中,對於僅含有一個或者兩個隱藏層的神經網路而言,它的cost function雖然是非凸的,但是利用誤差反向傳播演算法,可以得到還不錯的效果,雖然可能得到的是個區域性極小值(a local minima),但分類效果還是不錯的。