深度學習12大常見問題解答(附答案)

阿爾法狗讓深度學習登上了數據科學世界的巔峯。深度學習成爲了當今最熱門的話題之一,但對於大多數人來講,這是一個陌生而又神祕的學科。不少人認爲,深度學習就是包括了大量的數學和統計知識。html

本文列舉了常見的12個深度學習的問題。python

26d8de40b7c7389b11091a0ea7463e08c4e3f71f

1.什麼是深度學習?爲何它會如此受歡迎?git

深度學習做爲機器學習的典範,近年來已經顯示出了廣闊的前景。這是由於深度學習與人類大腦的功能很類似。人腦是迄今爲止最通用、最有效的自我學習模型。讓咱們從下面的例子中更好的理解深度學習模型的特色:github

024c4bfd8a649cee5b700e8983ec97d2cf45ac5d 

你在上圖中看到了什麼?很明顯,「一輛車」。儘管圖中也有沙子、綠葉、雲彩等,但大腦會將這張圖標記爲一輛汽車。這是由於咱們的大腦已經學會識別圖像中的主要對象。面試

深度學習的特殊之處就在於從大量無關數據中獲取有用信息。隨着如今生成數據量的增長,咱們但願模型可以更好地處理更多數據,深度學習模型變得更好。算法

儘管深度學習已經出現多年,但其重大突破僅僅在近幾年才實現。這其中有兩個主要緣由,首先是數據量的增長,以下圖所示;其次是模型所需的硬件資源的增加,做爲運行深度學習模型的GPU,處理速度更快,容許咱們在更少的時間內構建更大更深的深度學習模型。編程

d416b22209a03a3ed4d89beae54e34ee810bec39 

2.深度學習只是一種炒做,仍是有真實的應用程序?數組

如今,深度學習已經在不少實際中獲得應用:從Netflix著名的電影推薦系統到Google的無人駕駛,從創造藝術文學寫做到創造現實生活中的錢,都在使用深度學習模型。所以,若是說它只是一個炒做,這是錯誤的。網絡

目前,深度學習的一些主要應用有:架構

(1)Google一次性將文本翻譯成數百種語言,經過一些應用於天然語言處理任務的深度學習模型實現。

(2)Siri、Alexa、Cortana等智能會話代理經過LSTM和RNN來簡化語音識別技術,語音命令打開了一個全新的領域。

(3)計算機視覺領域的應用,例如OCR(光學字符識別)和實時語言翻譯。

(4)Snapchat和Instagram等多媒體共享應用程序進行面部特徵檢測。

(5)醫療領域的應用,用來定位惡性細胞和其餘異物,檢測疾病。

然而,因爲訓練深度學習模型所需的標記數據並不容易得到,所以一些人認爲深度學習是一種炒做。即便數據可用,訓練這些模型所需的計算設備也不便宜。所以人們沒法體驗到深度學習的力量,並將其視爲炒做。

3.深度學習與機器學習有什麼區別?

(1)數據依賴性

兩者之間最主要的區別與數據的規模有關。當數據很小時,深度學習表現通常,而傳統的機器學習表現較好;隨着數據量的增長,深度學習的性能則遠遠高於機器學習。以下圖所示。

626ef8fd5f242f4858e3441576650efe74724b7f 

(2)特徵工程

特徵工程是一個將原始圖像放入特徵提取器的建立過程,下降數據複雜性,並使數據更適合於學習算法。這一過程比較耗時、花費較大。

機器學習中,大部分應用特徵須要由專家識別,再根據域和數據類型進行手動編碼深度學習的獨特之處在於從數據中學習高級特徵,也是傳統機器學習領域的一大進步。所以,深度學習減小了爲每一個問題開發新的特徵提取器的任務。

(3)可解釋性

解釋性做爲機器學習和深度學習的比較因素。

假設使用深度學習給散文自動評分,並接近人類的表現,但沒有揭示爲何它給出了這個分數。而像決策樹這樣的機器學習算法能夠解釋其背後的推理。所以,決策樹和線性邏輯迴歸等算法主要用於解釋性行業。

4.深度學習的先決條件是什麼?

在進行深度學習前,你須要瞭解如下知識:數學:機率、導數、線性代數等。統計:統計的基礎知識是進行任何機器學習問題所必需的。工具:具備必定程度的編碼技巧。機器學習:機器學習是深度學習的基礎。在學習深度學習前,必定要理解機器學習的概念。更多詳細信息請看:Python入門深度學習的完整指南

4.在深度學習領域是否須要得到博士學位?

博士學位不是必須品,任何工做重點一般是展現你的能力,而不是學位自己。可是,若是你選擇在特定領域(如NLP語言學)進行博士深造,確定會是個加分項。

5.選擇哪些工具/語言構建深度學習模型?

Python具備強大的機器學習生態系統,該系統由開發人員和編碼人員組成,他們爲python用戶提供開源庫和技術支持。這使開發人員爲各類算法編寫複雜代碼的任務變得更加容易,而且更易於實施和實驗。

另外,Python是一種可用於開發和實現的通用編程語言。這極大地簡化了從開發到實現的過渡。也就是說,一個能夠預測機票價格的深度學習模型不只能夠用python開發,還能夠用一樣的形式附在網站上。

除此以外,我建議初學者使用像Keras這樣的高級庫,對算法中隱藏的沒必要要信息進行抽象,並容許訪問能夠調整的參數,使實驗簡化且提升模型性能。

在R、Julia、C ++和Java等深度學習領域,除了Python以外,還有其餘的語言。你也能夠關注TensorFlow、Pytorch、Caffe二、DL4J等的發展,將他們做爲庫的替代品。

若是不熟悉編程,還有一些基於GUI的軟件,不須要編碼,就能夠構建深度學習模型,如Lobe或Google的AutoML等。

6.爲何構建深度學習模型須要使用GPU?

深度學習模型有兩個主要的操做:前向傳遞和後向傳遞。

前向傳遞將輸入數據經過神經網絡後生成輸出;後向傳遞根據前向傳遞獲得的偏差來更新神經網絡的權重。

8cf76a7771cefca40e763237d5bd2f537767a567 

其本質上都是矩陣乘法,簡單的矩陣乘法以下圖所示。

56e510adfce9777dced0e604f076afd2591bed9d 

在這裏,咱們能夠看到第一個數組的行與第二個數組的列元素分別相乘。所以,在神經網絡中,咱們能夠將第一個矩陣視爲神經網絡的輸入,第二個矩陣能夠視爲網絡的權重。

這彷佛是一個簡單的任務。VGG16(在深度學習應用中常用16個隱藏層的卷積神經網絡)大約具備1.4億個參數,又稱權重和偏見。想一想你須要作的矩陣乘法,若是咱們用傳統的方法,訓練這種系統須要幾年的時間。

神經網絡的計算密集部分由多個矩陣乘法組成。那麼如何才能更快?

咱們能夠簡單地經過同時執行全部操做,而不是一個接一個地執行。這就是爲何咱們要使用GPU(圖形處理單元)而不是CPU(中央處理單元)來訓練神經網絡的緣由。

7.什麼時候(何處)應用神經網絡?

首先,深度學習模型須要清晰且豐富的數據來訓練。將深度學習想象爲一個孩子。它首先觀察其父母如何走路。而後試圖獨立行走,而且每走一步,孩子都會學習如何執行特定的任務。通過幾回不成功的嘗試後,它會學習如何走路。

其次,對於圖像處理等複雜問題使用深度學習須要很謹慎。深度學習算法屬於表示學習算法。這些算法將複雜問題分解爲更簡單的形式以便理解(或「可表示」)。對於傳統的算法來講,這將更困難。

硬件要求對於運行深度神經網絡模型也相當重要。神經網絡好久之前就被「發現」了,但近年來得以成功實現,硬件資源更增強大也是其主要緣由。

8.是否須要大量數據來訓練深度學習模型?

咱們確實須要大量的數據來訓練深度學習模型,但也能夠經過遷移學習來克服數據量不大這一障礙。

訓練深度學習模型所需的一些數據以下所示:

034b66d970572dd73631401fa20ac83120d8bd67 

即便數據量不大,針對特定任務進行訓練的深度學習模型也能夠重用於同一個域中的不一樣問題,這種技術被稱爲遷移學習。

9.哪裏能夠找到一些基本的深度學習項目用來練習?

我強烈建議初學者使用MNIST數據,該數據集包含手寫數字及其實際標籤,即數字從0到9。

對於中級用戶來講,這個 Age Detection競賽是一個不錯的項目,該數據集由印度電影演員的面部圖像組成,任務是根據面部屬性預測年齡。爲了簡單起見,這個問題已被轉換爲類,如青年、中年和老年等多個類問題。

10.深度學習的一些免費學習資源有哪些?

(1)圖像處理學習資源

卷積神經網絡-吳恩達

解密卷積神經網絡(CNN)架構

理解卷積神經網絡入門指南

機器學習頗有趣! 第3部分:深度學習和卷積神經網絡

深度卷積神經網絡的ImageNet分類

R-CNN

愈來愈深刻的卷積

(2)序列預測/時間序列學習資源

序列模型-吳恩達

深度學習要點:長期短時記憶

遞歸神經網絡的不合理有效性

瞭解LSTM網絡

循環神經網絡和LSTM

(3)天然語言處理

天然語言處理的深度學習模型

詞語和短語的分佈式表徵及其組合性

用神經網絡進行序列學習

深度語音識別:擴大端對端語音識別

11.深度學習的相關面試問題有哪些?

(1)深度學習模型如何學習?

(2)深度學習模型有哪些侷限性?

(3)前饋神經網絡和遞歸神經網絡之間有什麼區別?

(4)什麼是激活特徵函數?

(5)什麼是CNN,它有什麼用途?

(6)什麼是池化? 簡述其工做原理。

(7)什麼是dropout層,爲何要用dropout層?

(8)什麼是消失梯度問題,如何克服?

(9)什麼是優化函數?說出幾個常見的優化函數。

更多面試問題以下:

30個數據科學家關於深度學習的問題

40個數據科學家關於深度學習的問題

45個有關深度學習基礎知識的問題

12.深度學習的將來是什麼?

近年來,深度學習已經取得了很大的進步,但仍有很大的潛力。在不久的未來,深度學習將成爲每一個數據科學實踐者所需的技能。事實上,如今有一個崗位是「深度學習工程師」——負責部署和維護該公司各部門使用的深度學習模型。毋庸置疑,這個職位在將來將會有很大的需求。

目前,深度學習的侷限之一在於:須要符合人類的要求。它須要大量的數據進行學習,這也引發了不少偏見。但隨着時間的推移,這種偏見將會逐漸被消除。

 數十款阿里雲產品限時折扣中,趕忙點擊領劵開始雲上實踐吧!

相關文章
相關標籤/搜索