- Scikit-learn機器學習詳解(上)
- 潘風文 潘啟儒
- 1922字
- 2021-12-23 11:33:11
1.1 機器學習和人工智能
機器學習(ML, Machine Learning)是人工智能(AI,Arti?cial Intelligence)領域中關于通過學習過程歸納出預測模型的一個分支,它使機器具有無須通過明確的編程就能夠自動學習,從過往經驗中歸納知識、進行自我改進提升的能力。這里機器一般是指某種形式的計算機系統,而過往經驗是指以某種形式表示的數據。當一個用戶在電商網站購物時,網站會動態地向用戶推薦相關的商品,這是因為電商網站會根據用戶歷史搜索或購買的商品種類、數量等數據,分析用戶的喜好,進而智能地給用戶推薦相關商品。
“機器學習”一詞是由人工智能和計算機游戲的先驅、IBM的科學家亞瑟·李·塞繆爾(Arthur Lee Samuel)于1959年發明的,他被后人譽為“機器學習之父”。他將機器學習定義為“使計算機無須明確編程即可擁有學習能力的研究領域”(“?eld of study that gives computers the capability to learn without being explicitly programmed”)。1949年加入IBM波基普西實驗室(Poughkeepsie Laboratory)后,亞瑟·李·塞繆爾創建了世界上第一個計算機學習程序,這是一個跳棋游戲的程序,其獨特之處在于,每次玩跳棋后,程序總會變得更好,能夠糾正錯誤并從歷史數據中獲得更好的取勝方法。1987年,他被IEEE計算機協會授予計算機先驅獎(Computer Pioneer Award)。圖1-1為亞瑟·李·塞繆爾。

圖1-1 亞瑟·李·塞繆爾(1901.12—1990.07)
機器學習與常規軟件編程不同。在常規軟件編程中,為了使計算機工作,需要把輸入數據和測試過的一串指令語句(程序)提供給計算機,然后計算機利用其計算功能,按照給定的程序一步一步執行,最后給出輸出結果。例如計算簡單的5+6,需要提供加數5、6,以及編寫賦值語句、加法語句和輸出語句,計算機會按部就班地執行,并輸出結果11;而對于機器學習來說,需要提供的是大量的輸入數據和輸出結果數據(目標數據),計算機依次處理所有數據并為自己產生一個程序(稱為模型),然后可以使用這個程序(模型)去解決其他業務問題,甚至這個程序(模型)可以嵌入到其他常規軟件中使用。簡單來說,機器學習就是一種利用歷史數據,訓練并構建模型,然后使用模型進行決策的一種技術。
圖1-2展示了常規軟件編程和機器學習之間的不同。

圖1-2 機器學習和常規軟件編程
人工智能也是當前最熱門的計算機技術之一,它是一門關于使機器模仿人類能力的學科,與機器學習有著密切的關系。機器學習是人工智能中訓練機器擁有學習能力的一個子集,也就是說,所有機器學習都是人工智能,但并非所有人工智能都是機器學習。例如,符號邏輯(規則引擎,專家系統和知識圖譜)屬于人工智能的范疇,而不能歸為機器學習。如圖1-3為機器學習和人工智能的關系。

圖1-3 機器學習和人工智能之間的關系
人工智能的基本含義是使機器(計算機)能像人類一樣具有推理、分析和規劃的能力,成為人類大腦的延伸和擴展,代替人類完成某些智慧性活動,例如自然語言處理、數據挖掘學習、醫學診斷等等。人工智能是人工智能之父John McCarthy教授于1955年提出的,根據John McCarthy的解釋:“It is the science and engineering of making intelligent machines, especially intelligent computer programs”,我們可以認為人工智能是關于智能機器或智能程序的科學,是計算機技術“智能+”的典型應用,簡單來說,可以使一個計算機系統能夠展示如人類一般智慧的技術都可以被稱作人工智能。
從上面圖1-3中可以看出,人工智能最早出現,機器學習于1990年前后興起,它主要使用歸納、綜合法,即主要基于數據,尋找數據內在規律,并把這個內在規律應用于業務。機器學習通過讓機器模擬人類的學習行為,使其獲取新的知識或技能,并可以通過重新組織已有的知識結構,不斷改善自身的性能。盡管人工智能曾經被以專家系統等其他方式研究,但是機器學習是當前人工智能研究的核心,也是使計算機具有人類智能的根本途徑。
深度學習的概念由Hinton等人于2006年提出,是機器學習研究中的一個新的領域,它源于人工神經網絡的研究,目的在于建立模擬人腦進行分析學習的神經網絡,例如模仿人腦的機制來解釋圖像、聲音、文本等數據。深度學習通過組合低層特征,形成更加抽象的高層表示,以發現數據的分布式特征。
圖1-4進一步說明了機器學習與人工智能、深度學習之間的關系。

圖1-4 機器學習和人工智能深度學習之間的關系
綜上所述,機器學習,包括深度學習,是實現人工智能應用的必由之路。而機器學習的實現是依靠算法來完成的,可用于機器學習算法的語言有很多,其中Python、java、C/C++、JavaScript、R排在前五名,特別是Python,它被稱為開發人工智能應用的殿堂級語言。
亞馬遜首席執行官貝索斯(Jeff Bezos)說:“AI在未來20年對社會產生的影響之大怎么評估都不為過”;谷歌首席執行官桑達爾·皮查伊(Sundar Pichai)也曾說過:“過去10年我們一直在做一件事,那就是打造移動優先的世界,而在接下來的10年時間里,我們將轉到一個AI優先的世界?!睆膩嗰R遜到Facebook,再到谷歌、微軟,以及國內的百度、阿里、騰訊等全球有影響力的頂尖技術公司,都紛紛將目光轉向了人工智能??梢哉f,我們即將迎來一個全新的AI時代!