首先要簡單區別幾個概念:人工智能,機器學習,深度學習,神經網絡。這幾個詞應該是出現的最為頻繁的,但是他們有什么區別呢?
人工智能:人類通過直覺可以解決的問題,如:自然語言理解,圖像識別,語音識別等,計算機很難解決,而人工智能就是要解決這類問題。
機器學習:機器學習是一種能夠賦予機器學習的能力以此讓它完成直接編程無法完成的功能的方法。但從實踐的意義上來說,機器學習是一種通過利用數據,訓練出模型,然后使用模型預測的一種方法。
深度學習:其核心就是自動將簡單的特征組合成更加復雜的特征,並用這些特征解決問題。
神經網絡:最初是一個生物學的概念,一般是指大腦神經元,觸點,細胞等組成的網絡,用於產生意識,幫助生物思考和行動,后來人工智能受神經網絡的啟發,發展出了人工神經網絡。
來一張圖就比較清楚了,如下圖:

機器學習的范圍
機器學習跟模式識別,統計學習,數據挖掘,計算機視覺,語音識別,自然語言處理等領域有着很深的聯系。

模式識別
模式識別=機器學習。兩者的主要區別在於前者是從工業界發展起來的概念,后者則主要源自計算機學科。在著名的《Pattern Recognition And Machine Learning》這本書中,Christopher M. Bishop在開頭是這樣說的“模式識別源自工業界,而機器學習來自於計算機學科。不過,它們中的活動可以被視為同一個領域的兩個方面,同時在過去的10年間,它們都有了長足的發展”。
數據挖掘
數據挖掘=機器學習+數據庫。這幾年數據挖掘的概念實在是太耳熟能詳。幾乎等同於炒作。但凡說數據挖掘都會吹噓數據挖掘如何如何,例如從數據中挖出金子,以及將廢棄的數據轉化為價值等等。但是,我盡管可能會挖出金子,但我也可能挖的是“石頭”啊。這個說法的意思是,數據挖掘僅僅是一種思考方式,告訴我們應該嘗試從數據中挖掘出知識,但不是每個數據都能挖掘出金子的,所以不要神話它。一個系統絕對不會因為上了一個數據挖掘模塊就變得無所不能(這是IBM最喜歡吹噓的),恰恰相反,一個擁有數據挖掘思維的人員才是關鍵,而且他還必須對數據有深刻的認識,這樣才可能從數據中導出模式指引業務的改善。大部分數據挖掘中的算法是機器學習的算法在數據庫中的優化。
統計學習
統計學習近似等於機器學習。統計學習是個與機器學習高度重疊的學科。因為機器學習中的大多數方法來自統計學,甚至可以認為,統計學的發展促進機器學習的繁榮昌盛。例如著名的支持向量機算法,就是源自統計學科。但是在某種程度上兩者是有分別的,這個分別在於:統計學習者重點關注的是統計模型的發展與優化,偏數學,而機器學習者更關注的是能夠解決問題,偏實踐,因此機器學習研究者會重點研究學習算法在計算機上執行的效率與准確性的提升。
計算機視覺
計算機視覺=圖像處理+機器學習。圖像處理技術用於將圖像處理為適合進入機器學習模型中的輸入,機器學習則負責從圖像中識別出相關的模式。計算機視覺相關的應用非常的多,例如百度識圖、手寫字符識別、車牌識別等等應用。這個領域是應用前景非常火熱的,同時也是研究的熱門方向。隨着機器學習的新領域深度學習的發展,大大促進了計算機圖像識別的效果,因此未來計算機視覺界的發展前景不可估量。
語音識別
語音識別=語音處理+機器學習。語音識別就是音頻處理技術與機器學習的結合。語音識別技術一般不會單獨使用,一般會結合自然語言處理的相關技術。目前的相關應用有蘋果的語音助手siri等。
自然語言處理
自然語言處理=文本處理+機器學習。自然語言處理技術主要是讓機器理解人類的語言的一門領域。在自然語言處理技術中,大量使用了編譯原理相關的技術,例如詞法分析,語法分析等等,除此之外,在理解這個層面,則使用了語義理解,機器學習等技術。作為唯一由人類自身創造的符號,自然語言處理一直是機器學習界不斷研究的方向。按照百度機器學習專家余凱的說法“聽與看,說白了就是阿貓和阿狗都會的,而只有語言才是人類獨有的”。如何利用機器學習技術進行自然語言的的深度理解,一直是工業和學術界關注的焦點。
機器學習的方法
1、回歸算法
在大部分機器學習課程中,回歸算法都是介紹的第一個算法。原因有兩個:一.回歸算法比較簡單,介紹它可以讓人平滑地從統計學遷移到機器學習中。二.回歸算法是后面若干強大算法的基石,如果不理解回歸算法,無法學習那些強大的算法。回歸算法有兩個重要的子類:即線性回歸和邏輯回歸。
實現方面的話,邏輯回歸只是對對線性回歸的計算結果加上了一個Sigmoid函數,將數值結果轉化為了0到1之間的概率(Sigmoid函數的圖像一般來說並不直觀,你只需要理解對數值越大,函數越逼近1,數值越小,函數越逼近0),接着我們根據這個概率可以做預測,例如概率大於0.5,則這封郵件就是垃圾郵件,或者腫瘤是否是惡性的等等。從直觀上來說,邏輯回歸是畫出了一條分類線,見下圖。

邏輯回歸算法划出的分類線基本都是線性的(也有划出非線性分類線的邏輯回歸,不過那樣的模型在處理數據量較大的時候效率會很低),這意味着當兩類之間的界線不是線性時,邏輯回歸的表達能力就不足。
2、神經網絡
讓我們看一個簡單的神經網絡的邏輯架構。在這個網絡中,分成輸入層,隱藏層,和輸出層。輸入層負責接收信號,隱藏層負責對數據的分解與處理,最后的結果被整合到輸出層。每層中的一個圓代表一個處理單元,可以認為是模擬了一個神經元,若干個處理單元組成了一個層,若干個層再組成了一個網絡,也就是"神經網絡"。

在神經網絡中,每個處理單元事實上就是一個邏輯回歸模型,邏輯回歸模型接收上層的輸入,把模型的預測結果作為輸出傳輸到下一個層次。通過這樣的過程,神經網絡可以完成非常復雜的非線性分類。
3、SVM(支持向量機)
支持向量機算法從某種意義上來說是邏輯回歸算法的強化:通過給予邏輯回歸算法更嚴格的優化條件,支持向量機算法可以獲得比邏輯回歸更好的分類界線。但是如果沒有某類函數技術,則支持向量機算法最多算是一種更好的線性分類技術。
但是,通過跟高斯“核”的結合,支持向量機可以表達出非常復雜的分類界線,從而達成很好的的分類效果。“核”事實上就是一種特殊的函數,最典型的特征就是可以將低維的空間映射到高維的空間。

我們如何在二維平面划分出一個圓形的分類界線?在二維平面可能會很困難,但是通過“核”可以將二維空間映射到三維空間,然后使用一個線性平面就可以達成類似效果。也就是說,二維平面划分出的非線性分類界線可以等價於三維平面的線性分類界線。於是,我們可以通過在三維空間中進行簡單的線性划分就可以達到在二維平面中的非線性划分效果。
支持向量機是一種數學成分很濃的機器學習算法(相對的,神經網絡則有生物科學成分)。在算法的核心步驟中,有一步證明,即將數據從低維映射到高維不會帶來最后計算復雜性的提升。於是,通過支持向量機算法,既可以保持計算效率,又可以獲得非常好的分類效果。因此支持向量機在90年代后期一直占據着機器學習中最核心的地位,基本取代了神經網絡算法。直到現在神經網絡借着深度學習重新興起,兩者之間才又發生了微妙的平衡轉變。
4、聚類算法
無監督算法中最典型的代表就是聚類算法。
讓我們還是拿一個二維的數據來說,某一個數據包含兩個特征。我希望通過聚類算法,給他們中不同的種類打上標簽,我該怎么做呢?簡單來說,聚類算法就是計算種群中的距離,根據距離的遠近將數據划分為多個族群。
聚類算法中最典型的代表就是K-Means算法。
5、降維算法
降維算法也是一種無監督學習算法,其主要特征是將數據從高維降低到低維層次。
降維算法的主要作用是壓縮數據與提升機器學習其他算法的效率。通過降維算法,可以將具有幾千個特征的數據壓縮至若干個特征。另外,降維算法的另一個好處是數據的可視化,例如將5維的數據壓縮至2維,然后可以用二維平面來可視。降維算法的主要代表是PCA算法(即主成分分析算法)。
6、推薦算法
推薦算法是目前業界非常火的一種算法,在電商界,如亞馬遜,天貓,京東等得到了廣泛的運用。推薦算法的主要特征就是可以自動向用戶推薦他們最感興趣的東西,從而增加購買率,提升效益。推薦算法有兩個主要的類別:
一類是基於物品內容的推薦,是將與用戶購買的內容近似的物品推薦給用戶,這樣的前提是每個物品都得有若干個標簽,因此才可以找出與用戶購買物品類似的物品,這樣推薦的好處是關聯程度較大,但是由於每個物品都需要貼標簽,因此工作量較大。
另一類是基於用戶相似度的推薦,則是將與目標用戶興趣相同的其他用戶購買的東西推薦給目標用戶,例如小A歷史上買了物品B和C,經過算法分析,發現另一個與小A近似的用戶小D購買了物品E,於是將物品E推薦給小A。
兩類推薦都有各自的優缺點,在一般的電商應用中,一般是兩類混合使用。推薦算法中最有名的算法就是協同過濾算法。
7、其他
除了以上算法之外,機器學習界還有其他的如高斯判別,朴素貝葉斯,決策樹等等算法。但是上面列的六個算法是使用最多,影響最廣,種類最全的典型。機器學習界的一個特色就是算法眾多,發展百花齊放。
下面做一個總結,按照訓練的數據有無標簽,可以將上面算法分為監督學習算法和無監督學習算法,但推薦算法較為特殊,既不屬於監督學習,也不屬於非監督學習,是單獨的一類。
監督學習算法:
線性回歸,邏輯回歸,神經網絡,SVM
無監督學習算法:
聚類算法,降維算法
特殊算法:
推薦算法
除了這些算法以外,有一些算法的名字在機器學習領域中也經常出現。但他們本身並不算是一個機器學習算法,而是為了解決某個子問題而誕生的。你可以理解他們為以上算法的子算法,用於大幅度提高訓練過程。其中的代表有:梯度下降法,主要運用在線型回歸,邏輯回歸,神經網絡,推薦算法中;牛頓法,主要運用在線型回歸中;BP算法,主要運用在神經網絡中;SMO算法,主要運用在SVM中。
機器學習的分類
目前機器學習主流分為:監督學習,無監督學習,強化學習。
a) 監督學習是最常見的一種機器學習,它的訓練數據是有標簽的,訓練目標是能夠給新數據(測試數據)以正確的標簽。例如,將郵件進行是否垃圾郵件的分類,一開始我們先將一些郵件及其標簽(垃圾郵件或非垃圾郵件)一起進行訓練,學習模型不斷捕捉這些郵件與標簽間的聯系進行自我調整和完善,然后我們給一些不帶標簽的新郵件,讓該模型對新郵件進行是否是垃圾郵件的分類。
b) 無監督學習常常被用於數據挖掘,用於在大量無標簽數據中發現些什么。無監督主要有三種:聚類、離散點檢測和降維。
它的訓練數據是無標簽的,訓練目標是能對觀察值進行分類或者區分等。例如無監督學習應該能在不給任何額外提示的情況下,僅依據所有“貓”的圖片的特征,將“貓”的圖片從大量的各種各樣的圖片中將區分出來。
c) 強化學習通常被用在機器人技術上(例如機械狗),它接收機器人當前狀態,算法的目標是訓練機器來做出各種特定行為。工作流程多是:機器被放置在一個特定環境中,在這個環境里機器可以持續性地進行自我訓練,而環境會給出或正或負的反饋。機器會從以往的行動經驗中得到提升並最終找到最好的知識內容來幫助它做出最有效的行為決策。
機器學習模型的評估
拿貓的識別來舉例,假設機器通過學習,已經具備了一定的識別能力。那么,我們輸入4張圖片,機器的判斷如下:

常用的評價指標有三種:准確率(precision)、召回率(recall)和精准率(accuracy),其中:
Precision = TP/(TP+FP),表示我們抓到的人中,抓對了的比例;
Recall = TP/ (TP+FN),表示我們抓到的壞人占所有壞人的比例;
Accuracy = (TP + TN)/ All ,表示識別對了(好人被識別成好人,壞人被識別成壞人)的比例。
三個指標越高,表示算法的適應性越好。
機器學習的應用
機器學習與大數據的結合產生了巨大的價值。基於機器學習技術的發展,數據能夠“預測”。對人類而言,積累的經驗越豐富,閱歷也廣泛,對未來的判斷越准確。例如常說的“經驗豐富”的人比“初出茅廬”的小伙子更有工作上的優勢,就在於經驗豐富的人獲得的規律比他人更准確。而在機器學習領域,根據著名的一個實驗,有效的證實了機器學習界一個理論:即機器學習模型的數據越多,機器學習的預測的效率就越好。
機器學習界的名言:成功的機器學習應用不是擁有最好的算法,而是擁有最多的數據!
在大數據的時代,有好多優勢促使機器學習能夠應用更廣泛。例如隨着物聯網和移動設備的發展,我們擁有的數據越來越多,種類也包括圖片、文本、視頻等非結構化數據,這使得機器學習模型可以獲得越來越多的數據。同時大數據技術中的分布式計算Map-Reduce使得機器學習的速度越來越快,可以更方便的使用。種種優勢使得在大數據時代,機器學習的優勢可以得到最佳的發揮。
機器學習的子類--深度學習
2006年,Geoffrey Hinton在科學雜志《Science》上發表了一篇文章,論證了兩個觀點:
1.多隱層的神經網絡具有優異的特征學習能力,學習得到的特征對數據有更本質的刻畫,從而有利於可視化或分類;
2.深度神經網絡在訓練上的難度,可以通過“逐層初始化” 來有效克服。
通過這樣的發現,不僅解決了神經網絡在計算上的難度,同時也說明了深層神經網絡在學習上的優異性。從此,神經網絡重新成為了機器學習界中的主流強大學習技術。同時,具有多個隱藏層的神經網絡被稱為深度神經網絡,基於深度神經網絡的學習研究稱之為深度學習。
目前業界許多的圖像識別技術與語音識別技術的進步都源於深度學習的發展,除了本文開頭所提的Cortana等語音助手,還包括一些圖像識別應用,其中典型的代表就是下圖的百度識圖功能。
深度學習屬於機器學習的子類。基於深度學習的發展極大的促進了機器學習的地位提高,更進一步地,推動了業界對機器學習父類人工智能夢想的再次重視。
機器學習的父類--人工智能
人工智能是機器學習的父類。深度學習則是機器學習的子類。如果把三者的關系用圖來表明的話,則是下圖:

總結起來,人工智能的發展經歷了如下若干階段,從早期的邏輯推理,到中期的專家系統,這些科研進步確實使我們離機器的智能有點接近了,但還有一大段距離。直到機器學習誕生以后,人工智能界感覺終於找對了方向。基於機器學習的圖像識別和語音識別在某些垂直領域達到了跟人相媲美的程度。機器學習使人類第一次如此接近人工智能的夢想。
讓我們再看一下機器人的制造,在我們具有了強大的計算,海量的存儲,快速的檢索,迅速的反應,優秀的邏輯推理后我們如果再配合上一個強大的智慧大腦,一個真正意義上的人工智能也許就會誕生,這也是為什么說在機器學習快速發展的現在,人工智能可能不再是夢想的原因。
人工智能的發展可能不僅取決於機器學習,更取決於前面所介紹的深度學習,深度學習技術由於深度模擬了人類大腦的構成,在視覺識別與語音識別上顯著性的突破了原有機器學習技術的界限,因此極有可能是真正實現人工智能夢想的關鍵技術。無論是谷歌大腦還是百度大腦,都是通過海量層次的深度學習網絡所構成的。也許借助於深度學習技術,在不遠的將來,一個具有人類智能的計算機真的有可能實現。
出處:
https://www.cnblogs.com/lizheng114/p/7439556.html
http://www.cnblogs.com/subconscious/p/4107357.html
