(一)有監督學習及優化

本博客及後續博客翻譯和記錄學習“Unsupervised Feature Learning and Deep Learning Tutorial”的收穫及體會!

1 線性迴歸

1.1 問題形式化

作爲新手,就從如何實現線性迴歸開始吧!我們需要熟練掌握目標函數、目標梯度和目標優化。這些基本的概念、方法和工具將是接下來學習更加複雜的算法的基礎。切記打牢地基莫忽視!
線性迴歸的目標是根據一個輸入向量xRn 預測一個目標值y 。例如:預測一個房子的價格,y 表示房價,特徵x 中的元素xj 表示房子的屬性(大小、房間數目)。假設給定很多個房子,第i 個房子的特徵爲x(i) ,其對應價格爲y(i) 。我們的目標是尋找一個函數y=h(x) ,使得對每個訓練樣本y(i)h(x(i)) 。如果我們在足夠多的樣本上成功找到了這樣一個函數h(x) ,那麼我們希望h(x) 能夠很好預測一個房子的價格,即便該房子是一個新房子且價格未知。
爲了找到這樣一個函數h(x) 使得y(i)h(x(i)) ,我們需要先確定如何表示函數h(x) 。讓我們先從做簡單的線性函數開始hθ(x)=jθjxj=θTx 。這裏,hθ(x) 表示一個函數家族,選擇不同參數θ 得到不同的函數。有了h(x) 的表示,我們任務變爲尋找一個參數θ ,使得hθ(x(i)) 儘可能逼近y(i) 。特別的,我們希望尋找一個θ ,最小化下式

J(θ)=12i(hθ(x(i))y(i))2=12i(θTx(i)y(i))2

該函數稱爲“代價函數”,用於度量一個特徵選擇的θ 在預測y(i) 時的誤差。通常,也稱爲“損失函數”、“懲罰函數”或“目標函數”。

1.2 函數最小化

現在的目標是選擇θ 使J(θ) 最小。有很多方法可以最小化該目標。現在,我們來回顧一下函數最小化最常用算法的一些事實。我們需要完成有關J(θ) 的兩個事實:計算J(θ)θJ(θ) 。然後,優化的剩下部分就可以交給優化算法去尋找最好的θ 。(梯度θJ(θ) 是一個向量,指向J(θ) 下降最快的方向,這樣只要小小地改變θ 就可以降低或增加J(θ)
給定一組訓練集{x(i),y(i)}J(θ) 的梯度可表示如下:

θJ(θ)=J(θ)θ1...J(θ)θj...J(θ)θn,    J(θ)θj=ix(i)j(hθ(x(i))y(i))

2 邏輯斯特迴歸

上節學習瞭如何預測連續變量(房價)。實際中,我們也需要區預測離散變量(分類問題)。邏輯斯特迴歸就是一個簡單的用於分類決策的算法。
線性迴歸中,我們嘗試使用線性函數y=hθ(x)=θTx 去預測第i 個樣本x(i)y(i) 的值。很明顯這不適合預測二值標籤(y(i){0,1} )。在邏輯斯特迴歸中,我們使用一個不同的函數來預測一個給定的樣本是屬於類“1”,還是屬於類“0”。該函數的形式如下:

P(y=1|x)=hθ(x)=11+exp(θTx)σ(θTx)

P(y=0|x)=1P(y=1|x)=1hθ(x)

函數σ(z)1/(1+exp(z)) 通常稱爲“sigmoid”或“logistic”函數。他是一個S型函數,將z 的值映射到[0,1] 範圍,故我們可以理解hθ(x) 爲一個概率。我們的目的是尋找θ 的一個值使得當x 屬於類“1”時概率P(y=1|x)=hθ(x) 是大的,而當x 屬於類“0”時概率是小的(此時概率P(y=0|x) 是大的)。給定一組二值標籤樣本{(x(i),y(i)):i=1,...,m} ,下面的代價函數可度量一個給定的hθ 是否是好的:

J(θ)=i(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

##############################################################
上式代價函數是根據最大似然得到的:

L=i(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

J(θ) 對應於負的對數似然如下:

J(θ)=logL=logi(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)      =i(log(hθ(x(i)))y(i)+log(1hθ(x(i)))1y(i))      =i(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

##############################################################
對於一個訓練樣本而言,上式中的兩項只有一項不爲零(這取決於標籤y(i) 是0或1)。當y(i)=1 ,最小化代價意味着我們需要使hθ(x(i)) 變大,當y(i)=0 ,我們希望使1hθ(x(i)) 變大。
現在我們有了一個代價函數來度量一個給定的假設hθ 是否是對訓練樣本好的。我們通過最小化J(θ) 來找到最佳的θ 。一旦我們完成,我們就可以分類一個新的樣本是屬於“1”還是屬於“0”(通過檢查兩類的概率,若P(y=1|x)>P(y=0|x) ,則判爲“1”,否則判爲“0”,等同於判斷hθ(x)>0.5 )。
爲了最小化J(θ) ,我們使用和線性迴歸一樣的工具。我們需要提供計算J(θ)θJ(θ) 的函數,J(θ) 關於θj 的偏導數如下:

J(θ)θj=ix(i)j(hθ(x(i))y(i))

向量形式的整體梯度如下:

θJ(θ)=ix(i)(hθ(x(i))y(i))

該式本質上與線性迴歸的梯度一樣,只不過此時的hθ(x)=σ(θTx).

3 Softmax迴歸

3.1 引言

Softmax迴歸,也稱多項式邏輯斯特迴歸,是邏輯斯特迴歸的廣義版本,用於處理多類分類問題。在邏輯斯特迴歸中,我們假設標籤是二值的,即y(i){0,1} 。我們使用該分類器來區分兩類手寫字符。Softmax迴歸允許我們處理y(i){1,...,K} 問題,其中K 爲類別個數。
回顧邏輯斯特迴歸,我們有一組共m 個帶標籤訓練樣本{(x(i),y(i)):i=1,...,m} ,其中輸入特徵x(i)Rn ,標籤y(i){0,1} 。假設

hθ(x)=11+exp(θTx)

模型參數θ 通過最小化如下代價函數求得:

J(θ)=i(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

在Softmax迴歸中,我們關注多類分類,故標籤y 取自K 個不同的值。給定帶標籤訓練樣本{(x(i),y(i)):i=1,...,m} ,此時y(i){1,...,K} 。如MNIST數據集,K=10 表示不同類。
給定一個測試輸入x ,我們希望假設可以估計概率P(y=k|x)k=1,...,K 。即估計在K 個不同類別上估計類別的概率。故我們的假設應該輸出一個K 維的向量,表徵K 個估計的概率。具體地,假設

hθ(x)=P(y=1|x;θ)P(y=2|x;θ)...P(y=K|x;θ)=1Kj=1exp(θ(j)Tx)exp(θ(1)Tx)exp(θ(2)Tx)...exp(θ(K)Tx)

其中,θ(1),θ(2),...,θ(K)Rn 是模型參數,1/Kj=1exp(θ(j)Tx) 用於標準化分佈,即求和爲一。
爲了方便,用θ 表示模型參數,以列的方式將θ(1),θ(2),...,θ(K) 連接起來。

θ=|θ(1)||θ(2)||...||θ(k)|

3.2 代價函數

首先,引入指示函數1{}1{true}=1 ,否則1{false}=0 。例如1{2+2=4}=11{1+1=5}=0 。Softmax迴歸代價函數

J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]

其中,

P(y(i)=k|x(i);θ)=exp(θ(k)Tx(i))Kj=1exp(θ(j)Tx(i)).

我們無法解析求解J(θ) ,故採用迭代優化算法,計算梯度如下:

θ(k)J(θ)=[i=1mx(i)(1{y(i)=k}P(y(i)=k|x(i);θ))].

##############################################################
代價函數J(θ) 是根據最大似然得到的:

L=i=1m(k=1cP(y(i)=k|x(i);θ)1{y(i)=k})

J(θ) 對應於負的對數似然如下:
J(θ)=logL=i=1m(k=1c1{y(i)=k}logP(y(i)=k|x(i);θ))


hθ(x)=1Kj=1exp(θ(j)Tx)exp(θ(1)Tx)exp(θ(2)Tx)...exp(θ(K)Tx)

,令hθ(x)(k)=exp(θ(k)Tx)Kj=1exp(θ(j)Tx) ,則

θ(k)hθ(x)(k)=θ(k)exp(θ(k)Tx)Kj=1exp(θ(j)Tx)=exp(θ(k)Tx)θ(k)1Kj=1exp(θ(j)Tx)exp(θ(k)Tx)(Kj=1exp(θ(j)Tx))2Kj=1exp(θ(j)Tx)θ(k)=1{k=k}exp(θ(k)Tx)xKj=1exp(θ(j)Tx)exp(θ(k)Tx)exp(θ(k)Tx)x(Kj=1exp(θ(j)Tx))2=exp(θ(k)Tx)xKj=1exp(θ(j)Tx)1{k=k}exp(θ(k)Tx)Kj=1exp(θ(j)Tx)=hθ(x)(k)x(1{k=k}hθ(x)(k))

θ(k)J(θ)=θ(k)i=1mk=1c1{y(i)=k}loghθ(x(i))(k)           =i=1mk=1c1{y(i)=k}1hθ(x(i))(k)θ(k)hθ(x(i))(k)           =i=1mk=1c1{y(i)=k}1hθ(x(i))(k)hθ(x(i))(k)x(i)(1{k=k}hθ(x(i))(k))           =i=1mk=1c1{y(i)=k}x(i)(1{k=k}hθ(x(i))(k))           =i=1mx(i)(1{y(i)=k}hθ(x(i))(k))

##############################################################

3.3 Softmax參數化屬性

Softmax迴歸有一個不尋常的屬性,其參數集是冗餘的。假設參數θ(1),θ(2),...,θ(K) 共同減去一個固定向量ψ ,則類標籤概率

P(y(i)=k|x(i);θ)=exp((θ(k)ψ)Tx(i))Kj=1exp((θ(j)ψ)Tx(i))                    =exp(θ(k)Tx(i))exp(ψTx(i))Kj=1exp(θ(j)Tx(i))exp(ψTx(i))                    =exp(θ(k)Tx(i))Kj=1exp(θ(j)Tx(i))

換言之,參數減去常向量ψ 並不改變預測的概率。故可以說參數存在冗餘。由於J(θ) 可以由θ(1),θ(2),...,θ(K) 達到最小,也可以由θ(1)ψ,θ(2)ψ,...,θ(K)ψ 達到最小。但兩個目標值是不同的。故,可以令ψ=θ(K) ,將原始的θ(K) 替換爲θ(K)ψ=0⃗  向量。故可以消除最後一個參數向量而不影響表示能力。

3.4 與邏輯斯特迴歸的關係

K=2 時,Softmax迴歸變爲邏輯斯特迴歸,Softmax迴歸假設的輸出爲

hθ(x)=1exp(θ(1)Tx)+exp(θ(2)Tx)[exp(θ(1)Tx)exp(θ(2)Tx)]

ψ=θ(2) 可得

hθ(x)=1exp((θ(1)θ(2))Tx)+exp(0⃗ Tx)exp((θ(1)θ(2))Tx)exp(0⃗ Tx)      =1exp((θ(1)θ(2))Tx)+1[exp((θ(1)θ(2))Tx)1]

θ=θ(2)θ(1) ,則
hθ(x)=exp(θTx)exp(θTx)+11exp(θTx)+1

該式與邏輯斯特迴歸一致。

發佈了35 篇原創文章 · 獲贊 36 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章