邏輯回歸(Logistic Regression)(一)

邏輯回歸(Logistic Regression)(一)

邏輯回歸的定義

簡單來說, 邏輯回歸(Logistic Regression)是一種用於解決二分類(0 or 1)問題的機器學習方法,用於估計某種事物的可能性。比如某用戶購買某商品的可能性,某病人患有某種疾病的可能性,以及某廣告被用戶點擊的可能性等。 注意,這裡用的是「可能性」,而非數學上的「概率」,logisitc回歸的結果並非數學定義中的概率值,不可以直接當做概率值來用。該結果往往用於和其他特徵值加權求和,而非直接相乘。

那麼邏輯回歸與線性回歸是什麼關係呢?

邏輯回歸(Logistic Regression)與線性回歸(Linear Regression)都是一種廣義線性模型(generalized linear model)。邏輯回歸假設因變數 y 服從伯努利分布,而線性回歸假設因變數 y 服從高斯分布。 因此與線性回歸有很多相同之處,去除Sigmoid映射函數的話,邏輯回歸演算法就是一個線性回歸。可以說,邏輯回歸是以線性回歸為理論支持的,但是邏輯回歸通過Sigmoid函數引入了非線性因素,因此可以輕鬆處理0/1分類問題。

假設函數(Hypothesis function)

首先我們要先介紹一下Sigmoid函數,也稱為邏輯函數(Logistic function):

  • g(z)= frac{1}{1+e^{-z}}

其函數曲線如下:

從上圖可以看到sigmoid函數是一個s形的曲線,它的取值在[0, 1]之間,在遠離0的地方函數的值會很快接近0或者1。它的這個特性對於解決二分類問題十分重要

邏輯回歸的假設函數形式如下:

  • h_	heta(x) = g(	heta^T x), g(z)= frac{1}{1+e^{-z}}

所以:

  • h_	heta(x)= frac{1}{1+e^{-	heta^Tx}}

其中 x 是我們的輸入, 	heta 為我們要求取的參數。

一個機器學習的模型,實際上是把決策函數限定在某一組條件下,這組限定條件就決定了模型的假設空間。當然,我們還希望這組限定條件簡單而合理。而邏輯回歸模型所做的假設是:

  • P(y=1|x;	heta) =g(	heta^Tx)= frac{1}{1+e^{-	heta^Tx}}

這個函數的意思就是在給定 x	heta 的條件下 y=1 的概率。

這裡 g(h) 就是我們上面提到的sigmoid函數,與之相對應的決策函數為:

  • y^* = 1, if P(y=1|x)>0.5

選擇0.5作為閾值是一個一般的做法,實際應用時特定的情況可以選擇不同閾值,如果對正例的判別準確性要求高,可以選擇閾值大一些,對正例的召回要求高,則可以選擇閾值小一些。

決策邊界(Decision Boundary)

決策邊界,也稱為決策面,是用於在N維空間,將不同類別樣本分開的平面或曲面。

注意:決策邊界是假設函數的屬性,由參數決定,而不是由數據集的特徵決定。

這裡我們引用Andrew Ng 課程上的兩張圖來解釋這個問題:

  • 線性決策邊界

這裡決策邊界為: -3+x_1+x_2=0

  • 非線性決策邊界:

這裡決策邊界為: -1+x_1^2+x_2^2 = 0

上面兩張圖很清晰的解釋了什麼是決策邊界,決策邊界其實就是一個方程,在邏輯回歸中,決策邊界由 	heta^Tx=0 定義。

  • P(y=1|x;	heta) =g(	heta^Tx)= frac{1}{1+e^{-	heta^Tx}}

這裡我們要注意理解一下假設函數和決策邊界函數的區別與聯繫。決策邊界是假設函數的屬性,由假設函數的參數( 	heta )決定。

在邏輯回歸中,假設函數 h=g(z) 用於計算樣本屬於某類別的可能性;決策函數 y^* = 1, if P(y=1|x)>0.5 用於計算(給出)樣本的類別;決策邊界 	heta^Tx=0 是一個方程,用於標識出分類函數(模型)的分類邊界。

代價函數(Cost Function)

什麼是代價函數?

假設有訓練樣本 (x,y) ,模型為 h , 參數為 	hetah(	heta) = 	heta^Tx	heta^T 表示 	heta 的轉置)。

<1>. 概況來講,任何能夠衡量模型預測出來的值 h(	heta) 與真實值 y 之間的差異的函數都可以叫做代價函數 C(	heta) ,如果有多個樣本,則可以將所有代價函數的取值求均值,記做 J(	heta) 。因此很容易就可以得出以下關於代價函數的性質:

  • 選擇代價函數時,最好挑選對參數 	heta 可微的函數(全微分存在,偏導數一定存在)
  • 對於每種演算法來說,代價函數不是唯一的;
  • 代價函數是參數 	heta 的函數;
  • 總的代價函數 J(	heta) 可以用來評價模型的好壞,代價函數越小說明模型和參數越符合訓練樣本 (x,y)
  • J(	heta) 是一個標量;

<2>. 當我們確定了模型 h ,後面做的所有事情就是訓練模型的參數 	heta 。那麼什麼時候模型的訓練才能結束呢?這時候也涉及到代價函數,由於代價函數是用來衡量模型好壞的,我們的目標當然是得到最好的模型(也就是最符合訓練樣本的模型)。因此訓練參數的過程就是不斷改變 	heta ,從而得到更小的 J(	heta) 的過程。理想情況下,當我們取到代價函數J的最小值時,就得到了最優的參數 	heta ,記為:

  • displaystyle min_{ 	heta } J(	heta)

例如, J(	heta)=0 ,表示我們的模型完美的擬合了觀察的數據,沒有任何誤差。

<3>. 在優化參數θ的過程中,最常用的方法是梯度下降,這裡的梯度就是代價函數 J(	heta)	heta_1, 	heta_2, ..., 	heta_n 的偏導數。由於需要求偏導,我們可以得到另一個關於代價函數的性質:

  • 選擇代價函數時,最好挑選對參數 	heta 可微的函數(全微分存在,偏導數一定存在)

代價函數的常見形式

經過上面的描述,一個好的代價函數需要滿足兩個最基本的要求:能夠評價模型的準確性,對參數 	heta 可微。

<1>. 在線性回歸中,最常用的是均方誤差(Mean squared error),即

  • J(	heta_0, 	heta_1) = frac{ 1 }{ 2m } displaystyle sum_{ i = 1 }^{ m } (hat{ y }^{(i)} - y^{(i)})^2 = frac{ 1 }{ 2m } displaystyle sum_{ i = 1 }^{ m } (h_	heta(x^{(i)}) - y^{(i)})^2
  • m :訓練樣本的個數;
  • h_	heta(x) :用參數 	hetax 預測出來的y值;
  • y :原訓練樣本中的 y 值,也就是標準答案;
  • 上角標 (i) :第 i 個樣本。

<2>. 在邏輯回歸中,最常用的是代價函數是交叉熵(Cross Entropy),交叉熵是一個常見的代價函數,在神經網路中也會用到。下面是《神經網路與深度學習》一書對交叉熵的解釋:

交叉熵是對「出乎意料」(譯者註:原文使用suprise)的度量。神經元的目標是去計算函數x→y=y(x)。但是我們讓它取而代之計算函數x→a=a(x)。假設我們把a當作y等於1的概率,1?a是y等於0的概率。那麼,交叉熵衡量的是我們在知道y的真實值時的平均「出乎意料」程度。當輸出是我們期望的值,我們的「出乎意料」程度比較低;當輸出不是我們期望的,我們的「出乎意料」程度就比較高。

在1948年,克勞德·艾爾伍德·香農將熱力學的熵,引入到資訊理論,因此它又被稱為香農熵(Shannon Entropy),它是香農信息量(Shannon Information Content, SIC)的期望。香農信息量用來度量不確定性的大小:一個事件的香農信息量等於0,表示該事件的發生不會給我們提供任何新的信息,例如確定性的事件,發生的概率是1,發生了也不會引起任何驚訝;當不可能事件發生時,香農信息量為無窮大,這表示給我們提供了無窮多的新信息,並且使我們無限的驚訝。更多解釋可以看這裡

  • J(	heta) = -frac{ 1 }{ m }[sum_{ i=1 }^{ m } ({y^{(i)} log h_	heta(x^{(i)}) + (1-y^{(i)}) log (1-h_	heta(x^{(i)})})]
  • 符號說明同上

但是我們會疑問,為什麼這麼定義代價函數呢?下面我會簡單的解釋一下:

PS:由於文章里的公式太多,編輯的時候開始卡頓,這篇就先寫到這裡,接下來的內容見:

邏輯回歸(Logistic Regression)(二)

Reference:

[機器學習] Coursera ML筆記 - 邏輯回歸(Logistic Regression)

sigmoid函數詳解_mmmmmm_新浪博客

邏輯斯諦回歸之決策邊界 logistic regression -- decision boundary

【機器學習】代價函數(cost function)


推薦閱讀:

1.路線圖
深度學習玩轉農業補貼精細化管理
天池智能製造預測大賽-解決思路筆記
優化演算法—粒子群演算法(PSO)

TAG:深度學習DeepLearning | 機器學習 |