深度學習筆記(一)

2021-08-26 08:29:22 字數 2671 閱讀 8564

深度學習筆記(一):logistic分類

深度學習筆記(二):簡單神經網路,後向傳播演算法及實現

深度學習筆記(三):啟用函式和損失函式

深度學習筆記:優化方法總結(bgd,sgd,momentum,adagrad,rmsprop,adam)

深度學習筆記(四):迴圈神經網路的概念,結構和**注釋

深度學習筆記(五):lstm

深度學習筆記(六):encoder-decoder模型和attention模型

這個系列主要記錄我在學習各個深度學習演算法時候的筆記,因為之前已經學過大概的概念,所以這輪學習比較著重於公式推導和具體實現,而對概念上的描述不多,因此比較適合對此有一定基礎的同學

在正式開始寫深度學習的知識之前,會有兩節傳統神經網路的內容,因為深度學習中大量運用了以往神經網路的知識。搞懂傳統的神經網路如何工作是很有必要的,有助於對之後的學習打下堅實的基礎。

幾乎所有的教材都是從logistic分類開始的,因為logistic分類實在太經典,而且是神經網路的基本組成部分,每個神經元(cell)都可以看做是進行了一次logistic分類。

所謂logistic分類,顧名思義,邏輯分類,是一種二分類法,能將資料分成0和1兩類。

logistic分類的流程比較簡單,主要有線性求和,sigmoid函式啟用,計算誤差,修正引數這4個步驟。前兩部用於判斷,後兩步用於修正。本文分為3部分,前2部分講普通logistic分類的流程,第三部分則稍作擴充套件。

第1,2步是用於根據輸入來判斷分類的,所以放在一起說。假設有乙個n維的輸入列向量

x」 role=」presentation」 style=」position: relative;」>x

x, 還有乙個偏置量b, 那麼就可以線性求和得到z.

z=htx+b」 role=」presentation」 style=」text-align: center; position: relative;」>z=h

tx+b

z=htx+b

此時因為z的值域是

[−∞,+∞]」 role=」presentation」 style=」position: relative;」>[−∞

,+∞]

[−∞,+∞]

到底是屬於0還是1的。因此我們需要乙個函式,來將z的值對映到[0,1]之間, 這就是啟用函式。啟用函式有很多種,這裡的啟用函式是sigmoid函式。

σ(x)=11+e−xσ′(x)=σ(x)(1−σ(x))」 role=」presentation」 style=」position: relative;」>σ(x

)=11

+e−x

σ′(x

)=σ(

x)(1

−σ(x

))σ(x)=11+e−xσ′(x)=σ(x)(1−σ(x))

\sigma(x)=\frac}\\ \sigma'(x)=\sigma(x)(1-\sigma(x))

其形狀為

圖1 sigmoid函式

可以看到x越大,

σ(x)」 role=」presentation」 style=」position: relative;」>σ(x

)σ(x)

越接近1,反之,則越接近0. 那麼在判斷的時候,我們首先對之前得到的z代入sigmoid函式

a=σ(z)=σ(htx+b)」 role=」presentation」 style=」text-align: center; position: relative;」>a=σ

(z)=

σ(ht

x+b)

a=σ(z)=σ(htx+b)

當 a 大於0.5的時候,我們判定x應屬於1類,如果小於0.5,則屬於0類。這樣,就完成了判斷的工作

上面完成的判斷過程中用到了引數向量h和偏置量b。 可以說,h和b的值直接關係到logistic判斷的準確性。那麼這兩組引數是如何獲得的呢?這就涉及到了引數的修正。在最開始的時候,h中的值是隨機的,而b的值是0. 我們通過不斷的訓練來使得h和b能夠盡可能的達到乙個較優的值。

那麼如何訓練呢?假設我們期望輸入x的判定是y,而實際得到的判定值是a,那麼我們定義乙個損失函式c(a,y),通過修正h和b的值來使得c最小化,這是乙個優化問題。在凸優化問題中,可以通過

∂c∂h=0,∂c∂b=0」 role=」presentation」 style=」text-align: center; position: relative;」>∂c∂

h=0,

∂c∂b

=0∂c∂h=0,∂c∂b=0

來直接算得h和b的最優解。然而在某些情況下,例如資料規模很大,或者非凸優化問題中,則不能這麼做,而是用迭代的方法來得到區域性最優解。

h:=h−η∂c∂hb:=b−η∂c∂b」 role=」presentation」 style=」position: relative;」>h:=h

−η∂c

∂hb:=

b−η∂

c∂bh:=h−η∂c∂hb:=b−η∂c∂b

\mathbf := \mathbf - \eta\frac}}}\\ b := b - \eta\frac}}

其中 η」 role=」presentation」 style=」position: relative;」>η

η 那麼可以得到

深度學習筆記(一)

在mxnet中,ndarray是乙個類,也是儲存和交換資料的主要工具。ndarray和numpy的多維陣列非常類似,ndarray提供gpu計算和自動求梯度等更多功能。首先,從mxnet中匯入ndarray模組。使用shape屬性獲取ndarray例項的形狀,也可以通過size屬性得到ndarray...

深度學習筆記(一)

1 對於多通道的影象採用多個卷積核,最終輸出的feature map是每個卷積核輸出的feature map所對應的座標處的值相加。2 卷積層引數的計算 輸入影象32 32 3,有6個卷積核,尺寸為5 5 3,每個卷積核輸出對應乙個特徵平面,一共6個特徵平面。即輸出特徵平面的個數和卷積核的個數相對應...

深度學習筆記(一)什麼是深度學習

從簡單的經驗中獲取知識,不需要人類去設計 規範知識,因為層次化的簡單概念可以讓計算機去學習,從而形成複雜的概念,如果用一張圖來表示就是一層一層,所以叫深度學習。ibm深藍 1997年 知識基礎 knowledge base 用公式來表述現實世界,現在還沒有成功案例。機器學習 machine lear...