由於二分類結果是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...