什麼是深度學習

深度學習入門(一)

當第一次i聽到「深度學習」這個詞,我很好奇,深度學習是什麼?

我們都熟悉「人工智能」這個詞。但你最近可能聽說過「機器學習」(Machine Learning)和「深度學習」(Deep Learning)等其他術語,它們有時會與人工智能(ai)互換使用。因此,人工智能、機器學習和深度學習之間的區別可能非常不清楚。
關於這個主題的文章通常都有很多的高等數學、代碼,或者是其他令人困惑的高層次,以致於無法觸及。
在這裏插入圖片描述

定義:

在深入學習深度學習的原理之前,我們必須先解釋下重要術語之間的差異。

1、人工智能vs機器學習

人工智能是計算機科學的一個分支,研究計算機中智能行爲的仿真。
每當一臺機器根據一組預先定義的解決問題的規則來完成任務時,這種行爲就被稱爲人工智能。

開發人員引入了大量計算機需要遵守的規則。計算機內部存在一個可能行爲的具體清單,它會根據這個清單做出決定。如今,人工智能是一個概括性術語,涵蓋了從高級算法到實際機器人的所有內容。

我們有四個不同層次的AI,讓我們來解釋前兩個:

弱人工智能,也被稱爲狹義人工智能,是一種爲特定的任務而設計和訓練的人工智能系統。弱人工智能的形式之一是虛擬個人助理,比如蘋果公司的Siri。
強人工智能,又稱人工通用智能,是一種具有人類普遍認知能力的人工智能系統。當計算機遇到不熟悉的任務時,它具有足夠的智能去尋找解決方案。
機器學習是指計算機使用大數據集而不是硬編碼規則來學習的能力。
機器學習允許計算機自己學習。這種學習方式利用了現代計算機的處理能力,可以輕鬆地處理大型數據集。

基本上,機器學習是人工智能的一個子集;更爲具體地說,它只是一種實現AI的技術,一種訓練算法的模型,這種算法使得計算機能夠學習如何做出決策。

從某種意義上來說,機器學習程序根據計算機所接觸的數據來進行自我調整。

2、監督式學習vs非監督式學習

** 監督式學習需要使用有輸入和預期輸出標記的數據集。**

當你使用監督式學習訓練人工智能時,你需要提供一個輸入並告訴它預期的輸出結果。

如果人工智能產生的輸出結果是錯誤的,它將重新調整自己的計算。這個過程將在數據集上不斷迭代地完成,直到AI不再出錯。

監督式學習的一個例子是天氣預報人工智能。它學會利用歷史數據來預測天氣。訓練數據包含輸入(過去天氣的壓力、溼度、風速)和輸出(過去天氣的溫度)。

我們還可以想象您正在提供一個帶有標記數據的計算機程序。例如,如果指定的任務是使用一種圖像分類算法對男孩和女孩的圖像進行分類,那麼男孩的圖像需要帶有「男孩」標籤,女孩的圖像需要帶有「女孩」標籤。這些數據被認爲是一個「訓練」數據集,直到程序能夠以可接受的速率成功地對圖像進行分類,以上的標籤纔會失去作用。

它之所以被稱爲監督式學習,是因爲算法從訓練數據集學習的過程就像是一位老師正在監督學習。在我們預先知道正確的分類答案的情況下,算法對訓練數據不斷進行迭代預測,然後預測結果由「老師」進行不斷修正。當算法達到可接受的性能水平時,學習過程纔會停止。

非監督式學習是利用既不分類也不標記的信息進行機器學習,並允許算法在沒有指導的情況下對這些信息進行操作。

當你使用非監督式學習訓練人工智能時,你可以讓人工智能對數據進行邏輯分類。這裏機器的任務是根據相似性、模式和差異性對未排序的信息進行分組,而不需要事先對數據進行處理。

非監督式學習的一個例子是亞馬遜等電子商務網站的行爲預測AI。

它將創建自己輸入數據的分類,幫助亞馬遜識別哪種用戶最有可能購買不同的產品(交叉銷售策略)。

另一個例子是,程序可以任意地使用以下兩種算法中的一種來完成男孩女孩的圖像分類任務。一種算法被稱爲「聚類」,它根據諸如頭髮長度、下巴大小、眼睛位置等特徵將相似的對象分到同一個組。另一種算法被稱爲「相關」,它根據自己發現的相似性創建if/then規則。換句話說,它確定了圖像之間的公共模式,並相應地對它們進行分類。

3、什麼是深度學習,以及它是如何工作的。

深度學習是一種機器學習方法 , 它允許我們訓練人工智能來預測輸出,給定一組輸入(指傳入或傳出計算機的信息)。監督學習和非監督學習都可以用來訓練人工智能。

Andrew Ng:「與深度學習類似的是,火箭發動機是深度學習模型,燃料是我們可以提供給這些算法的海量數據。」

我們將通過建立一個公交票價估算在線服務來了解深度學習是如何工作的。爲了訓練它,我們將使用監督學習方法。

我們希望我們的巴士票價估價師使用以下信息/輸入來預測價格:
在這裏插入圖片描述

4、神經網絡

神經網絡是一組粗略模仿人類大腦,用於模式識別的算法。神經網絡這個術語來源於這些系統架構設計背後的靈感,這些系統是用於模擬生物大腦自身神經網絡的基本結構,以便計算機能夠執行特定的任務。

和人類一樣, 「AI價格評估」也是由神經元(圓圈)組成的。此外,這些神經元還是相互連接的。
在這裏插入圖片描述
神經元分爲三種不同類型的層次:

輸入層接收輸入數據。在我們的例子中,輸入層有四個神經元:出發站、目的地站、出發日期和巴士公司。輸入層會將輸入數據傳遞給第一個隱藏層。

隱藏層對輸入數據進行數學計算。創建神經網絡的挑戰之一是決定隱藏層的數量,以及每一層中的神經元的數量。

人工神經網絡的輸出層是神經元的最後一層,主要作用是爲此程序產生給定的輸出,在本例中輸出結果是預測的價格值。
在這裏插入圖片描述
神經元之間的每個連接都有一個權重。這個權重表示輸入值的重要性。模型所做的就是學習每個元素對價格的貢獻有多少。這些「貢獻」是模型中的權重。一個特徵的權重越高,說明該特徵比其他特徵更爲重要。

在預測公交票價時,出發日期是影響最終票價的最爲重要的因素之一。因此,出發日期的神經元連接具有較大的「權重」。
在這裏插入圖片描述
每個神經元都有一個激活函數。它主要是一個根據輸入傳遞輸出的函數。

當一組輸入數據通過神經網絡中的所有層時,最終通過輸出層返回輸出數據。

6、通過訓練改進神經網絡

爲了提高「AI價格評估」的精度,我們需要將其預測結果與過去的結果進行比較,爲此,我們需要兩個要素:

  1. 大量的計算能力;

  2. 大量的數據。

訓練AI的過程中,重要的是給它的輸入數據集(一個數據集是一個單獨地或組合地或作爲一個整體被訪問的數據集合),此外還需要對其輸出結果與數據集中的輸出結果進行對比。因爲AI一直是「新的」,它的輸出結果有可能是錯誤的。

對於我們的公交票價模型,我們必須找到過去票價的歷史數據。由於有大量「公交車站」和「出發日期」的可能組合,因而我們需要一個非常大的票價清單。

一旦我們遍歷了整個數據集,就有可能創建一個函數來衡量AI輸出與實際輸出(歷史數據)之間的差異。這個函數叫做成本函數。即成本函數是一個衡量模型準確率的指標,衡量依據爲此模型估計X與Y間關係的能力。

模型訓練的目標是使成本函數等於零,即當AI的輸出結果與數據集的輸出結果一致時(成本函數等於0)。

我們如何降低成本函數呢?

通過使用一種叫做梯度下降的方法。梯度衡量得是,如果你稍微改變一下輸入值,函數的輸出值會發生多大的變化。

梯度下降法是一種求函數最小值的方法。在這種情況下,目標是取得成本函數的最小值。

它通過每次數據集迭代之後優化模型的權重來訓練模型。通過計算某一權重集下代價函數的梯度,可以看出最小值的梯度方向。
在這裏插入圖片描述
爲了降低成本函數值,多次遍歷數據集非常重要。這就是爲什麼需要大量計算能力的原因。

一旦我們通過訓練改進了AI,我們就可以利用它根據上述四個要素來預測未來的價格。

7、你應該記住的是…

人工智能可以分爲兩類,一般的和狹義的。

機器學習只是實現人工智能的一種方式。

深度學習是機器學習的一個分支,它使用神經網絡來模擬人類的智力。

神經網絡中有三種類型的神經元層:輸入層、隱藏層和輸出層。

神經元之間的連接與重量有關

訓練神經網絡是很重要的,大數據集是必須的。