神經網路 前向,反向傳播過程

2021-10-09 22:59:29 字數 2416 閱讀 3598

x,資料集矩陣。

每一行的元素代表了乙個樣例的特徵值x1,x2,x3...

共有n行,說明資料集一共n個樣例

theta,引數矩陣

行數:要生成的神經元個數

列數:上一層的輸入個數

每一行的元素代表了對樣例各個特徵值的權重

以資料集為x(5 * 3),使用上圖的網路結構為例:

輸入層

x(5 * 3)說明資料集有5個樣例,每個樣例有3個特徵值

針對圖中的輸入層a(1),是乙個樣例的所有特徵值。

隱藏層1

z2=x * theta1.t ——> (5,3) * (3,5) ——> (5,5)的矩陣

theta1:

要生成5

個神經元,上一層輸入個數是

3,所以其結構是(

5 * 3)

公式中的

theta1 * a1

是演算法思想的描述,**實現需用

得到的矩陣,矩陣元素是神經元的暫時取值,後續需帶入

g( )。

有5列,代表5個神經元的各自暫時取值

有5行,每一行是乙個樣例的所有神經元的暫時取值

a2 = g( z2 )

將z2矩陣中的每乙個元素作為引數傳入g( )函式,進行運算。

運算後的矩陣行列數不變,矩陣中每一行是乙個樣例,一行中的每乙個元素代表神經元的值,即a(2)1,a(2)2  ...

隱藏層2

以a2矩陣的每一行作為乙個樣例輸入,與隱藏層1類似操作,得到a3矩陣

theta2 ——> (5,5)

輸出層

z4 = a3 * theta3.t ——> (5 ,5)  *  (5,4) ——> (5,4)

theta3

:要生成

4個神經元(此層的神經元就是輸出

,4個神經元代表

4種分類),上一層輸入個數是

5,所以其結構是(4,

5)a4 = h(x) = g(z4),運算後是乙個(5,4)矩陣

每一行乙個樣例,共5個樣例

每一行的4個元素,代表該樣例是分類1的概率,是分類2的概率...

若分類1的概率最大,則該樣例屬於分類1。使用np.argmax,返回最大值的下標n,可將a4轉換成(5,1)的向量。

根據前向傳播的**結果,建立代價函式j。反向傳播是為了計算j的梯度,以便進行最小化操作,得到最佳的theta1、2、3矩陣。

神經網路的代價函式如下,我們的目標是求出求解需要用到j的梯度資料

j是乙個多元函式,所有的theta矩陣元素都是j的變數。其梯度是:j對每乙個theta元素的偏導。如下可以證得(下圖的網路結構與本例不同,具體做法有差別),偏導可以通過反向傳播的誤差矩陣求得。

具體做法是:

在本例中,可達到delta4,delta3,delta2。不對輸入層做誤差分析,故沒有theta1。

由此可以得到d1,d2,d3矩陣,d1、2、3降維,合併在一起,即可得到乙個一維向量,即梯度grad。grad中的元素是j關於所有theta矩陣元素的偏導。

grad即是反向傳播過程的輸出。

有了代價函式j及梯度資料grad,可帶入優化演算法,運算得到訓練後的theta1、2、3矩陣。

神經網路前向傳播與反向傳播

神經網路 神經網路可以理解為乙個輸入x到輸出y的對映函式,即f x y,其中這個對映f就是我們所要訓練的網路引數w,我們只要訓練出來了引數w,那麼對於任何輸入x,我們就能得到乙個與之對應的輸出y。只要f不同,那麼同乙個x就會產生不同的y,我們當然是想要獲得最符合真實資料的y,那麼我們就要訓練出乙個最...

前向傳播和反向傳播 手撕 神經網路反向傳播

神經網路前向傳播一般用於搭建整個神經網路的結構框架,形成整個網路的邏輯通路。反向傳播用於更新每層之間的權重,減少損失,進而提公升 準確度。下面是乙個神經網路的結構圖 第一層是輸入層,包含兩個神經元i1,i2,和截距項b1 第二層是隱含層,包含兩個神經元h1,h2和截距項b2,第三層是輸出o1,o2,...

詳解神經網路的前向傳播和反向傳播(從頭推導)

詳解神經網路的前向傳播和反向傳播 本篇部落格是對michael nielsen所著的 neural network and deep learning 第2章內容的解讀,有興趣的朋友可以直接閱讀原文neural network and deep learning。對神經網路有些了解的人可能都知道,神...