近年來,深度學習作為機器學習的新分支,其應用在多個領域取得巨大成功,並一直在快速發展,不斷開創新的應用模式,創造新機會。深度學習方法根據訓練資料是否擁有標記資訊被劃分為監督學習、半監督學習和無監督學習。實驗結果顯示了上述方法在影像處理、計算機視覺、語音識別、機器翻譯、藝術、醫學成像、醫療資訊處理、機器人控制和生物、自然語言處理(NLP)、網路安全等領域的最新成果。本報告簡要概述了深度學習方法的發展,包括深度神經網路(DNN)、卷積神經網路(CNN)、迴圈神經網路(RNN)(包括長短期記憶(LSTM)和門控迴圈單元(GRU))、自 編碼器(AE)、深度信念網路(DBN),生成對抗網路(GAN)和深度強化學習(DRL)。此外,本文也涵蓋了深度學習方法前沿發展和高階變體深度學習技術。此外,深度學習方法在各個應用領域進行的探索和評估也包含在本次調查中。我們還會談到最新開發的框架、SDK 和用於評估深度學習方法的基準資料集。然而,這些論文並沒有討論某些大型深度學習模型和最新開發的生成模型方法 [1]。
介紹
自 20 世紀 50 年代以來,作為人工智慧子領域的機器學習已經開始革新若干個領域,而誕生自機器學習的深度學習實現了迄今為止最大的原創性突破,幾乎在每個應用領域取得了顯著成功。圖 1 給出了 AI 的譜系。深度學習(學習或分層學習方法的深層架構)是從 2006 年興起的一類機器學習技術。在深度學習中,學習即是評估模型引數,使學習模型(演算法)可執行特定任務。例如,在人工神經網路(ANN)中,引數是權重矩陣。另一方面,深度學習在輸入層和輸出層之間包含若干個隱層,使得不同階段的非線性處理單元具有層級結構,以用於特徵學習和模式分類 [1, 2]。基於資料表徵的學習方法也被稱為表徵學習 [3]。根據最新文獻,基於深度學習的表徵學習涉及特徵或概念的層次結構,其中高階概念可以從低階概念定義,低階概念可以從高階概念定義。在一些文章中,深度學習也被描述為一種通用學習方法,可以解決不同應用領域的幾乎所有問題(不侷限於特定任務)[4]。
A. 深度學習方法的型別
像機器學習一樣,深度學習方法可以分為以下幾類:監督、半監督、部分監督以及無監督。此外,還有另一類學習方法稱為強化學習(Reinforcement Learning)或深度強化學習(Deep Reinforcement Learning),它們經常在半監督或非監督學習方法的範圍內討論。
1) 監督學習
一種使用標註資料的學習技術。在其案例中,環境包含一組對應的輸入輸出 。比如,輸入是 x_t,智慧體預測,則會獲得損失值。接著智慧體不斷迭代調整網路引數,從而更好地近似期望輸出。成功訓練之後,智慧體可對環境問題做出正確回答。監督學習主要有以下幾種:深度神經網路 (DNN)、卷積神經網路 (CNN)、迴圈神經網路(包含 LSTM)以及門控迴圈單元(GRU)。上述網路將分別在 2、3、4、5 章節中詳述。
2) 半監督學習
一種使用部分標註資料的學習技術(通常被稱之為強化學習)。本文第 8 節調查了其方法。在一些案例中,深度強化學習(DRL)和生成對抗網路(GAN)常被用作半監督學習技術。此外,包含 LSTM 的 RNN 和 GRU 也可劃分為半監督學習。GAN 將在第 7 節討論。
3) 無監督學習
一種不使用標註資料的學習技術。在這種情況下,智慧體學習內部表示或重要特徵以發現輸入資料中的未知關係或結構。無監督學習方法通常有聚類、降維和生成技術等。有些深度學習技術擅長聚類和非線性降維,如自編碼器(AE)、受限玻爾茲曼機(RBM)和 GAN。此外,RNN(比如 LSTM)和 RL 也被用作半監督學習 [243]。本文第 6、7 節將分別詳述 RNN 和 LSTM。
4) 深度強化學習(DRL)
一種適用於未知環境的學習技術。DRL 始於 2013 年穀歌 Deep Mind[5,6]。從此,人們基於 RL 提出了幾種先進的方法,例如:如果環境樣本輸入:agent〜ρ,agentpredict:,agentreceivecost:,其中 P 是未知機率分佈,環境向智慧體提出問題,並給其一個有噪音的分值作為答案。有時這種方法也被稱為半監督學習。許多半監督和無監督學習方法已經基於這個概念實施(第 8 節)。在 RL 中,我們沒有一個簡單的前向損失函式,因此與傳統的監督方法相比,這使得機器學習變得更困難。RL 和監督學習之間的根本區別在於:首先,我們無法獲取你正在最佳化的函式,而必須透過互動來查詢它;其次,我們正在與基於狀態的環境互動:輸入 x_t 取決於先前的動作。
B. 特徵學習
傳統機器學習和深度學習之間的關鍵區別在於如何提取特徵。傳統機器學習方法透過應用幾種特徵提取演算法,包括尺度不變特徵變換(SIFT)、加速魯棒特徵(SURF)、GIST、RANSAC、直方圖方向梯度(HOG)、區域性二元模式(LBP)、經驗模式分解(EMD)語音分析等等。最後,包括支援向量機(SVM)、隨機森林(RF)、主成分分析(PCA)、核主成分分析(KPCA)、線性遞減分析(LDA)、Fisher 遞減分析(FDA)等很多學習演算法都被人們應用於分類和提取特徵的任務。此外,其他增強方法通常多個應用於單個任務或資料集特徵的學習演算法,並根據不同演算法的多個結果進行決策。
另一方面,在深度學習中,這些特徵會被自動學習並在多個層上分層表示。這是深度學習超越傳統機器學習方法的原因。上表展示了不同特徵學習方法與不同學習步驟之間的關係。
C. 應用深度學習的時機和領域
人工智慧在以下領域十分有用,深度學習在其中扮演重要角色:
1. 缺乏人類專家(火星導航);
2. 人們尚無法解釋的專業知識(演講、認知、視覺和語言理解);
3. 問題的解決方案隨時間不斷變化(追蹤、天氣預報、偏好、股票、價格預測);
4. 解決方案需要適應特定情況(生物統計學、個性化);
5. 人類的推理能力有限,而問題的規模卻很大(計算網頁排名、將廣告匹配到 Facebook、情感分析)。
目前,深度學習幾乎在各個領域都有應用。因此,這種方法有時也被稱為通用學習方法。圖 4 顯示了一些示例應用程式。
D. 深度學習的前沿發展
深度學習在計算機視覺和語音識別領域有一些突出的成就,如下所述:
1)ImageNet 資料集上的影像分類
深度學習在影像分類領域的應用基準被稱為大規模視覺識別挑戰(LSVRC)。基於深度學習和卷積神經網路技術,深度學習在 ImageNet 測量精確度中有很好的表現 [11]。近日,Russakovsky 等人發表了一篇關於 ImageNet 資料集的文章及近年來研究者們實現的最高精確度 [285]。下圖顯示了 2012 年深度學習技術的發展歷程。時至今日,我們開發的方法在 ResNet-152 上只有 3.57%的誤差,低於人類約 5% 的誤差。
2)自動語音識別
深度學習透過 TIMIT 資料集(通用資料集通常用於評估)完成的小規模識別任務是深度學習在語音識別領域的初次成功體現。TIMIT 連續聲音 - 語音語料庫包含 630 位來自美國的八種主要英語口音使用者,每位發言人讀取 10 個句子。下圖總結了包括早期結果在內的錯誤率,並以過去 20 年的電話錯誤率(PER)來衡量。條形圖清楚地表明,與 TIMIT 資料集上以前的機器學習方法相比,最近開發的深度學習方法(圖頂部)表現更好。
E. 為什麼要使用深度學習
1)通用學習方法
深度學習有時被稱為通用學習,因為它幾乎可以應用於任何領域。
2)魯棒性
深度學習方法不需要提前設計功能。其自動學習的功能對於當前的任務來說是最佳的。結果是,任務自動獲得對抗資料自然變化的魯棒性。
3)泛化
相同的深度學習方法可以用於不同的應用程式或不同的資料型別,這種方法通常被稱為遷移學習。另外,這種方法在可用資料不足時很有用。根據這個概念研究學者已經發表了多篇論文(在第 4 節中會有更詳細地討論)。
4)可擴充套件性
深度學習方法具有高度可擴充套件性。在 2015 年的一篇論文中,微軟描述了一個名為 ResNet 的網路 [11]。該網路包含 1202 個層,並且通常由超級計算規模部署。美國的勞倫斯利弗莫爾國家實驗室(LLNL)正在為這樣的網路開發框架,該框架可以實現數千個節點 [24]。
F. 深度學習面臨的挑戰:
使用深度學習進行大資料分析
深度學習方法要有可擴充套件性
在資料不可用於學習系統的情況下(尤其是對於計算機視覺任務,例如反向圖形),生成資料的能力非常重要。
特殊用途裝置的低能耗技術,如移動端智慧,FPGA 等。
多工和遷移學習(泛化)或多模組學習。這意味著要從不同的領域或不同的模型一起學習。
在學習中處理因果關係。
其次,大部分針對大規模問題的案例,其解決方案正在高效能運算機(HPC)系統(超級計算機、叢集,有時被視為雲端計算)上部署,這為資料密集型商業計算提供了巨大的潛力。但隨著資料在速度,多樣性,準確性和數量上的爆炸式增長,我們越來越難以使用企業級伺服器進行儲存和提升計算效能。大多數論文考慮到這些需求,並提出了使用異構計算系統的高效 HPC。例如:勞倫斯利弗莫爾國家實驗室(LLNL)開發了一個框架:Livermore Big Artificial Neural Networks(LBANN),用於大規模部署深度學習(超級計算規模),這一專案明確地回答了深度學習是否可擴充套件的問題 [24]。
第三,生成模型是深度學習的另一個挑戰,其中一個例子是 GAN,它是一種優秀的資料生成方法,可以生成具有相同分佈資料 [28]。第四,我們在第七節討論過的多工和遷移學習。第四,我們對網路架構和硬體方面的高效率深度學習方法進行了大量的研究。第 10 節討論了這個問題。
我們可以製作出適用於多領域、多工的通用模型嗎?出於對多模式系統的關注,最近,谷歌提交的論文《One Model To Learn Them All》[29] 介紹了一種新方法,其可以從不同的應用領域學習,包括 ImageNet、多種翻譯任務、影像標題(MS-COCO 資料集)、語音識別語料庫和英語解析任務。我們將透過這次調查討論主要挑戰和相應的解決方案。在過去幾年中,人們還提出了其他多工技術。
最後,圖形模型是一個具有因果關係的學習系統,用於定義如何根據資料推斷因果模型。最近,已經出現瞭解決此類問題的深度學習方法 [33]。但是,在過去幾年中,還有其他許多具有挑戰性的問題仍未得到有效地解決。例如:影像或影片字幕 [34],使用 GAN [35] 從文字到影像合成 [36] 以及其他從一個域到另一個域的風格遷移。
最近,一些研究者完成了很多關於深度學習的調查,其中有一篇非常高質量的總結,但它沒有涉及最近開發的 GAN 的生成模型 [28]。此外,它提及了強化學習的話題,但沒有涉及深度強化學習方法的近期趨勢 [1,39]。大多數情況下,調查是依據深度學習的不同方法來分類的。本報告的主要目標是介紹深度學習的總體思路及其相關領域,包括深度監督(如 DNN、CNN 和 RNN)、無監督(如 AE、RBM、GAN)(有時 GAN 也用於半監督學習任務)和深度強化學習的思路。在某些情況下,深度強化學習被認為是半監督/無監督的方法。我們考慮了該領域的最新發展趨勢以及基於該技術開發的應用。此外,我們還囊括了評估深度學習技術常用的框架和基準資料集,會議和期刊的名稱也包括在內。
本論文的其餘部分的組織方式如下:第二節討論 DNN 的詳細調查,第三節討論 CNN;第四節介紹了不同的先進技術,以有效地訓練深度學習模型; 第五節討論 RNN; AE 和 RBM 在第六節中討論; GAN 及其應用在第七節討論;強化學習在第八節中介紹;第九節解釋遷移學習; 第十節介紹了深度學習的高效應用方法和硬體; 第十一節討論了深度學習框架和標準開發工具包(SDK); 第十二節給出了不同應用領域的基準測試結果;第十三節為結論。