
Keras——深度學習概述
深度學習是機器學習中一個不斷發展的分支。深度學習涉及逐層分析輸入,其中每一層逐漸提取關於輸入的更高級別的資訊。
讓我們以分析影像為例。假設您的輸入影像被分成一個矩形的畫素網格。現在,第一層抽象出畫素。第二層理解影像中的邊緣。下一層從邊緣構建節點。然後,下一層將從節點中找到分支。最後,輸出層將檢測完整的物體。在這裡,特徵提取過程從一層輸出到下一層的輸入。
透過這種方法,我們可以處理海量特徵,這使得深度學習成為一個非常強大的工具。深度學習演算法也適用於非結構化資料的分析。讓我們在本章中學習深度學習的基礎知識。
人工神經網路
深度學習最流行和主要的方法是使用“人工神經網路”(ANN)。它們受到人腦模型的啟發,人腦是我們身體最複雜的器官。人腦由超過900億個被稱為“神經元”的微小細胞組成。“神經元”透過稱為“軸突”和“樹突”的神經纖維相互連線。軸突的主要作用是從一個神經元傳遞資訊到它連線的另一個神經元。
同樣,樹突的主要作用是接收由它連線的另一個神經元的軸突傳遞的資訊。每個神經元處理少量資訊,然後將結果傳遞給另一個神經元,這個過程持續進行。這是我們人腦處理大量資訊(如語音、視覺等)並從中提取有用資訊的基本方法。
基於此模型,第一個人工神經網路 (ANN) 由心理學家Frank Rosenblatt於1958年發明。ANN 由多個類似於神經元的節點組成。節點緊密相連並組織成不同的隱藏層。輸入層接收輸入資料,資料依次透過一個或多個隱藏層,最後輸出層預測關於輸入資料的某些有用資訊。例如,輸入可以是影像,輸出可以是影像中識別的物體,例如“貓”。
單個神經元(在ANN中稱為感知器)可以表示如下:

這裡:
多個輸入以及權重代表樹突。
輸入之和以及啟用函式代表神經元。和實際上是指所有輸入的計算值,啟用函式表示一個函式,它將和的值修改為0、1或0到1。
實際輸出代表軸突,輸出將被下一層的神經元接收。
讓我們在本節中瞭解不同型別的人工神經網路。
多層感知器
多層感知器是最簡單的人工神經網路形式。它由一個輸入層、一個或多個隱藏層和一個輸出層組成。一層由多個感知器組成。輸入層基本上是輸入資料的一個或多個特徵。每個隱藏層包含一個或多個神經元,處理特徵的某些方面並將處理後的資訊傳送到下一個隱藏層。輸出層處理接收來自最後一個隱藏層的資料,最終輸出結果。

卷積神經網路 (CNN)
卷積神經網路是最流行的人工神經網路之一。它廣泛應用於影像和影片識別領域。它基於卷積的概念,這是一個數學概念。它與多層感知器幾乎相同,只是在全連線隱藏神經元層之前包含一系列卷積層和池化層。它具有三個重要的層:
卷積層——它是主要的構建塊,並根據卷積函式執行計算任務。
池化層——它位於卷積層旁邊,用於透過去除不必要的資訊來減小輸入的大小,以便可以更快地進行計算。
全連線層——它位於一系列卷積層和池化層之後,並將輸入分類到不同的類別。
一個簡單的CNN可以表示如下:

這裡:
使用2個系列的卷積層和池化層,它接收並處理輸入(例如影像)。
使用單個全連線層,用於輸出資料(例如影像分類)。
迴圈神經網路 (RNN)
迴圈神經網路 (RNN) 用於解決其他ANN模型中的缺陷。大多數ANN不記得先前情況的步驟,並學習根據訓練中的上下文做出決策。同時,RNN儲存過去的資訊,其所有決策都是根據過去學到的知識做出的。
這種方法主要用於影像分類。有時,我們可能需要展望未來以解決過去的問題。在這種情況下,雙向RNN有助於從過去學習並預測未來。例如,我們在多個輸入中具有手寫樣本。假設在一個輸入中存在混淆,那麼我們需要再次檢查其他輸入以識別正確的上下文,該上下文根據過去做出決策。
ANN 的工作流程
讓我們首先了解深度學習的不同階段,然後學習 Keras 如何幫助深度學習過程。
收集所需資料
深度學習需要大量輸入資料才能成功地學習和預測結果。因此,首先收集儘可能多的資料。
分析資料
分析資料並充分了解資料。需要更好地理解資料才能選擇正確的人工神經網路演算法。
選擇演算法(模型)
選擇最適合學習過程型別(例如影像分類、文字處理等)和可用輸入資料的演算法。演算法在 Keras 中由模型表示。演算法包括一個或多個層。ANN中的每一層都可以在Keras中由Keras層表示。
準備資料——處理、過濾並僅從資料中選擇所需資訊。
分割資料——將資料分割成訓練資料和測試資料集。測試資料將用於評估演算法/模型的預測(機器學習後)並交叉檢查學習過程的效率。
編譯模型——編譯演算法/模型,以便可以進一步用於透過訓練進行學習,並最終進行預測。此步驟需要我們選擇損失函式和最佳化器。損失函式和最佳化器用於學習階段查詢誤差(與實際輸出的偏差)並進行最佳化,以便將誤差最小化。
擬合模型——實際學習過程將在此階段使用訓練資料集完成。
預測未知值的成果——預測未知輸入資料(除現有的訓練和測試資料之外)的輸出。
評估模型——透過預測測試資料的輸出並將預測與測試資料的實際結果進行交叉比較來評估模型。
凍結、修改或選擇新的演算法——檢查模型的評估是否成功。如果是,則儲存演算法以備將來預測使用。如果不是,則修改或選擇新的演算法/模型,最後再次訓練、預測和評估模型。重複此過程,直到找到最佳演算法(模型)。
上述步驟可以使用下面的流程圖表示:
