1.視頻網站:mooc慕課https://mooc.study.163.com/university/deeplearning_ai#/c
2.詳細筆記網站(中文):http://www.ai-start.com/dl2017/
3.github課件+作業+答案:https://github.com/stormstone/deeplearning.ai
2.18 (選修)logistic 損失函數的解釋 Explanation of logistic regression cost function(Optional)
本節將證明邏輯迴歸的損失函數和成本函數的推導過程。
把損失函數和成本函數理解成概率公式進行推導,目標是把它們最小化
我們約定 算法的輸出y^是給定訓練樣本 x條件下 y等於1的概率y^=P(y=1∣x)。即
- 如果y=1,P(y∣x)=y^
- 如果y=0,P(y∣x)=1−y^
也就是說,如果y^表示的是y=1的概率,1−y^表示的就是y=0的概率。
這裏我們討論的是二分類問題的損失函數,因此,y的取值只能是0或者1。上述的兩個條件概率公式可以合併成如下公式:P(y∣x)=y^y(1−y^)(1−y)
證明過程很簡單,分別把y=1 和y=0代入上面公式就可以。
由於 log 函數是 嚴格單調遞增的函數,所以最大化log(P(y|x))等價於最大化P(y|x) 。
log(P(y∣x))=log(y^y(1−y^)(1−y))=ylogy^+(1−y)log(1−y^)
在2.3節中我們已經看到過損失函數的公式
如下
L(y^(i),y(i))=−(y(i)log(y^(i))+(1−y(i))log(1−y^(i)))
所以,可以發現log(P(y∣x))是損失函數的負值(−L(y^,y))。
前面有一個負號的原因是,當你訓練學習算法時,希望算法輸出值的概率是最大的(以最大的概率預測這個值),然而在邏輯迴歸中我們需要最小化損失函數,所以最小化損失函數就是最大化log(P(y∣x))。因此這就是單個訓練樣本的損失函數表達式。
那麼m個樣本的總體成本函數呢?
觀察整個訓練集中標籤的概率。
假設所有的訓練樣本服從同一分佈且相互獨立,即獨立同分布的,所有這些樣本的聯合概率就是每個樣本概率的乘積:
P(labelsintrainingset)=i=1∏mP(y(i)∣x(i))
如果你想做最大似然估計,需要尋找一組參數,使得給定樣本的觀測值概率最大,但令這個概率最大化等價於令其對數最大化,在等式兩邊取對數:
logP()=logi=1∏mP(y(i)∣x(i))=i=1∑mlogP(y(i)∣x(i))=i=1∑m−L(y^(i),y(i))
在統計學裏面,有一個方法叫做最大似然估計maximum likehood estimate,即求出一組參數,使這個式子取最大值。
也就是說,要想logP()取最大值,即使得−∑i=1mL(y^(i),y(i))最大化,那就是要最小化∑i=1mL(y^(i),y(i))。
這樣就推導出了在2.3節給出的成本函數公式
J(w,b)=m1i=1∑mL(y^(i),y(i))
由於訓練模型時,目標是讓成本函數最小化,所以我們不是直接用最大似然,要去掉負號。其次,爲了方便,可以對成本函數進行適當的縮放,我們就在前面加一個額外的常數因子m1。
總結
爲了最小化成本函數J,我們從邏輯迴歸模型的最大似然估計的角度出發,假設訓練集中的樣本都是在獨立同分布(IID,identically independently distributed)條件下的。