机器学习笔记(一)绪论
1.緒論
1.1引言
機器學習致力于研究如何通過計算的手段,利用經驗來改善系統自身的性能;經驗,則以數據的形式存在,故而,機器學習所研究的,正是在計算機上從數據中產生模型的算法,即學習算法。基于學習算法和經驗數據所產生的模型,可以應用到新情況的分析和判斷。
機器學習是研究關于學習算法的學科,比較形式化的定義是:假設用P來評估計算機程序在某任務類T上的性能,若一個程序通過利用經驗E在T中任務上獲得了性能改善,則就說關于T和P,該程序對E進行了學習。
模型用以泛指從數據中學得的結果。模型指全局性結果,如一顆決策樹;模型指局部性結果,如一條規則。機器學習是關于學習算法,通過學習算法,從經驗中(樣本數據中)訓練出一個模型,并應用模型。機器學習的關心點就是學習算法,能夠從經驗中提取模型。
1.2基本術語
1)關于數據的術語
數據是經驗的表示,是機器學習的基礎。一個數據集是一組記錄的集合,其中每條記錄是關于一個事件或對象的描述,稱為示例或樣本。
反映事件或對象在某方面的表現或性質的事項,稱為屬性或特征,如姓名;屬性或特征上的值,稱為屬性值,如張三;屬性張成的空間成為屬性空間或樣本空間或輸入空間或特征向量。如姓名、年齡、職業作為三個維度刻畫一個人這樣對象的特征,在三維空間中可以找到對應的點。
總結上這個關系,橫向上,屬性和屬性值構成一個對象,一個對象就是一條記錄,一組記錄構成一個集合就是數據集,關系就是屬性->記錄->數據集;縱向上,屬性和屬性值構成一個對象,一個對象就是一個特征向量,有多少個屬性就構成多少維的屬性空間,關系就是屬性->向量->空間。如下表:
數據集有m條記錄,每條記錄有n個維度刻畫。
現在形式化定義下特征向量及其維度:
2)關于學習的術語
從數據中學得模型的過程稱為學習或訓練,該過程通過執行某個學習算法來完成。訓練過程中使用的數據稱為訓練數據,其中每個樣本稱為一個訓練樣本,訓練樣本組成的集合稱為訓練集。學得模型體現了數據的某種潛在規律,是一種假設,而規律自身是真相或真實,學習過程就是不斷找出或逼近真相。將模型稱為學習器,是給定學習算法在給定數據和參數空間上的實例化。
學習到的模型,是要用來分析和預測新樣本,衡量這種能力的稱為泛化能力。泛化能力是指學得的模型適用于新樣本的能力。具有強泛化能力的模型能很好適用于整個樣本空間。
訓練集一般是整個樣本空間一個小的采樣,如何采樣可以很好地反映出樣本空間的特性?通過假設樣本空間中全體樣本服從一個未知分布(distribution)D,所獲得的樣本都是獨立且從該分布上采樣獲得,即獨立同分布(independent and identically distributed,簡稱i.i.d)。從一個服從分布D的樣本空間中采樣獨立的樣本作為訓練集,D分布和訓練集是正向互動,越多訓練集對D分布的信息掌握越多,就越有可能通過學習獲得具有強泛化能力。
總結下,需要掌握的概念:
第一:輸入空間,屬性和屬性值、記錄或特征向量、數據集(m條,d維);
第二:模型學習,監督學習(帶標記)和無監督學習(無標記);
第三:輸出空間,離散的分類和連續的回歸;聚類的簇;
第四:模型評估,泛化能力,獨立同分布D。
1.3假設空間
歸納(induction)和演繹(deduction)是科學推理的兩大基本手段。歸納,是從特殊到一般的泛化過程,從個體升華到規律;而演繹,則是從一般到特殊的特化過程,從規律(基礎原理)推演出具體情況。在數學證明中,這兩個是常見手法,如在數學公里系統中,基于一組公里和推理規則推導出與之相洽的定理,是為演繹。顯然,機器學習是從樣例中學習,從一個個具體樣例中總結出一個規則一個模型,這是一個歸納過程,稱之為歸納學習(inductive learning)。
歸納學習,廣義上指從樣例中學習,狹義是指從訓練數據中學得概念,即概念學習。概念學習過程是一個在所有假設組成的空間中進行搜索的過程,搜索目標是找到與訓練集匹配(fit)的假設。假設空間,就是樣本訓練集中所有可能的特征所有可能取值的規模。
訓練集中每條記錄的特征取值都是假設空間中的一個,我們定義假設空間中的一個假設(明確定義了特征及其取值),然后從訓練集中找出匹配的記錄,用以證明這個假設就是我們所要學習的概念。可以理解,假設空間就是記錄的類別集合,歸納學習就是判斷每個記錄屬于這個集合中的那個類別,這個類別就是一個概念,對屬于這個類別的訓練集進行學習就能獲得這個概念。
現實中,假設空間規模很大,而學習過程是基于有限樣本訓練集進行的,所以樣本集可能存在多個假設。比如對于二分類學習算法,我們希望從訓練集中學習到1或0的假設空間。可以這樣理解,假設空間是特征及其值得組合,從訓練集中學習到的假設就是概念。
1.4歸納偏好
通過對訓練集的學習得到的模型或概念是假設空間中的一個假設,但有時可能存在多個假設與其一致。就是說,特征的不同取值(不同的假設)可能是同樣的概念,這樣新的樣本就不知道分類到那個類別了,于是乎,對模型或假設的選取就很重要。選擇怎樣的模型更好呢?歸納偏好,機器學習算法在學習過程中對某種類型假設的偏好。歸納偏好,終歸也是去到特征及其值得選擇上。
歸納偏好,可以看做是學習算法的一種啟發式進化,在龐大的假設空間中進行偏好選擇。文中提到的存在多條曲線與有限樣本訓練集一致的案例,可以很清晰闡述。偏好選擇,采用什么策略呢?自然是具體算法和場景具體來定。奧卡姆剃刀的選擇原則是最基本的:若有多個假設與觀察一致,則選最簡單的那個。
選擇一個好的模型,就是模型評估中的泛化能力,歸納偏好則從假設空間中集合中找出一個最佳假設。文中通過對二分類問題的所有真實目標模型進行誤差求和,得出學習算法和誤差的無關性。而這個數學證明是基于真實目標函數是均分分布的。從這個過程中得出:一個學習算法的歸納偏好與問題本身相關。
至此,我們可以梳理出幾個重要概念:
1)假設空間,所有特征及其取值的組合,每種組合有一個目標(類別);
2)樣本空間,訓練集中的所有記錄;
3)歸納學習,建立樣本空間和假設空間的映射關系;
4)歸納偏好,當樣本空間對應多個假設時,選擇一個假設作為最佳模型;
1.5發展歷程
大致三個過程:基于邏輯推理的推理期(符號表示)、基于知識工程的知識學習(規則匹配)、基于統計數理的機器學習。
機器學習的發展歷程,也有賴于相關技術的突破和齊頭并進,如今的大數據實際是重要的助力。這里引入信息熵的定義。
信息熵:信息的量化度量,離散隨機事件的出現概率。信息的基本作用就是消除人們對事物的不確定性。信息的不確定性越大,熵也就越大,要掌握確切信息所需要的信息量也就越大。一個系統越是有序,信息熵就越低;反之,一個系統越是混亂,信息熵就越高;信息熵是系統有序化程度的一個度量。
通俗地理解,度量信息的熵,是用來指示信息的不確定性程度。熵越大,需要越多的信息來定義事件。那么怎么計算熵呢?
信息熵的一個重要應用領域就是自然語言處理。例如,一本50萬字的中文書平均有多少信息量。我們知道,常用的漢字約7000字。假如每個漢字等概率,那么大約需要約13比特(即13位二進制數,213=8192)表示一個漢字。
應用信息熵就是,一個漢字有7000種可能性,每個可能性等概率,所以一個漢字的信息熵是:
H=-((1/7000)·log(1/7000)+(1/7000)·log(1/7000)+…(1/7000)·log(1/7000))=12.77(bit)
實際上由于前10%漢字占常用文本的95%以上,再考慮詞語等上下文,每個漢字的信息熵大約是5比特左右。所以一本50萬字的中文書,信息量大約是250萬比特。需要注意這里的250萬比特是個平均數。
1.6應用現狀
大數據時代的三大關鍵技術:機器學習、云計算、眾包。收集、存儲、傳輸、管理大數據的最終目的還是利用數據,而機器學習顯然是重要的數據挖掘技術。
以大數據為應用標簽,旗下囊括了眾多技術,核心還是數據挖掘的機器學習。
人類如何學習?機器如何學習?我相信隨著大數據的相關技術和理論的逐步前進,機器學習也將不斷演化。有一天圖靈測試的結果,人類和機器應該是50%的,人機一體。
1.7閱讀材料
免費機器學習算法庫Weka:基于Java開發,http://www.cs.waikato.ac.nz/ml/weka/
總結
以上是生活随笔為你收集整理的机器学习笔记(一)绪论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MapReduce基础开发之十二Chai
- 下一篇: 机器学习知识点(一)文本字符信息熵Jav