0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

BP神經(jīng)網(wǎng)絡(luò)的概念

新機(jī)器視覺 ? 來(lái)源:新機(jī)器視覺 ? 2020-09-24 11:51 ? 次閱讀

最近學(xué)習(xí)BP神經(jīng)網(wǎng)絡(luò),網(wǎng)上文章比較參差不齊,對(duì)于初學(xué)者還是很困惑,本文做一下筆記和總結(jié),方便以后閱讀學(xué)習(xí)。

一、BP神經(jīng)網(wǎng)絡(luò)的概念

BP神經(jīng)網(wǎng)絡(luò)是一種多層的前饋神經(jīng)網(wǎng)絡(luò),其主要的特點(diǎn)是:信號(hào)是前向傳播的,而誤差是反向傳播的。具體來(lái)說(shuō),對(duì)于如下的只含一個(gè)隱層的神經(jīng)網(wǎng)絡(luò)模型:輸入向量應(yīng)為n個(gè)特征

BP神經(jīng)網(wǎng)絡(luò)的過程主要分為兩個(gè)階段,第一階段是信號(hào)的前向傳播,從輸入層經(jīng)過隱含層,最后到達(dá)輸出層;第二階段是誤差的反向傳播,從輸出層到隱含層,最后到輸入層,依次調(diào)節(jié)隱含層到輸出層的權(quán)重和偏置,輸入層到隱含層的權(quán)重和偏置。

1. 神經(jīng)元:神經(jīng)元,或稱神經(jīng)單元/神經(jīng)節(jié)點(diǎn),是神經(jīng)網(wǎng)絡(luò)基本的計(jì)算單元,其計(jì)算函數(shù)稱為激活函數(shù)(activation function),用于在神經(jīng)網(wǎng)絡(luò)中引入非線性因素,可選擇的激活函數(shù)有:Sigmoid函數(shù)、雙曲正切函數(shù)(tanh)、ReLu函數(shù)(Rectified Linear Units),softmax等。

1.1 Sigmoid函數(shù),也就是logistic函數(shù),對(duì)于任意輸入,它的輸出范圍都是(0,1)。公式如下:

Sigmoid的函數(shù)圖如上所示,很像平滑版的階躍函數(shù)。但是,sigmoid 有很多好處,例如:

(1)它是非線性的

(2)不同于二值化輸出,sigmoid 可以輸出0到 1 之間的任意值。對(duì),跟你猜的一樣,這可以用來(lái)表示概率值。

( 3)與 2 相關(guān),sigmoid 的輸出值在一個(gè)范圍內(nèi),這意味著它不會(huì)輸出無(wú)窮大的數(shù)。但是,sigmoid 激活函數(shù)并不完美: 梯度消失。如前面的圖片所示,當(dāng)輸入值 z 趨近負(fù)無(wú)窮時(shí),sigmoid 函數(shù)的輸出幾乎為0 . 相反,當(dāng)輸入 z 趨近正無(wú)窮時(shí),輸出值幾乎為 1 . 那么這意味著什么?在這兩個(gè)極端情況下,對(duì)應(yīng)的梯度很小,甚至消失了。梯度消失在深度學(xué)習(xí)中是一個(gè)十分重要的問題,我們?cè)谏疃?a href="http://srfitnesspt.com/v/tag/1722/" target="_blank">網(wǎng)絡(luò)中加了很多層這樣的非線性激活函數(shù),這樣的話,即使第一層的參數(shù)有很大的變化,也不會(huì)對(duì)輸出有太大的影響。換句話講,就是網(wǎng)絡(luò)不再學(xué)習(xí)了,通常訓(xùn)練模型的過程會(huì)變得越來(lái)越慢,尤其是使用梯度下降算法時(shí)。

1.2 Tanh函數(shù)

Tanh 或雙曲正切是另一個(gè)深度神經(jīng)網(wǎng)絡(luò)中常用的激活函數(shù)。類似于 sigmoid 函數(shù),它也將輸入轉(zhuǎn)化到良好的輸出范圍內(nèi)。具體點(diǎn)說(shuō)就是對(duì)于任意輸入,tanh 將會(huì)產(chǎn)生一個(gè)介于-1 與 1 之間的值。

Tanh函數(shù)圖

如前面提及的,tanh 激活函數(shù)有點(diǎn)像 sigmoid 函數(shù)。非線性且輸出在某一范圍,此處為(-1, 1)。不必意外,它也有跟 sigmoid 一樣的缺點(diǎn)。從數(shù)學(xué)表達(dá)式就可以看出來(lái),它也有梯度消失的問題,以及也需要進(jìn)行開銷巨大的指數(shù)運(yùn)算。

1.3

ReLU

終于講到了 Relu,人們起初并不覺得它的效果會(huì)好過 sigmoid 和 tanh。但是,實(shí)戰(zhàn)中它確實(shí)做到了。事實(shí)上,cs231n 課程甚至指出,應(yīng)該默認(rèn)使用 Relu 函數(shù)。

ReLU 從數(shù)學(xué)表達(dá)式來(lái)看,運(yùn)算十分高效。對(duì)于某一輸入,當(dāng)它小于0時(shí),輸出為0,否則不變。下面是 ReLU 的函數(shù)表達(dá)式。Relu(z) = max(0,z)

那么你可能會(huì)問,「它是線性函數(shù)吧?為何我們說(shuō)它是非線性函數(shù)?」

在線代中,線性函數(shù)就是兩個(gè)向量空間進(jìn)行向量加和標(biāo)量乘的映射。

給定上面的定義,我們知道 max(0, x)是一個(gè)分段線性函數(shù)。之所以說(shuō)是分段線性,是因?yàn)樗??∞, 0]或[0,+∞)上符合線性函數(shù)的定義。但是在整個(gè)定義域上并不滿足線性函數(shù)的定義。例如f(?1)+ f(1)≠f (0)

所以 Relu 就是一個(gè)非線性激活函數(shù)且有良好的數(shù)學(xué)性質(zhì),并且比 sigmoid 和 tanh 都運(yùn)算得快。除此以外,Relu 還因避免了梯度消失問題而聞名。然而,ReLU 有一個(gè)致命缺點(diǎn),叫「ReLU 壞死」。ReLu 壞死是指網(wǎng)絡(luò)中的神經(jīng)元由于無(wú)法在正向傳播中起作用而永久死亡的現(xiàn)象。

更確切地說(shuō),當(dāng)神經(jīng)元在向前傳遞中激活函數(shù)輸出為零時(shí),就會(huì)出現(xiàn)這個(gè)問題,導(dǎo)致它的權(quán)值將得到零梯度。因此,當(dāng)我們進(jìn)行反向傳播時(shí),神經(jīng)元的權(quán)重將永遠(yuǎn)不會(huì)被更新,而特定的神經(jīng)元將永遠(yuǎn)不會(huì)被激活。

還有件事值得一提。你可能注意到,不像 sigmoid 和 tanh,Relu 并未限定輸出范圍。這通常會(huì)成為一個(gè)很大的問題,它可能在另一個(gè)深度學(xué)習(xí)模型如遞歸神經(jīng)網(wǎng)絡(luò)(RNN)中成為麻煩。具體而言,由 ReLU 生成的無(wú)界值可能使 RNN 內(nèi)的計(jì)算在沒有合理的權(quán)重的情況下發(fā)生數(shù)值爆炸。因此反向傳播期間權(quán)重在錯(cuò)誤方向上的輕微變化都會(huì)在正向傳遞過程中顯著放大激活值,如此一來(lái)學(xué)習(xí)過程可能就非常不穩(wěn)定。我會(huì)嘗試在下一篇博客文章中詳細(xì)介紹這一點(diǎn)。(摘自https://my.oschina.net/amui/blog/1633904)

1.4 softmax簡(jiǎn)介

Softmax回歸模型是logistic回歸模型在多分類問題上的推廣,在多分類問題中,待分類的類別數(shù)量大于2,且類別之間互斥。比如我們的網(wǎng)絡(luò)要完成的功能是識(shí)別0-9這10個(gè)手寫數(shù)字,若最后一層的輸出為[0,1,0, 0, 0, 0, 0, 0, 0, 0],則表明我們網(wǎng)絡(luò)的識(shí)別結(jié)果為數(shù)字1。

Softmax的公式為

,可以直觀看出如果某一個(gè)zj大過其他z,那這個(gè)映射的分量就逼近于1,其他就逼近于0,并且對(duì)所有輸入數(shù)據(jù)進(jìn)行歸一化。

2.權(quán)重:

3.偏置

偏置單元(bias unit),在有些資料里也稱為偏置項(xiàng)(bias term)或者截距項(xiàng)(intercept term),它其實(shí)就是函數(shù)的截距,與線性方程 y=wx+b 中的 b 的意義是一致的。在 y=wx+b中,b表示函數(shù)在y軸上的截距,控制著函數(shù)偏離原點(diǎn)的距離,其實(shí)在神經(jīng)網(wǎng)絡(luò)中的偏置單元也是類似的作用。

因此,神經(jīng)網(wǎng)絡(luò)的參數(shù)也可以表示為:(W, b),其中W表示參數(shù)矩陣,b表示偏置項(xiàng)或截距項(xiàng)。

2.反向傳播調(diào)節(jié)權(quán)重和偏置

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:一文淺談神經(jīng)網(wǎng)絡(luò)(非常適合初學(xué)者)

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)制

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network),即反向傳播神經(jīng)網(wǎng)絡(luò),是一種基于梯度下降算法的多層前饋神經(jīng)網(wǎng)絡(luò),其學(xué)習(xí)機(jī)制的核心在于通過反向傳播算法
    的頭像 發(fā)表于 07-10 15:49 ?293次閱讀

    BP神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是兩種在人工智能和機(jī)器學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 07-10 15:24 ?842次閱讀

    BP神經(jīng)網(wǎng)絡(luò)和人工神經(jīng)網(wǎng)絡(luò)的區(qū)別

    BP神經(jīng)網(wǎng)絡(luò)和人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡(jiǎn)稱ANNs)之間的關(guān)系與區(qū)別,是神經(jīng)網(wǎng)絡(luò)領(lǐng)域中一個(gè)基礎(chǔ)且重要的話題。本文將從定義、結(jié)構(gòu)、算法、應(yīng)用及
    的頭像 發(fā)表于 07-10 15:20 ?584次閱讀

    bp神經(jīng)網(wǎng)絡(luò)和反向傳播神經(jīng)網(wǎng)絡(luò)區(qū)別在哪

    反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network,簡(jiǎn)稱BP神經(jīng)網(wǎng)絡(luò))是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法來(lái)調(diào)整網(wǎng)
    的頭像 發(fā)表于 07-04 09:51 ?336次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)bp神經(jīng)網(wǎng)絡(luò)的區(qū)別在哪

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是兩種不同類型的人工神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-04 09:49 ?8495次閱讀

    bp神經(jīng)網(wǎng)絡(luò)算法的基本流程包括哪些

    BP神經(jīng)網(wǎng)絡(luò)算法,即反向傳播神經(jīng)網(wǎng)絡(luò)算法,是一種常用的多層前饋神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。它通過反向傳播誤差來(lái)調(diào)整網(wǎng)絡(luò)的權(quán)重和偏置,從而實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)
    的頭像 發(fā)表于 07-04 09:47 ?352次閱讀

    bp神經(jīng)網(wǎng)絡(luò)的工作原理及應(yīng)用

    。 BP神經(jīng)網(wǎng)絡(luò)的工作原理 1.1 神經(jīng)網(wǎng)絡(luò)的基本概念 神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元連接的計(jì)算模
    的頭像 發(fā)表于 07-04 09:44 ?570次閱讀

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

    神經(jīng)網(wǎng)絡(luò)在許多領(lǐng)域都有廣泛的應(yīng)用,如圖像識(shí)別、自然語(yǔ)言處理、語(yǔ)音識(shí)別等。 BP神經(jīng)網(wǎng)絡(luò)概念 BP神經(jīng)網(wǎng)
    的頭像 發(fā)表于 07-03 11:06 ?414次閱讀

    反向傳播神經(jīng)網(wǎng)絡(luò)bp神經(jīng)網(wǎng)絡(luò)的區(qū)別

    反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network,簡(jiǎn)稱BP神經(jīng)網(wǎng)絡(luò))是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法來(lái)調(diào)整網(wǎng)
    的頭像 發(fā)表于 07-03 11:00 ?515次閱讀

    bp神經(jīng)網(wǎng)絡(luò)是深度神經(jīng)網(wǎng)絡(luò)

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)是一種常見的前饋神經(jīng)網(wǎng)絡(luò),它使用反向傳播算法來(lái)訓(xùn)練網(wǎng)絡(luò)。雖然BP
    的頭像 發(fā)表于 07-03 10:14 ?489次閱讀

    bp神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)區(qū)別是什么

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是兩種不同類型的人工神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 10:12 ?711次閱讀

    BP神經(jīng)網(wǎng)絡(luò)激活函數(shù)怎么選擇

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)是一種多層前饋神經(jīng)網(wǎng)絡(luò),其核心思想是通過反向傳播算法來(lái)調(diào)整網(wǎng)絡(luò)中的權(quán)重和偏置,以實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的分類或回歸。
    的頭像 發(fā)表于 07-03 10:02 ?431次閱讀

    bp神經(jīng)網(wǎng)絡(luò)模型怎么算預(yù)測(cè)值

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network,簡(jiǎn)稱BP網(wǎng)絡(luò))是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法來(lái)調(diào)整
    的頭像 發(fā)表于 07-03 09:59 ?523次閱讀

    BP神經(jīng)網(wǎng)絡(luò)算法的基本流程包括

    BP神經(jīng)網(wǎng)絡(luò)算法,即反向傳播(Backpropagation)神經(jīng)網(wǎng)絡(luò)算法,是一種多層前饋神經(jīng)網(wǎng)絡(luò),通過反向傳播誤差來(lái)訓(xùn)練網(wǎng)絡(luò)權(quán)重。
    的頭像 發(fā)表于 07-03 09:52 ?330次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)bp神經(jīng)網(wǎng)絡(luò)的區(qū)別

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)和BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Networks,簡(jiǎn)稱BPNN)是兩種
    的頭像 發(fā)表于 07-02 14:24 ?1702次閱讀