1 邏輯回歸
邏輯回歸是一個用於二分類(binary classification)的算法,以在二分類問題中,我們的目標就是習得一個分類器,它以圖片的特征向量作為輸入,然后預測輸出結果 y 為 1 還是 0。
邏輯回歸的公式定義如下:

損失函數:

代價函數:

1.1邏輯回歸模型
對於二元分類問題來講,給定一個輸入特征向量X,它可能對應一張圖片,你想識別這
張圖片識別看它是否是一只貓或者不是一只貓的圖片,你想要一個算法能夠輸出預測,你只
能稱之為y^,也就是你對實際值 y 的估計,X是一個nx維的向量(相當於有nx個特征的特征向量)。我們用w來表示邏輯回歸的參數,這也是一個 nx維向量(因為w實際上是特征權重,維度與特征向量相同),參數里面還有b,這是一個實數(表示偏差)。所以給出輸入x以及參數w和b之后,我們怎樣產生輸出預測值y^,一件你可以嘗試卻不可行的事是讓y^ = wT + b
下圖是 sigmoid 函數的圖像,如果我把水平軸作為z軸,那么關於z的 sigmoid 函數是這樣的,它是平滑地從 0 走向 1,讓我在這里標記縱軸,這是 0,曲線與縱軸相交的截距是 0.5,這就是關於z的 sigmoid 函數的圖像。我們通常都使用z來表示wT + b的值,關於 sigmoid 函數的公式和圖像:

1.2邏輯回歸的代價函數(成本函數)
為了訓練邏輯回歸模型的參數參數w和參數b我們,需要一個代價函數,通過訓練代價函數來得到參數w和參數b。
損失函數又叫做誤差函數,用來衡量算法的運行情況,Loss function:L(y^ , y),這個L稱為的損失函數,來衡量預測輸出值和實際值有多接近。一般我們用預測值和實際值的平方差或者它們平方差的一半,雖然平方差是一個不錯的損失函數,但是我們在邏輯回歸模型中會定義另外一個損失函數,在邏輯回歸中用到的損失函數是:
損失函數是在單個訓練樣本中定義的,它衡量的是算法在單個訓練樣本中表現如何,為了衡量算法在全部訓練樣本上的表現如何,我們需要定義一個算法的代價函數,算法的代價函數是對m個樣本的損失函數求和然后除以m:

損失函數只適用於像這樣的單個訓練樣本,而代價函數是參數的總代價,所以在訓練邏輯回歸模型時候,我們需要找到合適的w和b,來讓代價函數 J 的總代價降到最低。
2 梯度下降法(Gradient Descent)
代價函數(成本函數)J(w, b)是在水平軸w和b上的曲面,因此曲面的高度就是J(w, b)在某一點的函數值。我們所做的就是找到使得代價函數(成本函數)J(w, b)函數值是最小值,對應的參數w和b。
(1)我們以如圖的小紅點的坐標來初始化參數w和b,我們以如圖的小紅點的坐標來初始化參數w和b。

(2)朝最陡的下坡方向走一步,不斷地迭代,如圖,走到了如圖中第二個小紅點處.
我們可能停在這里也有可能繼續朝最陡的下坡方向再走一步,如圖,經過兩次迭代走到第三個小紅點處。

(3)直到走到全局最優解或者接近全局最優解的地方
通過以上的三個步驟我們可以找到全局最優解,也就是代價函數(成本函數)J(w, b)這個凸函數的最小值點。
3 邏輯回歸中的梯度下降(Logistic Regression Gradient Descent)
假設樣本只有兩個特征x1和x2,為了計算z,我們需要輸入參數w1、w2 和b,除此之外還有特征值x1和x2。因此z的計算公式為: z = w1x1 + w2x2 + b
邏輯回歸的公式定義如下:

損失函數:

代價函數:

在只考慮單個樣本的情況,單個樣本的代價函數定義如下:其中a是邏輯回歸的輸出,y是樣本的標簽值

梯度下降法,w和b的修正量可以表達如下:

使用導數反向傳播:
用da 來表示dL(a,y)/da:

用dz來表示代價函數L關於z 的導數dL/dz:

計算w和b變化對代價函數L的影響:

3.1關於單個樣本的梯度下降算法,你所需要做的就是如下的事情:
(1)使用公式dz = (a − y)計算dz
(2)使用dw1 = x1*dz計算dw1,dw2 = x2*dz計算dw2,db= dz 來計算db
(3): 更新w1 = w1−adw1,更新w2 = w2−adw2,更新b =b−adb。
3.2 m 個樣本的梯度下降(Gradient Descent on m Examples)
損失函數J(w, b)的定義,a(i)是訓練樣本的預測值,(z(i))=(wTx+b)


