Day 1:logistics regression

1.logistics regression model

y' = σ(WTx+b)

激活函數(shù):sigmoid函數(shù)

損失函數(shù):L(y',y) = -[y·log(y')+(1-y)·log(1-y')](二分類)

代價函數(shù):損失均值,J(W,b) = 1/m·Σmi=1/m·ΣL(y'(i),y(i)),是W和b的函數(shù)

訓(xùn)練模型的步驟

初始化W和b,指定learning rate和迭代次數(shù)

每次迭代,根據(jù)當(dāng)前W和b計算對應(yīng)的梯度(J對W,b的偏導(dǎo)數(shù)),然后更新W和b,w := w - α(dJ/dw)

迭代結(jié)束,學(xué)得W和b,帶入模型進(jìn)行預(yù)測,分別測試在訓(xùn)練集合測試集上的準(zhǔn)確率,從而評價模型

2.向量化

只要闊能,就不要使用顯示for循環(huán)(explicit for-loop),而是盡可能采用矢量化技術(shù)(Vectorization)

深度學(xué)習(xí)中的數(shù)據(jù)量往往巨大,用for循環(huán)去跑的話效率會非常低下,相比之下,矩陣運算就會快得多。而python的矩陣“傳播機(jī)制(broadcasting)”和專門用于矩陣計算的numpy包更是給了我們使用矩陣運算的理由。

所謂的Vectorization,就是把我們需要用for-loop來對那些只有上標(biāo)或者下標(biāo)變化的變量,放進(jìn)一個向量或者矩陣中,讓他們所有變量同時計算!

因此,Logistic regression算法向量化的過程,就是:

1.把m個樣本,同時算出它們的z(i),也就是直接算Z這個m維行向量

2.同時把Z的m維都激活,得到m維行向量A

3.得到A和Z之后,就可以直接計算J對Z的梯度dZ了,得到dZ之后,也就可以直接算出W和b的梯度了

4.同時更新所有的w(i)和b(i)

3.算法步驟

(一)數(shù)據(jù)預(yù)處理

1)搞清楚數(shù)據(jù)的形狀、維度

(209, 64, 64, 3)第一維代表m,即樣本數(shù)量,第二維第三維分別是圖片的長和寬,第四維代表圖片的RGB三個通道

2)將數(shù)據(jù)(例如圖片)轉(zhuǎn)化成向量(image to vector)方便處理

3)將數(shù)據(jù)標(biāo)準(zhǔn)化(standardize),這樣更好訓(xùn)練


未標(biāo)準(zhǔn)化
標(biāo)準(zhǔn)化

????????每個特征都轉(zhuǎn)化成了同樣的分布,不管原來的范圍是什么,現(xiàn)在都基本限定在同樣的范圍內(nèi)了。原數(shù)據(jù)的不同特征的范圍可能會有很大差別,比如一批數(shù)據(jù)中“年齡”的范圍就比較小,可能20歲 ~ 60歲之間,但是另一個特征“年收入”可能波動范圍就很大,也許0.5萬 ~ 1000萬,這種情況下會導(dǎo)致我們的?等高線圖變得十分“扁平”,在梯度下降的時候會很?容易走彎路,因此?梯度下降會比較慢,精度也不高。但是經(jīng)過標(biāo)準(zhǔn)化(也稱歸一化)之后,等高線就變規(guī)矩了,就很容易梯度下降了。

另外,對于圖片數(shù)據(jù)的話,進(jìn)行標(biāo)準(zhǔn)化很簡單,因為RGB三個通道的范圍都是255,我們對圖片的處理就是直接除以255即可。

(二)構(gòu)造各種輔助函數(shù)

1)激活函數(shù)(此處我們使用sigmoid函數(shù))--activation function

2)參數(shù)初始化函數(shù)(用來初始化W和b)--initialization

3)傳播函數(shù)(這里是用來求損失cost并對W、b求導(dǎo),即dW、db)--propagate

? ? ? ? ? ? 包含了forward-propagate和backward-propagate,即正向傳播和反向傳播。

? ? ? ? ? ? 正向傳播求的是cost,反向傳播是從cost的表達(dá)式倒推W和b的偏導(dǎo)數(shù)

4)優(yōu)化函數(shù)(迭代更新W和b,來最小化cost)--optimize

5)預(yù)測函數(shù)(根據(jù)學(xué)習(xí)到的W和b來進(jìn)行預(yù)測)--predict

(三)綜合上面的輔助函數(shù),結(jié)合成一個模型

可以直接輸入訓(xùn)練集、預(yù)測集、超參數(shù),然后給出模型參數(shù)和準(zhǔn)確率

logistics 流程圖



參考文獻(xiàn)1(概念介紹)

參考文獻(xiàn)2(向量化)

參考文獻(xiàn)3(python代碼實現(xiàn))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容