機器學習---歸納學習


人類的學習:經驗→(大腦思考)→規律

機器的歸納學習:數據→(學習算法)→模型

學習算法是一個模擬人類大腦思考的過程。

1)數據:

數據存儲於計算機中,以訓練集D的形式存在,D={x1 ,x2 ,... ,xm}其中x1~m為m個樣本(示例)

樣本x ={xi1,xi2,...,xid}→產生d維樣本(示例、輸入)空間

有監督:則y為x 標記,y 的集合→標記(輸出)空間

x+y→(x,y)稱為樣例

2)學習算法:

目的:由訓練集學習出從輸入(樣本、示例)空間到輸出(標記)空間的映射 x → y 模型。

流程:假設空間→(與訓練集一致)→版本空間→(歸納偏好)→模型

在全部的假設空間中,與訓練集一致的很可能不止一個,這些都與訓練集一致的假設空間就構成了版本空間。

在眾多的版本空間里,需要進一步篩選出最符合實際情況的模型,就得依靠歸納偏好(模型評估與選擇)了。

那么問題來了,如何判斷訓練出的模型與實際的擬合程度呢?答案是誤差分析。

誤差的分析:

  1.留出法:將訓練集D在分層采樣(保證數據分布一致性)的條件下N次划分為樣本集S和測試集T,結果取平均值,注意,在這里,S、T的划分是有講究的,若S過多,T過少,得出的誤差結果則不夠准確,若S過少,T過多,訓練出的模型則不夠准確,一般划分為S:D=2/3 or 4/5,為了擺脫S:T的誤差,可以使用留一法:設共有K個樣本,將K-1個樣本作為訓練集,余下一個作為測試集,反復測試K次取平均值,但是,這個方法也有個困擾,那就是在樣本很多的情況下去采用留一法很費時間,不切實際,另外,留一法也未必永遠比其他方法准確。

  2.交叉驗證法:將樣本集D進行N次划分為K個分層采樣的子集,每次采用K-1個作為訓練集,余下一個作為測試集,結果取平均值,故也稱為N次K折交叉驗證,其實留一法就是只有一個子集(為全集)的N次M折交叉驗證。

  3.自助法:給定包含m 個樣本的樣本集D , 每次隨機從D 中挑選一個樣本,將其拷貝放入D ' 然后再將該樣本放回數據集D 中,重復執行m 次后,就得到了包含m個樣本的數據集D ',而D 中有一部分樣本會在D '中多次出現,而另一部分樣本不出現。

不被選中的概率為:

 

 將未被選到的數據(約1/3)用作測試集,這樣得到的結果也稱為包外估計。但自助法改變了數據集的分布,會產生偏差,所以數據較多時更常使用留出法/交叉驗證法。

機器學習將訓練集上的誤差稱為訓練誤差,將測試集上的誤差稱為測試誤差,新對象應用該模型產生的誤差稱為泛化誤差,我們不能得到泛化誤差,只能用測試誤差來近似。

注意:訓練集具有普適的一般性質和特定於該訓練集的特殊性質,若模型未能訓練到得到一般性質,則成為欠擬合,反之,若訓練得過度了,連特殊性質也學來了,那就是過擬合

舉個例子,若訓練集是一些紅蘋果,若測試集給出的是一棵蘋果樹,欠擬合會誤將整個蘋果樹識別為蘋果,若測試集是一個青蘋果,過擬合會誤將青蘋果識別為不是蘋果,可見欠/過擬合都不能對對象進行正確的歸納,測試誤差過高/過低都是不適宜的。

TBD


免責聲明!

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



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