機器學習那些事兒(一)
當大多數人聽到“機器學習(Machine Learning )”這個詞時,他們首先想到的可能是科幻電影裏的機器人:可靠的男管家,致命終結者......事實上,機器學習並不是未來幻想曲,有些地方已經是現實了:從一開始的垃圾郵件過濾,OCR(Optical Character Recognition光學字符識別),再到推薦系統和語音識別等地方都有了很成熟的應用.
什麽是機器學習?機器學習什麽?為什麽要機器學習?
在我們探索機器學習新大陸之前,我們先來看看手中的“地圖”,了解這個新大陸的主要地區和最著名的地標:supervised(監督) VS unsupervised(非監督) learning, online(在線) VS batch(批處理) learning, instance-based(基於樣本的) VS model-based(基於模型的) learning. 然後我們會介紹一個典型的ML項目的工作流程,討論你可能會面臨的主要挑戰,涵蓋了如何對機器學習進行模型評估和參數調優
什麽是機器學習?
機器學習是計算機編程的科學和藝術,他可以從數據中學習。通俗點說,機器學習是一種方法,這種方法能夠賦予機器學習的能力,這種能力能讓它完成直接編程無法完成的任務。Tom Mitchell對“學習”給出的英文定義被很多人經常引用: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
舉個例子:基於機器學習的垃圾郵件過濾就可以看作是program,他可以從一些已經被標記是否是垃圾郵件的郵件樣本中學習如何標記郵件,用於學習的那些郵件稱作是訓練集,訓練集中的每個郵件稱為訓練樣本。在這個例子中T就是標記出所新接收到的郵件是否是垃圾郵件,E就是訓練集,P就是垃圾郵件識別的準確性。
為什麽要使用機器學習?
還是用上面垃圾郵寄過濾的例子,如下圖,如果不使用機器學習,你可能會制訂很多標準來判斷一封郵件是不是垃圾郵件,比如,這封郵件裏是否包含“信用卡”,“免費”等內容,這樣的硬編碼會讓你寫出很多類似於if-else的處理規則,這樣的系統不容易維護。
相反,基於機器學習的垃圾郵件過濾技術能自動的挖掘出垃圾郵件的特征,比如,哪一些單詞或短語能夠作為分辨垃圾郵件的特征。這樣的程序短小精湛,更易於維護,效果也會更好。
除此之外,如果垃圾郵件制造者發現他們所有包含“4U”的郵件都被攔截了,他們可能用“four U”來代替。針對這樣的情況,對於傳統的垃圾郵件過濾程序,將會添加新的規則。如果垃圾郵件制造者隨後又用新的詞匯代替“four U”,傳統的垃圾郵件過濾程序也要隨後添加新的規則,如此反復。基於機器學習的垃圾郵件過濾技術就顯得很靈活了,因為它能自動調整垃圾郵件的特征:如果他發現用戶經常把含有four U的郵件標記為垃圾郵件,下一次無需人工幹預的情況下他會自動的把含有four U的郵件標記為垃圾郵件。
總結一下,機器學習適用於處理一下問題:
現有的解決方案需要大量手工調整或長規則列表的問題:一種機器學習算法通常可以簡化代碼並且執行得更好。
- 使用傳統的方法根本沒有好的解決方案:最好的機器學習算法可以找到一個解決方案。
- 變化不定的環境:機器學習系統可以適應新的數據
- 能夠從復雜的問題和海量的數據中挖掘出隱含的知識和規律
機器學習那些事兒(一)