近些年來,隨着大數據、雲計算、移動互聯網、人工智能技術的興起,「機器學習」成爲了行業內煊赫一時的一個名詞。從通訊互聯網領域的專家,到各式各樣的企業,甚至到普通的老百姓,都對「機器學習」技術略知一二。那麼,機器學習究竟是什麼,它與咱們常見的「人工智能」、「神經網絡」、「數據挖掘「等類似概念都有什麼關係?機器學習有那些基本分支、基本方法?在本文中,咱們將用最簡單易懂的語言解釋這些問題。算法
問題一:「機器學習」和「人工智能」的關係是什麼?網絡
隨着「機器學習」火起來的還有一個詞語,即「人工智能」。每一個人都確定還記得不久之前的AlaphGo,隨着機器戰勝圍棋頂級高手李世石,人們也不得不感嘆:「人工智能」時代真正到來了。機器學習
那麼,「機器學習」和「人工智能」的關係究竟是什麼尼?其實,「人工智能」是一個很大的學科領域,裏面包含不少子領域,如「機器學習」,「數據挖掘」,「模式識別」,「天然語言處理」等。這些子領域可能有交叉,但側重點每每不一樣。好比」機器學習「就比較側重於算法方面。總的來講,「人工智能」是一個學科領域,是咱們研究的最終目的,而」機器學習「是這個領域中比較核心的,比較重要的,側重於算法的一門學科,能夠說,「人工智能」和「機器學習」是包含與被包含的關係。性能
問題二:「機器學習」和「神經網絡」、「深度學習」的關係是什麼?學習
最近,「神經網絡」、「深度學習」等詞大火,不少小夥伴可能就比較疑惑這兩者和」機器學習「是什麼關係。事實上。機器學習主要是研究各類算法的,經典的機器學習算法有幾個大類:迴歸算法、決策樹、貝葉斯算法、支持向量機、神經網絡、聚類等等。看到這裏你們應該懂了,「神經網絡」只是「機器學習」諸多算法中的一種。在機器學習的多種算法中,可能隨着時代的變化和技術的應用,在某一個特定的時間段裏某一種特定的算法會比其餘算法火爆,這也是爲何近幾年許多即便不瞭解」機器學習「的人也對」神經網絡「略有知曉的緣由。測試
「深度學習」其實範圍更小,它是「神經網絡」算法中的一種。近幾年隨着計算能力的提升、計算數據量的增加,本來難以實現的「深度學習」算法反而很好地發揮了它的優點。近些年的一些機器學習任務也隨着深度學習算法的發展而取得了更好的效果。大數據
問題三:「機器學習」和「數據挖掘」的關係是什麼?雲計算
隨着大數據的發展,「數據挖掘」技術也進入了人們的視線。不少企業如今在招聘時,都會有「數據挖掘/機器學習工程師」這樣一個崗位。翻看數據挖掘方面的書籍,有很大一部份內容講的就是機器學習算法。那麼,數據挖掘與機器學習又有什麼不一樣尼?人工智能
首先,二者的側重點有所不一樣。機器學習主要側重於理論和算法,更注重於尋找更加高效簡潔的算法,而數據挖掘更注重實際應用,好比更注重數據分析的流程、數據存儲、算法選擇等,能夠說,數據挖掘是機器學習的一個實際應用。htm
在內容上來講,通常能夠認爲成:數據挖掘=機器學習+數據處理。也就是說,數據挖掘內容上比機器學習更普遍一點。不過兩者仍是各有所長。
以上咱們能夠說解釋了機器學習、數據挖掘領域的初學者很容易混淆的幾個問題,這就爲機器學習開了個好頭,下面咱們就能夠專門介紹機器學習領域的相關知識。
什麼是機器學習?百度百科對機器學習有這樣一個簡單的解釋:機器學習是一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,從新組織已有的知識結構使之不斷改善自身的性能。它是人工智能的核心,是使計算機具備智能的根本途徑,其應用遍佈人工智能的各個領域,它主要使用概括、綜合而不是演繹。
咱們姑且不用管百度百科上的定義是否特別準確,至少它把機器學習最基本的內容說出來了。它主要研究一些算法,這些算法可讓計算機模擬人類學習。它涉及到機率論、統計論、凸分析等等數學領域,是人工智能的核心。
這樣看來,機器學習貌似很炫酷——可讓計算機模擬人類學習。有的小夥伴可能會以爲高深莫測,其實,一切模型的基礎都是簡單的有些愚蠢的。所以不要由於「模擬人類學習」一詞就認爲須要多麼高大上的模式,最簡單的機器學習算法基本上就在幹兩件事情:分類和迴歸。所謂分類,就是給定一個事物的一些參數,來判斷它的類別,舉個簡單的例子:有一我的,他黑皮膚、卷頭髮、厚嘴脣,讓你判斷他來自亞洲、非洲、仍是歐洲。很明顯,通常人會判斷他來自非洲。他必定來自非洲嗎?不必定,可是他來自非洲的可能性是最大的。所以,若是將{黑皮膚、卷頭髮、厚嘴脣}這個屬性組輸入給計算機,它會自動」學習「並給出判斷(他是個非洲人)。這就是一個分類的例子,迴歸的例子也很簡單,一個班的學生按照大小身高排隊,排好後若是給了前30個同窗的身高值,那麼推測第31個同窗的身高應該也能推測個八九不離十。這就是分類和迴歸。其實,雖然人類的學習過程看似複雜,但每每也都是由無數個分類迴歸構成的。
通常,咱們把機器學習算法分紅3個大類,分別是:監督學習、非監督學習、半監督學習。下面咱們依次簡單介紹。
監督學習:監督學習就是須要必定的訓練數據的學習方式。訓練數據就是咱們事先測試獲得的即包含屬性集又包含結果的數據。這種學習每每經過必定訓練數據訓練出一個「模型」,以後的只有屬性集沒有結果的數據能夠將屬性集套入到模型中,並獲得其結果。就比如咱們以前在腦子中訓練出了」一個黑皮膚、卷頭髮、厚嘴脣「的人是非洲人這一模型後,再給咱們一個有這樣屬性的人,咱們天然會獲得他是非洲人這樣的結果同樣。
監督學習是機器學習領域最龐大的一個分支,有多種迄今爲止很是成功的算法族,如常見的決策樹算法族、神經網絡算法族、支持向量機算法族、貝葉斯算法族等。
非監督學習:非監督學習和監督學習相對應,是沒有訓練序列的,這種學習方式須要把數據所有拿來,而後靠「物以類聚,人與羣分」。這比如有一羣人,根據」膚色、髮色「兩個屬性進行歸類,發現有一羣人膚色是白的,髮色是金的,還有一羣人膚色是黃的,髮色是黑的,還有一羣人膚色是黑的,髮色是黑的,不須要訓練,咱們很天然地就把有不一樣屬性的人歸類到了一塊兒。常見的非監督學習主要是聚類算法族。
半監督學習:半監督學習介於監督學習和非監督學習之間,它有一部分的訓練數據,但數量較少。半監督學習經過這部分訓練數據實現訓練另外一部分數據,而後將新訓練的數據加入訓練數據集中繼續訓練,這樣不斷迭代,就會慢慢產生一個龐大的訓練數據集。半監督學習在不少領域有重要應用,由於有的時候,並非很容易獲得大量的帶標記數據的。常見的半監督學習有半監督SVM,半監督圖學習、半監督聚類等。
最後介紹一下數據分析的基本流程,並看一下機器學習處在什麼位置。
數據分析主要是數據挖掘領域的內容,基本流程包括業務分析、數據初探、數據預處理、創建模型、模型評估、可視化呈現等幾步。其中,前3步主要是一些準備工做,用於把獲得的數據處理成易於建模的形式,咱們的機器學習模型主要就體如今「創建模型」和「模型評估」這兩步。在「創建模型」中,咱們會根據處理好的訓練數據,選擇合適的機器學習算法進行建模,在「模型評估」中,咱們會用測試數據對剛剛創建好的模型進行一個評估。經常使用的評估參數有查準率、查全率等,經常使用的評估方法有自助法、留出法、K折交叉驗證法等。