機器學習(Machine Learning) 最早起源于 人工智能(Artificial Intelligence,AI) ,其核心在于構造學習算法(Learning Algorithm),使得機器可以自動從訓練數據中進行學習以完成特定任務。
機器學習的定義
- 1959年,Arthur Samuel將機器學習定義為:"Field of study that gives computers the ability to learn without being explicitly programmed"。
- 1998年,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"。
值得一提的是,Arthur Samuel曾寫了一個可以實現自己和自己下跳棋(checkers,如下圖所示)的程序。該程序在自己與自己下棋的過程中不斷學習,知道了什么樣的棋盤格局更容易獲勝或失敗,最終該程序比Arthur Samuel本人還更擅長下跳棋。
第一種定義更多的是從認知的角度來定義機器學習;而第二種定義則傾向于從更為基本的形式化表述,所以認可度更高。以上面的跳棋程序為例,E代表和自己不斷下棋所獲的經驗,T代表下跳棋的任務,P則可用和人下跳棋的獲勝率來衡量。
機器學習實例
機器學習的精髓在于利用設計的學習算法,使機器自動學習數據之間的映射關系,最后利用這種映射關系解決實際問題。以手寫數字識別為例,我們很難設計出一段程序,可以直接解析出一張手寫的數字圖像到底對應哪個數字。因為即使是同一個人,在不同情景下寫的同一個數字在圖像上也會存在差異,我們無法用一段程序應對如此復雜多變的狀況。如果我們提供很多手寫數字的數據,并且告訴機器每個數據對應哪個數字,然后讓機器自動去學習手寫數字和真實數字之間的映射關系。最后,任意給定一個手寫數字作為輸入,我們可以利用學習到的映射關系找到對應的真實數字,順利完成手寫數字的識別任務。機器學習在我們生活中也是處處可見的,比如信封上的郵編就是通過機器學習的算法自動識別的;Amzon和Netfix等網站利用學習算法學習用戶的偏好,然后向用戶提供具有一定針對性的推薦;筆記本上面可以通過指紋或人臉識別來判斷用戶是否有訪問該機器的權限;垃圾郵件過濾。
?學習算法的分類
我們根據訓練階段的輸入數據的類型即相應的輸出可以將算法大致分為如下幾類:
- 監督學習(Supervised Learning) 的任務是從給定輸入和輸出的訓練數據集中學習輸入和輸出之間的映射函數,然后利用該映射函數預測出測試樣本的輸出值,其中訓練集中的每個樣本都由輸入和對應的輸出(也稱之為label)組成(labeled data)。如果我們要預測的目標值是連續變量,那么這類問題稱之為回歸(Regression);反之,如果預測的目標值是離散的,這類問題一般被稱之為分類(Classification)。
- 無監督學習(Unsupervised Learning) 的職責在于發現數據中的隱含結構,而其中的數據樣本未給定對應的目標值(unlabeled data)。如果我們要將相似的樣本劃分為不同的組,這類問題稱之為聚類(Clustering);如果我們需要找出輸入空間的數據分布狀況,這類問題稱之為密度估計(Density Estimation);我們也可以利用主成份分析(Principal Component Analysis,PCA)、獨立成分分析(Independent Component Analysis,ICA)、非負矩陣分解(Nonnegative Matrix Factorization,NMF)和奇異值分解(Singular Value Decomposition,SVD)等特征提取方法將數據從高維度映射到較低維度實現將維(Dimensionality Reduction)。
- 半監督學習(Semi-supervised Learning) 利用labeled data和unlabeled data組成的數據集,生成近似函數或者分類器。一般unlabeled data很多,而labeled data占少數。
- 增強學習(Reinforcement Learning) 關心的問題并不是像分類問題那樣一次性就可以解決,而是涉及到與環境進行交互的一系列狀態和行為。這里要解決的問題是,在給定的狀態下,如何找到最優的行為策略,以獲取最大的累積回報。在大多數情況下,當前的行為不僅會影響當前的回報(immediate reward),還會對后續的回報產生影響。
機器學習的應用
機器學習的應用領域相當廣泛,對科學界和工業界都產生了深遠影響。其應用領域包括計算機視覺、圖形處理、自然語言處理、醫療診斷、生物信息學、股票市場分析、社交網絡分析、市場劃分、天文數據分析、搜索引擎、信息檢索和推薦系統等。
我們從機器學習廣泛的應用領域就可以看出機器學習的前景必然是一片光明的。如今眾多公司和政府都在開發協同過濾、垃圾郵件過濾、詐騙檢測對象跟蹤等應用,這些應用都需要在大規模的數據上發掘潛在的模式。隨著信息呈現爆炸式增長,如何組織和分析這些數據已經成為亟待解決的難題,機器學習在大數據時代必將扮演極為重要的角色。目前具備機器學習知識的人才非常受歡迎,在COMPUTERWORLD上出現的一篇名為 12 IT skills that employers can't say no to 的報道中,機器學習是位列第一的,足見機器學習的霸氣!
最后,羅列一些機器學習相關的學習資料
- Coursera上的機器學習公開課 ,機器學習入門級別的課程。
- 網易公開課提供的Stanford機器學習視頻教程(翻譯完成)? ,相對于第一個視頻教程,涵蓋的內容更豐富,難度也大一些。
- 網易公開課提供的加州理工學院機器學習視頻教程 (未翻譯完),與Stanford機器學習視頻教程重疊部分不多,可以兩者結合一起看。
- Stanford機器學習課程的資料 (與網易公開課的機器學習視頻對應)。網站上附有配套的講義(最后幾個章節缺講義)和作業,還有學生提交的課程項目的PDF文檔。
- Stanford數據挖掘課程 ,包括相關的電子書和Slides,涉及降維、聚類、推薦系統等熱門技術。
- kaggle上有很多機器學習方面的有獎競賽
- 機器學習相關書籍推薦:《Pattern Recognition and Machine Learning》、《The Elements of Statistical Learning》、《?Mining of massive datasets》。極力推薦第一本書,據說是CMU機器學習的教程。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
