Logistic Classification

About

simple but important classifier

  • 訓練你的第一個端到端模型
  • 下載並預處理圖片
  • 在圖像數據上運行Logistic classifier進行分類
  • 相關的數學背景知識和代碼

Detail

Linear Classifier

Google 深度學習筆記 - Logistic Classification

之所以這樣建模,是因為線性公式是最簡單的數學模型,僅此而已。

Input: X (e.g. 圖像中像素的灰度值)

將一個線性函數作用在X上 - 大矩陣相乘 - 輸入一個代表圖片的向量 - 將輸入向量和一個矩陣W相乘,W表示權重 - b代表偏移(biased)項 - 機器學習便是調整權重和偏移值以達到最好的預測效果

輸出: Y, 對輸入應當屬於哪個類進行預測 - Y是一個代表每個label可能性的向量

好的預測中,正確的label的概率應當更接近1

往往得到的Y一開始不是概率,而是一些具體值(scores/logits),所以需要轉換,by:

Softmax迴歸模型:Wikipedia

Google 深度學習筆記 - Logistic Classification

Softmax

代碼 soft_max.py:Softmax實現與應用

input的score差異越大(可以全部乘10試試),則輸出的各項label概率差異越大,反之差異越小

Softmax只關心幾個label之間的概率,不關心具體值

機器學習是一個讓預測成功率升高的事情,因此是一個讓score之間差異增大的過程

One hot encoding

Google 深度學習筆記 - Logistic Classification

正確預測結果應當是只有一個label成立,其他label不成立。這種情況下,預測概率最大的則是最可能的結果。

Example: take this test

- one hot encoding在label很多的情況下效果不好,因為output vector到處都是0,很稀疏,因此效率低 - solved by embeddings

好處:可以measure我們與理想情況之間的距離(compare two vectors)

分類器輸出:[0.7 0.2 0.1] <=> 與label對應的真實情況:[1 0 0]

Compare two vectors: cross-entropy

Google 深度學習筆記 - Logistic Classification

D(S, L) != D(L, S)

Remember: Label don't log, for label zero

小結

Google 深度學習筆記 - Logistic Classification

Google 深度學習筆記 - Logistic Classification

找到合適的W和b,使得S和L的距離D的平均值,在整個數據集n中最小。

最小化cross-entropy

Google 深度學習筆記 - Logistic Classification

D的平均值即是Training loss,求和和矩陣相乘是個大數據的活。

Google 深度學習筆記 - Logistic Classification

兩個參數的誤差導致一個呈圓形的loss,所以我們要做的就是找到儘量靠近圓心的weight

機器學習問題變成了一個數值優化

解決方法之一:Gradient descent,求導

Google 深度學習筆記 - Logistic Classification

修改參數,檢查誤差是否變大,往變小的方向修改,直到抵達bottom。

圖中weight是二維的,但事實上可能有極多的weight

Numerical Stability

量級相差太多的數運算會導致許多錯誤

Example:num_stable.py

你可能以為輸出是1, 但結果是一個接近0.95的數。

但將1billion換成1,結果就很接近1。

因此需要讓前面提到的Train loss函數中的數據不要too big or too small

Normalized Inputs and Initial Wights

歸一化輸入和初始參數

理想目標

均值為0

方差處處相等

Google 深度學習筆記 - Logistic Classification

Math Reason

Easier for the optimizer to find a good solution

Google 深度學習筆記 - Logistic Classification

Example: Images Normalization

R = (R - 128) / 128
G = (G - 128) / 128
B = (B - 128) / 128

Weight Initialization 找到好的weight和bias for the gradient descent to proceed

A simple, general method

Google 深度學習筆記 - Logistic Classification

  • 用均值為0,標準偏差的高斯分佈產生隨機的數據填充W矩陣
Google 深度學習筆記 - Logistic Classification

高斯分佈模型也決定了初始輸出(softmax輸出)的概率分佈

高斯分佈的sigma越小,說明預測越不確定,sigma的取值很主觀

我們的工作即是,選一個較小的sigma,讓sigma變小到合適的值,使得預測更確定。

優化

Google 深度學習筆記 - Logistic Classification

調整W和b,使得Train loss最小

來源:ahangchen / https://github.com/ahangchen/GDLnotes ,只作分享,不作任何商業用途,版權歸原作者所有


分享到:


相關文章: