機器學習基本概念
Machine Learning:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
一、什麽是機器學習?(What)
上面的概念那面有些抽象,要理解什麽是機器學習,其實可以類比於人類的學習。假設一個場景:父母教三歲大的孩子認識什麽是西瓜。首先父母要給孩子看西瓜,然後告訴孩子這個是西瓜。這個過程抽象成下面這張流程圖:
孩子的學習過程是通過一些觀察,然後加上自我總結,就逐漸擁有了識別什麽是西瓜的技能。
與之相類似,機器學習就是通過對數據的“學習”,從而擁有某些特定技能的過程。(那技能是什麽呢?技能是某種表現的增進,例如我通過天天練習投籃,逐漸命中率達到一定水準,我就擁有了投籃技能。)
二、為什麽要使用機器學習?(Why)
對於不同的問題,我們選擇機器學習的原因不同,這些問題按照對於人類的難易來說,可以分為兩類:
1.很簡單的問題:
例如:識別手寫的數字是幾,這對於人類來說是一個極易的問題,那為什麽我們還要使用機器學習呢?因為通過機器學習的方式,我們可以讓機器來幫我們做這些“單調乏味”的工作,讓機器掌握識別手寫數字的技能之後,我們就能讓他們幫我們來分揀信件。如果把這項技能再進一步,讓機器掌握識別並理解地址信息,我們甚至可以用機器來分揀快遞。
例如:根據用戶信息,給不同的用戶推薦不同的廣告。對於人類來說,這幾乎是不可能的問題,因為不同的用戶有不同的特征,怎麽從這些海量的特征中判斷每一個用戶的喜好是什麽呢?並且用戶的喜好可能還在發生變化,舉個通俗一點的例子,比如某些用戶去年還喜歡吃西瓜,今年就討厭西瓜了。因此,從海量的數據中去人為的總結規律有很大的局限性,而使用機器學習的方式使得這類問題變得簡單。
三、什麽時候可以使用機器學習?(When)
1.存在某些隱含的模式(underlying pattern)可以被學習到。
舉一個反例:預測某個嬰兒下一次哭是奇數分鐘哭,還是偶數分鐘哭。這幾乎是一個隨機事件,所以不存在任何隱含的模式,因此也就不能使用機器學習的方式來解答。
如果規律很容易總結,那當然就不用使用機器學習了,直接代碼實現即可。
3.有相關的數據。
舉一個反例:預測世界末日什麽時候到來。顯然,因為我們沒有世界末日發生的相關數據,所以這個問題也無法用機器學習的方式來解答。
四、機器學習的組成
上圖可以看作是整個機器學習過程的組成。
首先從我們的數據出發,它們的具體形式是x到y的映射,比如我們的問題是預測某套房子的房價。那麽我的X包括房子面積、房子樓層、是否是電梯房等等特征,Y就是房子的價格。正因為存在某種規律,才使得我們獲得的數據按照訓練集的每一個x對應唯一一個y。我們用 f 來表示這個X到Y的映射關系(即隱含規律)。
那麽如何去求得這個 f 呢?一般地,我們首先會把範圍擴大到一個假設集合(稱作 H ),比如我們假設房子價格與它的所有特征都是呈線性關系,那麽這個假設集合就是一個線性假設集,那如何在這個無限大的假設集 H 中找到我們想要得到的 f 呢,那就需要通過機器學習演算法來實現,我們用 A 表示這個算法。
那這樣我們就能求得 f 了嗎?答案是否定的,因為很多時候由於數據噪聲等原因,我們無法獲得一個精確的 f ,而只能獲得某一個映射關系 g ,使得 g 最接近這個 f,我們把這個 g 稱為最終預測。
一般地,機器學習為了求得隱含的規律,在假設集合上通過演算法對訓練集進行“訓練”,使求得的預測規律最接近隱含規律。
五、機器學習、數據挖掘、人工智能、統計學的關系
機器學習:
利用數據計算出一個近似隱含規律的預測規律。
數據挖掘:
利用海量的數據去尋找一些有意思的數據特征、規律。
機器學習與數據挖掘的關系:
如果數據挖掘的目標是去尋找數據間的隱含規律,那麽數據挖掘和機器學習做的事情是一樣的。但是傳統的數據挖掘總是著眼於大數據的高效計算。(比如分布式計算框架)
人工智能:
讓計算機做(模擬)一些像人一樣的智能行為。
機器學習與人工智能的關系:
機器學習是實現人工智能的一種途徑,除此之外,還有一些其他的方式可以實現人工智能。
統計學:
利用數據對一些未知的過程做預測。
機器學習與統計學的關系:
統計學的很多知識都可以被借鑒到機器學習中,但是機器學習中也有很多算法不是基於統計學的規律的。
參考資料:
《機器學習基石》【林軒田】(來源於Youtube)
機器學習基本概念