本文對機器學習作一個大致概覽,以便看清該學科分支的知識點分佈狀況,以供後續學習指明方向與道路。算法
通常的解釋以下:
機器學習是經過編程讓計算機從數據中進行學習的科學(和藝術)。編程
還有兩位前輩對機器學習的定義以下:
機器學習是讓計算機具備學習的能力,無需進行明確編程。 —— 亞瑟·薩繆爾,1959
計算機程序利用經驗 E 學習任務 T,性能是 P,若是針對任務 T 的性能 P 隨着經驗 E 不斷增加,則稱爲機器學習。 —— 湯姆·米切爾,1997網絡
在《Sklearn與TensorFlow機器學習實用指南》一書中,指出機器學習的特長以下:
1 須要進行大量手工調整或須要擁有長串規則才能解決的問題:機器學習算法一般能夠簡化代碼、提升性能。
2 問題複雜,傳統方法難以解決:最好的機器學習方法能夠找到解決方案。
3 環境有波動:機器學習算法能夠適應新數據。
4 洞察複雜問題和大量數據。機器學習
根據訓練手段與數據特色,常見的機器學習算法被分爲如下幾類(考慮到深度學習屬於機器學習的一個分支,但其自身研究規模能夠單獨成爲一門學科,因此再也不將深度學習內容吸納進來):
1 監督學習
2 無監督學習
3 半監督學習
4 強化學習性能
在監督學習中,用來訓練的數據包含了答案,通常將這個答案稱爲標籤。一般在分類與迴歸問題中,多數用到監督學習算法。其包含的算法有:
K近鄰算法、線性迴歸、邏輯迴歸、支持向量機、決策樹和隨機森林、神經網絡(隸屬深度學習)等多種算法。學習
在無監督學習中,訓練數據是不帶標籤的。一般在聚類、關聯規則、降維以及異常檢測等任務中須要用到無監督學習算法。其包含的算法有:
聚類、K均值、層次聚類分析、指望最大值、可視化和降維、主成分分析、關聯性規則學習、Apriori 算法等多種算法。rest
在半監督學習中,面對的是部分帶標籤的訓練數據,即一般是大量不帶標籤數據和小部分帶標籤數據。半監督學習介於監督學習與無監督學習之間,因此多數半監督學習算法是監督算法和無監督算法的結合。例如深度信念網絡(deep belief networks)是基於互相疊加的受限玻爾茲曼機(restricted Boltzmann machines,RBM),後者是一個非監督組件。RBM 先用無監督學習方法進行訓練,再用監督學習方法進行整個系統的微調。深度學習
強化學習在機器學習中獨樹一幟,學習系統在這裏被稱爲智能體(agent),能夠對環境進行觀察,選擇和執行動做,從而得到獎勵或懲罰,以此促進系統本身學習哪一個是最佳方法或策略才能獲得長久的最大獎勵,學習到的策略決定了智能體在給定狀況下應該採起的行動。DeepMind 的 AlphaGo 就是強化學習的典型案例,它在 2016 年三月擊敗了世界圍棋冠軍李世石,震撼一時。io