深度學習是什麼?
深度學習(Deep Learning)是機器學習和人工智慧(AI)的一種類型,能模仿人類取得特定類型知識的方法。深度學習技術日益盛行,自駕車、圖像辨識、語音辨識都用到這項技術。透過深度學習,機器變得更加聰明,人工智慧的應用也更加廣泛。本文將介紹深度學習的定義、運作方式、使用範圍、機器學習和深度學習的相關性,以及深度學習的限制與挑戰。
深度學習的定義為何
深度學習是資料科學的重要組成,包含統計和預測建模,需要用大量的資料訓練才經取得最佳的成果。對於負責收集、分析和解釋大量資料的資料科學家來說,這種技術非常有幫助;深度學習會讓這個過程更快速、更容易。簡單來說,深度學習被認為是一種自動化預測分析的方法。
深度學習如何運作
使用深度學習的電腦程式與學步幼兒學習識別狗的過程大致相同。例如一個初學走路的幼兒,他的第一個單詞是狗。幼兒指向物體並說出單詞「狗」來學習什麼是狗。父母說:「對,那是一隻狗」或者說:「不,那不是狗。」隨著幼兒持續辨識物體,他會更認識所有狗都具有的特徵。蹣跚學步的幼兒在不知不覺中所做的是,透過構建一個層次結構來澄清一個複雜的抽象概念:狗的概念,在這個層次結構中,每個抽象層次都是用從層次結構的前一層獲得的知識建立的。
傳統機器學習的學習過程是受監督的,工程師必須非常具體告訴電腦應該尋找哪種類型的東西來判斷影像中是否包含狗。這是一個稱為「特徵提取」的過程,電腦的成功率完全取決於工程師準確定義狗特徵集的能力。深度學習的優勢在於,程式可以自行建立特徵集,而無需監督。無監督學習不僅更快速,而且通常更準確。
學步幼兒需要數週甚至數月才能理解狗的概念,而使用深度學習演算法的電腦程式可以透過訓練集進行訓練,並對數百萬張影像進行排序,在幾分鐘內準確識別出哪些影像中有狗。
為了達到可接受的準確度,深度學習計畫需要存取大量的訓練資料和處理能力,在大數據和雲端運算時代之前,工程師無法輕鬆獲得這些資料和處理功能。由於深度學習程式設計可以直接從自己的反覆運算輸出中建立複雜的統計模型,所以能夠從大量未標記的非結構化資料中建立準確的預測模型,這很重要,因為物聯網變得更加普及,而且人類和機器建立的多數資料都是非結構化的,並且沒有標籤。
深度學習的使用範圍
因為深度學習模型類似人腦處理資訊的方式,所以可以應用於人們進行的許多任務。深度學習目前最常見被用於影像辨識工具、自然語言處理(NLP)和語音辨識軟體。這些工具開始出現在各種應用中,例如自駕車和語言翻譯服務。
目前,深度學習的用例包括所有類型的大數據分析應用程式,特別是專注於自然語言處理、語言翻譯、醫療診斷、股市交易訊號、網路安全和影像識別的各種應用。
目前使用深度學習的具體領域包括:
- 客戶體驗(CX)。深度學習模型已用於聊天機器人。而且隨著深入學習的成熟,預計將用於各種業務,以改善 CX 並提高客戶滿意度。
- 產生文字。機器會學習文字的語法和風格,然後使用此模型自動建立一個與原始文字的正確拼寫、語法和風格相符的全新文字。
- 航太和軍事。深度學習已用於從衛星上探測物體,以及在軍事上偵測安全或不安全區域。
- 工業自動化。深度學習可自動檢測工人或物體是否離機器太近,以改善工廠和倉庫等環境中工人的安全。
- 增加色彩。可使用深度學習為黑白照片和影片增加色彩。這在過去是一個非常耗時的手動過程。
- 醫學研究。癌症研究人員已開始在其領域中實作深度學習,作為自動檢測癌細胞的方法。
- 電腦視覺。深度學習可增强電腦視覺的能力,為電腦的目標檢測、影像分類、復原和分割提供了極高的精確度。
深度學習與機器學習的差別
深度學習是機器學習和人工智慧的子集合。機器學習是讓機器擁有學習能力,透過訓練模型分析數據再進行預測和決策。傳統的機器學習演算法是線性的,而深度學習演算法是多層次的逐層學習,會把學習到的知識傳遞到下一層,讓下層能得到更進階的表述形式。
機器學習需要領域專家來識別多數應用功能。深度學習以漸進的方式理解特性,以消除對領域專業知識的需要。這使得深度學習演算法的訓練時間比機器學習演算法更長,機器學習演算法只需要幾秒鐘到幾小時。然而,在測試過程中情況卻正好相反。深度學習演算法比機器學習演算法運行測試所需的時間更少,機器學習演算法的測試時間會隨著資料量而增加。
機器學習不需要像深度學習一樣使用昂貴的高階機器和高性能 GPU。然而許多資料科學家選擇傳統的機器學習而不是深度學習,因為它具有優越的解釋能力,或者能夠理解解決方案。當資料量較少時,機器學習演算法也是首選。
深度學習較適用的用例包括存在大量資料、缺乏對特徵內省的領域理解或複雜問題(如語音辨識和自然語言處理)的情況。
神經網路是什麼?
一種稱為「人工神經網路」(或稱類神經網路,Neural Network)的進階機器學習演算法是多數深度學習模型的基礎。因此,深度學習有時會被稱為「深度神經學習」或「深度神經網路」。
神經網路包含幾種不同的形式:遞迴神經網路、卷積神經網路、人工神經網路和前饋神經網路,每種網路都適用於不同特定用例。然而還是有相似之處:向模型輸入資料,讓模型自己判斷它是否對給定的資料元素做出正確的解釋或決策。
神經網路是一個反覆試驗的過程,因此需要大量的資料來進行訓練。只有在多數企業接受大數據分析並積累大量資料之後,才適用神經網路。由於模型的前幾次反覆運算涉及對影像或詞類內容的一些有根據的猜測,因此必須對訓練階段使用的資料進行標記,以便模型可以查看其猜測是否準確。這表示,儘管許多使用大數據的企業擁有大量資料,但非結構化資料的用處不大。非結構化資料只有在經過訓練並達到可接受的精確度後,才能透過深度學習模型進行分析,但深度學習模型無法對非結構化資料進行訓練。
限制與挑戰
深度學習模型的最大限制是透過觀察來學習。這代表他們依賴訓練資料的內容。如果用戶擁有少量資料,或者資料來自不一定代表更廣泛功能領域的特定來源,則模型便不會以通用的方式進行學習。
偏差問題也是深度學習模型的主要問題。如果一個模型對包含偏差的資料進行訓練,該模型將在預測中重現這些偏差。這對於度學習的工程師來說是棘手的問題,因為模型會根據資料元素中的細微變化去學習以進行區分。通常,工程師不會明確了解模型判斷的重要因素。例如人臉識別模型可能會在工程師不知情的情況下,根據種族或性別等因素來判斷人臉的特徵。
學習率也可能成為深度學習模式的一大挑戰。如果學習率太高,那麼模型將收斂得太快,產生非最優解。如果學習率太低,那麼這個過程可能會陷入困境,甚至更難找到解決辦法。
深度學習模型的硬體要求也會造成限制。需要多核心高效能圖形處理單元(GPU)和其他類似的處理單元,以確保提高效率和減少時間消耗。然而,這些裝置價格昂貴,非常耗能。其他硬體要求包括隨機存取記憶體(RAM)和硬碟或固態硬碟(SSD)。
其他限制和挑戰包括:
- 深度學習需要大量資料。此外,更強大和更準確的模型需要更多的參數,而這些參數又需要更多的資料。
- 訓練後,深度學習模式就會變得僵化,無法處理多工。深度學習可以提供高效率、準確的解決方案,但只能針對一個特定的問題。即使要解決類似的問題,也需要對系統進行再訓練。
- 任何需要推理的應用,例如程式設計或應用科學方法,長期規劃和類似演算法的資料處理,都完全超出了目前深度學習技術的能力。