完成了吳恩達(dá)的機(jī)器學(xué)習(xí)課程及相關(guān)作業(yè)后,接下來便學(xué)習(xí)了斯坦福cs231n系列的課程來進(jìn)行深度學(xué)習(xí)方面的相關(guān)內(nèi)容。這部分內(nèi)容也是在上學(xué)期完成的,但這是DeepLearning良好的入門課,所以時不時地應(yīng)該去看看里面的章節(jié)內(nèi)容,最近他們又公開了2017春季新的ppt,也準(zhǔn)備再看看了,結(jié)合想要研究的內(nèi)容,來提升這方面的知識儲備量。
學(xué)習(xí)這條路,需要的是能靜心孤獨地走好自己腳下的路,任憑外界風(fēng)云變幻,唯有踏實前行才是王道!送給現(xiàn)在有些困頓的自己。
好了,下面就把自己的筆記記錄于此吧~
正如在Machine Learning中相似,對于問題的討論總是從分類開始,至于為什么立腳點是這樣,我想一是和思維習(xí)慣有關(guān),另外一個是與實際應(yīng)用有關(guān),但究竟為何,我也不太清楚了~并且該課程的主要講解的問題便是classification。在這進(jìn)行分析時,還是采用之前在MachineLearning中提及過的pipeline:【假設(shè)建模-目標(biāo)函數(shù)-迭代優(yōu)化】
一、分類方法
1、最近鄰
2、K-NN
最近鄰,和K-NN算法的idea比較直接,即對于待檢樣本,對已有數(shù)據(jù)集的樣例進(jìn)行遍歷,尋找得到與該樣本特征距離最近的樣例(最近鄰)或者K個樣例(K-NN,然后去k中類別占多數(shù)的類別)來作為待檢樣本的類別歸屬。這種方法在搜索的樣例規(guī)模較小的情況下比較可行,但當(dāng)數(shù)據(jù)集空間較大時則不可取,并且沒有訓(xùn)練過程可言,因為每次都需要遍歷整個數(shù)據(jù)集。
注:在最近鄰的方式中,需要確定的有兩個超參數(shù),一個是選用何種距離計算方式,另一種是K值的確定。所謂超參數(shù)指的是需要人為設(shè)定而非通過訓(xùn)練可得的參數(shù)。為方便超參數(shù)的選擇,習(xí)慣的一種方式是將整個數(shù)據(jù)集劃分成訓(xùn)練集,驗證集和測試集,通過驗證集來選擇合適的超參數(shù),利用測試集來判斷是否可行。
將之前的手寫筆記貼于此,方便溫習(xí)

3、線性分類器
此處說到的線性分類器指兩類分類器,多分類SVM和softmax。之所以說是線性分類器,原因在于計算各類得分時,使用的線性函數(shù)。在多分類SVM和softmax中,其不同點在于計算損失函數(shù)的不同。這兩類分類器各有其用途,根據(jù)具體問題可進(jìn)行相關(guān)分析得到所選模型。
step1:假設(shè)建模
線性模型,f=wx+b

step2:目標(biāo)函數(shù)
a、多分類svm:

b、softmax:

step3:迭代優(yōu)化
在迭代優(yōu)化中,其目標(biāo)是找到合適的參數(shù)來減小損失函數(shù)的值。在此便設(shè)計到梯度計算的相關(guān)問題。主要設(shè)計數(shù)值梯度計算以及微分梯度計算。因微分梯度計算在實際應(yīng)用中更高效,在實踐中采用的便是此方式,但這種計算有時容易出錯,便會使用數(shù)值計算梯度來輔助檢驗梯度計算是否正確。
數(shù)值計算梯度:

微分計算梯度:

********************在這兒提及了一個trick,即對于激活函數(shù)是sigmoid的函數(shù),在定損失函數(shù)時一般不采用最小二乘的方式,而采用交叉熵的方式,具體見下,這和邏輯回歸中確定損失函數(shù)是一致的。

最后,來比較一下多分類svm和softmax~
