吳恩達 深度學習工程師 學習筆記(五)

2021-08-09 04:36:05 字數 3540 閱讀 5970

吳恩達【深度學習工程師】專項課程包含以下五門課程:

1、神經網路和深度學習;

2、改善深層神經網路:超引數除錯、正則化以及優化;

3、結構化機器學習專案;

4、卷積神經網路;

5、序列模型。

今天介紹《神經網路與深度學習》系列第五講:深層(deep)神經網路。

主要內容:

1、用流程塊圖的方式詳細推導正向傳播過程、反向傳播過程的輸入輸出及引數表示式;

2、從提取特徵複雜性、計算量的角度兩個方面解釋了深層神經網路的優勢;

3、介紹了超引數的概念,並解釋了超引數與引數的區別

;4、將神經網路與人腦做了模擬。

深層神經網路是包含更多的隱藏層神經網路。

如圖所示,分別列舉了邏輯回歸、1個隱層、2個隱層和5個隱層的神經網路模型:

正向傳播過程。以4層神經網路為例,對於m個訓練樣本,其向量化矩陣形式為:

第1層: z

[1]=

w[1]

x+b[

1]=w

[1]a

[0]+

b[1]

a[1]=

g[1]

(z[1

])

第2層: z

[2]=

w[2]

a[1]

+b[2

]

a[2]

=g[2

](z[

2])

對於第l 層,其正向傳播過程的z[

l]和a[l

] 可以表示為: z

[l]=

w[l]

a[l−

1]+b

[l]

a[l]=g

[l](

z[l]

) 其中

l=1,

⋯,l

對於m個訓練樣本,輸入矩陣x的維度是(n[

0],m

): w

[l]:

(n[l

],n[

l−1]

)

b[l]

:(n[

l],1

) 在運算z[

l]=w

[l]a

[l−1

]+b[

l]中,b[

l]會被當成(n[

l],m

)矩陣進行運算,這是由於python的廣播特性,且b[

l]每一列向量都是一樣的。dw

[l] 和db

[l] 的維度分別與w[

l]和b[l

] 的相同。z[

l]和a[l

] 的維度: z

[l]:

(n[l

],m)

a[l]:

(n[l

],m)

dz[l

] 和da

[l] 的維度分別與z[

l]和a[l

] 的相同。

在影象處理領域,深層神經網路隨著層數由淺到深,神經網路提取的特徵也是從邊緣到區域性特徵到整體,由簡單到複雜。如果隱藏層足夠多,那麼能夠提取的特徵就越豐富、越複雜,模型的準確率就會越高。

在語音識別領域,淺層的神經元能夠檢測一些簡單的音調,然後較深的神經元能夠檢測出基本的音素,更深的神經元就能夠檢測出單詞資訊。如果網路夠深,還能對短語、句子進行檢測。

除了從提取特徵複雜度的角度來說明深層網路的優勢之外,深層網路還有另外乙個優點,就是能夠減少神經元個數,從而減少計算量。

用流程塊圖來解釋神經網路正向傳播和反向傳播過程。對於第

l 層來說,正向傳播中:

輸入:a[l

−1]

輸出:a[

l]

引數:w[l

],b[

l]

快取變數:z[

l]

反向傳播過程中:

輸入:da[

l]

輸出:da[

l−1]

,dw[

l],d

b[l]

引數:w[l

這是第l

層的流程塊圖,對於神經網路所有層,整體的流程塊圖正向傳播過程和反向傳播過程如下所示:

正向傳播過程,m個訓練樣本,向量化形式為: z

[l]=

w[l]

a[l−

1]+b

[l]

a[l]=g

[l](

z[l]

) 反向傳播過程向量化形式為: d

z[l]

=da[

l]∗g

[l]′

(z[l

])

dw[l]=1

mdz[

l]⋅a

[l−1

]t

db[l]=1

mnp.

sum(

dz[l

],ax

is=1

,kee

pdim

=tru

e)

da[l−1]

=w[l

]t⋅d

z[l]

dz[l]

=w[l

+1]t

⋅dz[

l+1]

∗g[l

]′(z

[l])

神經網路中的引數就是w[l

] 和b[

l]。超引數則是例如學習速率

α ,訓練迭代次數n,神經網路層數l,各層神經元個數n[

l],啟用函式g(

z)等。

設定最優的超引數常見的做法是選擇超引數為一定範圍內的值,分別代入神經網路進行訓練,測試代價函式隨著迭代次數增加的變化,根據結果選擇代價最小時對應的超引數值。

神經網路跟人腦機制到底有什麼聯絡呢?

究竟有多少的相似程度?

神經網路分成兩個部分:正向和反向傳播過程。

神經網路的每個神經元採用啟用函式的方式,類似於感知機模型。這種模型與人腦神經元是類似的,可以說是一種非常簡化的人腦神經元模型。

如下圖所示,人腦神經元可分為樹突、細胞體、軸突三部分。樹突接收外界電刺激訊號(模擬神經網路中神經元輸入),傳遞給細胞體進行處理(模擬神經網路中神經元啟用函式運算),最後由軸突傳遞給下乙個神經元(模擬神經網路中神經元輸出)。

但是,人腦神經元的結構和處理方式要複雜的多,神經網路模型只是非常簡化的模型。人腦如何進行學習?是否也是通過反向傳播和梯度下降演算法現在還不清楚,可能會更加複雜。

演算法工程師修仙之路 吳恩達深度學習(三)

為了儲存一張,需要儲存三個矩陣,它們分別對應中的紅 綠 藍三種顏色通道,如果你的大小為 64x64 畫素,那麼你就有三個規模為 64x64 的矩陣,分別對應中紅 綠 藍三種畫素的強度值。為了便於表示,這裡我畫了三個很小的矩陣,注意它們的規模為 5x4 而不是 64x64,如下圖所示 符號定義 x x...

吳恩達深度學習筆記

2.02 紅色為小標題,藍色比較重要 第四講第二週 4.2.1 為什麼要進行例項 4.2.2 經典網路 lenet 5網路當時還沒有padding,所以在卷積過程當中越來越小 也沒有relu函式,當時這個例子用的是sigmoid函式。超級引數不是很多。這個典型的網路有padding,使用的是relu...

吳恩達深度學習筆記

目錄導數的細節 向量化python中的廣播 第二部分深度學習內容 吳恩達講深度學習 1.資料量更大 2.演算法越來越優 3.業務場景越來越多樣化 4.學術界or工業界越來越卷 私以為 邏輯回歸是最簡單的二分類模型,也可以說是後續深度神經網路的基礎框架.達叔的演算法知識第一課.邏輯回歸的引數是w和b,...