邏輯回歸 損失函式與梯度下降

2021-08-07 18:59:37 字數 4766 閱讀 7306

由於二分類結果是1或者0,這與數學的階躍函式很類似,但是階躍函式在x=0的位置會發生突變,這個突變在數學上很難處理。所以一般使用sigmoid函式來擬合:g(

z)=1

1+e−

z(1)

具體應用到邏輯回歸演算法中:z=

ω0+ω

1x1+

ω2x2

+...

...+

ωnxn

=∑i=

0nωi

xi=ω

tx(2) 其中x

i 表示樣本屬性(對於我們而言,就是標籤ip)的值, ωi

表示這個屬性對應的係數(也就是演算法需要計算的內容)。注意這裡將x0

與ω0 也代入了上述公式,其中前者恒為1。於是問題就變成了在訓練樣本中,已知屬性x與最終分類結果y(1或者0)時,如何求得這些係數 ωi

,使得損失最小。

在機器學習理論中,損失函式(loss function)是用來衡量模型的**值f(

x)與真實值

y 的不一致程度,它是乙個非負實值函式,損失函式越小,模型越優(還需考慮過擬合等問題)。損失函式是經驗風險函式的核心部分,也是結構風險函式重要組成部分。模型的結構風險函式包括了經驗風險項和正則項,通常可以表示成如下式子ω∗

=arg

minω1m

∑i=1

ml(y

i,f(

xi;ω

))+λ

φ(ω)

(3)其中m表示樣本的數量。對於邏輯回歸,其loss function是log損失,這可以通過極大似然估計進行推導得到。

首先,給定乙個樣本

x ,可以使用乙個線性函式對自變數進行線性組合,即上述的(2)式子: z=

ω0+ω

1x1+

ω2x2

+...

...+

ωnxn

=∑i=

0nωi

xi=ω

tx(4)根據sigmoid函式,我們可以得出**函式的表示式為: hω

(x)=

g(ωt

x)=1

1+e−

ωtx(5)

上式表示y=

1 的**函式為hω

(x) 。在這裡,假設因變數

y 服從伯努利分布,取值為0和

1 ,那麼可以得到下列兩個式子: p(

y=1|

x)=h

ω(x)

(6)p(y

=0|x

)=1−

hω(x

)(7)

而對於上面的兩個表示式,通過觀察,我們發現,可以將其合併為以下表示式: p(

y|x)

=hω(

x)y(

1−hω

(x))

1−y(8)

根據上面的式子,給定一定的樣本之後,我們可以構造出似然函式,然後可以使用極大似然估計mle的思想來求解引數。但是,為了滿足最小化風險理論,我們可以將mle的思想轉化為最小化風險化理論,最大化似然函式其實就等價於最小化負的似然函式。對於mle,就是利用已知的樣本分佈,找到最有可能(即最大概率)導致這種分布的引數值;或者說是什麼樣的引數才能使我們觀測到目前這組資料的概率最大。使用mle推導lr的loss function的過程如下。

首先,根據上面的假設,寫出相應的極大似然函式(假定有

m 個樣本): l(

ω)=∏

i=1m

p(yi

|xi;

ω)=∏

i=1m

hω(x

i)yi

(1−h

ω(xi

)1−y

i(9)

上述式子中的

ω 及xi

均為向量,並未顯示其轉置。

直接對上面的式子求導會不方便,因此,為了便於計算,我們可以對似然函式取對數,經過化簡可以得到下式的推導結果:

logl(ω

)=∑i

=1mlog[(

hω(x

i)yi

(1−h

ω(xi

))1−

yi)]

=∑i=

1m[y

iloghω

(xi)

+(1−

yi)log(1

−hω(

xi))

](10)

因此,損失函式可以通過最小化負的似然函式得到,即下式: j(

ω)=−

1m∑i

=1m[

yiloghω(

xi)+

(1−y

i)log(1−

hω(x

i)](11)

在周志華版的機器學習中,將sigmiod函式代入hω

(xi)

,並使用ln代替log,上述公式表示為:j(

ω)=−

1m∑i

=1m[

yilnh

ω(xi

)+(1

−yi)

ln(1−

hω(x

i)]=

−1m∑

i=1m

[yiln

11+e

−ωxi

+(1−

yi)ln

e−ωx

i1+e

−ωxi

]=−1

m∑i=

1m[ln

11+e

ωxi+

yiln1

e−ωx

i]=1

m∑i=

1m[−

yiwx

i+ln(

1+eω

xi)]

(12)

在某些資料上,還有另一種損失函式的表達形式,但本質是一樣的,如下【推導見下面1.4】: j(

ω)=1

m∑i=

1mlo

g(1+

e−yi

ωx)(13)

這裡就以梯度下降為例對邏輯回歸進行求解,其迭代公式的推導過程如下:∂j

(ω)∂

ωj=−

1m∑i

m[yi

(1−h

ω(xi

))⋅(

−xi,

j)+(

1−yi

)hω(

xi)⋅

(xi,

j)]=

−1m∑

im(−

yi⋅x

i,j+

hω(x

i)⋅x

i,j)

=−1m

∑im(

hω(x

i)−y

i)xi

,j(12)

上述中xi

,j表示第

i 個樣本的第

j個屬性的取值。

於是,ω

的更新方式為:ωj

+1=ω

j−α∑

i=1m

(hω(

xi)−

yi)x

x,j(13)

對於隨機梯度下降,每次只取乙個樣本,則

ω 的更新方式為:ωj

+1=ω

j−α(

hω(x

)−y)

xj(13)

其中x 為這個樣本的特徵值,

y為這個樣本的真實值,xj

為這個樣本第

j 個屬性的值。

這使用周志華版的損失函式更容易得出這個結論。

與上面相同,根據sigmoid函式,我們可以得出**函式的表示式為: hω

(x)=

g(ωt

x)=1

1+e−

ωtx(5)

上式表示y=

1 的**函式為hω

(x) 。

但與上面不同,我們假設樣本的分布為,則 p(

y=1|

x)=h

ω(x)

(14) p

(y=−

1|x)

=1−h

ω(x)

(15)

對於sigmoid函式,有以下特性(簡單推導一下就可以得到): h(

−x)=

1−h(

x)(14)

於是(14)(15)式可以表示為: p(

y|x)

=hω(

yx)(16)

同樣,我們使用mle作估計, l(

ω)=∏

i=1m

p(yi

|xi;

ω)=∏

i=1m

hω(y

ixi)

=∏i=

1m11

+e−y

iwxi

(17)

對上式取對數及負值,得到損失為:

−logl(

ω)=−

log∏i=

1mp(

yi|x

i;ω)

=−∑i

=1mlogp(

yi|x

i;ω)

=−∑i

=1mlog11

+e−y

iwxi

=∑i=

1mlog(1+

e−yi

wxi)

(18)

即對於每乙個樣本,損失函式為: l(

ω)=log(1

+e−y

iwxi

)(19)

對上式求梯度,容易得到:∂j

(ω)∂

ωj=−

yixi

1+ey

iωxi

(20)

損失函式與梯度下降

梯度下降演算法會依賴於導數和偏導數 導數定義 所謂導數,就是用來分析函式 變化率 的一種度量。導數越大變化率越大,導數越小變化率越小,其公式為 偏導 的英文本意是 partial derivatives 表示區域性導數 對於多維變數函式而言,當球某個變數的導數時,就是把其他變數視為常量,然後對整個函...

線性回歸的損失函式和梯度下降

損失函式 總損失定義為 理解 x為特徵值矩陣,y為目標值矩陣。直接求到最好的結果 缺點 當特徵過多過複雜時,求解速度太慢並且得不到結果 其中y是真實值矩陣,x是特徵值矩陣,w是權重矩陣 對其求解關於w的最小值,起止y,x 均已知二次函式直接求導,導數為零的位置,即為最小值。求導 注 式 1 到式 2...

損失函式和梯度下降

前提 前向傳播經過若干個神經元,再經過啟用函式,最終得到結果,然後輸出損失函式,根據損失函式再進行反向傳播,及傳遞梯度,調整權重。並不是根據啟用偶函式輸出直接返回梯度值,而是在計算損失函式的基礎上進行反向傳播梯度。更多的是按照小批量的處理,累計梯度求平均值,最後進行梯度下降。損失函式與分類函式 sv...