Keras 深度學(xué)習(xí)概述

2021-11-01 10:02 更新

深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個不斷發(fā)展的子領(lǐng)域。深度學(xué)習(xí)設(shè)計逐層分析輸入,其中每一層逐步提取有關(guān)輸入的更高級別的信息。

讓我們以分析圖像的簡單場景為例。首先假設(shè),你輸入的圖像被分成一個矩形像素網(wǎng)格?,F(xiàn)在:

  • 第一層抽象像素;
  • 第二層理解圖像中的邊緣;
  • 下一層從邊緣構(gòu)造節(jié)點(diǎn),然后,下一個會從節(jié)點(diǎn)找到分支;
  • 最后,輸出層將檢測到完整的對象。

在這里,特征提取過程從一層的輸出到下一層的輸入。

通過使用這種方法,我們可以處理大量的特征,這使得深度學(xué)習(xí)成為一個非常強(qiáng)大的工具。深度學(xué)習(xí)算法也可用于分析非結(jié)構(gòu)化數(shù)據(jù)。下面,我們通過本章內(nèi)容來了解深度學(xué)習(xí)的基礎(chǔ)知識。

人工神經(jīng)網(wǎng)絡(luò)

深度學(xué)習(xí)最流行和主要方法是使用 "人工神經(jīng)網(wǎng)絡(luò)(ANN)"。它們的靈感來自人腦模型,這是我們身體中最復(fù)雜的器官。人腦由超過 900 億個稱為 “神經(jīng)元” 的微小細(xì)胞組成。神經(jīng)元通過稱為 “軸突” 和 “樹突” 的神經(jīng)纖維相互連接。軸突的主要作用是將信息從一個神經(jīng)元傳遞到與其相連的另一個神經(jīng)元。

同樣,樹突的主要作用是接收由它所連接的另一個神經(jīng)元的軸突傳遞的信息。每個神經(jīng)元處理一個小信息,然后將結(jié)果傳遞給另一個神經(jīng)元,這個過程繼續(xù) 。這是我們?nèi)四X用來處理大量信息(如語音、視覺等),并從中提取有用信息的基本方法。

1958年,心理學(xué)家弗蘭克·羅森布拉特(Frank Rosenblatt)在此模型的基礎(chǔ)上發(fā)明了第一個人工神經(jīng)網(wǎng)絡(luò)(ANN)。人工神經(jīng)網(wǎng)絡(luò)由多個節(jié)點(diǎn)組成,類似于神經(jīng)元。節(jié)點(diǎn)緊密互連并組織成不同的隱藏層。輸入層接受輸入數(shù)據(jù),數(shù)據(jù)依次通過一個或多個隱藏層,最后輸出層預(yù)測輸入數(shù)據(jù)的有用信息。

單個神經(jīng)元(在 ANN 中稱為感知器),可以表示如下:

這里:

  • 多個輸入連同權(quán)重代表樹突。
  • 輸入和激活函數(shù)的總和代表神經(jīng)元。求和實(shí)際上是指所有輸入的計算值,激活函數(shù)代表一個函數(shù),將求和值修改為0、1或0到1。
  • 實(shí)際輸出代表軸突,輸出將被下一層神經(jīng)元接收。

多層感知器

多層感知器是 ANN 的最簡單形式。它由單個輸入層、一個或多個隱藏層和最后一個輸出層組成。一個層由一組感知器組成。輸入層基本上是輸入數(shù)據(jù)的一個或多個特征。每個隱藏層由一個或多個神經(jīng)元組成,處理特征的某些方面,并將處理后的信息發(fā)送到下一個隱藏層。輸出層過程接受來自最后一個隱藏層的數(shù)據(jù)并最終輸出結(jié)果。

卷積神經(jīng)網(wǎng)絡(luò)(CNN)

卷積神經(jīng)網(wǎng)絡(luò)是最流行的人工神經(jīng)網(wǎng)絡(luò)之一。廣泛應(yīng)用于圖像和視頻識別領(lǐng)域。它基于卷積的概念,一個數(shù)學(xué)概念。除了在全連接隱藏神經(jīng)元層之前包含一系列卷積層和池化層之外,它幾乎類似于多層感知器。它具有三個重要的層:

  • 卷積層 它是主要的構(gòu)建塊,并基于卷積函數(shù)執(zhí)行計算任務(wù)。
  • 池化層 它被安排在卷積層旁邊,用于通過刪除不必要的信息來減少輸入的大小,從而可以更快地執(zhí)行計算。
  • 全連接層 它被安排在一系列卷積和池化層旁邊,并將輸入分類為各種類別。

一個簡單的 CNN 可以表示如下:

這里:

  • 使用了2個系列的卷積層和池化層,用來接收和處理輸入(例如圖像)。
  • 使用單個全連接層,用于輸出數(shù)據(jù)(例如圖像分類)

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)

循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 可用于解決其他 ANN 模型中的缺陷。嗯,大部分 ANN 不記得之前情況的步驟,并學(xué)會了根據(jù)訓(xùn)練中的上下文做出決策。同時,RNN 存儲過去的信息,它的所有決定都是根據(jù)它從過去學(xué)到的東西做出的。 這種方法主要用于圖像分類。有時,我們可能需要展望未來以修復(fù)過去。在這種情況下,雙向 RNN 有助于從過去學(xué)習(xí)并預(yù)測未來。例如,我們在多個輸入中有手寫樣本。假設(shè)我們在一個輸入中有混淆,那么我們需要再次檢查其他輸入以識別從過去做出決定的正確上下文。

人工神經(jīng)網(wǎng)絡(luò)的工作流程

讓我們首先了解深度學(xué)習(xí)的不同階段,然后了解 Keras 如何在深度學(xué)習(xí)過程中提供幫助。

收集所需數(shù)據(jù)

深度學(xué)習(xí)需要大量輸入數(shù)據(jù)才能成功學(xué)習(xí)和預(yù)測結(jié)果。因此,首先要收集盡可能多的數(shù)據(jù)。

分析數(shù)據(jù)

分析數(shù)據(jù)并獲得對數(shù)據(jù)的良好理解。需要更好地理解數(shù)據(jù)才能選擇正確的 ANN 算法。

選擇算法(模型)

選擇最適合學(xué)習(xí)過程類型(例如圖像分類、文本處理等)和可用輸入數(shù)據(jù)的算法。算法在 Keras中用Model表示。算法包括一層或多層。ANN 中的每一層都可以用Keras 中的 Keras 層表示。

  • 準(zhǔn)備數(shù)據(jù) - 處理、過濾和僅從數(shù)據(jù)中選擇所需的信息。
  • 拆分?jǐn)?shù)據(jù) - 將數(shù)據(jù)拆分為訓(xùn)練和測試數(shù)據(jù)集。測試數(shù)據(jù)將用于評估算法/模型的預(yù)測(一旦機(jī)器學(xué)習(xí))并交叉檢查學(xué)習(xí)過程的效率。
  • 編譯模型 - 編譯算法/模型,以便通過訓(xùn)練進(jìn)一步學(xué)習(xí)并最終進(jìn)行預(yù)測。這一步需要我們選擇損失函數(shù)和優(yōu)化器。在學(xué)習(xí)階段使用損失函數(shù)和優(yōu)化器來發(fā)現(xiàn)錯誤(與實(shí)際輸出的偏差)并進(jìn)行優(yōu)化,以使錯誤最小化。
  • 擬合模型 - 實(shí)際學(xué)習(xí)過程將在此階段使用訓(xùn)練數(shù)據(jù)集完成。
  • 預(yù)測未知值的結(jié)果 - 預(yù)測未知輸入數(shù)據(jù)的輸出(現(xiàn)有訓(xùn)練和測試數(shù)據(jù)除外)
  • 評估模型 - 通過預(yù)測測試數(shù)據(jù)的輸出并將預(yù)測與測試數(shù)據(jù)的實(shí)際結(jié)果進(jìn)行交叉比較來評估模型。
  • 凍結(jié)、修改或選擇新算法 - 檢查模型評估是否成功。如果是,請保存算法以備將來預(yù)測之用。如果不是,則修改或選擇新的算法/模型,最后再次訓(xùn)練、預(yù)測和評估模型。重復(fù)該過程,直到找到最佳算法(模型)。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號