邏輯回歸 梯度跟新公式的理解

2021-08-13 10:24:01 字數 1721 閱讀 3757

自己學習機器學習,看到邏輯回歸中梯度更新時,始終無法理解更新公式。那個看起來很莫名的公式長這樣:

weights = weights + alpha * datamatrix.transpose() * error

為什麼要轉置,為什麼要用乘法將這個矩陣和差異向量相乘,下面就來詳細講講吧。

首先,設樣本集i行j列: x=

⎛⎝⎜⎜

⎜⎜x11

x21…x

i1x12

x22…x

i2……

……x1

jx2j

…xij

⎞⎠⎟⎟

⎟⎟對應結果標籤y=

⎛⎝⎜⎜

⎜⎜y1

y2…y

i⎞⎠⎟

⎟⎟⎟

根據梯度演算法: w:=

α∗∇w

f(w)

有: ⎛⎝

⎜⎜⎜w

1w2…

wj⎞⎠

⎟⎟⎟ =⎛⎝

⎜⎜⎜w

1_ol

dw2_

old…

wj_o

ld⎞⎠

⎟⎟⎟ +α∗

∂f(w

)/∂w

; 其中,α

為步長;f(

z)為損失函式,

z 為計算得出的標籤值; z=

w0+w

1x1+

w2x2

+…+w

jxj

設平方損失函式:f(

z)=1

/2∗∑

i1(y

i−zi

)2則:∂f

(w)/

∂w=1

/2∗∑

i1(y

i−z(

w)i)

∗2∗z

′(w)

因為:z(w

1)=z(w

2)=z(w

3)=z(w

j)且:z′

(w1)

=x1 , z′

(w1)

=x2 , z′

(wj)

=xj

∂f(wj)/

∂wj=

∑i1(

yi−z

(w)i

)∗xj

i 由於

∂f(w

j)/∂

wj需要與⎛⎝

⎜⎜⎜w

1w2…

wj⎞⎠

⎟⎟⎟ 相加,所以∂f

(wj)

/∂wj

計算的結果應該是乙個j行的向量。

由矩陣相乘公式am

n∗bn

l=cm

l ,將∂f

(wj)

/∂wj

轉換為xt

∗(y−

z(w)

)→,x

t 為j行i列,(y

−z(w

))→ 為i行1列,兩者相乘得到j行1列的向量,滿足要求。而(y

i−z(

w)i)

即為樣本i的誤差er

rori

。最終得到: we

ight

s→:=w

eigh

ts→+

α∗da

tama

trix

.tra

nspo

se()

∗err

or→

邏輯回歸代價函式及其梯度下降公式

cost函式形式 簡單回顧一下幾個變數的含義 表1 cost函式解釋 x i 每個樣本資料點的特徵值 y i 每個樣本資料的所屬類別標籤 m樣本資料點的個數 h x 樣本資料的概率密度函式,即某個資料屬於1類 二分類問題 的概率 j 代價函式,估計樣本屬於某類的風險程度,越小代表越有可能屬於這類 我...

softmax回歸梯度公式推導及實現

推導如下 實現使用的是鳶尾花資料集,該資料集有3種鳶尾花,資料集剛開始長下面這個樣子 data pd.read csv iris.data header none 一共有150個樣本 對資料進行預處理,首先把3種鳶尾花名稱編碼成0,1,2,然後還要插入一列,使資料x變成 1,x 方便算theta 1...

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

由於二分類結果是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 表示樣本屬性 對...