成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

神經網絡詳解,正向傳播和反向傳播

人工智能 深度學習
主要講了Logistic regression的內容,里面涉及到很多基本概念,是學習神經網絡的基礎。下面我們由Logistic regression升級到神經網絡,首先我們看看“淺層神經網絡(Shallow Neural Network)”

主要講了Logistic regression的內容,里面涉及到很多基本概念,是學習神經網絡的基礎。下面我們由Logistic regression升級到神經網絡,首先我們看看“淺層神經網絡(Shallow Neural Network)”

一、什么是神經網絡

我們這里講解的神經網絡,就是在Logistic regression的基礎上增加了一個或幾個隱層(hidden layer),下面展示的是一個最最最簡單的神經網絡,只有兩層:

兩層神經網絡:

機器不學習:神經網絡詳解,正向傳播和反向傳播

 

需要注意的是,上面的圖是“兩層”,而不是三層或者四層,輸入和輸出不算層!

這里,我們先規定一下記號(Notation):

  • z是x和w、b線性運算的結果,z=wx+b;a是z的激活值;下標的1,2,3,4代表該層的第i個神經元(unit);上標的[1],[2]等代表當前是第幾層。y^代表模型的輸出,y才是真實值,也就是標簽

另外,有一點經常搞混:

- 上圖中的x1,x2,x3,x4不是代表4個樣本!而是一個樣本的四個特征(4個維度的值)!

你如果有m個樣本,代表要把上圖的過程重復m次:

機器不學習:神經網絡詳解,正向傳播和反向傳播

 

神經網絡的“兩個傳播”:

  • 前向傳播(Forward Propagation)前向傳播就是從input,經過一層層的layer,不斷計算每一層的z和a,***得到輸出y^ 的過程,計算出了y^,就可以根據它和真實值y的差別來計算損失(loss)。反向傳播(Backward Propagation)反向傳播就是根據損失函數L(y^,y)來反方向地計算每一層的z、a、w、b的偏導數(梯度),從而更新參數。
  • 前向傳播和反向傳播:

機器不學習:神經網絡詳解,正向傳播和反向傳播

 

每經過一次前向傳播和反向傳播之后,參數就更新一次,然后用新的參數再次循環上面的過程。這就是神經網絡訓練的整個過程。

二、前向傳播

如果用for循環一個樣本一個樣本的計算,顯然太慢,看過我的前幾個筆記的朋友應該知道,我們是使用Vectorization,把m個樣本壓縮成一個向量X來計算,同樣的把z、a都進行向量化處理得到Z、A,這樣就可以對m的樣本同時進行表示和計算了。

這樣,我們用公式在表示一下我們的兩層神經網絡的前向傳播過程:

Layer 1: Z[1] = W[1]·X + b[1]A[1] = σ(Z[1])

Layer 2: Z[2] = W[2]·A[1] + b[2]A[2] = σ(Z[2])

而我們知道,X其實就是A[0],所以不難看出:每一層的計算都是一樣的:

Layer i: Z[i] = W[i]·A[i-1] + b[i]A[i] = σ(Z[i])

(注:σ是sigmoid函數)

因此,其實不管我們神經網絡有幾層,都是將上面過程的重復。

對于 損失函數,就跟Logistic regression中的一樣,使用 “交叉熵(cross-entropy)”,公式就是二分類問題:L(y^,y) = -[y·log(y^ )+(1-y)·log(1-y^ )]- 多分類問題:L=-Σy(j)·y^(j)

這個是每個樣本的loss,我們一般還要計算整個樣本集的loss,也稱為cost,用J表示,J就是L的平均:

J(W,b) = 1/m·ΣL(y^(i),y(i))

上面的求Z、A、L、J的過程就是正向傳播。

三、反向傳播

反向傳播說白了根據根據J的公式對W和b求偏導,也就是求梯度。因為我們需要用梯度下降法來對參數進行更新,而更新就需要梯度。

但是,根據求偏導的鏈式法則我們知道,第l層的參數的梯度,需要通過l+1層的梯度來求得,因此我們求導的過程是“反向”的,這也就是為什么叫“反向傳播”。

具體求導的過程,這里就不贅述了,有興趣的可以自己推導,雖然我覺得多數人看到這種東西都不想推導了。。。(主要還是我懶的打公式了T_T")

而且,像各種 深度學習框架TensorFlow、Keras,它們都是 只需要我們自己構建正向傳播過程, 反向傳播的過程是自動完成的,所以大家也確實不用操這個心。

進行了反向傳播之后,我們就可以根據每一層的參數的梯度來更新參數了,更新了之后,重復正向、反向傳播的過程,就可以不斷訓練學習更好的參數了。

四、深層神經網絡(Deep Neural Network)

前面的講解都是拿一個兩層的很淺的神經網絡為例的。

深層神經網絡也沒什么神秘,就是多了幾個/幾十個/上百個hidden layers罷了。

可以用一個簡單的示意圖表示:

深層神經網絡:

機器不學習:神經網絡詳解,正向傳播和反向傳播

 

注意,在深層神經網絡中,我們在中間層使用了 “ReLU”激活函數,而不是sigmoid函數了,只有在***的輸出層才使用了sigmoid函數,這是因為 ReLU函數在求梯度的時候更快,還可以一定程度上防止梯度消失現象,因此在深層的網絡中常常采用。關于激活函數的問題,可以參閱:【DL碎片3】神經網絡中的激活函數及其對比

關于深層神經網絡,我們有必要再詳細的觀察一下它的結構,尤其是 每一層的各個變量的維度,畢竟我們在搭建模型的時候,維度至關重要。

機器不學習:神經網絡詳解,正向傳播和反向傳播

 

我們設:

總共有m個樣本,問題為二分類問題(即y為0,1);

網絡總共有L層,當前層為l層(l=1,2,...,L);

第l層的單元數為n[l];那么下面參數或變量的維度為:

  • W[l]:(n[l],n[l-1])(該層的單元數,上層的單元數)b[l]:(n[l],1)z[l]:(n[l],1)Z[l]:(n[l],m)a[l]:(n[l],1)A[l]:(n[l],m)X:(n[0],m)Y:(1,m)

可能有人問,為什么 W和b的維度里面沒有m?

因為 W和b對每個樣本都是一樣的,所有樣本采用同一套參數(W,b),

而Z和A就不一樣了,雖然計算時的參數一樣,但是樣本不一樣的話,計算結果也不一樣,所以維度中有m。

深度神經網絡的正向傳播、反向傳播和前面寫的2層的神經網絡類似,就是多了幾層,然后中間的激活函數由sigmoid變為ReLU了。 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2017-09-28 16:15:12

神經網絡訓練多層

2025-03-03 08:10:00

神經網絡深度學習人工智能

2024-08-09 12:46:53

模型訓練

2025-04-08 09:20:00

神經網絡模型訓練

2024-04-03 08:47:49

隧道傳播WPF冒泡傳播

2017-09-08 15:36:15

DNN神經網絡算法

2022-09-27 15:37:21

深度學習算法

2018-04-08 11:20:43

深度學習

2024-07-22 08:30:00

神經網絡AI

2018-05-28 13:12:49

深度學習Python神經網絡

2018-05-14 10:50:13

SQL查詢語句神經網絡

2023-09-08 00:07:41

2016-12-27 16:31:34

反向傳播課程

2022-03-18 12:08:10

微分計算模式

2021-11-01 09:44:12

深度學習神經網絡人工智能

2025-05-08 02:00:00

2020-09-09 10:20:48

GraphSAGE神經網絡人工智能

2020-11-30 10:30:01

神經網絡感知機中間層

2017-04-24 08:35:09

深度學習神經網絡合成梯度

2022-09-30 15:26:57

人工智能技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品福利视频 | 99久久久99久久国产片鸭王 | 国产日产欧产精品精品推荐蛮挑 | 一区二区不卡高清 | 久久国产一区二区 | 999视频在线播放 | 99久久婷婷国产综合精品首页 | 国产欧美日韩在线观看 | 欧美日韩视频在线 | 特黄色一级毛片 | 91久久国产综合久久91精品网站 | 欧美激情精品久久久久久变态 | 天堂中文av | 97国产精品 | 日韩一二三区 | cao视频 | 亚洲一区二区精品视频 | 久久亚洲精品视频 | 久久人体 | 久久久久久免费看 | 久久综合一区二区三区 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 欧美精品国产一区二区 | 国产一区二区三区在线看 | 欧美日韩亚洲在线 | 一区二区三区久久 | 日本不卡视频在线播放 | 91视频国产一区 | 亚洲精选一区二区 | 在线成人www免费观看视频 | 一二区成人影院电影网 | 国产精品久久久亚洲 | 日本电影一区二区 | 亚洲一区 | 91九色在线观看 | 国产免费观看视频 | 亚洲h色 | 黄色片网站在线观看 | 色婷婷久久久亚洲一区二区三区 | www成人免费视频 | 欧美不卡一区二区三区 |