昨天的最後我們提到我們要找一個事後機率(Posterior Probability),如果它大於 0.5 就輸出 ,否則就輸出 。如果是使用Gaussian,則 ,。
如果用圖像化表示則整個模型如下圖所示,將所有的輸入 分別乘上 再加上 就會得得到 ,即 ,接著 通過Sigmoid function輸出的值就是事後機率,這整件事情我們就稱為邏輯迴歸(Logistic Regression)。
訓練資料需要標記(Label),也就是說每個 都要標記它屬於哪一個class。假設我們的訓練資料是從事後機率所產生的,只要給我們一個 我們就決定了事後機率,就可以去計算某一組 產生 筆訓練資料的機率,而我們要找一組可以最大化這個機率的 。
經過一些數學運算則可以將式子改為 。
整理過後可以發現 後面那一長串是兩個伯努利分佈(Bernoulli distribution)的交叉熵(Cross-entropy),Cross-entropy代表的涵義是這兩個distribution有多接近,如果兩個分佈是一樣的,那Cross-entropy算出來就會是 0。因此我們在做的就是去算所有樣本的Cross-entropy的總和。
要找到一個最好的function,就要讓 最小化,也就是要最小化所有樣本的Cross-entropy的總和。可以用梯度下降法(Gradient Descent),就是做對 的偏微分。
經過整理之後會得到 。從括弧中的式子可以看出 的更新取決於Learning rate 、 以及 ,這個式子代表function的輸出跟理想目標的差距大小,如果離目標越遠,則應該更新越多次參數。
將邏輯迴歸的式子的輸出減掉 的平方加總當作Loss function,一樣用梯度下降法對 後面的式子對 做偏微分,會得到如下圖所示的結果。
會遇到一個問題就是,假設今天第 筆資料是 class 1 ,當 就代表你很接近你的目標,將它們的值代入式子算出來微分等於 0,而當 就代表你離你的目標還很遠,將它們的值代入式子算出來微分也等於 0。
如果把參數的變化對Total Loss作圖,選擇Cross-entropy跟選擇Square error的參數的變化跟loss的變化如下圖所示。
從圖中可以看到,以Cross-entropy來說距離目標越遠,微分值就越大,參數更新越快,但是如果是Square error,當距離目標很遠的時候,微分卻非常小,就會導致不知道距離目標的遠近。