機器學習簡介

一、人工智能與機器學習

說到人工智能,就不得不提圖靈測試。圖靈測試是阿蘭圖靈在1950年提出的一個關於機器是否能夠思考的著名實驗,測試某機器是否能表現出與人等價或無法區分的智能。主要內容是:測試者與被測試者(一個人和一臺機器)隔開的情況下,通過一些裝置(如鍵盤)向被測試者隨意提問。 進行多次測試後,如果測試者不能確定出被測試者是人還是機器,那麼這臺機器就通過了測試,並被認爲具有人類智能。

通常我們認爲一個智能系統需要具有以下幾個能力:

  • 語言能力--自然語言處理:能成功地用自然語言交流
  • 記憶能力--知識表示:存儲它知道的或聽到的信息
  • 推理能力--自動推理:運用存儲的信息來回答問題並推出新結論
  • 學習能力--機器學習:適應新情況並檢測和預測模式
  • 感知能力--計算機視覺:感知物體
  • 規劃能力--自動規劃:根據資源制定執行策略

由此我們可以看出,機器學習是人工智能的一個分支,它是人工智能研究發展到一定階段的必然產物。

二、機器學習的發展

二十世紀五十年代到七十年代初,人工智能研究處於”推理期“,人們認爲只要能賦予機器邏輯推理能力,機器就具有智能。

隨着研究向前發展,人們逐漸認識到,僅僅具有邏輯推理能力是遠遠實現不了人工智能的。要使機器具有智能,必須設法使機器擁有知識。

二十世紀七十年代中期開始,人工智能研究進入了“知識期”,但人們又認識到,由人來把知識總結出來再教給計算機是非常困難的。有人想到,如果機器能夠自己學習知識就好了。

二十世紀八十年代是機器學習成爲一個獨立的學科領域、各種機器學習技術百花初綻的時期。(實際上最早圖靈在1950年圖靈測試的文章中就曾提到機器學習的可能,五十年代到七十年代有一些機器學習的研究如基於神經網絡的連接主義學習、感知機、基於邏輯表示的符號主義學習、以決策理論爲基礎的學習技術、強化學習等。但機器學習獨立成爲一個學科領域是在八十年代。)

這時候,人們把機器學習劃分爲“機械學習”,“示教學習”,“類比學習”,“歸納學習”。

機械學習

死記硬背式學習,把外界輸入的信息全部記錄下來,需要時原封不動地取出來使用,實際上沒有真正的學習,僅僅在進行信息存儲與檢索。

示教學習

從指令中學習。

類比學習

通過觀察和發現學習。

歸納學習

從樣例中學習,即從訓練樣例中歸納出學習結果。歸納學習是被研究最多,應用最廣的,涵蓋了監督學習、無監督學習等。

二十世紀八十年代,歸納學習的主流是符號主義學習,其代表包括決策樹學習基於邏輯的學習。典型的決策樹學習以信息論爲基礎,以信息熵的最小化爲目標,直接模擬了人類對概念進行判定的樹形流程。基於邏輯的學習的著名代表是歸納邏輯程序設計,可以看作機器學習與邏輯程序設計的交叉,使用一階邏輯來進行知識表示,通過修改和擴充邏輯表達式來完成對數據的歸納。

二十世紀九十年代,歸納學習的主流是基於神經網絡的連接主義學習

二十世紀九十年代中期,歸納學習的主流是統計學習,其代表是支持向量機(SVM)以及更一般的“核方法(kernel methods)”。

二十一世紀初,連接主義學習又捲土重來,掀起以“深度學習”爲名的熱潮。深度學習是指深層神經網絡,它在語音、圖像等複雜對象的應用中表現很好,性能優越。深度學習的流行一是因爲大數據的發展,數據多了;二是因爲計算機硬件的發展,計算能力強了。

三、機器學習的分類

機器學習中,有個定理叫“沒有免費午餐“定理(No Free Lunch Theorem,簡稱NFL定理)。內容是無論學習算法a多聰明,學習算法b多笨拙,它們的期望性能是相同的。簡而言之,就是沒有一個通用算法可以完美解決所有問題,我們要根據具體問題來選擇合適的算法。

根據訓練數據是否帶有標籤(label)信息,把訓練數據中帶有標籤信息的學習算法稱爲監督學習,訓練數據中不帶標籤信息的學習算法稱爲無監督學習

監督學習的代表是分類迴歸,常見算法有線性迴歸、logistic迴歸、決策樹、貝葉斯分類、支持向量機、神經網絡等。

無監督學習代表聚類,常見算法有主成分分析(PCA)、K均值聚類(K-Means)等。

在後面的文章中會一一介紹這些算法和它們的代碼實現,儘量給出不調包只用python代碼實現和使用流行的機器學習框架實現兩種實現方案。因爲前者可以更好地理解算法,後者可以更快更方便地使用算法。 當然除了這些算法,還有數據預處理、模型的性能度量、超參數的調整等等。

clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章