機器學習:介紹及分類 (1)

自己歸納下最近在學的機器學習的知識,主要來源於在coursera上聽的機器學習基石這門課,這門課是臺灣大學的林軒田老師開的,側重介紹了機器學習的原理,講述了什麼時候可以使用機器學習,爲什麼可以使用機器學習,機器可以怎麼學習,怎麼讓機器學的更好,更側重於理論和思想,學完這門課基本可以跟朋友們扯扯什麼是機器學習了,哈哈

本篇博文主要介紹下什麼是機器學習,還有常見的幾種分類,還比較淺顯,不涉及算法,算法的介紹的話等之後寫的稍微多點再寫吧。大笑


一、機器學習介紹

機器學習涉及的概念和學科特別多,主要是數學和計算機,通過計算機實現由數據推導而來的各種算法,目的就是讓機器(計算機)模擬人類的學習行爲,獲得技能(skill),幫助進行預測和識別(如識別圖像)。一般來說,人通過觀察,學習,掌握一項技能。而機器則是通過數據,ML(Machine Learning,在計算機內部叫做演算法Algorithm),來掌握一項技能(多爲預測、識別)。

人的學習基本是每時每刻的,我們的五感每時每刻都在接收着外界的信息,並把這些信息的特徵提取出來進行識別,然後分類。就像一個你認識的人突然出現在你面前,你幾乎就能馬上識別出他是誰誰,這是因爲我們的大腦在一瞬間對這個人提取了特徵,例如:這是一個人→這是一個男人→這是一個短髮的男人→他的臉是XXX,通過對這些特徵的提取,使得我們能識別並進行分類。機器目前的識別還無法達到這麼快速,不過已經能在某些領域得到很好的應用了,如自動駕駛,便是採用的神經網絡,通過傳感器傳遞路上的路標和周圍的車輛情況,完成自動駕駛任務。

現在應用比較廣泛的主要是人工智能,數據挖掘等。關於數據挖掘,還是有點小小的區別,機器學習的目的是通過學習獲得某項技能,這項技能本來就是用來決策某些事情,而數據挖掘則是從歷史數據中發現“有趣”的東西(KDD:knowledge discovery of dataset,知識發現),這項東西可以幫助人們進行更好的決策。

 


之所以需要機器學習的原因:

1、數據量龐大,且人無法獲取

2、人的處理無法滿足需求或者需要定義的規則太多。

 

關於第二點,舉個通俗的例子。例如:一張圖片,要判斷這是不是一張含樹的圖片,如果要通過定義來讓機器識別,恐怕要幾百個定義還未必能讓機器正確識別,所以就需要用到機器學習。設定一個初始值,讓機器通過演算來最終獲得這項識別的技能。

 

那要使用機器學習一般要滿足什麼條件?如下:

1、要有數據,沒有數據學個蛋蛋。

2、數據要存在某種模式,這種模式可以通過學習來發現或提高。

3、這種規則比較難定義。

 

瞭解了機器學習的原理和使用條件,我們接下來介紹下機器學習的一般組成元素:

將各個部分抽象成如下的數學符號。以視頻中提到的銀行是否會發布信用卡給客戶的案例來解釋:

1.輸入(input):xX(代表銀行所掌握的用戶信息)

2.輸出(output):yY (是否會發信用卡給用戶)

3.未知的函數,即目標函數(targetfunction):f:XY(理想的信用卡發放公式)

4.數據或者叫做資料(data),即訓練樣本(training examples):D = {(x1,y1), (x2,y2 ),…, (xn,yn )}(銀行的歷史記錄)

5.假設(hypothesis),即前面提到的技能,能夠具有更好地表現:g:XY (能夠學習到的公式)

可以通過一個簡單的流程圖表示,如圖1-2所示。


圖1-2 機器學習的簡單流程圖

從圖中可以清楚機器學習就是從我們未知但是卻存在的一個規則或者公式f中得到大量的數據或者說資料(訓練樣本),在這些資料的基礎上得到一個近似於未知規則g的過程。

這麼說還是有點抽象,特別是目標函數f又是未知的,那爲什麼還能找到一個假設g能夠接近f呢?

還是以一個更加詳細的流程圖來說明這一問題,如下圖1-3。


圖1-3 詳細的機器學習流程圖

這個流程圖和圖1-2有些不同,其中ML被更詳細的定義爲機器學習算法(learningalgorithm)一般用A表示。還多出來一個新的項目,就是假設空間或者叫做假設集合(hypothesis set)一般用H表示,它是包含各種各樣的假設,其中包括好的假設和壞的假設,而這時A的作用就體現了,它可以從H這個集合中挑選出它認爲最好的假設作爲g。

注:

1、這裏還要說明的是機器學習的輸入在這個流程圖中就變成了兩個部分,一個是訓練樣本集,而另一個就是假設空間H。

2、還有一點需要注意的是,我們所說的機器學習模型在這個流程圖中也不僅僅是算法A,而且還包含了假設空間H。

3、給出了機器學習的一個更準確點的定義,就是通過數據來計算得到一個假設g使它接近未知目標函數f。

 


小結:以上主要介紹了

什麼是機器學習

爲什麼要使用機器學習

具有什麼條件時可以使用機器學習

機器學習主要有哪些元素

 

 二、機器學習的分類

1、按照輸出空間的不同來分類

①二元分類:輸出y有+1和-1兩種,二元分類問題主要包括:線性可分、線性不可分、多項式可分,如下:



二元分類問題是機器學習中很重要的一類問題,因爲他可以衍生出多元分類的問題,所以這方面的算法研究特別多。

②多元分類:輸出不止兩種,如圖像識別水果,可能有蘋果,梨,香蕉等分類

③線性迴歸:輸出爲連續的實數範圍,例如通過用戶的數據來預測用戶的年收入範圍,年收入是一個連續的數值。

④邏輯(logistic)迴歸:輸出爲二元0/1,但實際是一個概率p,實質是以線性迴歸爲基礎衍生出的一種迴歸。例如仍以銀行發佈信用卡爲例,二元分類給出的答案是發或不發,邏輯迴歸則給出對當下這種特徵的用戶,他有多大的概率會使用信用卡,然後我們決定是要給這樣的用戶發或不發信用卡。

⑤結構學習等

 

2、按學習方式分類

①監督式學習

監督式學習就是有輸入數據X和真實數據Y,讓機器不斷試錯,擬合,就是有題目跟正確答案,讓機器不斷向正確答案靠攏

②非監督式學習

非監督式學習常用於聚類或分羣。他沒有給定y,只能將所輸入的數據按照某種學習到的規則來對其進行分類。如分硬幣問題,不告訴你硬幣總共有1毛,5毛,1元的輸出y,而是讓機器根據硬幣的體積和質量來自動判斷有幾個類別。


PS:區分聚類和分類。分類的意思是已經給出了總共有多少類,讓你根據類別進行劃分,而聚類則是根據從數據間發現的某種規則分類,讓同類間的相似性最大,不同類間的相似性最小。

③半監督式學習

輸入數據集X中有少部分有標記的Y和絕大部分無標記,通過這種方式來學習。常用於標記代價特別昂貴的時候。

④強化學習

強化學習指對機器得出的結果給予good和bad的判斷,通過這種方式來引導機器學習,有點類似於對寵物下命令,當寵物做出符合命令的動作時,就餵給他們食物作爲獎勵,一點點引導。

 

3、按照獲取輸入數據集的方式

①批量(batch)學習:將很多數據一次性餵給機器,最普遍的方式

②線上(online)學習:一點一點將數據餵給機器,如增強學習,屬於引導式,越來越正確。

③主動(active)學習:通過提問題的方式來讓算法解決,節省標記的時間。如字母識別,讓機器抽出他還無法識別的字,問人這是’你’還是’您’,通過這種主動讓機器提問題的方式來學習。


小結:以上主要介紹了幾種常見的對機器學習種類的劃分,不同的劃分方式之間並不存在很明顯的界限,如監督式學習,經常採用的就是批量學習式的方式,一次性餵給機器很多的資料讓他去演算,而強化學習一般採用線上學習,一點一點的引導機器學習。

 

三、機器學習的輸入數據集(data)分類

我們把一個具體x叫做一個實例,x上有很多維度分別來表示他的不同特徵,或叫屬性,如x1=(a1,a2,a3,a4)仍以銀行是否發給用戶信用卡爲例,這裏x可能代表一個指定的人,而其中的a1表示用戶ID,a2表示是否有貸款,a3代表婚否,a4代表年收入

1、常用分類

①具體特徵(concrete):我們一般使用的數據就是這類數據,具有某些具體可描述的有意義的數據,例如身高,體重等。

②原始特徵:這類數據通常也需經過處理,一般像一張照片,他的像素點儲存的信息我們就把他叫做原始數據。

③抽象特徵:這類數據幾乎不可用,如用戶ID等,不具有特殊的意義,需要轉化爲具體特徵才行。

 2、

數據還可以進一步劃分爲分類型數據和數量型數據。

分類型數據(離散型)又可以從兩個尺度來衡量,一個是名義尺度,一個是順序尺度。名義尺度用來識別個體所屬的類別,如水果裏代表蘋果、梨、香蕉的這一欄屬性,他們的排列順序沒有意義;順序尺度則表示數據的排列或等級意義明確,如評價一欄裏的好、普通、差,按順序呈現出了差別。此外,要注意的是,即使將蘋果梨香蕉抽象成用數字1,2,3來表示,他仍然是名義尺度,他們的排列順序沒有意義。

②數量型數據(連續型),同樣有兩個衡量的尺度,間隔尺度和比率尺度。他們是從連續的角度來衡量的,所以他們始終是數值型數據。如學生的分數排列就可以劃分爲間隔尺度,而汽車的售價這種可以直接進行比較來得出XX車是X車的售價多少倍的尺度則是比較尺度,也就是說比較尺度比間隔尺度多了一個可以用倍數來表示的功能,而前面的學生分數則不行。(其實個人感覺這兩個尺度區別不大,實際操作的時候一般也就直接叫數值型數據,不會刻意再細分這兩個尺度)



四、機器學習幾大算法

機器學習目前比較火的算法主要如下:


還有最近特別火的深度學習,基本上是多層神經網絡的別名,這些算法我也是最近剛開始瞭解,還在學習中,目前看了Mitchell的<機器學習>,瞭解了幾種常見算法的推導和應用範圍,之後會針對每個算法總結一下!


 



以上內容主要來源於coursera的機器學習基石課程,同時還參考了杜少的博客和經濟統計學的課本,要是有什麼寫的不對的,歡迎大家一起探討哈~畢竟我還只是個初學者,共勉!

附杜少博客:

http://www.cnblogs.com/ymingjingr/p/4271742.html

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章