關于機器學習的十個實例
英文原文:Practical Machine Learning Problems
機器學習是什么?
機器學習是什么?這個問題的答案可以參考權威的機器學習定義,但是實際上,機器學習是由它所解決的問題定義的。因此,理解機器學習最好的方式是觀察一些實例。
首先來看一些現實生活中眾所周知和理解的機器學習問題的實例,然后討論標準的機器學習問題的分類(命名系統),學習如何辨別一個問題是屬于哪種標準案例。這樣做的意義是,了解所面對的問題類型,我們就可以思考所需要的數據和可嘗試的算法。
機器學習問題的十個實例
機器學習問題到處都是,它們組成了日常使用的網絡或桌面軟件的核心或困難部分。推特上“想來試試嗎”的建議和蘋果的 Siri 語音理解系統就是實例。
以下,是十個真正有關機器學習到底是什么的的實例:
- 垃圾郵件檢測:根據郵箱中的郵件,識別哪些是垃圾郵件,哪些不是。這樣的模型,可以程序幫助歸類垃圾郵件和非垃圾郵件。這個例子,我們應該都不陌生。
- 信用卡欺詐檢測:根據用戶一個月內的信用卡交易,識別哪些交易是該用戶操作的,哪些不是。這樣的決策模型,可以幫助程序退還那些欺詐交易。
- 數字識別:根據信封上手寫的郵編,識別出每一個手寫字符所代表的數字。這樣的模型,可以幫助程序閱讀和理解手寫郵編,并根據地利位置分類信件。
- 語音識別:從一個用戶的話語,確定用戶提出的具體要求。這樣的模型,可以幫助程序能夠并嘗試自動填充用戶需求。帶有 Siri 系統的 iPhone 就有這種功能。
- 人臉識別:根據相冊中的眾多數碼照片,識別出那些包含某一個人的照片。這樣的決策模型,可以幫助程序根據人臉管理照片。某些相機或軟件,如 iPhoto,就有這種功能。
- 產品推薦:根據一個用戶的購物記錄和冗長的收藏清單,識別出這其中哪些是該用戶真正感興趣,并且愿意購買的產品。這樣的決策模型,可以幫助程序為客戶提供建議并鼓勵產品消費。登錄 非死book 或 GooglePlus,它們就會推薦可能有關聯的用戶給你。
- 醫學分析:根據病人的癥狀和一個匿名的病人資料數據庫,預測該病人可能患了什么病。這樣的決策模型,可以程序為專業醫療人士提供支持。
- 股票交易:根據一支股票現有的和以往的價格波動,判斷這支股票是該建倉、持倉還是減倉。這樣的決策模型,可以幫助程序為金融分析提供支持。
- 客戶細分:根據用戶在試用期的的行為模式和所有用戶過去的行為,識別出哪些用戶會轉變成該產品的付款用戶,哪些不會。這樣的決策模型,可以幫助程序進行用戶干預,以說服用戶早些付款使用或更好的參與產品試用。
- 形狀鑒定:根據用戶在觸摸屏幕上的手繪和一個已知的形狀資料庫,判斷用戶想描繪的形狀。這樣的決策模型,可以幫助程序顯示該形狀的理想版本,以繪制清晰的圖像。iPhone 應用 Instaviz 就能做到這樣。
這十個實例展示了一個機器學習問題是什么樣的很好的理念。有一個專門的文集記錄那些有著歷史意義的例子。其中一個例子是,一個需要建模的決策,為該決策有效地的自動建模為某一行業或者說領域帶來了利益。
有些問題是人工智能中,如自然語言處理和機器視覺(處理人們很容易處理的問題),最困難的問題。其他一些也很困難,但它們同時是很經典的機器學習問題,如垃圾郵件檢測和信用卡欺詐檢測。
想想你在過去的一周中跟線上或線下的軟件之間的交互。你肯定能很輕易的推測出十或二十個直接或間接使用的機器學習實例。
機器學習問題的類型
通過上述的機器學習問題的實例,你一定已經意識到一些相似性之處。這種技能很有價值,因為擅長從現象看本質,使得你可以高效的思考需要的數據和可嘗試的算法類型。
關于機器學習,有一些常見的分類。以下這些分類,是我們在研究機器學習時碰到的大多問題都會參考的典型。
- 分類:標記數據,也就是將它歸入某一類,如垃圾/非垃圾(郵件)或欺詐/非欺詐(信用卡交易)。決策建模是為了標記新的未標記的數據項。這可以看做是辨別問題,為小組之間的差異性或相似性建模。
- 回歸:數據被標記以真實的值(如浮點數)而不是一個標簽。簡單易懂的例子如時序數據,如隨著時間波動的股票價格。這個建模的的決策是為新的未預測的數據估計值。
- 聚類:不標記數據,但是可根據相似性,以及其他的對數據中自然結構的衡量對數據進行分組。可以從以上十個例子清單中舉出一例:根據人臉,而不是名字,來管理照片。這樣,用戶就不得不為分組命名,如 Mac 上的 iPhoto。
- 規則提取:數據被用作對提議規則(前提/結果,又名如果)進行提取的基礎。這些規則,可能但不都是有指向的, 意思是說,這些方法可以找出數據的屬性之間在統計學上有說服力的關系,但不都是必要的涉及到需要預測的東西。有一個找出買啤酒還是買尿布之間關系的例子, (這是數據挖掘的民間條例,真實與否,都闡述了期望和機會)。
當你認為一個問題是機器學習問題時(如需要從數據中建模的決策問題),接著思考下什么問題類型可以直接借用,或者,用戶或需求期待什么樣的結果,反過來也這樣做。
資源
很少有資源列出現實世界中機器學習的問題清單。也可能它們就在那,但我沒發現。我還是找到了一些很酷的資源供你們參考:
- 一年一度的“Humies”獎:這是一些授予那些計算到的結果可以媲美人類的算法的獎項。這些算法只是工作在數據或者付費函數上,就能夠如此有創造性,足以違反專利。太了不起了!
- 人工智能效應:有這樣一種觀念:只要人工智能程序取得了足夠好的成績,就不再被看做人工智能,而只當做是科技,然后被日常使用。這個觀念,同樣適用于機器學習。
- 人工智能大賽:這個大賽涉及了人工智能領域中非常困難的問題,如果這些問題能夠解決,將會是強大的證明人工智能的案例(科幻小說中想象的那種,真正的人工智能)。計算機視覺和自然語言處理都是人工智能競賽問題的實例,它們也被當作是機器學習問題的特定領域的分類。
- 2013 年機器學習十大問題:這個 Quora 上的問題有一些非常精彩的回答,其中一個答案列出了實際的機器學習問題的粗略分類。
上文我們討論了一些現實世界中機器學習問題的常見實例及其種類。現在,我們有信息談論一個問題是否屬于機器學習問題,并且能夠從問題描述中挑選出一些元素來判斷它屬于分類類型,回歸雷系,還是屬于規則提取類型。
你知道現實世界中的一些機器學習問題嗎?評論分享你的想法吧。