Logistic Classification
Github工程地址:https://github.com/ahangchen/GDLnotes
歡迎star,有問題可以到Issue區(qū)討論
官方教程地址
視頻/字幕下載
About
simple but important classifier
- Train your first simple model entirely end to end
- 下載、預(yù)處理一些圖片以分類
- Run an actual logistic classifier on images data
- Connect bit of math and code
Detail
Linear Classifier
之所以這樣建模,是因?yàn)榫€性公式是最簡(jiǎn)單的數(shù)學(xué)模型,僅此而已甚纲。
Input: X (e.g. the pixels in an image)
-
Apply a linear function to X
- Giant matrix multiply
- Take inputs as a big vector
- Multiply input vector with a matrix, W means weights
- b means biased term
- Machine learning adjust weights and bias for the best prediction
-
Output: Y, predictions for per output class
- Y is a vector, represents the probability of each label
- 好的預(yù)測(cè)中,正確的label的概率應(yīng)當(dāng)更接近1
- 往往得到的Y一開始不是概率,而是一些具體值(scores/logits)哗脖,所以需要轉(zhuǎn)換,by:
Softmax回歸模型:Wikipedia
Softmax
- 代碼 soft_max.py:Softmax實(shí)現(xiàn)與應(yīng)用
- input的score差異越大(可以全部乘10試試),則輸出的各項(xiàng)label概率差異越大才避,反之差異越小
- Softmax只關(guān)心幾個(gè)label之間的概率橱夭,不關(guān)心具體值
- 機(jī)器學(xué)習(xí)是一個(gè)讓預(yù)測(cè)成功率升高的事情,因此是一個(gè)讓score之間差異增大的過程
One hot encoding
正確預(yù)測(cè)結(jié)果應(yīng)當(dāng)是只有一個(gè)label成立桑逝,其他label不成立棘劣。這種情況下,預(yù)測(cè)概率最大的則是最可能的結(jié)果肢娘。
Example: take this test
- one hot encoding在label很多的情況下not work well呈础,因?yàn)閛utput vector到處都是0,很稀疏橱健,因此效率低
- solved by embeddings
- 好處:可以measure我們與理想情況之間的距離(compare two vectors)
分類器輸出:[0.7 0.2 0.1] <=> 與label對(duì)應(yīng)的真實(shí)情況:[1 0 0]
-
Compare two vectors: cross-entropy
- D(S, L) != D(L, S)
Remember: Label don't log, for label zero
小結(jié)
找到合適的W和b而钞,使得S和L的距離D的平均值,在整個(gè)數(shù)據(jù)集n中最小拘荡。
最小化cross-entropy
D的平均值即是Training loss臼节,求和和矩陣相乘是個(gè)大數(shù)據(jù)的活。
兩個(gè)參數(shù)的誤差導(dǎo)致一個(gè)呈圓形的loss珊皿,所以我們要做的就是找到盡量靠近圓心的weight
機(jī)器學(xué)習(xí)問題變成了一個(gè)數(shù)值優(yōu)化
-
解決方法之一:Gradient descent网缝,求導(dǎo)
修改參數(shù),檢查誤差是否變大蟋定,往變小的方向修改粉臊,直到抵達(dá)bottom。
圖中weight是二維的驶兜,但事實(shí)上可能有極多的weight
下一節(jié)實(shí)踐
覺得有幫助的話扼仲,不在github給個(gè)star嗎?