本篇文章中我們將對機器學習做全面的瞭解與介紹,其中第一章 初識機器學習分為上下兩個小章節,對機器學習是什麼、機器學習由來以及機器學習的理論等展開說明。目的是能讓即便完全沒接觸過機器學習的人也能在短時間對機器學習有一個全面瞭解。後續將推出機器學習的進階內容,包括經典基礎篇(線性模型、決策樹、整合學習、聚類等),實戰進階篇(特徵工程、模型訓練與驗證、融合與部署等)。本篇為第一章 初識機器學習(上),我們從這裡開始,開啟一個全新的學習旅程。
機器學習(Machine Learning,ML)是使用統計(或數學)技術從觀察到的資料中構建模型(或系統)的一個電腦科學領域。機器學習用計算機程式模擬人的學習能力,從樣本資料中學習得到知識和規律,然後用於實際的推斷和決策。
從廣義上來說,機器學習能夠賦予「機器」學習的能力,使其實現直接程式設計無法完成的工作。但從實踐意義上來說,機器學習是利用資料訓練出模型,並使用模型進行預測的一種方法。「訓練」與「預測」是機器學習的兩個過程,「模型」則是過程中間的輸出結果,「訓練」產生「模型」,「模型」指導 「預測」。接下來我們把機器學習的過程與人類對歷史經驗歸納演繹的過程做個比對。
機器學習中的「訓練」與「預測」過程可以對應到人類的「歸納」和「演繹」過程。通過這樣的對應,我們可以發現,機器學習的思想並不複雜,僅僅是對人類在生活中學習成長的一個模擬。由於機器學習不是基於程式設計形成的結果,因此它的處理過程不是因果的邏輯,而是通過歸納思想得出的相關性結論。
人類對歷史經驗歸納過程
人類在成長、生活過程中積累了很多的歷史與經驗。人類定期地對這些經驗進行「歸納」,獲得了生活的「規律」。當人類遇到未知的問題或者需要對未來進行「推測」的時候,人類將使用這些「規律」,對未知問題與未來進行「演繹」,從而指導自己的生活和工作。
機器學習應用廣泛,在各方面都有其施展的空間,包括:資料分析與挖掘、圖形識別、虛擬助手和交通預測等。從行業來看,在金融領域(檢測信用卡欺詐、證券市場分析等)、網際網路領域(自然語言處理、語音識別、搜尋引擎等)、醫學領域、自動化及機器人領域(無人駕駛、訊號處理等)、遊戲領域、刑偵領域等也都有所涉及。
「資料探勘」和」資料分析」通常被相提並論,但無論是資料分析還是資料探勘,都是在幫助人們收集與分析資料,使之成為資訊並做出推測與判斷。因此可以將這兩項合稱為資料分析與挖掘。資料分析與挖掘是機器學習技術和巨量資料儲存技術結合的產物,利用機器學習手段分析海量資料,同時利用資料儲存機制實現資料的高效讀寫。機器學習在資料分析與挖掘領域中擁有無可取代的地位,2012年Hadoop進軍機器學習領域就是一個很好的例子。
圖形識別的應用領域廣泛,包括計算機視覺、醫學影象分析、光學文字識別、自然語言處理、語音識別、手寫識別、生物特徵識別、檔案分類、搜尋引擎等,而這些領域也正是機器學習大展身手的舞臺,因此圖形識別與機器學習的關係越來越密切。
Siri,Alexa,Google Now都是虛擬助手。在互動過程中,虛擬助手會協助查詢資訊,搜尋相關歷史行為,或向其他資源(如電話應用程式)傳送命令收集更多資訊,以滿足人們提出的需求。
生活中我們經常使用GPS導航服務,機器學習能夠幫助我們預測交通堵塞。當前高德地圖,騰訊地圖等都應用了機器學習技術,識別擁擠路段,規劃最優路線。
二十一世紀初,學界掀起了以「深度學習」為名的熱潮。所謂深度學習?狹義地說就是「很多層」的神經網路。在若干測試和競賽上,尤其是涉及語音、影象等複雜物件的應用中,深度學習技術取得了優越效能。以往機器學習技術在應用中要取得好效能,對使用者的要求較高;而深度學習技術涉及的模型複雜度非常高,以至於只要下工夫「調參」,只要把引數調節好,效能往往就好。因此,深度學習雖缺乏嚴格的理論基礎,但它顯著降低了機器學習應用者的門檻,為機器學習技術走向工程實踐帶來了便利。那麼它為什麼此時才熱起來呢?有兩個原因,一是資料量增大了,二是計算能力強了。深度學習模型擁有大量引數,若資料樣本少,則很容易「過擬合」。如此複雜的模型、如此大的資料樣本,若缺乏強力計算裝置,根本無法求解。恰恰人類進入了巨量資料時代,資料儲量與計算裝置都有了大發展,才使得深度學習技術又煥發一春。
人工智慧(Artificial Intelligence,AI)是電腦科學的一個分支,它企圖瞭解智慧的本質,生產出一種能比肩人類,並做出智慧反應的機器。我們都知道機器學習是人工智慧最重要的一種實現方法,但機器學習並不是人工智慧一開始就採用的方法。人工智慧的發展主要經歷了邏輯推理,專家系統,機器學習三個階段。
深度學習(Deep Learning,DL)是機器學習的一個重要分支,深度學習和機器學習的關係屬於繼承和發展的關係。在很多人工智慧問題上,深度學習的方法加上巨量資料的出現以及計算機執行速度的提高,更突出了人工智慧的前景。比如,自動駕駛汽車,足以徹底改變我們的出行方式,它的實現就需要深度學習的影象識別技術,需要用到折積神經網路(Convolutional Neural Networks, CNN)來識別馬路上的行人、紅綠燈等。
為了更清晰的認識深度學習,我們首先介紹神經網路(Neural Networks, NN),顧名思義,它是一種模仿動物神經網路行為特徵,進行分散式並行資訊處理的演演算法數學模型。神經網路有輸入層、隱藏層(中間層)以及輸出層,其中輸入層負責神經網路的輸入,輸出層負責產生輸入的對映。機器學習中的邏輯迴歸,可以看作是一層的神經網路,即除了輸入層、輸出層之外只有一個隱藏層。
而深度學習,就是指神經網路使用了很多隱藏層。
那麼深度學習的每一層都在學什麼??
當你輸入一張臉部的照片時,神經網路的第一中間層,可以看成是一個特徵探測器或者邊緣探測器,它會去找這張照片的各個邊緣(第一張圖片);第二中間層又把照片裡組成邊緣的畫素們放在一起看,然後它可以把被探測到的邊緣組合成面部的不同部分(第二張圖片),有眼睛、鼻子等;最後再把這些部分放在一起,比如鼻子眼睛嘴巴,就可以識別或者探測不同的人臉(第三張圖片)。
資料探勘(Data Mining,DM)是指從大量的資料中搜尋隱藏於其中資訊的過程。機器學習是資料探勘的重要工具之一,但資料探勘不僅僅要研究、拓展、應用一些機器學習方法,還要通過許多非機器學習技術解決大規模資料與資料噪音等實際問題。大體上看,資料探勘可以視為機器學習和巨量資料的交叉,它主要利用機器學習提供的技術來分析海量資料,利用巨量資料技術來管理海量資料。
1.統計學簡述
統計學(Statistics)是基於資料構建概率統計模型並運用模型對資料進行分析與預測的一門學科。統計學依託背後的數學理論,在遠早於機器學習大爆發的幾十年,率先從解釋因果的角度,努力尋找最優函數(或模型)。統計學裡最重要的兩個部分是迴歸分析和假設檢驗。其他的方法或者技術在統計學這個大框架下,最終也是為了這兩者服務的。迴歸分析提供瞭解釋因果的武器,假設檢驗則給這項武器裝上了彈藥。單純的線性迴歸用最小二乘法求解逼近事實的真相,再使用顯著性檢驗,檢測變數的顯著性、模型的顯著性、模型的擬合精度。當然是否屬於線性,也可以使用假設檢驗的方法檢測。非線性迴歸的問題,使用極大似然估計或者偏最小二乘迴歸求解模型,後續的顯著性檢驗仍然是一樣的思路。
2.機器學習與統計學對比
統計學是個與機器學習高度重疊的學科,統計學近似等於機器學習。但是在某種程度上兩者是有分別的,這個分別在於:統計學是理論驅動,對資料分佈進行假設,以強大的數學理論解釋因果,注重引數推斷,側重統計模型的發展與優化;機器學習是資料驅動,依賴於巨量資料規模預測未來,弱化了收斂性問題,注重模型預測,側重解決問題。
這裡我們以《演演算法導論》中所詮釋的演演算法作為機器學習演演算法的比較物件。其相同點,兩者的目的都是通過制定目標,增加約束,求得最優的模型。不同點是《演演算法導論》裡的「演演算法」,本質上是如何更有效率地求解具有精確解的問題。效率,可以是計算時間更短,也可以是計算過程所需要的空間更少。而機器學習演演算法要解決的問題一般沒有精確解,也不能用窮舉或遍歷這種步驟明確的方法求解。這裡需要強調的是「學習」這個屬性,即希望演演算法本身能夠根據給定的資料或變化的計算環境而動態地發現新的規律,甚至改變機器學習演演算法的邏輯和行為。
作者:京東物流 星火團隊
來源:京東雲開發者社群