你绝对能懂的“机器学习”(一)
近幾年,機器學習成為一個非常火爆的詞語,幾乎所有的人,或多或少都聽說過它,但很多人對機器學習的理解似是而非。機器學習是人工智能嗎?機器學習與大數據、云計算有什么關系?機器學習是不是就是數據挖掘?機器學習是不是就是算法,就是統計學?深度學習是不是機器學習的升級版?在這一系列文章中或許你能找到答案。
同時,機器學習的應用范圍越來越廣,已經深入到各行各業中。因此,即使你不是互聯網從業人員,了解和掌握機器學習也是必要的,只有這樣,才能靈活運用機器學習于自身行業的應用場景中。
所以,這一系列文章的目的是讓所有對機器學習感興趣的人都能了解機器學習,面向的是一般性讀者。
那么,什么是機器學習?
首先,我們要搞清楚“機器學習”中的“機器”是什么意思。機器學習是英文“Machine Learning”的翻譯。Machine的含義很廣,在英文中可以代表:機器,機械裝置,機動車輛甚至飛機。但Machine Learning是起源于計算機科學的,而在計算機科學領域,Machine指的就是“計算機”。為什么?因為最早的計算機ENIAC誕生于1946年,占地160平方米,重達30噸,可不就是個機械裝置嘛,看看下圖感受下。
因此,“機器學習”就是“計算機學習”,不是工廠中的機器或機械裝置在學習,而是計算機在學習。所以,Machine Learning的正確翻譯是“計算機學習”,但機器學習這個詞已經流傳甚廣,約定俗稱,所以我們也不用糾結什么名字好,知道它的本意就行。
對機器學習的概念,最正統的、也最晦澀難懂的定義是1997年Mitchell給出的:假設用P來評估計算機程序在任務T上的性能,若一個程序通過利用經驗E使得在任務T上獲得了性能改善,則我們就說關于T和P,該程序對E進行了學習。
這個定義很嚴謹,但很容易把人搞暈。很多人看了后,還是云山霧罩。我們換一個角度,不是從“機器學習是什么”來理解,而是從“為什么需要機器學習”這個角度來理解。
眾所周知,我們生活在一個人類和計算機共存的世界,計算機擁有很多遠遠超過人類的能力,比如記憶容量、記憶速度、計算速度、批量處理。而人類相比計算機的一大優勢是,人類能從過去的經驗中學習。
舉個例子,你住在北京南4環以外,明天早上9點需要在北4環的中關村開會,根據你以往的經驗,早上開車去中關村堵車非常嚴重,而且明天又是個周一,堵車會更嚴重,你基于這些經驗,開始決策是7點30分出發,還是7點出發。
而計算機只能執行指令,需要被編程。懂一門編程語言的都知道,計算機實際執行的是人類編寫好的if else, for等語句,是非常死板的。
現在的問題是:我們能讓計算機從經驗中學習嗎?還是上面中關村開會的例子,你給計算機輸入出發地點,開會時間和開會地點,計算機根據過往的堵車數據,自動計算輸出:幾點幾分出發。
這就是機器學習,簡單說機器學習就是計算機學會利用過往的經驗完成指定任務。當然,對于計算機來說,過往的經驗就是被記錄的數據。在這個例子中,周一到周日每個時間段北京各條道路的堵車指數就是過往的經驗,就是被計算機記錄的數據。
這里,隱含了機器學習的3個關鍵信息:1個前提,2個動作。
1個前提是:必須有過往的經驗,或者說有過往的數據。
沒有這個前提,就不是機器學習。例如我們如果沒有過往的周一到周日每個時間段北京各條道路的堵車指數數據,只是考慮可能的行車速度、起點到終點的道路距離,從而大致計算出提前出發的時間,這就不是機器學習。
2個動作是:學習經驗,完成指定任務。
這2個動作是有順序的,即計算機必須先學習經驗,然后才能完成指定任務。這2個動作在機器學習中有專門的名稱:訓練和預測。
最后,總結成一句話:
機器學習就是計算機學習,是讓計算機學會利用過往的經驗完成指定任務。
總結
以上是生活随笔為你收集整理的你绝对能懂的“机器学习”(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当我们说“分类”的时候,我们到底在说什么
- 下一篇: 你绝对能懂的“机器学习”(二)