什麼是機器學習

Lei Jun發表於2014-11-11

本文主要透過一個典型的例子介紹什麼是機器學習以及機器學習裡常見的一些概念。

例子

一個顧客想申請招商銀行信用卡,招商銀行讓這個顧客填寫一些基本資料,假設整個申請表一共只有五項(真實的申請表會被這五個選項要多得多)。

性別
年齡 23
工作年限 0.5
年收入 10萬
負債 1萬

假如你是招商銀行信用卡負責人,你會給她發放信用卡嗎?實際上你想知道的是給她發放信用卡對銀行有好處還是壞處。你可能有點摸不著頭腦,不知道到底是給不給這位顧客傳送信用卡,正在焦頭爛額之時,領導又來電話了:“張某某上上個月刷了一萬塊,還款日都過去半個月了,怎麼還不見他還錢?當初是怎麼透過他的稽核給他傳送信用卡的?blabla。。。”這時候你多麼希望手上掌握一個非常完美的公式,只要用這個公式一算,得到一個分數,就知道是不是應該給張某某,李某某。。。發放信用卡啊,而且這個完美的公式的確很完美,不會犯錯誤。無奈你根本找不到這個公式,於是你想憑藉自己的聰明才智攢一個公式出來,所以你想整理一下已經擁有行用卡的顧客的消費資料,希望根據這些資料發明一個公式,而且這個公式跟那個完美的公式長得越像越好。

從這個例子,我們引出一些基本概念:

輸入空間(Input)

輸入所有可能取值的集合。上面的例子,輸入實際上是一個五維的向量,所以輸入空間就是這個向量所有的可能取值。

輸出空間(Output)

輸出所有可能取值的集合。上面的例子,輸出空間就是是和否,或者有好處,有壞處...

輸入空間和輸出空間可以是同一個空間,也可以是不同的空間,通常輸出空間遠小於輸入空間。

目標函式(Target function)

就是例子中的完美公式。

訓練資料集(Training data)

例子中已經擁有信用卡的顧客的消費資料。

假設(Hypothesis)

例子中發明的公式就是一個假設。

我們期望的是“假設”和“目標函式”長得越像越好,那到底“假設”長什麼樣呢?

假設1:年收入大於8萬就發放信用卡,小於8萬就不發。

假設2:女性就發放信用卡,否則不發。

。。。

假設N:。。。

假設空間(Hypothesis set)

所有上面的那些假設就構成了假設空間,一般假設空間裡的假設有無窮多個。

模型(Model)

在李航博士的統計學習方法裡,假設又可以叫模型,如果模型是一個線性模型,那模型對應的假設空間就是所有線性函式構成的函式集合。

策略(Strategy)

有了模型的假設空間,接下來需要考慮的是採取什麼樣的準則選擇最優的模型。一般都是先定義好風險損失函式,採取最小化損失函式的策略。

演算法(Algorithm)

演算法是指學習模型的具體計算方法,一般如我們常說的梯度下降法,牛頓法,向後傳播演算法等等。

 

最後借用臺灣國立大學林軒田老師的一副圖來描述什麼是機器學習:Machine learning is using "data" to compute hypothesis "g" that approximates target "f"。

 

 

典型機器學習例子

  • 垃圾郵件檢測:根據郵箱中的郵件,識別哪些是垃圾郵件,哪些不是。這樣的模型,可以程式幫助歸類垃圾郵件和非垃圾郵件。這個例子,我們應該都不陌生。
  • 信用卡欺詐檢測:根據使用者一個月內的信用卡交易,識別哪些交易是該使用者操作的,哪些不是。這樣的決策模型,可以幫助程式退還那些欺詐交易。
  • 數字識別:根據信封上手寫的郵編,識別出每一個手寫字元所代表的數字。這樣的模型,可以幫助程式閱讀和理解手寫郵編,並根據地利位置分類信件。
  • 語音識別:從一個使用者的話語,確定使用者提出的具體要求。這樣的模型,可以幫助程式能夠並嘗試自動填充使用者需求。帶有Siri系統的iPhone就有這種功能。
  • 人臉識別:根據相簿中的眾多數碼照片,識別出那些包含某一個人的照片。這樣的決策模型,可以幫助程式根據人臉管理照片。某些相機或軟體,如iPhoto,就有這種功能。
  • 產品推薦:根據一個使用者的購物記錄和冗長的收藏清單,識別出這其中哪些是該使用者真正感興趣,並且願意購買的產品。這樣的決策模型,可以幫助程式為客戶提供建議並鼓勵產品消費。登入Facebook或GooglePlus,它們就會推薦可能有關聯的使用者給你。
  • 醫學分析:根據病人的症狀和一個匿名的病人資料資料庫,預測該病人可能患了什麼病。這樣的決策模型,可以程式為專業醫療人士提供支援。
  • 股票交易:根據一支股票現有的和以往的價格波動,判斷這支股票是該建倉、持倉還是減倉。這樣的決策模型,可以幫助程式為金融分析提供支援。
  • 客戶細分:根據使用者在試用期的的行為模式和所有使用者過去的行為,識別出哪些使用者會轉變成該產品的付款使用者,哪些不會。這樣的決策模型,可以幫助程式進行使用者干預,以說服使用者早些付款使用或更好的參與產品試用。
  • 形狀鑑定:根據使用者在觸控螢幕上的手繪和一個已知的形狀資料庫,判斷使用者想描繪的形狀。這樣的決策模型,可以幫助程式顯示該形狀的理想版本,以繪製清晰的影像。iPhone應用Instaviz就能做到這樣。

機器學習問題的型別

透過上述的機器學習問題的例項,你一定已經意識到一些相似性之處。這種技能很有價值,因為擅長從現象看本質,使得你可以高效的思考需要的資料和可嘗試的演算法型別。
關於機器學習,有一些常見的分類。以下這些分類,是我們在研究機器學習時碰到的大多問題都會參考的典型。
  • 分類:標記資料,也就是將它歸入某一類,如垃圾/非垃圾(郵件)或欺詐/非欺詐(信用卡交易)。決策建模是為了標記新的未標記的資料項。這可以看做是辨別問題,為小組之間的差異性或相似性建模。
  • 迴歸:資料被標記以真實的值(如浮點數)而不是一個標籤。簡單易懂的例子如時序資料,如隨著時間波動的股票價格。這個建模的的決策是為新的未預測的資料估計值。
  • 聚類:不標記資料,但是可根據相似性,以及其他的對資料中自然結構的衡量對資料進行分組。可以從以上十個例子清單中舉出一例:根據人臉,而不是名字,來管理照片。這樣,使用者就不得不為分組命名,如Mac上的iPhoto。
  • 規則提取:資料被用作對提議規則(前提/結果,又名如果)進行提取的基礎。這些規則,可能但不都是有指向的,意思是說,這些方法可以找出資料的屬性之間在統計學上有說服力的關係,但不都是必要的涉及到需要預測的東西。例如非常著名的啤酒與尿布.

 

參考資料

[1]: 統計學習方法 李航著

[2]: 機器學習基石 https://class.coursera.org/ntumlone-002

[3]: http://dataunion.org/bbs/forum.php?mod=viewthread&tid=806&extra=page%3D1

相關文章