溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

TensorFlow中的BP算法原理是什么

發(fā)布時間:2021-12-23 16:32:11 來源:億速云 閱讀:172 作者:柒染 欄目:互聯(lián)網(wǎng)科技

TensorFlow中的BP算法原理是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

一.反向傳播算法

反向傳播算法[1](Backpropagation Algorithm,簡稱BP算法)是深度學(xué)習(xí)的重要思想基礎(chǔ),對于初學(xué)者來說也是必須要掌握的基礎(chǔ)知識,在這一小節(jié)里,我們會較為詳細的介紹這一重點知識。

我們使用一個如圖1所示的神經(jīng)網(wǎng)絡(luò),該圖所示是一個三層神經(jīng)網(wǎng)絡(luò),兩層隱藏層和一層輸出層,輸入層有兩個神經(jīng)元,接收輸入樣本(x1,x2),TensorFlow中的BP算法原理是什么為網(wǎng)絡(luò)的輸出。

TensorFlow中的BP算法原理是什么

圖1 一個三層神經(jīng)網(wǎng)絡(luò)

二.前饋計算的過程

為了理解神經(jīng)網(wǎng)絡(luò)的運算過程,我們需要先搞清楚前饋計算,即數(shù)據(jù)沿著神經(jīng)網(wǎng)絡(luò)前向傳播的計算過程,以圖1所示的網(wǎng)絡(luò)為例:

輸入的樣本為:

TensorFlow中的BP算法原理是什么

公式1

第一層網(wǎng)絡(luò)的參數(shù)為:

TensorFlow中的BP算法原理是什么

公式2

第二層網(wǎng)絡(luò)的參數(shù)為:

TensorFlow中的BP算法原理是什么

 公式3

第三層網(wǎng)絡(luò)的參數(shù)為:

TensorFlow中的BP算法原理是什么

公式4

·第一層隱藏層的計算

TensorFlow中的BP算法原理是什么

圖2 計算第一層隱藏層

第一層隱藏層有三個神經(jīng)元:neu1、neu2和neu3。該層的輸入為:

TensorFlow中的BP算法原理是什么

公式5

以neu1神經(jīng)元為例,則其輸入為:

TensorFlow中的BP算法原理是什么

公式6

同理有:

TensorFlow中的BP算法原理是什么

公式7

TensorFlow中的BP算法原理是什么

公式8

假設(shè)我們選擇函數(shù)f(x)作為該層的激活函數(shù)(圖1中的激活函數(shù)都標了一個下標,一般情況下,同一層的激活函數(shù)都是一樣的,不同層可以選擇不同的激活函數(shù)),那么該層的輸出為:TensorFlow中的BP算法原理是什么

·第二層隱藏層的計算

TensorFlow中的BP算法原理是什么

圖3 計算第二層隱藏層

第二層隱藏層有兩個神經(jīng)元:neu4和neu5。該層的輸入為:

TensorFlow中的BP算法原理是什么

公式9

即第二層的輸入是第一層的輸出乘以第二層的權(quán)重,再加上第二層的偏置。因此得到neu4和neu5的輸入分別為:

TensorFlow中的BP算法原理是什么

公式10

TensorFlow中的BP算法原理是什么

公式11

該層的輸出分別為:TensorFlow中的BP算法原理是什么

·輸出層的計算

TensorFlow中的BP算法原理是什么

圖4 計算輸出層

輸出層只有一個神經(jīng)元:neu6。該層的輸入為:

TensorFlow中的BP算法原理是什么

公式12

即:

TensorFlow中的BP算法原理是什么

公式13

因為該網(wǎng)絡(luò)要解決的是一個二分類問題,所以輸出層的激活函數(shù)也可以使用一個Sigmoid型函數(shù),神經(jīng)網(wǎng)絡(luò)最后的輸出為:TensorFlow中的BP算法原理是什么

三.反向傳播的計算

上一小節(jié)里我們已經(jīng)了解了數(shù)據(jù)沿著神經(jīng)網(wǎng)絡(luò)前向傳播的過程,這一節(jié)我們來介紹更重要的反向傳播的計算過程。假設(shè)我們使用隨機梯度下降的方式來學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的參數(shù),損失函數(shù)定義為TensorFlow中的BP算法原理是什么

其中y是該樣本的真實類標。使用梯度下降進行參數(shù)的學(xué)習(xí),我們必須計算出損失函數(shù)關(guān)于神經(jīng)網(wǎng)絡(luò)中各層參數(shù)(權(quán)重w和偏置b)的偏導(dǎo)數(shù)。

假設(shè)我們要對第k層隱藏層的TensorFlow中的BP算法原理是什么

假設(shè)TensorFlow中的BP算法原理是什么代表第k層神經(jīng)元的輸入,即TensorFlow中的BP算法原理是什么

其中n^(k-1)為前一層神經(jīng)元的輸出,則根據(jù)鏈式法則有:

TensorFlow中的BP算法原理是什么

公式14

TensorFlow中的BP算法原理是什么

公式15

因此,我們只需要計算偏導(dǎo)數(shù)TensorFlow中的BP算法原理是什么

·計算偏導(dǎo)數(shù)TensorFlow中的BP算法原理是什么

前面說過,第k層神經(jīng)元的輸入為:,因此可以得到:

TensorFlow中的BP算法原理是什么

公式16

TensorFlow中的BP算法原理是什么

我們以1.1節(jié)中的簡單神經(jīng)網(wǎng)絡(luò)為例,假設(shè)我們要計算第一層隱藏層的神經(jīng)元關(guān)于權(quán)重矩陣的導(dǎo)數(shù),則有:

TensorFlow中的BP算法原理是什么

公式17

·計算偏導(dǎo)數(shù)TensorFlow中的BP算法原理是什么

因為偏置b是一個常數(shù)項,因此偏導(dǎo)數(shù)的計算也很簡單:

TensorFlow中的BP算法原理是什么

公式18

依然以第一層隱藏層的神經(jīng)元為例,則有:

TensorFlow中的BP算法原理是什么

公式19

·計算偏導(dǎo)數(shù)TensorFlow中的BP算法原理是什么

TensorFlow中的BP算法原理是什么

根據(jù)第一節(jié)的前向計算,我們知道第k+1層的輸入與第k層的輸出之間的關(guān)系為:

TensorFlow中的BP算法原理是什么

公式20

TensorFlow中的BP算法原理是什么

TensorFlow中的BP算法原理是什么

公式21

TensorFlow中的BP算法原理是什么

TensorFlow中的BP算法原理是什么

公式22

TensorFlow中的BP算法原理是什么

公式23

下面是基于隨機梯度下降更新參數(shù)的反向傳播算法:

輸入:

TensorFlow中的BP算法原理是什么


TensorFlow中的BP算法原理是什么

看完上述內(nèi)容,你們掌握TensorFlow中的BP算法原理是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI