HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    bp神經(jīng)網(wǎng)絡(luò)反向傳播算法(bp神經(jīng)網(wǎng)絡(luò)反向傳播算法是什么)

    發(fā)布時間:2023-04-08 07:56:03     稿源: 創(chuàng)意嶺    閱讀: 143        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于bp神經(jīng)網(wǎng)絡(luò)反向傳播算法的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    bp神經(jīng)網(wǎng)絡(luò)反向傳播算法(bp神經(jīng)網(wǎng)絡(luò)反向傳播算法是什么)

    一、什么是BP算法

    bp算法,即反向傳播方法,是用來訓練前向網(wǎng)絡(luò)的一種普遍算法

    二、一文搞懂DNN反向傳播!

    本文主要整理自下面的幾篇博客:

    1、深度神經(jīng)網(wǎng)絡(luò)(DNN)反向傳播算法(BP): https://www.cnblogs.com/pinard/p/6422831.html

    2、機器學習中的矩陣、向量求導。 https://download.csdn.net/download/weixin_42074867/10405246

    1、推導BPNN前需要了解的矩陣求導知識

    1.1 矩陣/向量值函數(shù)對實數(shù)的導數(shù)

    1.2 實值函數(shù)對矩陣/向量的導數(shù)

    1.3 向量值函數(shù)對向量的求導(雅可比矩陣)

    1.4 變量多次出現(xiàn)的求導法則

    規(guī)則:若在函數(shù)表達式中,某個變量出現(xiàn)了多次,可以單獨計算函數(shù)對自變量的每一次出現(xiàn)的導數(shù),再把結(jié)果加起來。

    1.5 向量求導的鏈式法則

    1.6 一一對應(yīng)關(guān)系下的矩陣求導

    1.7 幾個重要的結(jié)論

    掌握了上面的一些基本知識之后,我們就可以順利推導出神經(jīng)網(wǎng)絡(luò)的反向傳播算法。

    2、反向傳播的推導

    具體的推導過程可以參考文章開頭給出的博客,下圖是我手動推導的過程:

    贊賞支持

    鏈接:https://www.jianshu.com/p/ee08ed75844b

    來源:

    三、bp算法是什么?

    誤差反向傳播算法:

    BP算法的基本思想是,學習過程包括兩個過程:信號前向傳播和誤差后向傳播。

    (1)前向傳播:輸入樣本->輸入層->各隱層(處理)->輸出層。

    (2)錯誤反向傳播:輸出錯誤(某種形式)->隱藏層(逐層)->輸入層。

    bp神經(jīng)網(wǎng)絡(luò)反向傳播算法(bp神經(jīng)網(wǎng)絡(luò)反向傳播算法是什么)

    BP算法基本介紹:

    多層隱含層前饋網(wǎng)絡(luò)可以極大地提高神經(jīng)網(wǎng)絡(luò)的分類能力,但長期以來一直沒有提出解決權(quán)值調(diào)整問題的博弈算法。

    1986年,Rumelhart和McCelland領(lǐng)導的科學家團隊出版了《并行分布式處理》一書,詳細分析了具有非線性連續(xù)傳遞函數(shù)的多層前饋網(wǎng)絡(luò)的誤差反向比例(BP)算法,實現(xiàn)了Minsky關(guān)于多層網(wǎng)絡(luò)的思想。由于誤差的反向傳播算法常用于多層前饋網(wǎng)絡(luò)的訓練,人們常直接稱多層前饋網(wǎng)絡(luò)為BP網(wǎng)絡(luò)。

    四、一文徹底搞懂BP算法:原理推導+數(shù)據(jù)演示+項目實戰(zhàn)(上篇)

    反向傳播算法(Backpropagation Algorithm,簡稱BP算法)是深度學習的重要思想基礎(chǔ),對于初學者來說也是必須要掌握的基礎(chǔ)知識!本文希望以一個清晰的脈絡(luò)和詳細的說明,來讓讀者徹底明白BP算法的原理和計算過程。

    全文分為上下兩篇,上篇主要介紹BP算法的原理(即公式的推導),介紹完原理之后,我們會將一些具體的數(shù)據(jù)帶入一個簡單的三層神經(jīng)網(wǎng)絡(luò)中,去完整的體驗一遍BP算法的計算過程;下篇是一個項目實戰(zhàn),我們將帶著讀者一起親手實現(xiàn)一個BP神經(jīng)網(wǎng)絡(luò)(不使用任何第三方的深度學習框架)來解決一個具體的問題。

    圖 1 所示是一個簡單的三層(兩個隱藏層,一個輸出層)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),假設(shè)我們使用這個神經(jīng)網(wǎng)絡(luò)來解決二分類問題,我們給這個網(wǎng)絡(luò)一個輸入樣本 ,通過前向運算得到輸出 。輸出值 的值域為 ,例如 的值越接近0,代表該樣本是"0"類的可能性越大,反之是"1"類的可能性大。

    為了便于理解后續(xù)的內(nèi)容,我們需要先搞清楚前向傳播的計算過程,以圖1所示的內(nèi)容為例:

    輸入的樣本為:

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

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

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

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

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

    同理有:

    假設(shè)我們選擇函數(shù) 作為該層的激活函數(shù)(圖1中的激活函數(shù)都標了一個下標,一般情況下,同一層的激活函數(shù)都是一樣的,不同層可以選擇不同的激活函數(shù)),那么該層的輸出為: 、 和 。

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

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

    該層的輸出分別為: 和 。

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

    即:

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

    在1.1節(jié)里,我們已經(jīng)了解了數(shù)據(jù)沿著神經(jīng)網(wǎng)絡(luò)前向傳播的過程,這一節(jié)我們來介紹更重要的反向傳播的計算過程。假設(shè)我們使用隨機梯度下降的方式來學習神經(jīng)網(wǎng)絡(luò)的參數(shù),損失函數(shù)定義為 ,其中 是該樣本的真實類標。使用梯度下降進行參數(shù)的學習,我們必須計算出損失函數(shù)關(guān)于神經(jīng)網(wǎng)絡(luò)中各層參數(shù)(權(quán)重 和偏置 )的偏導數(shù)。

    假設(shè)我們要對第 層隱藏層的參數(shù) 和 求偏導數(shù),即求 和 。假設(shè) 代表第 層神經(jīng)元的輸入,即 ,其中 為前一層神經(jīng)元的輸出,則根據(jù)鏈式法則有:

    因此,我們只需要計算偏導數(shù) 、 和 。

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

    上式中, 代表第 層神經(jīng)元的權(quán)重矩陣 的第 行, 代表第 層神經(jīng)元的權(quán)重矩陣 的第 行中的第 列。

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

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

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

    偏導數(shù) 又稱為 誤差項(error term,也稱為“靈敏度”) ,一般用 表示,例如 是第一層神經(jīng)元的誤差項,其值的大小代表了第一層神經(jīng)元對于最終總誤差的影響大小。

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

    又因為 ,根據(jù)鏈式法則,我們可以得到 為:

    由上式我們可以看到,第 層神經(jīng)元的誤差項 是由第 層的誤差項乘以第 層的權(quán)重,再乘以第 層激活函數(shù)的導數(shù)(梯度)得到的。這就是誤差的反向傳播。

    現(xiàn)在我們已經(jīng)計算出了偏導數(shù) 、 和 ,則 和 可分別表示為:

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

    單純的公式推導看起來有些枯燥,下面我們將實際的數(shù)據(jù)帶入圖1所示的神經(jīng)網(wǎng)絡(luò)中,完整的計算一遍。

    我們依然使用如圖5所示的簡單的神經(jīng)網(wǎng)絡(luò),其中所有參數(shù)的初始值如下:

    輸入的樣本為(假設(shè)其真實類標為"1"):

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

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

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

    假設(shè)所有的激活函數(shù)均為Logistic函數(shù): 。使用均方誤差函數(shù)作為損失函數(shù):

    為了方便求導,我們將損失函數(shù)簡化為:

    我們首先初始化神經(jīng)網(wǎng)絡(luò)的參數(shù),計算第一層神經(jīng)元:

    上圖中我們計算出了第一層隱藏層的第一個神經(jīng)元的輸入 和輸出 ,同理可以計算第二個和第三個神經(jīng)元的輸入和輸出:

    接下來是第二層隱藏層的計算,首先我們計算第二層的第一個神經(jīng)元的輸入z₄和輸出f₄(z₄):

    同樣方法可以計算該層的第二個神經(jīng)元的輸入 和輸出 :

    最后計算輸出層的輸入 和輸出 :

    首先計算輸出層的誤差項 ,我們的誤差函數(shù)為 ,由于該樣本的類標為“1”,而預測值為 ,因此誤差為 ,輸出層的誤差項為:

    接著計算第二層隱藏層的誤差項,根據(jù)誤差項的計算公式有:

    最后是計算第一層隱藏層的誤差項:

    以上就是關(guān)于bp神經(jīng)網(wǎng)絡(luò)反向傳播算法相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    手機webp轉(zhuǎn)換gif工具(webp轉(zhuǎn)gif手機軟件)

    抖音bp直達鏈接生成器(抖音bp直達鏈接生成器是真的嗎)

    ebpay最新下載網(wǎng)址(eb 下載)

    非著名景觀設(shè)計師是誰(著名的景觀設(shè)計師)

    bls排行榜(bls榜單)