第1課__神經網絡和深度學習__第2周__神經網絡基礎

第1課__神經網絡和深度學習__第2周__神經網絡基礎

=======================

目錄

2.1 二分分類

2.2 logistic迴歸

2.3 logistic迴歸代價函數

2.4 梯度下降法

2.5 導數

2.6 更多導數的例子

2.7 計算圖

2.8 計算圖的導數計算

2.9 logistic迴歸中的梯度下降

2.10 m個樣本的梯度下降

2.11 向量化

2.12 向量化的更多例子

2.13 向量化logistic迴歸

2.14 向量化logistic迴歸的梯度輸出

2.15 python中的廣播

2.16 關於Python/numpy向量的說明

2.17 

=======================

2.1 二分分類

logistic迴歸一般用來解決二分分類問題。二分分類問題的輸出y有兩個值是{0,1}。下面以圖像識別貓爲例來說明:


  • 輸入:x=圖片
  • 輸出:是否是貓,y=1是貓,y=0不是貓

簡單以見,假設輸入圖片寬高是64pixels * 64pixels。在計算機中,一張彩色圖片是怎樣存儲的呢?

一張彩色圖片包含RGB3個色彩通道。以上圖爲例,該圖片尺寸爲64 * 64 * 3。在神經網絡中,通常是將輸入圖片轉換成一維特性向量來表示,轉換過程如下圖:


轉換後的特性向量維度是(12288,1),它是列向量,維度一般記爲nxnx=12288

如果訓練樣本有m張圖片,那麼將整個訓練樣本組成輸入矩陣,維度是(nx,m)。這裏m表示樣本數目,nx表示一個樣本中特性個數。輸出矩陣y的維度是(1,m)。


2.2 logistic迴歸

二分分類的輸出y取值{0,1},logistic迴歸的預測值= p(y=1|x),它表示y=1的概率(如在圖像識別貓中表示是貓的可能性),它的取值範圍是[0, 1],這是與二分分類不同的地方。

引入參數:權重w,維度是nx,1); 偏置常量b

logistic迴歸的線性預測可以表示爲:


上式的輸出範圍是整個實數集,而logistic迴歸的輸出是在區間[0, 1],可以用sigmoid函數把輸出「壓縮」在[0, 1]區間內。


綜上,logistic迴歸的預測輸出可以表示爲:


其實,logistic迴歸就是線性迴歸的「邏輯化」。

Sigmoid函數有一個非常好的特性:它的一階導數可以用其自身表示:



2.3 logistic迴歸代價函數

在神經網絡中,我們的目標是學習一個關於參數w和b的預測模型。怎樣確定參數w和b呢?我們需要定義一個cost function(它表示預測值與真實值的差距),當cost function取最小值時,就確定了參數w和b。

對於m個訓練樣本,(x(i),y(i))表示第i個樣本

先來看一下單個樣本的代價函數,一般損失函數(Lost function)。我們希望預測值與真實值非常接近,對於迴歸問題的損失函數,通過用平方差來表示:


對於邏輯迴歸,一般不用平方差做爲損失函數,因爲它是非凸的(non-convex),非凸函數存在多個極小值,所以在運用梯度下降時,易達到局部最優,我們的目標是全局最優。

邏輯迴歸的損失函數一般用下式表示: