人工智能
什麼是人工智能、機器學習與深度學習(見圖1-1)?這三者之間有什麼關係?
人工智能的簡潔定義以下:努力將一般由人類完成的智力任務自動化。所以,人工智能是一個
綜合性的領域,不只包括機器學習與深度學習,還包括更多不涉及學習的方法。
例如,早期的國際象棋程序僅包含程序員精心編寫的硬編碼規則,並不屬於機器學習。在至關
長的時間內,許多專家相信,只要程序員精心編寫足夠多的明確規則來處理知識,就能夠實現
與人類水平至關的人工智能。這一方法被稱爲符號主義人工智能(symbolic AI),從20 世紀50
年代到80 年代末是人工智能的主流範式。
在20 世紀80 年代的專家系統(expert system)熱潮中,這一方法的熱度達到了頂峯。
雖然符號主義人工智能適合用來解決定義明確的邏輯問題,好比下國際象棋,但它難以給
出明確的規則來解決更加複雜、模糊的問題,好比圖像分類、語音識別和語言翻譯。因而出現
了一種新的方法來替代符號主義人工智能,這就是機器學習(machine learning)。
機器學習
在經典的程序設計(即符號主義人工智能的範
式)中,人們輸入的是規則(即程序)和須要根據這些規則進行處理的數據,系統輸出的是答案
(見圖1-2)。利用機器學習,人們輸入的是數據和從這些數據中預期獲得的答案,系統輸出的是
規則。這些規則隨後可應用於新的數據,並使計算機自主生成答案。
機器學習系統是訓練出來的,而不是明確地用程序編寫出來的。
機器學習(尤爲是深度學習)呈現出相對較少的數學理論(可能太少了),而且是以工程爲導向的。這是一門須要上手實踐的
學科,想法更多地是靠實踐來證實,而不是靠理論推導。
從數據中學習表示
咱們須要如下三個要素來進行機器學習
-
輸入數據點。
-
預期輸出的示例
-
衡量算法效果好壞的方法
機器學習和深度學習的核心問題在於有意義地變換數據,換句話說,在
於學習輸入數據的有用表示(representation)——這種表示可讓數據更接近預期輸出
機器學習的技術定義:在預先定義好的可能性空間中,利用反饋信號的指引來尋找
輸入數據的有用表示。
深度學習
深度學習是機器學習的一個分支領域:它是從數據中學習表示的一種新方法,強調從連續
的層(layer)中進行學習,這些層對應於愈來愈有意義的表示。
深度學習模型不是大腦模型。沒有證據代表大腦的學習機制與現代深度學習模型所使用的相同
就咱們的目的而言,深度學習是從數據中學習表示的一種數學框架。
這個網絡將數字圖像轉換成與原始圖像差異愈來愈大的表示,而其中關於
最終結果的信息卻愈來愈豐富。你能夠將深度網絡看做多級信息蒸餾操做:信息穿過連續的過
濾器,其純度愈來愈高(即對任務的幫助愈來愈大)。
這就是
深度學習的技術定義:學習數據表示的多級方法。這個想法很簡單,但事實證實,
很是簡單的機制若是具備足夠大的規模,將會產生魔法般的效果。
三張圖理解深度學習的工做原理
神經網絡中每層對輸入數據所作的具體操做保存在該層的權重(weight)中,其本質是一串數字。
學習的意思是爲神經網絡的全部層找到一組權重值,使得該網絡可以將每一個示例輸入與其目標正確地一一對應
想要控制神經網絡的輸出,就須要可以衡量該輸出與預期值之間的距離。這是神經網絡損失函數(loss function)的任務,該函數也叫目標函數(objective function)。
損失函數的輸入是網絡預測值與真實目標值(即你但願網絡輸出的結果),而後計算一個距離值,衡量該網絡在這個示例上的效果好壞
深度學習的基本技巧是利用這個距離值做爲反饋信號來對權重值進行微調,以下降當前示
例對應的損失值(見圖1-9)。這種調節由優化器(optimizer)來完成,它實現了所謂的反向
傳播(backpropagation)算法,這是深度學習的核心算法。
深度學習不必定老是解決問題的正確工具:有時沒有足夠的數據,深度學習不適用;有
時用其餘算法能夠更好地解決問題。
機率建模
機率建模(probabilistic modeling)是統計學原理在數據分析中的應用。它是最先的機器學
習形式之一,至今仍在普遍使用。其中最有名的算法之一就是樸素貝葉斯算法。
樸素貝葉斯是一類基於應用貝葉斯定理的機器學習分類器,它假設輸入數據的特徵都是獨
立的。
另外一個密切相關的模型是logistic 迴歸(logistic regression,簡稱logreg),它有時被認爲是
現代機器學習的「hello world」。不要被它的名稱所誤導——logreg 是一種分類算法,而不是回
歸算法
早期神經網絡
貝爾實驗室於1989 年第一次成功實現了神經網絡的實踐應用,當時Yann LeCun 將卷積
神經網絡的早期思想與反向傳播算法相結合,並將其應用於手寫數字分類問題,由此獲得名爲
LeNet 的網絡,在20 世紀90 年代被美國郵政署採用,用於自動讀取信封上的郵政編碼。
核方法
核方法是一組分類算法,其中最有名的就是支持向量機(SVM,
support vector machine)
SVM 的目標是經過在屬於兩個不一樣類別的兩組數據點之間找到良好決策邊界(decision
boundary,見圖1-10)來解決分類問題。決策邊界能夠看做一條直線或一個平面,將訓練數據
劃分爲兩塊空間,分別對應於兩個類別。對於新數據點的分類,你只需判斷它位於決策邊界的
哪一側。
SVM 經過兩步來尋找決策邊界。
(1) 將數據映射到一個新的高維表示,這時決策邊界能夠用一個超平面來表示(若是數據像
圖1-10 那樣是二維的,那麼超平面就是一條直線)。
(2) 儘可能讓超平面與每一個類別最近的數據點之間的距離最大化,從而計算出良好決策邊界(分
割超平面),這一步叫做間隔最大化(maximizing the margin)。這樣決策邊界能夠很好
地推廣到訓練數據集以外的新樣本。
核技巧
其基本思想是:要想在新的表示空間中找到良好的決策超平面,你不須要在新空間中直接計算
點的座標,只須要在新空間中計算點對之間的距離,而利用核函數(kernel function)能夠高效
地完成這種計算。核函數是一個在計算上可以實現的操做,將原始空間中的任意兩點映射爲這
兩點在目標表示空間中的距離,徹底避免了對新表示進行直接計算。核函數一般是人爲選擇的,
而不是從數據中學到的——對於SVM 來講,只有分割超平面是經過學習獲得的。
SVM 剛剛出現時,在簡單的分類問題上表現出了最好的性能
可是,SVM 很難擴展到大型數據集,而且在圖像分類等感知問題上的效果也很差。SVM
是一種比較淺層的方法,所以要想將其應用於感知問題,首先須要手動提取出有用的表示(這
叫做特徵工程),這一步驟很難,並且不穩定。
決策樹
決策樹(decision tree)是相似於流程圖的結構,能夠對輸入數據點進行分類或根據給定輸
入來預測輸出值(見圖1-11)。
隨機森林(random forest)算法
它引入了一種健壯且實用的決策樹學習方法,即
首先構建許多決策樹,而後將它們的輸出集成在一塊兒。
梯度提高機
梯度提高機(gradient boosting machine)也是將弱預測模型(一般是決策樹)集成的機器學習技術。它使用了梯度提高方法,經過迭代地訓練新模型來專門解決
以前模型的弱點,從而改進任何機器學習模型的效果。將梯度提高技術應用於決策樹時,獲得
的模型與隨機森林具備類似的性質,但在絕大多數狀況下效果都比隨機森林要好。它多是目
前處理非感知數據最好的算法之一
深度學習有何不一樣
兩個基本特徵:
第一,經過漸進的、逐層的方式造成愈來愈複雜的表示;
第二,對中間這些漸進的表示共同進行學習,每一層的變化都須要同時考慮上下兩層的須要。
總之,這兩個特徵使得深度學習比先前的機器學習方法更加成功。
深度學習重要的性質
1. 簡單。深度學習不須要特徵工程,它將複雜的、不穩定的、工程量很大的流程替換爲簡
單的、端到端的可訓練模型,這些模型一般只用到五六種不一樣的張量運算。
2. 可擴展。深度學習很是適合在GPU或TPU上並行計算,所以能夠充分利用摩爾定律。此外,
深度學習模型經過對小批量數據進行迭代來訓練,所以能夠在任意大小的數據集上進行
訓練
3. 多功能與可複用。與以前的許多機器學習方法不一樣,深度學習模型無須從頭開始就能夠
在附加數據上進行訓練,所以可用於連續在線學習,這對於大型生產模型而言是很是重
要的特性。此外,訓練好的深度學習模型可用於其餘用途,所以是能夠重複使用的