深度學習筆記: 邏輯迴歸模型和二元分類

多元分類(classification)

在機器學習中,多元分類 是將示例歸類爲多個(大於兩個)類別中的一類(將示例歸爲兩類中的一類被稱爲二元分類)。

一些分類算法自然地允許使用超過兩類,另一些自然是二元分類算法;然而,它們可以通過多種策略轉化爲多元分類。

多元分類不應該和多標籤分類相混淆,多標籤分類要爲每個示例預測多個標籤,即一個示例可以同時被歸爲多個類別。

所以,要解決多元分類問題,只需將其簡化爲多個二元分類問題。

而顧名思義,二元分類就是給定一個對象 x\mathit{x},根據標籤給它劃分爲A類還是B類

邏輯迴歸(Logistic regression)

邏輯迴歸就是一種解決二分類問題的機器學習方法,說到邏輯迴歸,就不得不提到線性迴歸,邏輯迴歸(Logistic Regression)與線性迴歸(Linear Regression)都是一種廣義線性模型(generalized linear model)。

線性迴歸

線性迴歸(Linear regression)是利用稱爲線性迴歸方程的最小二乘函數對一個或多個自變量和因變量之間關係進行建模的一種迴歸分析。這種函數是一個或多個稱爲迴歸係數的模型參數的線性組合。只有一個自變量的情況稱爲簡單迴歸,大於一個自變量情況的叫做多元迴歸。
線性迴歸分析用於研究一個變量與另一個變量或多個變量之間的關係。

以雙變量爲例,變量X和變量Y之間可以有三種關係:正線性相關負線性相關不是線性相關(隨機)。

線性迴歸的表達式如下:
f(x)=wTx+bf(\bm{x}) = \bm{w}^T\bm{x} + b

線性迴歸對於給定的輸入x\bm{x} ,輸出的是一個數值 y ,因此它是一個解決迴歸問題的模型。也就是說,我們能通過線性迴歸,知道x和某個特徵的相關度。

但是對於二分類問題,我們需要的結果並不是數值,而是0 or 1這樣能夠給對象分類的布爾值,如何能解決這個問題呢?

一個常用的解決方法是設置一個閾值,大於這個閾值,則分爲A類,小於則分爲B類
採用這種方法的模型又叫做感知機(Perceptron)

而另一個方法就是不去直接預測標籤,而是去預測標籤爲A概率,我們知道概率是一個[0,1]區間的連續數值,那我們的輸出的數值就是標籤爲A的概率。一般的如果標籤爲A的概率大於0.5,我們就認爲它是A類,否則就是B類。這就是邏輯迴歸 (Logistics Regression)。

邏輯迴歸 (Logistics Regression)

我們知道,線性迴歸f(x)=wTx+bf(\bm{x}) = \bm{w}^T\bm{x} + b的值域是 (,)(-\infty,\infty),而我們所求概率的值域一定是限制在[0,1][0,1]之間,所以線性迴歸是不符合要求的,於是,我們可以引入這樣一個函數:Sigmoid函數,也被稱作邏輯函數(Logistic function)

Sigmoid函數的表達式和函數圖像

σ(x)=11+ex\sigma(x) =\frac{1}{1+e^{-x}}
在這裏插入圖片描述
由函數圖像即可看出,Sigmoid函數的值域在01之間,在遠離0的地方函數的值會很快接近0或者1。它的這個特性對於解決二分類問題十分重要。

實際上,我們把Sigmoid函數作爲對線性迴歸模型的處理函數來使用,也就是說我們把z=wTx+b\bm{z}= \bm{w}^T\bm{x} + b的輸出z值作爲Sigmoid函數的自變量。

所以,我們需要的邏輯迴歸模型的表達式如下:
y=σ(f(x))=σ(wTx)=11+ewTxy=\sigma(f(\bm{x})) = \sigma(\bm{w}^T\bm{x})=\frac{1}{1+e^{-\bm{w}^T\bm{x}}}

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

與之相對應的決策函數爲:
y^ = 1, if P(y=1|x)>0.5

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

邏輯迴歸的損失函數(Cost Function)

簡單來說,損失函數反映的是通過邏輯迴歸得到的結果與真實值的差異大小,一般來說,Cost越小,說明損失越小,損失函數越小說明模型和參數越符合訓練樣本。
對於損失函數的推導這裏不做贅述。
在這裏插入圖片描述
其中, p=11+ewTxp = \frac{1}{1+e^{-\bm{w}^T\bm{x}}}

這個函數 F(w)F(\bm{w}) 又叫做它的損失函數。損失函數可以理解成衡量我們當前的模型的輸出結果,跟實際的輸出結果之間的差距的一種函數。

梯度下降法

既然上文說過了,損失函數的值越小,說明我們的分類值和實際上的值的差距越小,所以我們就要想方設法把損失函數最小化,而梯度下降法就是這個作用。

梯度下降法(英語:Gradient descent是一個一階最優化算法,通常也稱爲最速下降法。 要使用梯度下降法找到一個函數的局部極小值,必須向函數上當前點對應梯度(或者是近似梯度)的反方向的規定步長距離點進行迭代搜索。如果相反地向梯度正方向迭代進行搜索,則會接近函數的局部極大值點;這個過程則被稱爲梯度上升法。

就好似下山,我們在每一個點都向下山最快的方向走,無疑能達到山的最底部。

具體操作,就是對b和w不斷迭代求偏導,找到能得到Cost函數最小值取值時的值由於邏輯迴歸時b的取值可爲0,此處不考慮。

wt+1=wtηdw\bm{w}_{t+1} = \bm{w}_t-\eta*dw

這裏的η\eta是另一個可以設置的參數,叫做學習率。迭代次數也是有人爲控制。

至此,邏輯迴歸的簡單介紹到此結束,有些數學推導未能列出來,請讀者自行查閱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章