基礎知識ML
在進行深度學習前,根據學習網站的建議,首先學習機器學習的基礎課程,學習資料主要是Andrew講的ShortVideo,網址:http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=DeepLearning。下面是這些基礎課程的學習筆記。
一線性回歸I(Linear Regression I)
1.1 監督學習介紹 Supervised Learning Intro
首先對監督學習進行簡單介紹,其中包括回歸(Regreesion)和分類(Classification)兩個問題。
回歸問題:根據訓練集可以給出線性函數,然后對輸入進行預測,結果是實數值。

分類問題:根據訓練集可以進行划分,對輸入進行分類,結果一般是整數(屬於哪個類別)。

1.2 模型表達 Model Representation
在有訓練數據的情況下,我們要對新的輸入進行預測,得到輸出,就需要對這個問題進行建模來加以預測,對於一個問題,我們要進行數學描述,模型表達就是將我們的問題形式化,給出輸入和輸出的函數關系式,可以用矩陣表示。
1.3 損失函數 Cost Function
損失函數是訓練樣本的平均相關誤差函數,通常我們根據損失函數來求解模型表達式中的參數,目標是使損失函數最小。常用的損失函數如下:
(1)0-1損失函數

(2)平方損失函數

(3)絕對損失函數

(4)對數損失函數
1.4 梯度下降法Gradient Descent
梯度下降法常用來求解模型的參數,即求損失函數最小值。他的核心思想就是沿着損失函數最陡的方向下降,每輪改變損失函數的所有參數,直到損失函數達到最小值。參數改變是通過對損失函數求偏導而得:


學習速率α不能太小,否則下降的速度十分慢,α也不能太大,否則會超越目標,找不到最小值。
在線性回歸問題中我們就可以用梯度下降法來求回歸方程中的參數。有時候該方法也稱為批量梯度下降法,這里的批量指的是每時刻參數的更新使用到了所有的訓練樣本。

1.5 向量實現 Vectorized Implementation
在實際問題中很多變量都是向量的,所有如果要把每個分量都寫出來的話會很不方便,應該盡量寫成向量的形式。Vectorized Implementation指的是向量實現,上面的梯度下降法的參數更新公式可以用向量形式實現的。向量形式的公式簡單,且易用matlab編程。

二線性回歸II (Linear Regression II)
2.1 數據規范化 Feature Scaling
Feature scaling (數據規范化) 是數據挖掘或機器學習常用到的步驟,這個步驟有時對算法的效率和准確率都會產生巨大的影響。例如在機器學習中,如果包含兩個特征,一個的取值范圍為[50000,70000],而另一個特征取值范圍為[20,100],那么特征一將會大大影響到特征二,所以需要進行特征規范化,將他們放縮到一個相近的范圍。
在梯度下降法中,由於梯度下降法是按照梯度方向來收斂到極值的,如果輸入樣本各個維數的尺寸不同(即范圍不同),則這些參數的構成的等高線不同的方向胖瘦不同,這樣會導致參數的極值收斂速度極慢。因此在進行梯度下降法求參數前,需要進行feature scaling


Feature scaling的一般方法:

其中a可以是特征X的均值,b可以為x的最大值、(最大值-最小值)、標准差等。
2.2 學習速率 Learning Rate
接下來就是學習率對梯度下降法的影響。如果學習速率過大,這每次迭代就有可能出現超調的現象,會在極值點兩側不斷發散,最終損失函數的值是越變越大,而不是越來越小。如果學習速率太小,則該曲線下降得很慢,甚至在很多次迭代處曲線值保持不變。那到底該選什么值呢?這個一般是根據經驗來選取的,比如從…0.0001,0.001,.0.01,0.1,1.0…這些參數中選,看那個參數使得損失值和迭代次數之間的函數曲線下降速度最快。

2.3 特征和多項式回歸 Features and Polynomial Regression
同一個問題中我們可以選用不同的特征,比如單個面積特征其實是可以寫成長和寬兩個特征的。在使用多項式擬合模型時,不同的特征模型也會有所不同,每一項其實都代表着一個特征。


2.4 正規方程 Normal Equations
當用訓練樣本來進行數據的測試時,一般都會將所有的訓練數據整理成一個矩陣,矩陣的每一行就是一個訓練樣本,這樣的矩陣也叫做"design matrix"。下面的矩陣X就是

當用矩陣的形式來解多項式模型的參數時,我們希望
,進行求解:
(因為要求逆,所以要先轉成方陣)

這個方程也稱為normal equations.
Normal Equation 跟 Gradient Descent一樣,可以用來求權重向量θ。但它與Gradient Descent相比,既有優勢也有劣勢。優勢:Normal Equation可以不在意x特征的scale。劣勢:相比於Gradient Descent,Normal Equation需要大量的矩陣運算,特別是求矩陣的逆。在矩陣很大的情況下,會大大增加計算復雜性以及對計算機內存容量的要求。
雖然
是方陣,但是它的逆不一定存在(當一個方陣的逆矩陣不存在時,該方陣也稱為sigular)。比如說當X是單個元素0時,它的倒數不存在,這就是個Sigular矩陣,當然了這個例子太特殊了。另一個比較常見的例子就是參數的個數比訓練樣本的個數還要多時也是非可逆矩陣。這時候要求解的話就需要引入regularization項,或者去掉一些特征項redundant feature(典型的就是降維,去掉那些相關性強的特征)。
三邏輯回歸(Logistic Regression)
3.1 分類 Classification
上面講的函數一般都是回歸方面的,也就是說預測值是連續的,如果我們需要預測的值只有2種,要么是要么不是,即預測值要么是0要么是1,那么就是分類問題了。
3.2 模型 Model
我們需要有一個函數將原本的預測值映射到0到1之間,通常這個函數就是logistic function,或者叫做sigmoid function。因為這種函數值還是個連續的值,所以對logistic函數的解釋就是在給定x的值下輸出y值為1的概率。


3.3 優化目標 Optimization Objective
現討論損失函數的優化。首先損失函數應該是一個convex函數,即只有一個極值點,而不是non-convex函數,它存在很多極值點。

在線性回歸中,我們使用平方差來當做損失函數。

對於損失函數,我們希望訓練集中標簽值為1的那些樣本集,損失函數要求我們當預測值為1時,損失函數值最小(為0),當便簽值為0時,此時損失函數的值最大。

對於這樣的函數我們可以用log函數來當做損失函數。



我們可以將上面的損失函數進行整合:


平方差的損失函數求和后是non-convex的而log損失函數是convex的

3.4 梯度下降法GradientDescent

3.5 牛頓法Newton's Method

也就是求
的導數
,即最小值,令
,下面使用牛頓法求:
。當
(很小的值)停止迭代,得到參數值。


上面是在二維的情況下,如果在多維的情況下,其中H是hessian矩陣(多元函數的二階偏導數構成的方陣)

3.6 梯度下降VS牛頓法Gradient Descent vs Newton's Method
梯度下降法有參數學習速率,它需要更多次的迭代,不過每次迭代的復雜度是O(n);牛頓法沒有參數,它需要較少次的迭代,不過每次迭代的時間復雜度是O(n3),當特征數比較多的時候我們應該選擇梯度下降法,因為牛頓法每輪的計算量太大。

N的大小規定大致划分如下:

四正則化(Regularization)
4.1 過擬合問題The Problem of Overfitting
如果當系統的輸入特征有多個,而系統的訓練樣本比較少時,這樣就很容易造成over-fitting的問題。這種情況下要么通過降維方法來減小特征的個數(也可以通過模型選擇的方法),要么通過regularization的方法,通常情況下通過regularization方法在特征數很多的情況下是最有效,但是要求這些特征都只對最終的結果預測起少部分作用。

4.2 優化目標 Optimization Objective
規則項可以作用在參數上,讓最終的參數很小,當所有參數都很小的情況下,這些假設就是簡單假設(簡單假設是指零假設的參數集合僅僅包含一個元素的假設。),從而能夠不是很傾向於over-fitting的問題。一般對參數進行regularization時,前面都有一個懲罰系數,這個系數稱為regularization parameter,如果這個規則項系數太大的話,有可能導致系統所有的參數最終都很接近0,所有會出現欠擬合的現象。

4.3 規則項形式Common Variations
在多元線性回歸中,規則項一般懲罰的是參數1到n(當然有的也可以將參數0加入懲罰項,但不常見)。隨着訓練樣本的增加,這些規則項的作用在慢慢減小,因此學習到的系統的參數傾向而慢慢增加。規則項還有很多種形式,如L2-norm regularization(或者叫做2-norm regularization).當然了,還有L1-norm regularization。由於規則項的形式有很多種,所以這種情形也稱為規則項的common variations.


4.4 正則化的線性回歸 Regularized Linear Regression


4.5 正則化的邏輯回歸 Regularized Logistic Regression
步驟和前面說的一樣,只是在損失函數中加入了規則項。
梯度下降法:

牛頓法:

