機器學習知識體系 - 線性回歸


這是機器學習知識體系中的線性回歸內容,完整的知識體系可以查看這里

機器學習

什么是機器學習?業界有如下定義:

• ArthurSamuel(1959).MachineLearning:Fieldof study that gives computers the ability to learn without being explicitly programmed.

• TomMitchell(1998)Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E. 

通常情況下,人類進行編程讓機器完成一項工作,需要事先定義好一系列程序邏輯,機器然后根據編寫的代碼來執行,這種方式其實人類定義的規則,機器僅僅是運算執行而已。機器學習強調的是“without explicitly programmed”,通過機器根據某些經驗數據,自我歸納總結算法,從而對一些新的數據進行准確的預測推導。

常見的應用場景包括:

1. 數據挖掘

2. 手寫識別、自然語言處理(NLP)、計算機視覺

3. 產品推薦系統

4. ...

 

監督學習和無監督學習

機器學習方式大體上分為兩種類別:監督學習和非監督學習。

監督學習指的是人類給機器一大堆標示(label)過的數據,通常指機器通過學習一系列(, )數據,X代表輸入數據(特征Feature),Y代表輸出數據,然后自我推導到X -> Y的公式,用於未來其他數據的預測判斷使用。監督學習根據輸出數據又分為回歸問題(Regression)和分類問題(Classfication)。回歸問題通常輸出是一個連續的數值,分類問題的輸出是幾個特定的數值。

舉例如下:

(a) 回歸問題 - 給定一張人臉照片,估計出這個人的年齡(年齡輸出是一個連續的數值)

(b) 分類問題 - 假定一個人患有腫瘤,判斷是為惡性還是良性(惡性和良性的輸出是幾個特定的數值)

 

                        回歸問題 - 房價預測

 

                         分類問題 - 腫瘤惡性/良性判斷

 

無監督學習所學習的數據沒有屬性或標簽這一概念 也就是說所有的數據都是一樣的沒有區別,通常給的數據是一系列(),並不存在Y的輸出數據。所以在無監督學習中,我們只有一個數據集,沒人告訴我們該怎么做,我們也不知道每個數據點究竟是什么意思,相反它只告訴我們現在有一個數據集,你能在其中找到某種結構嗎?對於給定的數據集,無監督學習算法可能判定,該數據集包含不同的聚類,並且能夠歸納出哪些數據是一個聚類。

 

模型表達

在建立數學模型之前,先約定好一些表達形式:

 - 代表輸入數據 (features)

 - 代表輸出數據(target)

 - 代表一組訓練數據(training example) 

m - 代表訓練數據的個數

n - 代表特征數量

監督學習目標就是,假定給一組訓練數據,可以學習到一個函數方法h,可以使得h(x) -> y。這個函數方法h被稱為假設(hypothesis)。整體流程如下:

 

代價函數

對於線性回歸而言,函數h的表達式如下:

我們通常指定:

如果使用線性代數來表達的話

 ,  

, 其中矩陣的轉置(Transpose)。

 

那么對於一系列訓練數據,如何獲得最優的成為解決問題的核心。直觀上而言,我們希望獲取一組值,使得h(x)越接近y越好。於是定義這個衡量標准為代價函數(Cost Function)如下:

這個函數又稱為Squared Error Function。

 

我們看下兩個參數的Cost Function圖像通常如下:

它是一個弓形的圖像,這個弓形的最低點就是的最優解。

 

梯度下降算法

對於線性回歸問題,我們需要解決的事情往往如下:

定義出Cost Function - 

希望能夠找到一組,能夠最小化,即

 

梯度下降算法步驟如下:

1. 隨機選擇一組

2. 不斷的變化,讓變小

j=0,1,...n,是所有n+1個值同時進行變化。α 是代表學習速率。 是Cost Function對的偏導數。

3. 直到尋找到最小值

 

偏導求解如下:

 

因此最終的梯度下降算法表達如下:

從Cost Function的圖上,我們可以看到選擇最優解的過程

           尋找到局部最優解1

                尋找到局部最優解2

 

從上面兩個圖可以看出,尋找最優解的過程很想是在下山,沿着下山的路下來,並最終到達一個局部的底部保持不變。

 

正規方程Normal Equation

梯度下降算法給出了一種方法可以最小化Cost Function。正規方程(Normal Equation)是另外一種方法,它使用非常直接的方式而不需要進行迭代的算法。在這個方法中,我們通過對J取對應的的偏導數,然后將偏導數設置為0。通過推導,正規方程如下:

 

梯度下降算法和正規方程對比如下:

梯度下降算法 正規方程
需要選擇學習速率參數    不需要學習速率參數    
需要很多次迭代 不需要迭代
 
n如果很大依舊還能工作    n如果很大,速度會非常慢  

因此兩種方法能否工作取決於n(特征x的數量)的大小,如果n很大(> 10000),那么使用梯度下降算法是比較明智的選擇。

 

=================華麗的分割線===========================

有興趣同學可以關注微信公眾號奶爸碼農,不定期分享投資理財、IT相關內容:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM