史丹佛機器學習教程學習筆記之2

marsjhao發表於2017-03-08

本系列其他部分:



第七章 正則化(Regularization)

1.過擬合的問題

正則化(regularization)的技術,它可以改善或者減少過度擬合問題。

過擬合解決辦法:(1)減少特徵數量,人工選擇或使用一些模型選擇演算法,例如PCA;(2)正則化,保留所有特徵,但是減少引數的大小(magnitude)

2.代價函式

假如我們有非常多的特徵,我們並不知道其中哪些特徵我們要懲罰,我們將對所有的特徵進行懲罰,並且讓代價函式最優化的軟體來選擇這些懲罰的程度。這樣的結果是得到了一個較為簡單的能防止過擬合問題的假設:

其中λ又稱為正則化引數(Regularization Parameter)。 注:根據慣例,我們不對θ0 進行懲罰。經過正則化處理的模型與原模型的可能對比如下圖所示:

如果選擇的正則化引數λ過大,則會把所有的引數都最小化了,導致模型變成 hθ(x)=θ0,也就是上圖中紅色直線所示的情況,造成欠擬合。

3.正則化線性迴歸(RegularizedLinear Regression)

正則化線性迴歸的代價函式為:

梯度下降演算法:

可以看出,正則化線性迴歸的梯度下降演算法的變化在於,每次都在原有演算法更新規則的基礎上令θ值減少了一個額外的值。

正規方程:

4.正則化邏輯迴歸(RegularizedLogistic Regression)

注意:

1.雖然正則化的邏輯迴歸中的梯度下降和正則化的線性迴歸中的表示式看起來一樣,但由於兩者的h(x)不同所以還是有很大差別。

2.θ0不參與其中的任何一個正則化。

第八章 神經網路:表述(Neural Networks: Representation)

1.非線性假設(Non-linearHypotheses)

2.神經元和大腦(Neurons andthe Brain)

3.模型表示1 (ModelRepresentation I)

每一個a都是由上一層所有的x和每一個x所對應的決定的。(我們把這樣從左到右的演算法稱為前向傳播演算法( FORWARD PROPAGATION ))。

4.模型表示2(ModelRepresentation II)

我們可以把a0,a1,a2,a3看成更為高階的特徵值,也就是x0,x1,x2,x3的進化體,並且它們是由x與決定的,因為是梯度下降的,所以a是變化的,並且變得越來越厲害,所以這些更高階的特徵值遠比僅僅將x次方厲害,也能更好的預測新資料。

5.舉例和直觀理解1(Examples andIntuitions I)

6.舉例和直觀理解2(Examples andIntuitions II)

7.多類分類(MulticlassClassification)

第九章 神經網路的學習

1.代價函式

假設神經網路的訓練樣本有m個,每個包含一組輸入x和一組輸出訊號y,L表示神經網路層數,Sl表示每層的neuron個數(SL表示輸出層神經元個數),SL 代表最後一層中處理單元的個數。

將神經網路的分類定義為兩種情況:二類分類和多類分類,

二類分類:SL=1, y=0 or 1表示哪一類;

K類分類:SL=K,yi = 1表示分到第i類;(K>2)


代價函式為:

2.反向傳播演算法(BackpropagationAlgorithm)

重要的是清楚地知道上面式子中上下標的含義:

l 代表目前所計算的是第幾層

j 代表目前計算層中的啟用單元的下標,也將是下一層的第j個輸入變數的下標。

i 代表下一層中誤差單元的下標,是受到權重矩陣中第i行影響的下一層中的誤差單元的下標。

3.反向傳播演算法的直觀理解

4.展開引數

5.梯度檢驗(GradientChecking)

6.隨機初始化(RandomInitialization)

到目前為止我們都是初始所有引數為0,這樣的

初始方法對於邏輯迴歸來說是可行的,但是對於神經網路來說是不可行的。如果我們令所有的初始引數都為0,這將意味著我們第二層的所有啟用單元都會有相同的值。同理,如果我們初始所有的引數都為一個非0的數,結果也是一樣的。我們通常初始引數為正負ε之間的隨機值。

7.綜合起來

小結一下使用神經網路時的步驟:

網路結構:第一件要做的事是選擇網路結構,即決定選擇多少層以及決定每層分別有多少個單元。第一層的單元數即我們訓練集的特徵數量。最後一層的單元數是我們訓練集的結果的類的數量。如果隱藏層數大於1,確保每個隱藏層的單元個數相同,通常情況下隱藏層單元的個數越多越好。我們真正要決定的是隱藏層的層數和每個中間層的單元數。

訓練神經網路:

1. 引數的隨機初始化

2. 利用正向傳播方法計算所有的hθ(x)

3. 編寫計算代價函式J的程式碼

4. 利用反向傳播方法計算所有偏導數

5. 利用數值檢驗方法檢驗這些偏導數

6. 使用優化演算法來最小化代價函式

相關文章