深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)不斷發(fā)展的子領(lǐng)域。深度學(xué)習(xí)設(shè)計(jì)逐層分析輸入,其中每一層逐步提取有關(guān)輸入的更高級(jí)別的信息。
讓我們以分析圖像的簡(jiǎn)單場(chǎng)景為例。首先假設(shè),你輸入的圖像被分成一個(gè)矩形像素網(wǎng)格?,F(xiàn)在:
在這里,特征提取過(guò)程從一層的輸出到下一層的輸入。
通過(guò)使用這種方法,我們可以處理大量的特征,這使得深度學(xué)習(xí)成為一個(gè)非常強(qiáng)大的工具。深度學(xué)習(xí)算法也可用于分析非結(jié)構(gòu)化數(shù)據(jù)。下面,我們通過(guò)本章內(nèi)容來(lái)了解深度學(xué)習(xí)的基礎(chǔ)知識(shí)。
深度學(xué)習(xí)最流行和主要方法是使用 "人工神經(jīng)網(wǎng)絡(luò)(ANN)"。它們的靈感來(lái)自人腦模型,這是我們身體中最復(fù)雜的器官。人腦由超過(guò) 900 億個(gè)稱(chēng)為 “神經(jīng)元” 的微小細(xì)胞組成。神經(jīng)元通過(guò)稱(chēng)為 “軸突” 和 “樹(shù)突” 的神經(jīng)纖維相互連接。軸突的主要作用是將信息從一個(gè)神經(jīng)元傳遞到與其相連的另一個(gè)神經(jīng)元。
同樣,樹(shù)突的主要作用是接收由它所連接的另一個(gè)神經(jīng)元的軸突傳遞的信息。每個(gè)神經(jīng)元處理一個(gè)小信息,然后將結(jié)果傳遞給另一個(gè)神經(jīng)元,這個(gè)過(guò)程繼續(xù) 。這是我們?nèi)四X用來(lái)處理大量信息(如語(yǔ)音、視覺(jué)等),并從中提取有用信息的基本方法。
1958年,心理學(xué)家弗蘭克·羅森布拉特(Frank Rosenblatt)在此模型的基礎(chǔ)上發(fā)明了第一個(gè)人工神經(jīng)網(wǎng)絡(luò)(ANN)。人工神經(jīng)網(wǎng)絡(luò)由多個(gè)節(jié)點(diǎn)組成,類(lèi)似于神經(jīng)元。節(jié)點(diǎn)緊密互連并組織成不同的隱藏層。輸入層接受輸入數(shù)據(jù),數(shù)據(jù)依次通過(guò)一個(gè)或多個(gè)隱藏層,最后輸出層預(yù)測(cè)輸入數(shù)據(jù)的有用信息。
單個(gè)神經(jīng)元(在 ANN 中稱(chēng)為感知器),可以表示如下:
這里:
多層感知器是 ANN 的最簡(jiǎn)單形式。它由單個(gè)輸入層、一個(gè)或多個(gè)隱藏層和最后一個(gè)輸出層組成。一個(gè)層由一組感知器組成。輸入層基本上是輸入數(shù)據(jù)的一個(gè)或多個(gè)特征。每個(gè)隱藏層由一個(gè)或多個(gè)神經(jīng)元組成,處理特征的某些方面,并將處理后的信息發(fā)送到下一個(gè)隱藏層。輸出層過(guò)程接受來(lái)自最后一個(gè)隱藏層的數(shù)據(jù)并最終輸出結(jié)果。
卷積神經(jīng)網(wǎng)絡(luò)是最流行的人工神經(jīng)網(wǎng)絡(luò)之一。廣泛應(yīng)用于圖像和視頻識(shí)別領(lǐng)域。它基于卷積的概念,一個(gè)數(shù)學(xué)概念。除了在全連接隱藏神經(jīng)元層之前包含一系列卷積層和池化層之外,它幾乎類(lèi)似于多層感知器。它具有三個(gè)重要的層:
一個(gè)簡(jiǎn)單的 CNN 可以表示如下:
這里:
循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 可用于解決其他 ANN 模型中的缺陷。嗯,大部分 ANN 不記得之前情況的步驟,并學(xué)會(huì)了根據(jù)訓(xùn)練中的上下文做出決策。同時(shí),RNN 存儲(chǔ)過(guò)去的信息,它的所有決定都是根據(jù)它從過(guò)去學(xué)到的東西做出的。 這種方法主要用于圖像分類(lèi)。有時(shí),我們可能需要展望未來(lái)以修復(fù)過(guò)去。在這種情況下,雙向 RNN 有助于從過(guò)去學(xué)習(xí)并預(yù)測(cè)未來(lái)。例如,我們?cè)诙鄠€(gè)輸入中有手寫(xiě)樣本。假設(shè)我們?cè)谝粋€(gè)輸入中有混淆,那么我們需要再次檢查其他輸入以識(shí)別從過(guò)去做出決定的正確上下文。
讓我們首先了解深度學(xué)習(xí)的不同階段,然后了解 Keras 如何在深度學(xué)習(xí)過(guò)程中提供幫助。
深度學(xué)習(xí)需要大量輸入數(shù)據(jù)才能成功學(xué)習(xí)和預(yù)測(cè)結(jié)果。因此,首先要收集盡可能多的數(shù)據(jù)。
分析數(shù)據(jù)并獲得對(duì)數(shù)據(jù)的良好理解。需要更好地理解數(shù)據(jù)才能選擇正確的 ANN 算法。
選擇最適合學(xué)習(xí)過(guò)程類(lèi)型(例如圖像分類(lèi)、文本處理等)和可用輸入數(shù)據(jù)的算法。算法在 Keras中用Model表示。算法包括一層或多層。ANN 中的每一層都可以用Keras 中的 Keras 層表示。
更多建議: