當前位置:
首頁 > 最新 > 深度學習入門指南!六步構建深度神經網路

深度學習入門指南!六步構建深度神經網路

主講導師|侯宇濤

本文編輯|梁家祥

7月5日,智東西公開課推出的超級公開課NVIDIA專場進行完第九講,由NVIDIA中國GPU應用市場總監侯宇濤主講,主題為《揭秘深度學習》。侯宇濤老師對深度學習的定義、特點、應用以及新入門深度學習開發者的學習路徑進行了深入淺出的介紹。本文是侯宇濤的主講實錄,共計10672字,預計13分鐘讀完。

侯宇濤此前還主講了第三講和第五講,主題分別為《不需要寫代碼,如何用開源軟體DIGITS實現圖像分類》和《手把手教你使用開源軟體DIGITS實現目標檢測》。

主講實錄

侯宇濤:感謝智東西公開課的邀請,非常榮幸今天能有機會跟大家一起分享深度學習這一新概念在市場上盛行的情況。

我叫侯宇濤,是NVIDIA GPU應用市場總監,同時也是NVIDIA深度學習學院的一位認證講師。在過去一年時間裡,我們通過各種各樣的教材,在全國各地分享NVIDIA對於深度學習的理解和體驗,讓更多的人理解深度學習。

今天將從以下四個方面來跟大家分享我對深度學習這個概念的理解:

-機器學習和深度學習的定義;

-深度學習的應用範圍;

-深入學習的實現以及特點;

-上手NVIDIA互動式深度學習訓練平台DIGITS。

03:12

實際上,深度學習是一個解決方法,從範疇上來說,它屬於人工智慧這個大的學術領域範疇。從上世紀五十年代計算機被發明開始,高效地利用各種各樣的工具去解決人類生活生產中的問題成為當時一個大的話題,到了1980年,利用計算機解決問題的方法被初步定義為機器學習,而機器學習有很多的學科,在設計時它是一個交叉的學科,涉及到概率論、統計學、演算法複雜度理論等多門學科。

深度學習是通過對人工神經網路的研究,使得機器學習的操作和執行變得更完善、更高效。因此,深度學習是機器學習的一個分支。從概念上理解,人工智慧包含機器學習,而機器學習包含深度學習。

首先,為什麼要去學習深度學習。2012年9月Kaggle舉辦的分子活動數據挖掘大賽,該大賽每年都會吸引眾多的分子生物學、醫學、化學和藥學數據科學團隊來參加,參賽者要具有非常多的知識積累才能去參加。但是在2012這次,AI人工智慧教父級人物讓他的博士生團隊帶著深度學習的工具到了比賽現場,而他們一點生物學、醫學、分子學和化學背景都沒有,但是最後卻贏得了比賽。

當時這個事件震撼了整個科技界,紐約時報也進行了相應的報道,因為這這件事帶來一種新的現象,自己長期的知識積累和努力可能在某些工具面前沒有辦法得到更好的結果。

這種情況在目前看來或許只是序幕,在中國長時間看來,各種各樣深度學習的應用,包括大家對深度學習的評論,一直都處在整個浪潮的頂端。下面我分享一個例子,有一位學者畢業於北京大學,也有了不錯的工作和自己的項目,並有了不錯的成就,突然有一天他沉寂了,那麼他幹嘛去了呢。他學深度學習去了,在學完深度學習以後,別人問他為什麼要學深度學習,他說了一段話:

「學習深度學習,先跟上再說。學深度學習,是因為不得已,為什麼?因為深度學習結合力太強。可以放在各個場景下,給各個領域帶來衝擊。我們不知道這個東西能用在多少地方,有多大的潛力,能搞出什麼名堂。別的技術,你大概可以設想出它極大的發展之後能達到哪個狀態,比如說,區塊鏈徹底重構互聯網,一切數字產品皆可資產,代碼即法律,所有的交易都可以自動履約完成;比如說,物聯網給每一粒灰塵賦予一個IP,納米機器人在我們的血液里縱橫,消滅一切疾病;比如說,VR創造出的虛擬世界讓人難辨真偽,一輩子體驗幾十輩子的人生,等等,這些事情,不管多麼科幻,你都可以想得到,它有一個明確的方向。有方向就好辦,你可以選擇說這個方向我要跟,或者這個方向我不跟。但是深度學習不一樣,你不知道它的能力邊界在哪裡,更沒有明確的場景限制。幾乎在你可以想到的任何事情中,你都可以構造一個複雜的網路,然後把數據灌進去開始學學,蠻不講理的就可能得到一個更好的結果。在競爭當中,這種武器是最可怕的,沒有固定的形態,放到哪裡都有可能弄出一個意外的大殺器。這種武器,如果別人有而你沒有,不知道對方在什麼地方,什麼時候就突然拿出一個核彈把你炸得渣都不剩,你的準備、經驗和積累完全不起作用,而且在此之前,你完全預見不了。這種感覺太可怕了,因此我必須直接掌握這個工具,這個不是技術情懷也不是前瞻,而是不得已。」這位先生的理解特別能夠體驗到,現在深度學習給各行業帶來的衝擊。無論你是從生活的環境里,還是在工作當中,看到或聽到競爭對手或同行在做出各種各樣精練和高效的工具時都會帶來這樣的壓力。

這樣的壓力在幾年前大家都應該能看到,大家可以看看這張圖片,可以看到一些大牌的公司都在利用深度學習去改善自己的業務流程,從流程上提高自己的業務效率以及生產率。當然也有各種專業提供這樣平台的企業。比如微軟、IBM、阿里雲等企業都享受或正在體驗著深度學習這個工具給他們學習或工作帶來的各種各樣的幫助。

從深度學習的發展以及長期被運用的歷史回顧中,大家總結了三個與深度學習相關的要素:

1.演算法,深度學習需有演算法,你要去做深度學習,演算法一定要足夠的精堪;

2.數據,需要有自己的數據,包括自己的業務數據流,或者整個記錄你一段歷史的工作流程等這些數據是必不可缺的;

3.算力,有了這兩項還是不夠的,還需要一個能夠繼續提供強力運算能力的GPU,幫助你從演算法中得到數據,有了演算法和數據,再加上一個計算能力的GPU,你的深度學習工程才能正常的開展。

目前,深度學習正在席捲各個行業,無論是從互聯網的服務和圖像與視頻的分類,還是語音識別、自然語言理解等方面,我相信大家都已經體驗到深度學習給生活或者工作帶來的便利。從醫療上來講,各種各樣的醫療顧問系統以及高端的診斷系統,其背後都在使用著各種各樣的圖片分類,還有一些智能診斷的解決方案等帶來的便利,很多大醫院的醫生和教授都感受到了深度學習給他們帶來的壓力。

從媒體娛樂上來講,也有在各種各樣視頻使用上的改善,比如我要看一段視頻或一部電影,那麼這個視頻和電影是否滿足我個人的興趣需求,而現在一些應用都可以提前幫助你對視頻或電影進行預先的瀏覽,然後給出內容的總結,能夠讓你對於選中的電影進行第二次分類,這也是所謂的語義理解。

從安防到自動駕駛,都是深度學習涉及到的領域。安防和自動駕駛更多是從圖像上去解決問題,因此我們今天可能會說更多關於圖像的內容。

大家可以看下上面這張圖,它是基於目前深度學習的行業應用做的簡單分類,這個分類也是目前深度學習生態鏈的布局。首先,左上是與視覺相關的,包括各種各樣的圖片和視頻等;與圖像分類和目標檢測相關的,也就是跟你看到的相關;中間是Speech&Audio,跟你聽到的相關;最右邊是跟你理解的相關。

這三種分類基本覆蓋了現在眾多與深度學習相關的應用。另外,可以分得更細一些。從應用上來講,整個市場上有非常多的工具能夠幫到各個開發人員和開發團隊去降低自己的編程工作量,也方便大家去實現各種各樣的開發。上圖中間這一段叫深度學習Framework(深度學習框架),包括Caffe、CNTK、TensorFlow、Theano等,這個層面是各個技術公司為了能夠讓自己對於行業的理解以及對於技術的把握而提供給大家的工具,其中有些收費,有些免費的。

對於NVIDIA來說,由於NVIDIA是AI計算引擎加速的平台服務供應商。對於各種行業的應用,NVIDIA都基於GPU提供了非常多的工具,比如對於深度神經網路,我們提供了專門的cuDNN加速函數庫,大家可以用它實現更高效的Caffe或者是其他Framework。跟cuDNN深度神經網路對應的,有TensorRT,在上圖的右下角,TensorRT是NVIDIA實現推斷用的小工具。

TensorRT是針對GPU優化的工具,使得在訓練中生成的網路能夠在GPU平台上得到網路的重新優化,使得在GPU平台上進行Inference時的速度更快。這也是NVIDIA提供與AI相關的兩個SDK。另外,我們還提供一些高性能計算,比如cuBLAs,cuSPASE等免費的工具,還包括多GPU之間通訊的NCCL。

這段生態鏈只是給大家一個大概的印象,也就是目前的深度學習生態鏈是一個什麼樣的分布,可以作為大家步入深度學習領域的一個參考,而目前成型或者成熟的產品,是最能夠幫到大家的。

這張圖展示的是關於傳統計算機視覺的內容,對於圖片處理,一直到現在都沒有辦法去高效解決人臉識別的問題。上圖的事例中,在最左邊小女孩兒的臉上被標了一些白點,這些白點總共有120個,也就是要識別人臉上的特徵點。在傳統的計算機視覺一般是要用編程的方法來處理圖片識別的問題,每一個特徵點都需要一段代碼來完成,由計算機處理對於圖片上每一個特徵點的像素變化值。也就是說這張人臉有120個特徵點,如果需要識別這張圖片,那麼至少要去寫120段代碼,這是一個比較固定的實現方式,並不是用一個公式就能完成一張圖片各個特徵點的提取。對於這種固定的方式,可以從下邊這個例子來理解。

很明顯,這是一把彈子鎖。要打開彈子鎖,則需要一把鑰匙,鑰匙中有凹槽,也就是要開啟每把鎖的鑰匙都是一一對應的,因此,鎖和鑰匙凹槽的高度與鎖之間的位置是一對一的特性,也就了規定一把鎖對應一把鑰匙。因此可以看出,傳統的計算機視覺處理圖片的方式是一對一的編程模式。

對於傳統的編程模式,是沒有辦法實現一個演算法識別多張圖片的。之前一般都是實行從理論到實際的實驗輸出,再由實驗的數據數值倒推出內在過程中遵循的理論和公式。而深度學習是完全反過來的,由於深度學習沒有這方面的理論,全部都需要靠實際的數據,把實際的數據交給計算機,讓計算機根據實際的數據生成一個拼成的公式。

上圖紅色的那條線是一條簡單的直線,可以認為是線性的,比如橫軸(X軸)是速度,縱軸(Y軸)是距離,在固定時間內,速度越快,距離越長,可以用簡單的表達式y=ax+b來表示。但是,如果換成了一堆黑色小點形成的散狀數據,這時是沒有理論的,只能用一段一段的數值網路或者演算法來模擬生成某一個點的公式和模型。

這樣的處理辦法就是深度學習中機器學習的概念。機器學習針對一個固定的網路,從輸入到輸出,其中間的每一層都有不同的任務和功能,從而提取不同數據的特徵值。以圖像為例,就是從原始圖片到最後定義的分類屬性,這樣的網路稱之為深度學習網路。

接下來給大家分享下卷積神經網路典型的過程。

首先,先定義一個初始化網路,即圖上最左邊,它有三層網路,四個數據點,一個是數據輸入點,數據輸入到第二層,再到最後的數據輸出,通過這個網路去提取一張圖片的信息,將提取的信息和分類的圖片進行比較。

這種比較也就是學習,如果比較的數值誤差比較大,那麼計算機會把相對應各個節點之間的權重(也就是圖片中那些綠色小點)值進行調整,這種調整是完全由計算機自己來完成的,目的就是梯度下降,使誤差越來越小,這才是大家追求的方向。計算機的深度學習也是往梯度越來越小的方向進行計算的。

當一個網路被初始化的時候,它是沒有任何意義的,需要輸入各種各樣已經分類好的原始圖片,由於原始圖片已經分好了類,當它被這個網路提取的特徵和網路自身規定好的網路屬性進行比對時,會存在一個差值。比如我輸入了一隻貓的特徵值,在經過訓練後,會得到的一個範圍,這個範圍經過比較以後,如果誤差大於它的需求,那麼就需要去把這個誤差返回,調整相關的權重數值。

當權重的數值需要放大的時候,即在某個方面特徵點的提取需要加強,比如上圖中間的橙色圖,有一個白色的亮點,表明該層網路的特徵值提取需要加強,即該數值的影響要加強。如果左邊亮點上的值沒有被放大,反而變小了,就說明該值的提取需要降低,即影響力要降低。周而復始,一次一次輸入,一次一次跟特徵點的比對,會使得它形成一個對於某一類比較敏感的網路特徵提取計算。

對於Inference(推理)來說,它是提取了Training Model(訓練模型),就是將已經訓練好的模型部署到自己的平台上。Training網路和Inference網路是一樣的,但是它們執行流向不一樣,Training網路是周而復始的,由輸入到輸出,由輸出的結果返還給輸入,從而調整權重。而Inference是從頭到尾,正常輸入後,輸出是一個判斷或者是一個概率。

大家可以看到,深度學習是從Training到最後的Inference這樣一個框架。這個框架也是深度學習在內部網路的定義和具體的執行流程。

接下來分享一個典型的深度神經網路內部的操作。從操作上來講,計算機會把一張原始圖片作為一個像素的變化值輸入到神經網路內部去提取特徵,所謂提取特徵,就是觀察邊緣是否變化,邊緣沒有變化也就沒有這個特徵的存在。因此,它會按照邊緣變化的方式去提取特徵,根據邊緣提取特徵後,邊緣與邊緣之間的幾何上關係,或者人臉結構上的關係就會構成局部器官的形狀,也叫中間環節的特徵提取。到最後,根據器官與器官之間的聯繫再形成一個高端的特徵提取,從而構成人臉的輪廓。這樣一步一步的操作也對應著下邊一層一層網路時序。而時序是非常耗費計算資源的。

右邊是典型的訓練數據,這些都是百萬級的數據。網路的結構從十層到一百層,其中每一層中的權重以及網路的計算參數多達10億個。在NVIDIA圖像分類的一門課中,一個簡單的網路僅有兩層卷積網路,其中包含的參數就達到了84萬個。對於這麼大的參數規模,如果要手工去調,是非常耗時間的,因此一定要讓機器根據輸入自動去匹配調節。

卷積是深度神經網路中非常重要的一個概念。深度神經網路對於特徵提取的計算,一定要用卷積的方式,即通過卷積核在原始圖片上進行遍歷的方式,提取一張圖片上所有有用的特徵,在提取完特徵以後,生成新圖片的維度都會降低,從圖上可以看到,原本是一個7x7的矩陣,經過卷積計算之後變成了5x5的矩陣,也就是生成了一個小的圖片,這個圖片包含了第一張7x7圖片的每一個像素的特徵,這就是科學家們想到的一個方案,對於原始圖片,要提取到所有特徵,同時降低它的維度,維度小了,矩陣小了,計算量自然就小了。比如最右邊有一個5x5的矩陣,邊上有一個3x3的矩陣,粉紅色的4就是由橙色的3x3矩陣計算出來的。

舉個例子,假如有一個十萬平方米的廣場,如何把它拍成高清晰的圖片展示給大家看呢?如果在飛機上拍,飛機飛得太快,有可能一張圖片的高精度無法達到厘米級的清晰度。因此,我們可以用一個小的無人機,把十萬平方米的廣場均分成1000個面積為100平方米的方塊,通過無人機分次將廣場拍下來。拍下來後就相當於圖片上顯示的矩陣。矩陣第一次在左上角將3x3往右挪,再將其他的3x3也往右挪,總共挪四次就可以把它拍下來。而無人機也是這種形式,由於無人機有時拍的角度不一樣,可能不會特別清晰,這時我可以用100個無人機拍1000遍的就可以了,雖然拍的工作量比較大,但是保證了數據的完整性以及提取的完整性,因此還是值得去取的。每一個無人機都拍了1000張圖片,100個無人機就拍了100x1000張圖片,其中一定會有你要的信息。而前提是後端的計算平台的算力要足夠強。對於卷積也是一樣,圖上顯示3x3中間是一個綠色的零,這就是一個卷積核,一個卷積核得到一張維度減少的圖片。用100個卷積核就可以得到100個包含第一張圖片的feature maps(特徵映射)。

有了眾多的卷積核,能夠充分提取第一個數據源的特徵值,同時保證特徵值不漏掉,也是卷積非常重要的特點,保證特徵不丟失。

上圖展示了深度神經網路的結構。左邊可以看到大寫字母A,它是一個32x32的矩陣,經過了第一層的卷積後變成了28x28的矩陣,可以輸出6個卷積核。也就是說有6個小無人機拍攝的就是28x28的圖片,然後繼續傳到後面的網路來降低維度,再到後邊的全連接層,最後輸出分類的OUTPUT。這就是典型LeNet卷積神經網路特徵。還可以看到上面也是一個典型Inference端(推理端)的實現流程圖。

Inference端的實際流程圖,在左邊可以看到有些數字,每一張圖片的輸入到中間的網路都是分次從低到高進行特徵提取,最後,經過Softmax函數,判斷出可能的數字,這就是典型的訓練好的網路進行Inference推斷的流程。

用深度學習實現圖片分類的識別。如果用傳統的解決方法,每一個像素點需要寫一段代碼,120個特徵點就需要寫120段代碼。現在由於神經網路處理方法的存在,可以用眾多的圖片讓計算機自己去學習並拼成一個公式,通過這個公式就能夠去識別從多角度拍攝的小女孩圖片。這就像下邊的這個例子,有兩把鑰匙,白色鑰匙是我平常工作推櫃的鑰匙,黃色鑰匙是我們辦公室經理的鑰匙。如果我哪天沒有帶白鑰匙的時候,我就可以去找行政部經理拿一把黃鑰匙,這個黃鑰匙是一把萬用鑰匙,它能夠開我們這層一百多個同事的推櫃,但黃鑰匙是不能開壁櫃的。類似於演算法,當你在做某一個人臉識別時,你給它一隻貓,它是識別不了。因此,演算法還是有很大的空間能夠讓大家去做相關的研究。上圖右邊是一堆鑷子,是配鎖師傅的專門鑰匙,可以開非常多機械保險柜的鎖。但是在人工智慧領域,還沒有像這種鑰匙一樣可以識別非常多物體的演算法。

總結一下剛才講的訓練過程,對於定義的神經網路,如果讓它對三個物體進行判斷,比如狗、貓和樹,研究人員要把大量標記好的狗、貓和樹的圖片一次性投入到訓練網路中。當狗的圖片輸入進去以後,它會與狗的特徵進行比較,如果這個比較值得到了貓的結論,就說明這個網路模型是不對的,需要把出錯的概率和數值減少,因此就要去調整權重,減少誤差。通過一次一次的訓練,使得輸出結果更貼近輸入的標註圖片。

有了這樣一次一次的優化和精度提高的訓練模型以後,基於不同類的圖片,需要一次一次地輸入進去,計算機進行一次又一次理解和學習。這個過程更多地是一個大規模數據的統計,統計一張圖片在360°空間中像素點存在的可能性有多少,模型只要記住了這個可能性,以後進行比對和特徵提取時,就會得到一個相對的概率。在得到這樣的模型以後,也會將其部署到下面的推演過程,也就是整個深度神經網路的實現流程。

接下來總結一下要構建和部署深度神經網路需要的步驟:

第一,準備好原始數據和要用的原始網路,這個網路也就是你需要用到的演算法;

第二,數據的準備,是要用監督式學習,還是用非監督式學習,如果用監督式學習,就要把準備的圖片進行分類和打標籤;

第三,根據自己的業務流在不同的Framework中定義網路;

第四,網路訓練,在訓練時也有非常多的技巧,比如批處理、定義優化參數等;

第五,根據訓練結果優化網路和數據。其中,網路完成後一次一次輸入的小數據、大數據或者超大規模數據都會對精度帶來不同的影響;

第六,網路部署,將訓練好的網路結構、網路參數以及Labor文件部署到推演平台上。

在做網路部署之前,如何選擇適合自己的工具呢?比如Framework的種類非常多,包括TensorFlow、CNTK、MXNet、Caffe、Torch以及Theano等。目前用得最多的是TensorFlow,因為它功能比較強,尤其對於分散式訓練也有類似參數伺服器的功能,能夠讓多級標註節點之間的訓練得到同步。

每個人選擇Framework都會按照自己的習慣進行選擇,如果你以前沒有學過相關的編程,那麼需要花費的時間會比較多,如果你以前學過C語言或者Python,可以根據上表選擇相應的Framework,利用自身編程知識的積累,將會減少非常多重新學習的時間。每個Framework的特點都不一樣,比如你選擇用Caffe,那麼與時序相關的東西做起來就比較費勁,因此需要根據自己的需求進行選擇。

深度學習的優勢有三個:

1.魯棒性,所謂魯棒性就是它的性能非常穩定,數據越多,它的穩定性越強,不會有用著用著就非常不可靠的情況;

2.通用性,也是讓人覺得很驚奇的地方,前段時間的圍棋大賽事件,AlphaGo演算法不僅僅用在娛樂,很多相同的業務流程都會拿它去做,尤其是在醫療方面,很多學者都開始參考它的演算法來做一些腫瘤的分析。這就是所謂內部流邏輯上的一致性,使得計算的通用性得到的體驗。

3.可擴展性,由於做數據分析的時候,各個數據樣本之間是相互獨立的,我們可以拿這些獨立的數據進行訓練,也可以使用分散式集群的方式進行模型和數據的並行化,從而快速地幫助模型訓練,並得到一個更好的精度。

基於大家對於深入學習的理解,如何快速地啟動深度學習的旅程呢?

如果用傳統的深度學習開發平台,會發現需要去學非常多基於命令行的操作,比如要了解Linux、了解相關的命令行環境、需要去學很多Framework之間各種各樣的人工開發技巧等,這些都會約束你進入人工智慧或者深度學習開發。

NVIDIA結合了這些普遍存在的問題開發了一個非常棒的工具——DIGITS,並且該工具是免費開源的,可以讓新手快速步入自己的深度學習開發領域中。DIGITS是一個基於瀏覽器的互動式深度學習訓練平台。通過上圖可以看到,從左到右有四個步驟,最左邊是數據操作界面,用滑鼠點擊自己保存在硬碟空間某個位置的數據提取出來,放到DIGITS的工作環境中,它能夠顯示出分類後的圖片張數。

第二步,數據集載入完後,用滑鼠點擊選擇要使用的Framework、求解器的定義、訓練的圈數以及相關GPU的選擇。這些都是一目了然的,相對於用命令行進行操作,圖形化界面的顯示更加直接。

第三步,可以看到上圖中間有一個圖表,圖表上有一條從低往高走的橙色曲線,綠色和藍色的曲線是從高往低走,橙色曲線代表訓練精度的曲線,藍色和綠色曲線代表訓練誤差的曲線,隨著訓練時間的增加,數據的載入,如果精度越來越高,誤差越來越小,說明現在用的訓練演算法是正確的;如果訓練誤差越來越高,或者訓練誤差不再降低,或者訓練的精度不再提升而是趨於平緩,這些結果都說明你的訓練出現了問題。

如果使用傳統命令行的形式,我們需要非常關注每一行命令行滾動式的輸出,靠每一次看數據積累的歷史經驗來判斷決定現有的訓練流程是否被認可,而DIGITS給大家提供可視化的的操作界面,最後也是可視化判斷的輸出結果。

DIGITS是一個非常有用的工具,目前NVIDIA在這個工具中已經嵌入了圖像分類、目標檢測和圖像分割三個功能,大家可以非常方便地去使用它,去解決有關圖片處理的人工智慧開發。上面的圖片列出了如何獲取DIGITS,可以用Ubuntu 14.04版本這種典型的方式,下載地址也在下面。如果你有其他操作系統的需求,可以看一下圖片的右邊。最後,有一個非常重要的建議,所使用GPU的計算能力要在3.0以上,cuDNN要選5.0版本。

以上就是我要分享的內容,謝謝大家。

提問環節

問題一

張曉冬-上海沐帆科技-技術總監

如何評價計算精度對訓練結果的影響。現在有說法是將計算的精度由雙精降低到單精度,甚至使用定點精度,只要網路深度足夠就對最終結果沒有大的影響。這個趨勢是否屬實? 為何深度網路沒有出現那種前端小的擾動導致後續計算結果出現大的偏差?

侯宇濤:由於深度學習是一個直接基於實踐結果體驗的解決辦法,因此計算精度並不能說深度足夠就沒有太大的影響,對於精度的選擇,需要看實際的應用,如果數據足夠多、足夠大,那麼網路深度只是一個方面;如果精度不能滿足梯度,對後面的處理就會有很大的影響。因此,不能直接這樣去理解,還需要看具體的訓練結果,最好的解決辦法就是能滿足你訓練和工程的需求,如果不能,大家可以一同討論。

對於為什麼網路沒有出現前端小的擾動導致後續結果出現大的偏差的問題。這是深度學習一個大的優勢,在大數據訓練的前提下,使得小數據的影響變得不那麼重要。對於內部來說,小規模數據的精度和網路實現的影響不是很大,相當於在一億個人中,一百人的存在對它的影響不是特別大。

問題二

王佐仁-中科院神經所-研究員

1,如何改進深度學習方法從而實現在線的小樣本學習?

2,如何增強深度學習的可解釋性?

侯宇濤:1、我是這樣理解的,在推理端部署了訓練和推理兩種功能,然後根據實際的情況去啟動訓練。有一些操作上的細節需要注意,首先,如何啟動訓練,因為系統無法判斷你目前的判斷是錯誤的。要解決這樣的問題,建議你使用嵌入式訓練會比較快。

2、對於深入學習,專家定義它為黑盒子,在隱藏的網路中,你沒有辦法從輸出端一步步可逆,去看到它如何去形成這些權重的參數。由於深度學習在一些比較關鍵的流程中都不太管用,在結構上,大家也不知道機器是怎麼學出來的。因此對於可解釋性,目前還沒有看到特別好的解決辦法。

問題三

李亞城-中興-感測器融合工程師

學習深度學習的一個思路和方法是怎樣的?從入門新手到高級進階的思路是什麼?

侯宇濤:這個問題比較廣泛。在主講環節也講過構建和部署深度學習網路需要的幾個步驟,你可以從這些步驟中去理解或者探討,給自己做一個入門的思路。首先,需要有原始數據或者原始網路,有了數據,需要去給數據打標籤,去規劃和整理數據。這就是如何對數據或者原始網路進行構想,所謂原始網路的構想,由於目前深度神經網路這一行業都是以經驗為主,因此你可以去參考一些比較好的網路,這將給你帶來非常大的幫助。對於新手來說,還需要去了解Framework,根據你的工作選擇更有效的Framework。

另外,還需要了解各種網路,如VGG、GoogleNet等等,也可以從別人成功的經驗去參考和理解。從網路到Framework再到數據整理,這些行業預備知識都是需要去了解的,至於後期的高級進階,也是基於現在初步入門的操作和體驗,屆時可以專註於自己的某一項長處,比如進行多分類的能力,或者多種數據處理的能力。這些能力可以讓你快速地在某一個行業得到領先的機會。當然不止這些,網路優化、網路訓練等每一塊都有非常多的成功經驗,自己也可以去體會各個細分模塊的優劣。我認為作為入門級,可以先從數據、網路以及自己對於行業的處理和理解開始,這些將能夠幫助你快一點去入門。希望我的分享能給到你一些幫助。

問題四

易禮艷-德賽西威-工程師

深度學習需要大量的樣本,當識別效果不佳時,如何判斷是樣本問題和還是演算法問題?

侯宇濤:這個問題也是目前經常存在的問題,由於在訓練的過程當中,無法知道是數據集不合適還是演算法不合適。我認為,這個時候不需要花太多精力去用一個不能定義的標準來判斷另外一個不能定義的物體,而最好的辦法就是能夠帶著你的數據去找一個模型進行遷移式訓練的判斷。比如在行業中,你了解到誰跟你做差不多的模型,你可以把這個模型拿過來,再把你的數據丟進去,如果這個數據是收斂的,那一定是演算法問題,如果這個數據跑不通,那肯定是數據集的問題。

問題五

李太白-中國網安廣州分公司-安全工程師

如何更好利用NVIDIA JETSON TX2 進行深度學習方面的應用(TX2適用於什麼領域)?

侯宇濤:JETSON TX2是NVIDIA嵌入式GPU平台,主要用於做Inference的,因此你可以使用TX2去做一些嵌入式行業的應用,比如機器人、自動化設備或者與移動行業相關的判斷。TX2有著非常強的計算能力,同時它的功耗也不大,低功耗加上強悍的計算能力,也使得它在很多自動駕駛車中得到了應用。

問題六

宋富強-continental-系統工程師

1、如何優化神經網路或者軟體架構來提高硬體的效率(英偉達晶元功耗高,效率就不會很突出)?

2、沒有硬體資源的開發者怎麼來使用英偉達雲端伺服器做開發?

侯宇濤:1、按照我的理解,您的問題應該是在推演端。在推演端,我們現在有Tegra,它的功耗從十幾W到二十多W,效率也比較高。我覺得您說的不是訓練平台,因為訓練平台在數據中心應該是以計算為主,從功耗上來說,整體的計算體系的功耗要遠小於同樣計算能力GPU計算集群的功耗。因此如果在訓練端,應該不會存在這個問題。對於推演端,您可以用低功耗的Tegra,它會幫助你快速地達到你的需求。

2、NVIDIA沒有雲端伺服器,我們有各種各樣與伺服器相關的雲端解決方案,咱們中國的阿里雲有提供有雲端伺服器GPU雲,您可以去買它的服務來做開發,它是基於NGC(NVIDIA GPU Cloud),同時它裡面也有配置好的各種Framework環境,非常方便和好用。

新課預告

#智東西公開課#8月9日(下周四)晚8點,AI晶元系列課第七節將開講,由鯤雲科技CEO牛昕宇主講,主題為《基於數據流定製架構的AI應用與實踐》,掃碼報名,免費入群聽課!

課件獲取

第一講,NVIDIA大中華區高性能計算及Applied Deep Learning部門技術總監主講賴俊傑,主題為《如何搭建適合自己的深度學習平台》

第二講,NVIDIA高級系統架構師吳磊主講,主題為《如何為深度學習和HPC提供更高算力》

第三講,NVIDIA DLI認證講師侯宇濤主講,主題為《不需要寫代碼,如何用開源軟體DIGITS實現圖像分類》(線上實踐課程,無課件)

第四講,圖瑪深維首席科學家陳韻強、NVIDIA高級系統架構師付慶平共同主講,主題為《深度學習如何改變醫療影像分析》

第五講,NVIDIA DLI認證講師侯宇濤主講,主題為《手把手教你使用開源軟體DIGITS實現目標檢測》(線上實踐課程,無課件)

第六講,西安交大人工智慧與機器人研究所博士陶小語、NVIDIA高級系統架構師易成共同主講,主題為《智能監控場景下的大規模並行化視頻分析方法》

第七講,清華大學計算機系副教授都志輝、NVIDIA高級系統架構師易成共同主講,主題為《GPU加速的空間天氣預報》

第八講,希氏異構人工智慧首席科學家周斌主講,主題為《如何利用最強GPU搭建醫療人工智慧計算平台——醫學圖像AI領域最強超級計算機首次解密》

第九講,NVIDIA中國GPU應用市場總監侯宇濤主講,主題為《揭秘深度學習》

第十講,NVIDIA高級系統架構師張景貴主講,主題為《在你的桌面端通過NVIDIA雲端GPU開展深度學習》

第十一講,百度AI技術生態部高級演算法工程師趙鵬昊主講,主題為《如何藉助GPU集群搭建AI訓練和推理平台》

第十二講,NVIDIA 深度學習解決方案架構師羅晟主講,主題為《醫療領域的深度學習》


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 智東西 的精彩文章:

AI早報:微軟第6代小冰26日發布 全球首台無人駕駛跨運車下地
一招鮮吃遍天的華為NPU 怎樣讓手機像姆巴佩一樣飛起?

TAG:智東西 |