機器學習基石筆記9——機器能夠怎樣學習(1)

轉載請註明出處:http://www.cnblogs.com/ymingjingr/p/4271742.htmlhtml

目錄

機器學習基石筆記1——在什麼時候可使用機器學習(1)

機器學習基石筆記2——在什麼時候可使用機器學習(2)

機器學習基石筆記3——在什麼時候可使用機器學習(3)(修改版)

機器學習基石筆記4——在什麼時候可使用機器學習(4)

機器學習基石筆記5——爲何機器能夠學習(1)

機器學習基石筆記6——爲何機器能夠學習(2)

機器學習基石筆記7——爲何機器能夠學習(3)

機器學習基石筆記8——爲何機器能夠學習(4)

機器學習基石筆記9——機器能夠怎樣學習(1)

機器學習基石筆記10——機器能夠怎樣學習(2)

機器學習基石筆記11——機器能夠怎樣學習(3)

機器學習基石筆記12——機器能夠怎樣學習(4)

機器學習基石筆記13——機器能夠怎樣學得更好(1)

機器學習基石筆記14——機器能夠怎樣學得更好(2)

機器學習基石筆記15——機器能夠怎樣學得更好(3)

機器學習基石筆記16——機器能夠怎樣學得更好(4)

 

9、Linear Regression

線性迴歸。算法

9.1 Linear Regression Problem

線性迴歸問題。數組

在第二章中提到的銀行發放信用卡問題,經過是否發放信用卡引出了二元分類問題;本章再次使用這個例子經過發放用戶多大額度的信用卡引出迴歸(regression)或者說線性迴歸(linear regression)的問題。迴歸問題與二元分類問題最大的不一樣在於輸出空間,二元分類的輸出空間爲二元標記,要麼+1要麼-1,而回歸問題的輸出空間是整個實數空間,即機器學習

以銀行發放信用卡爲例,輸入集合依然是用戶的特徵空間,如年齡,收入等等,可使用與二元分類一致的表示方式 ;由於輸出集合的轉變致使迴歸問題的假設函數與二元分類中的有所不一樣,但思想一致,仍需考慮對每一個輸入樣本的各個份量進行加權求和,所以最終目標函數f(含有噪音,使用y表示)的表示如公式9-1所示。函數

 

    (公式9-1)學習

 

而假設函數的向量表示如公式9-2所示。測試

 

    (公式9-2)優化

 

從公式9-2的表示方式能夠看出,與二元分類假設函數的表示只差了一個取正負號的函數sign。spa

使用圖像的方式更形象的描述線性迴歸,如圖9-1所示。設計

 

圖9-1 a) 1維輸入空間的線性迴歸 b) 2維空間的線性迴歸

 

圖9-1a中表示輸入空間爲1維的線性迴歸表示,其中圓圈○表示輸入樣本點,藍色直線表示假設函數,鏈接圓圈與藍色直線之間的紅色線段表示樣本點到假設函數的距離,稱爲剩餘偏差(residuals),在9-1b中有相似表示。而設計算法的核心思想是使整體剩餘偏差最小。

上一章中也提到過迴歸使用的錯誤衡量是平方偏差,所以如公式9-3所示。

 

    (公式9-3)

 

在線性迴歸問題中,假設函數h與權值向量存在着一一對應的關係,所以公式9-3一般表示爲權值向量的形式,如公式9-4所示。

 

    (公式9-4)

 

同理表示如公式9-5所示,注意這裏使用的是含有噪音的形式,所以服從聯合機率分佈P。

 

    (公式9-5)

 

VC限制能夠約束各類狀況的學習模型,固然迴歸類型的模型也被也受此約束,想要學習到知識,只須要尋找足夠小即可以知足夠小的需求。

 

9.2 Linear Regression Algorithm

線性迴歸算法。

此節重點是如何尋找最小的 ,爲了表達的簡便,將求和公式轉化成向量與矩陣的形式,將公式9-4轉換成公式9-6的形式。

 

(爲方便顯示將向量w與向量x位置交換,由於是向量內積,符合交換律)

(將平方求和轉換成矩陣平方的形式)

(再拆解成矩陣X和向量w與向量y的形式)

    (公式9-6)

 

再回到最初的目標尋找一個最小的,如公式9-7所示。

 

    (公式9-7)

 

求解此問題,須要瞭解左式,其一維(d=1時)示意圖如圖9-2所示。

 

圖9-2 一維示意圖

 

能夠看出該函數爲連續(continuous)、可微(differentiable)的凸(convex)函數,其中連續及可微的概念,學太高等數學的都應該有所瞭解,凸函數說的通俗點就如圖9-2所示,像一個山谷同樣的形式(注意國內數學教材中的凹函數是這裏凸函數的定義,有點囧),尋找的最佳即是山谷中的最低點,對應圖中的黑點,以數學的形式表示即梯度(gradient)爲0 的點。(我理解的梯度,大概意思是某一貫量其各個份量的偏導數組成的向量),梯度爲的表示方式如公式9-8所示。

 

    (公式9-8)

 

其中即梯度符號,須要尋找的是,該向量知足,這裏的下標表示線性linear的意思。緊接着的問題是如何求解時的

繼續對公式9-6作轉化,如公式9-9所示。

 

    (公式9-9)

 

其中用矩陣A表示,用向量b表示,用標量c表示,緊接着對求梯度。向量對向量求導數,可能不少人都沒有接觸甚至沒有據說過,最多也就是了解向量對某標量求導。可經過圖9-3在w爲標量狀況下的對比形式,理解求梯度的步驟。

 

 

圖9-3 a) w爲標量時求的梯度 b) w爲向量時求的梯度

 

線性代數的美妙之處就在於此,如此的類似。所以能夠寫成公式9-10的形式。

 

    (公式9-10)

 

令公式9-10求梯度結果爲0,即便最小。在輸入空間X與輸出向y都爲已知的狀況下,如何求解最佳的假設函數呢?求解該問題分爲兩種狀況,一是在可逆的狀況下,求解該問題很簡單,將公式9-10右邊的部分設爲0,如公式9-11。

 

    (公式9-11)

 

其中表示矩陣X的僞逆(pseudo-inverse),注意此處輸入矩陣X在不多的狀況下才是方陣(N=d+1時)。而這種僞逆矩陣的形式和方陣中的逆矩陣具備不少類似的性質,所以纔有此名稱。還有一點須要說明,在大部分的狀況下是可逆的,緣由是在進行機器學習時,一般知足 ,即樣本數量N遠遠大於樣本的維度d加1,所以在中存在足夠的自由度使其能夠知足可逆的條件。

另外一種是不可逆的狀況,實際上能夠獲得許多知足條件的解,只須要經過其餘的方式求解出,選擇其中一個知足條件的解。

總結下線性迴歸算法的求解過程,首先經過已知的數據集,構建輸入矩陣X與輸出向量y,如公式9-12所示。

 

    (公式9-12)

 

經過公式9-12直接求得僞逆

在經過公式9-11求得假設函數,如公式9-13所示。

 

    (公式9-13)

 

9.3 Generalization Issue

泛化問題。

本小節討論的問題理解起來不簡單,目前本身仍是隻知其一;不知其二,若有表述不正確的地方還但願指正。

首先要回答一個問題,上一小節中使用到的求解最佳假設函數的算法,是否能算是機器學習?

如回答不是,其理由很簡單,求解只一步就完成了,不像前面章節中提到的學習方法須要不少步的過程。實際上,這種求解方式在數學中被稱做解析解(analytical solution)或者叫封閉解或閉式解(closed-form solution),此種解是一些嚴格的公式,給出任意的自變量就能夠求出其因變量,一般與數值解對應。所以這種求解方式並不像以前提到的PLA等算法時一步一步迭代求出的的最小解。

回答是的理由更看重結果,這種直接求解方式是數學推導中的精確解,所以求出的必定是的最小解,符合求解條件,並且求解僞逆算法(此方法被稱爲高斯消元法,又見高斯,查了一下一共有110項以他名字命名的成果,整個機器學習筆記中你還會不斷的聽到以他命名的成果)並不是如公式展現中顯示的那樣,一步就能夠得出最終結果,而是須要幾回的循環迭代(觀察了矩陣求僞逆的程序,好像是三層循環,也就印證了NG在他機器學習課程中提到的矩陣求逆的複雜度爲 ),只是被程序封裝的看不出迭代的過程而已。而判斷是否發生機器學習過程最主要標準是學習到的是否夠好!

其實經過改進VC限制,也能夠證實在線性迴歸問題中VC起到了很好的約束做用,即找到了好的就能夠保證還不錯,這裏再也不證實,由於是件很是繁瑣的過程。此處只須要記住VC限制不僅在二元分類問題中起做用,在線性迴歸問題中也發揮着做用。

可是本節使用一種比VC限制更容易證實的保證,來講明解析解也能夠獲得一個好的

如下給出證實:爲何解析解求出的的結果是好的。而有關的證實與之相似。

首先觀察的平均,用符號表示,可寫成公式9-14所示。

 

    (公式9-14)

 

其中表示指望,不斷的從總體樣本空間中抽取樣本集,算其平均值,表示關於,表示數據中的噪音,N爲每次抽樣的樣本數量,d+1爲權值向量w的維度。

從上一節中得知,能夠將寫成公式9-15,注意使向量形式。

 

    (公式9-15)

 

其中I是 的單位矩陣,可使用的H矩陣(hat matrix)表示。

此處經過幾何圖形來更具體的瞭解H矩陣的物理意義,如圖9-4所示。

 

圖9-4 有關H矩陣的幾何圖形

 

其中紫色向量表示實際輸出向量y。

粉色區域表示輸入矩陣X乘以不一樣權值向量w所構成的空間,從這個定義得知,解析解求得最優權值向量所表示的輸出向量也落在該空間中,其中爲N維向量,不難想象正是實際輸出向量y在該空間上的投影。

而綠色虛線表示實際輸出與最優假設輸出之間的差距,寫做。從上述狀況可知

所以得知H矩陣是一個投影過程,向量是向量y經過矩陣H所作的投影,能夠將矩陣H理解爲一系列旋轉放縮的動做,有

的矩陣一樣也是一種線性變化, 是向量y經過的線性變化獲得的向量。

在圖9-4中再加入一點元素,構成圖9-5。

 

圖9-5 加入理想的目標輸出f(x)

 

若是實際輸出矩陣y由理想的目標輸出f(x)加上噪音部分共同構成(如圖中紅色和黑色虛線部分)。則其中的形式也能夠經過噪音按照的變換方式構成。所以,獲得公式9-16。

 

    (公式9-16)

 

其中是經過的跡(trace)得出的。在求解以前,能夠想象,由於通過兩次轉換所獲得的仍是第一次時的偏差向量,trace(I-H)的求解過程如公式9-17。(這裏爲何使用到跡,我至今都不知道,望大神指教)

 

(根據跡的性質

(根據跡的性質

    (公式9-17)

 

最終介紹下該I-H這種轉換的物理意義:原來有一個有N個自由度的向量y,投影到一個有d+1維的空間x(表明一列的自由度,即單一輸入樣本的參數),而餘數剩餘的自由度最大隻有N-(d+1)種。

最終能夠寫出的結果,同理也能夠寫出 的噪音表示,如公式9-18和公式9-19所示。

 

    (公式9-18)

 

    (公式9-19)

 

這個證實更爲複雜,我也沒有找到相關資料,就不證實了,在此只介紹一下,在哲學意義上,二者之間存在這個差別的緣由。

由於前者作了優化,因此 有機會比「理想值」多 fit 數據中的 噪音一點點,因此會比「理想值」好一點;但 的部份則要付出代價(想象在測試的時候,拿到了與訓練數據「徹底不一樣」的噪音),因此可能反而多遠離理想值一些。

從上面兩個公式能夠獲得一個學習鴻溝圖,如圖9-6所示。

圖9-6 機器學習的學習鴻溝

 

其中在N趨於無窮大時,二者都會趨近於noise level的值,即

泛化錯誤之間的差距:

至此能夠代表在線性迴歸中能夠尋找到很好的,所以線性迴歸能夠學習。

第一次吐糟,這一節的內容我整整寫了一天,是開始寫筆記至今,第一次一個小節寫了一天時間,普通狀況邊玩邊寫一天也能夠寫2到3小節,主要是這節內容確實很抽象,並且不少證實都沒有給出,給出的證實也沒有解釋清楚,多是我太笨了,唉,其中跡的證實就是我根據提示本身整理的,若有錯誤請指正,若是你瞭解這部分爲何莫名其妙的使用了跡的概念也請指點下我。

 

9.4 Linear Regression for Binary Classification

使用線性迴歸作二元分類。

首先對比二元線性分類與線性迴歸之間的差別,分別在三個部分進行對比,輸出空間、假設函數和錯誤衡量函數,如圖9-7所示。

 

圖9-7 二元線性分類與線性迴歸的對比

 

從求解問題的難度考慮,二元分類的求解是一個NP難問題,只能使用近似求解的方式,而線性迴歸經過求解析解,求解方便,程序編寫也簡單。

所以考慮可否經過求解線性迴歸的方式求二元分類問題,由於二元分類的輸出空間{-1,+1}屬於線性迴歸的輸出空間,即。其中數據集的標記大於零的表示+1,小於零的表示-1,經過線性迴歸求得的解析解,直接得出最優假設 。可是這種推理只符合直覺,而如何使用數學知識去說明這種方式的合理性呢?

觀察兩種錯誤衡量方式,分別表示爲公式9-20和公式9-21。

 

    (公式9-20)

 

    (公式9-21)

 

觀察兩公式的共同特色都含有這一貫量內積的形式,若是將做爲橫軸,將err結果做爲縱軸,能夠畫出圖9-8。

其中圖9-8a)爲y=+1時,兩err值的圖像表示;而圖9-8b)爲y=-1時,兩err值的圖像表示。兩幅圖中紅色的線表示,藍色的先表示

 

圖9-8 a)y=+1時,兩err值 的表示 b) y=-1時兩err值的表示

 

從圖中得出公式9-22的結論。

 

    (公式9-22)

 

回憶下第七章中證實的二元分類下的上限,結合公式9-22的結論,得公式9-23。

 

        (公式9-23)

 

所以二元分類問題獲得了一個更寬鬆的上界,可是也是一種更有效率的求解方式。

在實際運用中,通常都將經過線性迴歸求得的解析解做爲PLA或者pocket的初始值,達到快速求解的目的 。

相關文章
相關標籤/搜索