1. 程式人生 > >吳恩達《神經網路與深度學習》課程筆記歸納(二)-- 神經網路基礎之邏輯迴歸

吳恩達《神經網路與深度學習》課程筆記歸納(二)-- 神經網路基礎之邏輯迴歸

上節課我們主要對深度學習(Deep Learning)的概念做了簡要的概述。我們先從房價預測的例子出發,建立了標準的神經網路(Neural Network)模型結構。然後從監督式學習入手,介紹了Standard NN,CNN和RNN三種不同的神經網路模型。接著介紹了兩種不同型別的資料集:Structured Data和Unstructured Data。最後,我們解釋了近些年來深度學習效能優於傳統機器學習的原因,歸結為三個因素:Data,Computation和Algorithms。本節課,我們將開始介紹神經網路的基礎:邏輯迴歸(Logistic Regression)。通過對邏輯迴歸模型結構的分析,為我們後面學習神經網路模型打下基礎。

1. 二分類

我們知道邏輯迴歸模型一般用來解決二分類(Binary Classification)問題。二分類就是輸出y只有{0,1}兩個離散值(也有{-1,1}的情況)。我們以一個影象識別問題為例,判斷圖片中是否有貓存在,0代表noncat,1代表cat。主要是通過這個例子簡要介紹神經網路模型中一些標準化的、有效率的處理方法和notations。

這裡寫圖片描述

2. 邏輯迴歸

è¿éåå¾çæè¿°

從Sigmoid函式曲線可以看出,當z值很大時,函式值趨向於1;當z值很小時,函式值趨向於0。且當z=0時,函式值為0.5。還有一點值得注意的是,Sigmoid函式的一階導數可以用其自身表示:

這樣,通過Sigmoid函式,就能夠將邏輯迴歸的輸出限定在[0,1]之間了。

3. 邏輯迴歸的代價(成本)函式

cost function:代價(成本)函式,是定義在整個訓練集上面的,也就是所有樣本的誤差的總和的平均,也就是損失函式的總和的平均,有沒有這個平均其實不會影響最後的引數的求解結果。

loss function:損失(誤差)函式,是定義在單個訓練樣本上的,也就是就算一個樣本的誤差,比如我們想要分類,就是預測的類別和實際類別的區別,是一個樣本的哦,用L表示

邏輯迴歸中,w和b都是未知引數,需要反覆訓練優化得到。因此,我們需要定義一個cost function,包含了引數w和b。通過優化cost function,當cost function取值最小時,得到對應的w和b。

4. 梯度下降法

我們已經掌握了Cost function的表示式,接下來將使用梯度下降(Gradient Descent)演算法來計算出合適的w和b值,從而最小化m個訓練樣本的Cost function,即J(w,b)。

由於J(w,b)是convex function,梯度下降演算法是先隨機選擇一組引數w和b值,然後每次迭代的過程中分別沿著w和b的梯度(偏導數)的反方向前進一小步,不斷修正w和b。每次迭代更新w和b後,都能讓J(w,b)更接近全域性最小值。梯度下降的過程如下圖所示。

è¿éåå¾çæè¿°

(w:= 表示更新w         步進長度:步長) 

梯度下降演算法能夠保證每次迭代w和b都能向著J(w,b)全域性最小化的方向進行。其數學原理主要是運用泰勒一階展開來證明的,可以參考我的另一篇部落格中的Gradient Descent有提到如何推導:臺灣大學林軒田機器學習基石課程學習筆記10 – Logistic Regression

5. 導數

這一部分的內容非常簡單,Andrew主要是給對微積分、求導數不太清楚的同學介紹的。梯度或者導數一定程度上可以看成是斜率。關於求導數的方法這裡就不再贅述了。

6. 更多導數的例子

Andrew給出了更加複雜的求導數的例子,略。

7. 計算流程圖(正向傳播)

整個神經網路的訓練過程實際上包含了兩個過程:正向傳播(Forward Propagation)和反向傳播(Back Propagation)。正向傳播是從輸入到輸出,由神經網路計算得到預測輸出的過程;反向傳播是從輸出到輸入,對引數w和b計算梯度的過程。下面,我們用計算圖(Computation graph)的形式來理解這兩個過程。

舉個簡單的例子,假如Cost function為J(a,b,c)=3(a+bc),包含a,b,c三個變數。我們用u表示bc,v表示a+u,則J=3v。它的計算圖可以寫成如下圖所示:

這裡寫圖片描述

令a=5,b=3,c=2,則u=bc=6,v=a+u=11,J=3v=33。計算圖中,這種從左到右,從輸入到輸出的過程就對應著神經網路或者邏輯迴歸中輸入與權重經過運算計算得到Cost function的正向過程。

8. 流程圖求導數(反向傳播)

è¿éåå¾çæè¿°

9. 邏輯迴歸中的梯度下降法

è¿éåå¾çæè¿°

è¿éåå¾çæè¿°

10. m個樣本的梯度下降

11. 總結

本節課的內容比較簡單,主要介紹了神經網路的基礎——邏輯迴歸。首先,我們介紹了二分類問題,以圖片為例,將多維輸入x轉化為feature vector,輸出y只有{0,1}兩個離散值。接著,我們介紹了邏輯迴歸及其對應的Cost function形式。然後,我們介紹了梯度下降演算法,並使用計算流程圖的方式來講述神經網路的正向傳播和反向傳播兩個過程。最後,我們在邏輯迴歸中使用梯度下降演算法,總結出最優化引數w和b的演算法流程。