深度神經網路
深度神經網路
摘要:深度學習是近年來計算機人工智慧領域非常火的研究方向,其相比傳統的淺層機器學習而言能夠挖掘出更多隱含的特徵。深度學習現如今已經廣泛的應用與計算機視覺、自然語言處理等領域,因此作為計算機專業人工智慧的學習者,學習和研究深度學習是一項必修課。
神經網路作為作為深度學習的“常客”,是成為構建深度學習框架的主要結構,神經網路以其與人類神經元相類似的元素通過相互連線形成網路拓撲結構,而這種模型能夠自主挖掘更深層次特徵。
- 啟發:線性迴歸
- 神經網路的結構
- 神經網路的訓練
- 模型優化
- 其他經典的神經網路
- TensorFlow實現標準神經網路源程式
- 總結
一、啟發:線性迴歸
神經網路的基本計算主要以線性和非線性為主,線性是為了對不同的特徵進行相互組合,其主要的運算結果是線性迴歸問題;非線性處理是為了對模型進行優化,使其能夠處理非線性問題,其主要運算以函式形式。
線性模型是機器學習中最簡單的分類模型,單變數線性迴歸是典型的迴歸問題,其主要模型為:
其中
表示引數矩陣(或權重矩陣),
表示偏向向量(一元線性曲線的截距),
表示輸入的特徵向量,
表示對應的輸出。線性分類器的目的便是訓練一個線性迴歸方程,使得其能夠擬合實際的樣本輸出。
通過曲線圖可以描繪線性迴歸方程的含義:
下面給出模型訓練的推導:
假設有一組訓練樣本,記作
{(
,
)|
{
},
{
}},其中
表示樣本數,選擇平方差作為損失函式,即:
則代價函式(所有樣本的損失函式的均值)為:
構造了代價函式後,需要對其進行最優化處理,使得模型的代價儘可能降低。模型的優化方法常用的是梯度下降法(或稱最速下降法)。梯度下降法通過對需要優化調整的引數進行調參。線性迴歸模型中需要調整的引數有權重矩陣
和偏向
,因此需要對這些引數求偏導,以獲得梯度方向。
Ps:梯度下降法需要鏈式法則完成偏導的求解。
線性迴歸模型的梯度下降如下:
若選擇學習率為
,則引數調整為:
通過不斷迴圈調參,直到引數變化非常小的時候(在程式設計過程中,可以設定一個變數用以判斷是否需要下一輪迭代),線性迴歸模型可以說訓練完成。在評估該模型時候,仍然可以使用損失函式來對測試集進行評估,並計算相應的準確率、召回率、F1值等。
二、神經網路的結構
深入學習神經網路後會發,神經網路便是若干個線性迴歸方程的“相互交織”,再通過非線性方程進行“銳化”,因此第一節的線性迴歸問題是解決神經網路的基礎。
神經網路是由神經元組成,神經元又稱資訊感知機,其通過多條路徑(突觸)接收外界資訊並傳導至神經細胞,並通過啟用或抑制等策略做出反應。這裡的突觸即為資料的輸入,神經細胞即為模型的結點,而反應即為啟用函式。模型圖如下所示:
圖(a)為一個資訊感知機,輸入模型的資料為
,連線的邊上的權重分別為
,結點神經細胞獲取外界的輸入記為: