深度學習綜述Yann LeCun

論文作者:Yann LeCun 1,2 , Yoshua Bengio 3 & Geoffrey Hinton 4,5

深度學習系統可用於圖像識別、電子購物中的商品推、網頁搜索等。傳統機器學習受限於對原始數據(如圖像的像素值)的處理能力,在處理前需要設計特徵提取器(子系統),通過子系統將原始數據轉化爲適用於網絡的特徵向量(給定表示進行學習)。子系統通常是可以發現或分類輸入數據模式的分類器。
表示學習是一種可以處理原始數據並自動提取識別或分類所需要的特徵(表示)的方法集,即讓機器去學習表示,讓機器學習如何學習。深度學習是具有多層表示的表示學習方法,由多個簡單但非線性的模塊組成,每層的表示轉換(從原始數據開始)都向着更抽象的層進行。通過足夠多的這種轉換實現,機器就能學得複雜的函數關係。對於分類任務,較高的表示層放大輸入中較重要的參數特徵,抑制不相關的變量。例如,對於以像素值矢量出現的圖像,表示的第一層所學得的特徵通常爲是否出現特定方向和位置的邊緣(識別邊緣);第二層通常忽視邊緣位置變量的微小變化,通過特定的邊緣點排列來檢測邊(識別角和擴展輪廓的邊集合);第三層把圖像聚合成更大的組合,對應於已知對象的一部分;後續層會檢測這些部分組合所成的對象。深度學習的關鍵是這些特徵通過一般性的學習程序從數據中學習獲得。
深度學習適用於處理高維度數據,在多個領域表現良好,如圖像識別、語音識別、自然語言處理等。隨着數據量、計算資源的加大,深度網絡的發展,深度學習會取得更成功的進展。
監督學習
監督學習是機器學習最常見的形式。假設我們想要實現一個可以分類圖像的系統,如區分房子、汽車、人和寵物。我們應該先收集大量圖片集,每個圖片進行了類別標識,即加入了標籤。通過訓練,機器爲每類圖像產生一個打分的向量形式的輸出。我們希望做到所需要識別圖像的輸出分數最大,我們用一個目標函數來衡量訓練輸出值和我們所希望得到的輸出值間的誤差。機器通過調整其網絡內部參數來減小這個誤差。這種參數稱爲權重。在典型的深度學習網絡中,可能會有數億個權重和含標籤數據。
爲了恰當地調整權重向量,學習算法爲每個權重計算梯度向量,表示權重發生微小變化時誤差的變化量,然後在與梯度向量相反的方向上調整權重向量。
平均所有訓練樣例的目標函數可以看作是高維權重值空間中的一種丘陵景觀。負梯度向量表示下降最陡峭的方向,使梯度接近最小值,輸出誤差平均也較低。
在實踐中,大多數從業者使用隨機梯度下降(SGD)。 這包括顯示一些樣本的輸入向量,計算輸出和誤差,計算這些樣本的平均梯度,以及相應地調整權重。 對於來自訓練集的隨機選取的小樣本,重複該過程,直到目標函數的平均值停止減小。這一程序通常會比更復雜的算法更快的找到恰當的權重值。 在訓練之後,使用測試集(不同於訓練集)對網絡性能進行測試。 這有助於測試網絡的泛化能力(即對測試集輸出合理的答案)。
機器學習當前實際應用在基於人工設計特徵的線性分類器。二分類線性分類器計算特徵向量分量的加權和。如果加權和高於閾值,則輸入被分類到特定類別。
線性分類器只能對輸入空間進行簡單劃分。而對於圖像識別、語音識別,要求對一些不相關變量的變化不敏感,例如對象位置,方向或亮度的變化、語音的音調或重音的變化,同時對一些特定變量很敏感,例如白狼和薩摩耶犬之間的區別。在像素級別,兩個不同的姿勢和不同的環境下的薩摩耶圖像可能會有很大不同,而薩摩耶和狼的圖像在相同的位置和相似的背景下可能非常相似。大多線性分類器無法對此做出準確識別。傳統方法中,設計一個好的特徵提取器就非常重要。而深度學習可以通過自動學習特徵進行網絡訓練,這是深度學習的主要優勢。
深度學習體系結構是簡單模塊的多層堆棧,其中所有(或大多數)模塊都需要進行學習,計算非線性輸入輸出映射。堆棧中的每個模塊都會轉換其輸入,使得其表示趨於穩定。 使用多個非線性層,例如5到20的深度,系統可以實現極其複雜的功能,如對區分薩摩耶與白狼的微小細節敏感,並且對諸如背景、姿勢、照明和周圍的物體等無關變量不敏感。
反向傳播訓練多層網絡
用於計算與權值相關的目標函數的梯度的反向傳播算法是衍生鏈規則的一個應用。一個模塊輸入的梯度可以通過反向傳播輸出的梯度得出。所有層的梯度計算都可用此方法完成。
深度學習的許多應用使用前饋神經網絡的工作架構,學習將固定大小的輸入映射到固定大小的輸出。從一層到下一層,通過計算來自前一層的其輸入的加權和並通過非線性函數傳遞結果。在目前,最流行的非線性函數是整流線性單位(ReLU),即半波整流器f(z)= max(z,0)。在過去的幾十年中,神經網絡使用更平滑的非線性函數,例如tanh(z)或1 /(1 + exp(-z)),但在深度網絡中,ReLU通常學得更快。不在輸入或輸出層的層通常稱爲隱藏層。隱藏層可以看作是以非線性方式轉換輸入,這樣類別就可以被最後一層線性分離。
在20世紀90年代後期,神經網絡和反向傳播在很大程度上被機器學習社區所拋棄。人們認爲梯度下降會陷入一個局部最優的困境,無法達到全局最優。
實際上在大型網絡中,局部最優並不是一個問題。幾乎所有局部最優的目標函數都有相似的參數取值。對深度前饋網絡的興趣在2006年左右重新開始,由CIFAR研究人員介紹了無人監督的學習程序,可以創建層特徵檢測器,無需標記數據。這對於識別手寫數字或檢測行人很有效,特別是有標籤數據數量有限的情況下。而卷積神經網絡比全連接的網絡更易被訓練,卷積神經網絡在計算機視覺領域有廣泛應用。
在這裏插入圖片描述
卷積神經網絡
ConvNets設計用於處理以多個陣列形式出現的數據,例如由包含三種顏色的像素強度的2D陣列組成的彩色圖像。 許多數據模式採用多個數組的形式:1D的信號和序列表示,如語言; 2D用於圖像或音頻譜圖; 3D用於視頻或體積圖像的表示。
一個最典型的卷積網絡,由卷積層、池化層、全連接層組成。其中卷積層與池化層配合,組成多個卷積組,逐層提取特徵,最終通過若干個全連接層完成分類。CNN通過卷積來模擬特徵區分,並且通過卷積的權值共享及池化,來降低網絡參數的數量級,最後通過傳統神經網絡完成分類等任務。池化層主要是爲了降低數據維度。
ConvNets背後的四個關鍵思想:

  1. 局部連接(local connections),每個神經元其實沒有必要對全局圖像進行感知,只需要對局部進行感知,然後在更高層將局部的信息綜合起來就得到了全局的信息;
  2. 權值共享(shared weights),(也就是卷積操作)減少了權值數量,降低了網絡複雜度,可以看成是特徵提取的方式。其中隱含的原理是:圖像中的一部分的統計特性與其他部分是一樣的,意味着我們在這一部分學習的特徵也能用在另一部分上,所以對於這個圖像上的所有位置,我們都能使用同樣的學習特徵;
  3. 池化(pooling),在通過卷積獲得了特徵 (features) 之後,下一步我們希望利用這些特徵去做分類。人們可以用所有提取得到的特徵去訓練分類器,例如 softmax 分類器,但這樣做面臨計算量的挑戰,並且容易出現過擬合 (over-fitting),因此,爲了描述大的圖像,可以對不同位置的特徵進行聚合統計,如計算平均值或者是最大值,即mean-pooling和max-pooling;
  4. 多層(the use of many layers)。
    深度卷積網絡在對象檢測方面應用廣泛。包括交通標識檢測、文字檢測、人臉識別等。圖像可以在像素級別進行標記,這可以應用到很多領域,包括自動移動機器人、無人駕駛汽車等,深度卷積網絡在語音識別、自然語言處理方面也有了很多應用。2012年ImageNet比賽中深度卷積網絡取得的成功也使其在計算機視覺領域得到應用。隨着軟硬件技術發展,訓練網絡所需時間也大幅減少。
    分佈式表示和語言處理
    自然語言處理中,深度網絡用單詞向量表示文本。向量中的每一個元素都對應着原始單詞的某一個語義特徵。這些特徵互不排斥,共同表達了原始文本里的單詞。這些單詞向量由學習得到的特徵組成,這些特徵未明確出現在輸入中,是由神經網絡自動發現的。語義相關的詞在向量空間中的表示更接近。從文本中學習單詞的向量表示在自然語言應用被廣泛使用。
    循環神經網絡
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    對於語言處理等以序列形式爲輸入的任務,使用RNN最好。RNN的隱藏層包含表示前一時刻信息的狀態向量,我們可以用反向傳播算法對RNN進行訓練。RNN是非常強大的動態系統,但它的訓練比較困難,會出現梯度消失與梯度爆炸的問題。這一問題現在已經解決,實驗表明,RNN在句子中的下一個單詞的推斷上表現良好,並且可以實現不同語言的翻譯。網絡也可以實現將圖像用英文句子來描述,編碼器是一個深度卷積網絡,解碼器是一個RNN網絡。
    RNN儘管可以保留時間信息,但保存長時期的信息仍然不可行。長時信息的保存需要通過長短時記憶(LSTM)網絡來實現。通過LSTM,可以讓機器完成文字冒險遊戲或在閱讀完故事後回答一定的問題。
    深度學習的未來
    無監督學習應當是深度學習的發展趨勢。深度學習和強化學習結合的系統已經開始出現,並在分類任務中有一定的應用。未來幾年深度學習基於RNN應該會在自然語言處理領域取得進展。最終,人工智能的重大進步將通過將表示學習與複雜推理相結合的系統來實現。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章