上節講的是非線性分類模型,通過線性與非線性空間之間的變換,將非線性模型映轉換為線性模型,再進行分類,分析了非線性變換可能會使計算複雜度增加。強調了緯度和負責度之間的關係。這節中,這種模型複雜度增加帶來機器學習中乙個很常見的問題——過擬合。
機器學習的終極目標就是為了**,當然**前我們要對資料進行訓練。用原生資料來直接訓練的話,有乙個問題就是我們設計的分類器在訓練集上會得到很好的表現,但在測試集上的表現卻變得非常差。造成過擬合(overfitting)的問題。
隨著緯度的上公升,有限的樣本空間會越來越稀疏,訓練樣本多少需要隨著維度指數增長,每個樣本越來越不可能符合所有維度(特徵),這使得大部分樣本都變成了雜訊,訓練的時間還會加長。
因此模型出現在訓練集上表現良好,但對新資料缺乏泛化能力的現象。
如果訓練集可以達到理論上的無限個,那麼就不存在維度災難,我們可以用無限個維度去得到乙個完美的分類器。訓練集樣本越少,越應該用少量的特徵,如果n個訓練樣本足夠覆蓋乙個一維的特徵空間(區間大小為乙個單位),那麼 需要n^2個樣本去覆蓋乙個同樣密度的二維的特徵空間,需要n^3個樣本去覆蓋三維的特徵空間。
這些就是過擬合和維度災難。老師又提出乙個概念叫bad generation
bad generation和overfitting的關係可以理解為:overfitting是vc dimension(緯度)過大的乙個過程,bad generation是overfitting的結果。
如果這樣不理解我們看乙個現實中的例子:
用開車的例子模擬過擬合:
- 開車(學習的過程)
- 出車禍(過擬合)
- 開車開太快(緯度太高)
- 路不好(噪音)
- 對路況不熟悉(資料量大小限制)
現在我們知道了,緯度、噪音和資料大小就是影響過擬合現象的因素。
下面看看噪音和資料大小對這個現象的影響
我們進行這樣乙個實驗,試驗中的資料集比較小。首先,在二維平面上,乙個模型的分布由目標函式,乙個x的10階多項式,加上一些噪音構成,下圖中,離散的圓圈是資料集,目標函式是藍色的曲線。資料沒有完全落在曲線上,是因為加入了噪音。
在來乙個x的10階多項式,但是不加上噪音,下圖中,離散的圓圈是資料集,目標函式是藍色的曲線。可以看出由於沒有噪音,資料集完全落在曲線上。
下面用兩個學習模型,進行學習,首先第乙個目標就是看待多項式中的噪音問題,這兩個模型如下:
從這裡我們可以看到,上面兩個問題中,10階模型都發生了過擬合,反而2階的模型卻表現得相對不錯。這好像違背了我們的第一感覺,比如對於目標函式是10階多項式,加上noise的模型,按道理來說應該是10階的模型更能接近於目標函式,因為它們階數相同。但是,事實卻是2階模型泛化能力更強。這種現象產生的原因,從哲學上來說,就是「以退為進」。有時候,簡單的學習模型反而能表現的更好。
下面從學習曲線來分析一下具體的原因,學習曲線描述的是ein和eout隨著資料量n的變化趨勢。下圖中左邊是2階學習模型的學習曲線,右邊是10階學習模型的學習曲線。
我們得出乙個結論:
緯度越高約有可能造成過擬合,資料越少也越容易造成過擬合,這種情況,緯度越少的學習模型會有更好的ein和eout的關係。
我們接下來將上一部分的模型泛化,第一部分是目標函式f(x),qf階多項式;第二部分是雜訊ϵ,服從gaussian分布。
如圖:
這個圖中,我們進行對噪音強度的不同和資料量的不同進行分析,這邊直接給出分析結果(訓練步驟不做說明,因為機器學習基石也只是想說明資料學習的過擬合現象)
上圖中,紅色越深,代表overfiting程度越高,藍色越深,代表overfiting程度越低。
根據圖中的情況:
分別是,資料少,隨機噪音多,固定噪音少,緯度更高的模型會有更大的可能產生過擬合。
還記得上面的開車的例子嗎,現在我們敘述的就是如何開車,這樣不會撞車:
台大 林軒田老師 機器學習基石學習筆記2
第一節課中,主要講解的是機器學習的基本思路和相關的應用,算是一種對機器學習的大致介紹和簡單的科普。到了第二講,林老師將重點放在了pla演算法上,通過這個演算法讓機器學習的演演算法大門正式開啟了。對於機器學習,類似人的成長一般,一般是先學會判斷是和不是,所以這一講是介紹一種可以回答是非題的機器學習演演...
力薦 台大林軒田《機器學習基石》資源彙總
原文 重磅 吳恩達新書 machine learning yearning 最新版分享 紅色石頭的個人 redstonewill.com 首先附上這門課的主頁 hsuan tien lin 機器學習基石 機器學習基石 林軒田 這門課主要涉及機器學習關鍵問題的四個方面 其中每個方面包含4節課,總共有1...
《機器學習基石》內容總覽(台大林軒田版)
第一部分課程 foundation oriented 主要講解機器學習的基礎知識 1.課程內容 該課程主要闡述關於機器學習 ml 的四個問題 1.1什麼時候用ml?明確用ml解決某一問題的可行性 看該問題是否能抽象成具體的ml常規問題 分類 回歸之類 1.2為什麼要用ml?機器學習作為解決問題的方法...