1、引言算法
機器學習致力於研究如何經過計算的手段,利用經驗來改善系統自身的性能。機器學習
在計算機系統中,「經驗」一般以「數據」的形式存在,所以,機器學習所研究的主要內容,是關於在計算機上從數據中產生的「模型」的算法,即「學習算法」。有了學習算法,咱們就把經驗數據提供給它,它就能基於這些數據產生模型,在面對新的狀況時,模型會給咱們提供相應的判性能
2、基本術語 學習
一、屬性:反映事件或對象在某方面的表現或性質的事項測試
二、屬性值:屬性的取值spa
三、屬性空間:屬性張成的空間對象
四、特徵向量:空間中每一個點的座標向量blog
五、標記:關於示例結果的信息事件
六、樣例:擁有了標記信息的示例io
七、數據集:全部樣例組成的集合
八、學習:從數據中學得模型的過程
九、訓練集:訓練樣本組成的集合
十、真相(ground-truth):數據的潛在的某種規律
十一、測試:學得模型後,使用其進行預測得過程
十二、測試集:測試樣本組成得集合
1三、泛化能力:學得模型應用新樣本的能力。
舉例:
咱們已經知道了,機器學習是利用數據,從數據中概括出規律,並用來對新事物進行預測。因此,機器學習首先要有數據,假設咱們收集了一份關於西瓜的數據:
咱們把數據中的每一行稱爲一個示例或樣本;
反映事件或對象在某方面的表現或性質的事項,如:色澤、根蒂、敲聲,稱爲屬性或特徵;
屬性上的取值,例如:青綠、烏黑。稱爲屬性值或特徵值;
屬性值造成的集合稱爲屬性空間;
咱們把一個示例(樣本)稱爲一個特徵向量。
通常地,令 D={x1 , x2 , .. , xm } 表示包含 m 個示例的數據集,每一個示例由 d 個屬性描述(例如上面的西瓜數據使用了三個屬性),則每一個示例:
xi = ( xi1; xi2 ...; xid )
是 d 維樣本空間X中的一個向量,xi∈X,其中 xij 是xi在第 j 個屬性上的取值。d 稱爲樣本xi 的維數。
有了數據後,機器就能夠從數據中進行學習。從數據中學得模型的過程稱爲「學習」或「訓練」,這個過程經過執行某個學習算法來完成。
訓練過程當中使用的數據稱爲「訓練數據」,其中每一個樣本稱爲一個「訓練樣本」,訓練樣本組成的集合稱爲「訓練集」,學習過程就是爲了找出或逼近真相。
數據分爲訓練集和測試集,在測試集上的表現稱爲泛化能力。在評估泛化能力,一般比較預測值與真實值。
根據數據是否有標籤,能夠將機器學習方法分爲有監督方法和無監督方法。
若是數據有標籤,則爲有監督方法。有監督方法的兩大類任務,一個是迴歸,一個是分類。若是標籤爲連續值,它就是一個迴歸任務。若是標籤數據是離散值,那就是一個分類任務。
若是數據沒有標籤,就屬於無監督方法,聚類是一種典型無監督學習方法。俗話說「物以類聚、人以羣分」,聚類算法就是將數據劃分紅不一樣的組,組內的樣本具備很強的類似性,組間的樣本具備很強的差別性。
3、假設空間
1四、概括:特殊到通常的泛化過程
1五、演繹:從通常的特殊的特化過程
1六、概念學習:要求從訓練數據學得概念。
1七、布爾概念學習:對是、不是這樣的能夠表示成0/1布爾值的目標概念學習。
假設空間在已知屬性和屬性可能取值的狀況下,對全部可能知足目標的狀況的一種毫無遺漏的假設集合。
概括和演繹是推理的兩大手段,概括是特殊到通常的泛化過程,即從具體的事實歸結出通常性的規律,演繹是從通常到特殊的特化過程。
從樣例中學習的過程很顯然是一個概括的過程,所以也成爲概括學習。概括學習有狹義和廣義之分,廣義的概括學習大體至關於從樣例中學習,而狹義的概括學習則要求從訓練數據中學的概念(concept),所以亦稱爲「概念學習」或「概念造成」。
概念學習最基本的形式是布爾概念學習,即對「是」「不是」這樣的可表示爲0/1布爾值的目標概念的學習。
舉例:
學習得「好瓜」這樣一個概念能夠用一個布爾表達式進行表示:
問號表示還沒有肯定的取值,咱們學習目標爲「好瓜」,經過學習,將這些問號肯定下來,肯定問號的取值就是學習的過程。
學習的過程能夠看做一個在全部假設組成的空間中進行搜索的過程。搜索目標是找到與訓練集「匹配」的假設,即可以將訓練集中的瓜判斷正確的假設。除此還有一種取值用通配符*表示,表示不管取什麼值都合適。空集符號表示一種極端的概念,也許世界上根本不存在好瓜。假設的表示一旦肯定,假設空間及其規模大小就肯定了。
舉個例子,假設西瓜的好壞由「色澤」,「根蒂」以及「敲聲」決定,且"色澤"、"根蒂"和"敲聲"分別有三、三、3 種可能取值。
假設空間的大小即爲:(3+1)*(3+1)*(3+1)+1=65
能夠有許多策略對這個假設空間進行搜索,例如自頂向下、從通常到特殊,或是自底向上、從特殊到通常,搜索過程當中能夠不斷刪除與正例不同的假設、和(或)與反例一致的假設。最終將會得到與訓練集一致(即對全部訓練樣本可以進行正確判斷)的假設,這就是咱們學得的結果。
現實問題中咱們常面臨很大的假設空間,但學習過程是基於有限樣本訓練集進行的,所以,可能有多個假設和訓練集一致,即存在着一個與訓練集一致的「假設集合」,咱們稱之爲「版本空間」(version space)。
版本空間構建過程:對假設空間進行搜索,能夠自頂向下(通常到特殊),也能夠自底向上(特殊到通常),在搜索過程當中只保留與訓練集正例一致的假設。
分析:
新瓜:(色澤=青綠,根蒂=蜷縮,敲聲=沉悶),
(1)對於假設 (色澤=*) ⋀ (根蒂=蜷縮) ⋀ (敲聲=*),判斷好瓜
(2)對於假設(色澤=*) ⋀ (根蒂=蜷縮) ⋀ (敲聲=濁響),判斷壞瓜。
4、概括偏好
概括偏好(簡稱"偏好"):機器學習算法在學習過程當中對某種類型假設的偏好。說白了就是「什麼樣的模型更好」這一問題。
概括偏好可看做學習算法自身在一個可能很龐大的假設空間中對假設進行選擇的啓發式或「價值觀」。而在具體的現實問題中,學習算法自己所作的假設是否成立,也即算法的概括偏好是否與問題自己匹配,大多數時候直接決定了算法可否取得好的性能。
「奧卡姆剃刀」(Occam's razor):是一種經常使用的、天然科學研究中最基本的原則,即「如有多個假設與觀察一致,則選最簡單的那個」。
沒有免費的午飯定理(NFL):不管一個算法多麼笨拙,不管一個算法多麼聰明,他們的指望性能相同。脫離具體問題,空泛談論「什麼學習算法更好」毫無心義。