一、邏輯回歸
在 機器學習之線性回歸 中,我們可使用梯度下降的方法得到一個映射函數(shù) 來去貼近樣本點,這個函數(shù)是對連續(xù)值的一個預測。
而邏輯回歸是解決分類問題的一個算法,我們可以通過這個算法得到一個映射函數(shù) ,其中 為特征向量,, 為預測的結果。在邏輯回歸這里,標簽 為一個離散值。
二、判定邊界
當將訓練集的樣本以其各個特征為坐標軸在圖中進行繪制時,通??梢哉业侥骋粋€ 判定邊界 去將樣本點進行分類。例如:
線性判定邊界:
非線性判定邊界:
在圖中,樣本的標記類型有兩種類型,一種為正樣本,另一種為負樣本,樣本的特征 和 為坐標軸。根據(jù)樣本的特征值,可將樣本繪制在圖上。
在圖中,可找到某個 判定邊界 來對不同標簽的樣本進行劃分。根據(jù)這個判定邊界,我們可以知道哪些樣本是正樣本,哪些樣本為負樣本。
因此我們可以通過學習得到一個方程 來表示 判定邊界,即 判定邊界 為 的點集。(可以看作是等高超平面)
其中 ,為保留 中的常數(shù)項,令特征向量 。
為使得我們的邊界可以非線性化,對于特征 可以為特征的高次冪或相互的乘積。
對于位于判定邊界上的樣本,其特征向量 可使得 。因此,判定邊界 是 滿足 的特征向量 表示的點的集合。
三、二分類和sigmoid函數(shù)
在上面,可以通過找到一個判定邊界來區(qū)別樣本的標簽,得到一個方程 來表示判定邊界。
對于 二分類問題,即樣本標簽的類型只有兩種類型。
當樣本標記的類型只有兩種時,其中一類的樣本點在 判定邊界的一邊,其會有,而另一類的樣本會在判定邊界的另一邊,會有 。
當樣本點離 判定邊界 越遠時, 的絕對值越大于0,這時樣本的標簽是某種類型的概率會很大,可能會等于1;當樣本點離 判定邊界 越近時,的接近0,樣本的標簽是某種類型的概率會在0.5左右。
因此,我們可以將 函數(shù) 轉換 為一種概率函數(shù),通過概率來判斷樣本的標簽是某一種類型的概率會是多少。而這種 轉換 可以使用 sigmoid函數(shù)來實現(xiàn) :
sigmoid函數(shù)圖像如下:
從sigmoid函數(shù)圖像可看出:當z為0左右時,函數(shù)值為0.5左右;z越大于0時,函數(shù)值越大于0.5越收斂于1;z越小于0時,函數(shù)值越小于0.5越收斂于0。
因此,sigmoid函數(shù)可適用于在二分類問題中將 函數(shù) 轉換為概率函數(shù)。
當時,樣本標記的類型為某一類型的概率會大于0.5;當時,樣本標記的類型為某一類型的概率會小于0.5;當 約等于 0時,樣本標記的類型為某一類型的概率會在0.5左右。
在二分類問題中,可以找到邏輯回歸函數(shù),判定邊界可看作 時的等高線。
四、損失函數(shù)
由上面,找到了二分類問題中的一個邏輯回歸函數(shù) 。
在邏輯回歸函數(shù)中,特征向量系數(shù) 是未知的,需要從樣本中學習得來的。當從樣本中學習得到一個特征向量系數(shù) 時,怎么知道它對應的 函數(shù)的預測能力會更好?判斷更準確?因此,需要一個損失函數(shù)來表示邏輯回歸函數(shù) 的好壞程度。
1. 定義
在二分類問題中,若用 的值 表示正樣本的概率,且 ,需要的損失函數(shù)應該是這樣的:
當樣本標簽的類型是正類型時,若該樣本對應的 值為1時,即為正類型的概率為1,這時候損失函數(shù)值應為0;若該樣本對應的 值為0.0001時,即為正樣本的概率為0.0001,這時候損失函數(shù)值應該是一個很大的值。
當樣本標記的類型是負類型時,若該樣本對應的 值為0時,即為正樣本的概率為0,這時損失函數(shù)值應為0;若該樣本對應的 值為0.9999時,即為正樣本的概率為0.9999,這時候損失函數(shù)值應該是一個很大的值。
因此二分類問題中,為滿足這種需求,對于單個樣本來說,其損失函數(shù)可以表示為:
( 的值表示正樣本的概率)
其中 y = 1 表示樣本為正樣本,y = 0 表示樣本為負樣本。
結合起來的寫法:
上式的代價函數(shù)也稱作:交叉熵代價函數(shù)
對于訓練集所有樣本來說,共同造成的損失函數(shù)的均值 可以表示為:
將 Cost函數(shù) 代入 中:
對于樣本來說,其標記y為1 (正樣本)或為 0(負樣本),對于預測概率函數(shù) 來說,預測到樣本為正樣本的概率值在0到1之間。
2. 極大似然估計
上述的損失函數(shù) 也可以通過極大似然估計來求得:以 的值 表示正樣本的概率,且以 y = 1 表示 正樣本 ,y = 0 表示 負樣本,則有:
合并上述兩個式子則有:
對m個樣本,求極大似然估計:
取對數(shù)似然估計:
對數(shù)似然取極值(極大值)時的 θ 取值便是我們想要的,因此需要對目標函數(shù) 進行最大化,即相當于 對 上述的 進行最小化:。
3. 正則化
同時,當預測概率函數(shù) 過擬合,會導致高次項的特征向量系數(shù) 過大(因為為 分清每個樣本點的類型時會使得它足夠的扭曲,這種扭曲通常由高次項的特征向量系數(shù)造成)。因此,為防止過擬合可以添加正則化項,即在損失函數(shù)的后面加個“尾巴”。
添加L2正則化項后的損失函數(shù)表示為:
五、最小化損失函數(shù)
在上面得到了 二分類問題 的邏輯回歸的損失函數(shù) 。為達到不錯的分類效果,需要對損失函數(shù)進行最小化。
與 線性回歸 相類似的是,這里的損失函數(shù)也是一個凸函數(shù),因此,可以通過梯度下降法來得到合適的特性系數(shù)向量Θ。
同樣,上式中的a為學習率(下山步長)。將上式的偏導展開,可得:
非正則化的損失函數(shù)的偏導:
含正則化項的損失函數(shù)的偏導:
其中 λ 為正則化的強度。
同線性回歸般,可以通過學習率a對特征系數(shù)向量中的元素不斷進行迭代,直到元素值收斂到某一值即可,這時可以得到損失函數(shù)較小時的特征向量系數(shù)Θ。
六、從二分類過渡到多分類
在上面,我們主要使用邏輯回歸解決二分類的問題,那對于多分類的問題,也可以用邏輯回歸來解決?
1. one vs rest
由于概率函數(shù) hΘ(X) 所表示的是樣本標記為某一類型的概率,但可以將一對一(二分類)擴展為一對多(one vs rest):
將類型class1看作正樣本,其他類型全部看作負樣本,然后我們就可以得到樣本標記類型為該類型的概率p1;
然后再將另外類型class2看作正樣本,其他類型全部看作負樣本,同理得到p2;
以此循環(huán),我們可以得到該待預測樣本的標記類型分別為類型class i時的概率pi,最后我們?nèi)i中最大的那個概率對應的樣本標記類型作為我們的待預測樣本類型。
2. softmax函數(shù)
使用softmax函數(shù)構造模型解決多分類問題。
softmax回歸分類器需要學習的函數(shù)為 :
其中 k 個 類別的個數(shù) , 和 為 第 i 個 類別對應的 權重向量 和 偏移標量。
其中 可看作樣本 X 的標簽 為 第 j 個 類別的概率,且有 。
與 logistic回歸 不同的是,softmax回歸分類模型會有多個的輸出,且輸出個數(shù) 與 類別個數(shù) 相等,輸出為樣本 X 為各個類別的概率 ,最后對樣本進行預測的類型為 概率最高 的那個類別。
我們需要通過學習得到 和 ,因此建立目標損失函數(shù)為:
上式的代價函數(shù)也稱作:對數(shù)似然代價函數(shù)。
在二分類的情況下,對數(shù)似然代價函數(shù) 可以轉化為 交叉熵代價函數(shù)。
其中 m 為訓練集樣本的個數(shù),k 為 類別的個數(shù), 為示性函數(shù),當 為真時,函數(shù)值為 1 ,否則為 0 ,即 樣本類別正確時,函數(shù)值才為 1 。
利用 對數(shù)的性質(zhì) ,將 損失函數(shù) 展開有:
繼續(xù)展開:
通過 梯度下降法 最小化損失函數(shù) 和 鏈式偏導,使用 對 求偏導:
化簡可得:
再次化簡可有:
因此由 梯度下降法 進行迭代:
同理 通過梯度下降法最小化損失函數(shù)也可以得到 的最優(yōu)值。
同邏輯回歸一樣,可以給損失函數(shù)加上正則化項。
3. 選擇的方案
當標簽類別之間是互斥時,適合選擇softmax回歸分類器 ;當標簽類別之間不完全互斥時,適合選擇建立多個獨立的logistic回歸分類器。
4. tensorflow代碼示例:
- 使用softmax回歸對sklearn中的digit手寫數(shù)據(jù)進行分類