關於神經網路的需要注意的概念總結

2021-09-12 17:32:24 字數 2921 閱讀 4387

之前接觸並了解過神經網路的相關概念,但是並沒有做過任何系統的總結,這一段時間藉此總結一下相關的概念;

對於神經網路的入門概念來說最重要的是一些相關的理解性概念:反向傳播、啟用函式、正則化以及batchnomalizim等。

一、反向傳播:

其實反向傳播歸根結底就是乙個每一次訓練的動態更新的的過程,其遵循的原理是數學中的求導以及鏈式法則;理解了反向傳播,也就能夠理解梯度消失等相關的情況以及概念;

如下,我們給出乙個簡單的神經網路:

對於這個網路,輸出層為o1和o2,反向傳播的目的也就是根據求導來更新每乙個w值,從而使得新的輸出結果o1和o2能夠更加接近我們所給定的值,這也就是訓練過程。

這裡也牽扯到乙個損失的概念,也就是loss。我們所給出的loss就是生成的結果和所想要得到的結果的誤差值,通常來說是差的平方;而所謂的梯度下降法等相關的優化函式,目的也就是通過反向傳播,使得w值進行更新,使得新的輸出更接近期望值,從而使得loss下降;

因此,對於乙個網路,最核心的步驟就是如何通過數學推導,構造乙個loss函式,在通過使得loss函式最小的步驟中,對網路中的引數進行調整,使得網路能夠在測試階段達到我們預期的分類或者是**,甚至生成結果。這一點在後續的gan網路總結中會進行系統的闡述;

由此可見,理解反向傳播,對於後續的各個環節的理解很有好處;

對於上述的網路示例,我們可以通過對其的各個w更新推導,來進行反向傳播的理解;

如果對網路引數w和b進行賦初值:

當我們進行首次前向傳播時:

各個層的輸出值如下所示:

至此,我們就得到了相應的o1 o2初始值,從而可以根據和期望值進行loss計算。此時loss值就是我們期望通過反向傳播(也可以理解成梯度下降裡的一步操作)來進行減小處理的值。

對於反向傳播來說,最主要的就是鏈式推導和求導過程構成的反向傳播:

如果我們對w5感興趣,希望知道他對於整體的誤差產生了多大的影響,就對他進行求偏導,根據鏈式法則,則有:

所以,對於w5的更新就有如下的式子,其中,η為學習速率;

對於其他引數,也有相同的計算流程;

當全部計算完成後,就可以進行loss計算,在正常狀態下,loss會越來越小,相應的,每一步都會進行反向傳播計算來更新相應的引數值;

所以從上述推到可以基本得知,本質上反向傳播就是乙個逐個引數求偏導,繼而更新使得loss下降的迴圈過程;

詳細的數學推導後續在加強數學基礎之後會給出;

二、啟用函式:

之前一直對啟用函式模稜兩可,但是後續經過相關的檢索才詳細的知道啟用函式的詳細意義是什麼;

啟用函式的用處,主要和線性非線性分類有關;

例如我們常說的乙個二分類問題,在二維平面上給出一些點,然後利用機器學習找出一條直線,將兩種的點完全分開,如果線性可分,就可以稱其為二分類問題。

但是對於某些情況下,並不是線性可分的,例如下圖所示:

其實這裡也牽扯到神經網路中節點輸入輸出的一些相關的線性方程理解;

對於如下神經元:

我們可以基本上觀察出來,本質上神經元的輸出就是線性方程,對應到上就是一條直線,y就是其**值;

對於多神經元來說:

可以認為是多個線性方程組,所以最終我們得到的還是線性方程,而不是非線性方程;

對於非線性分類,我們也可以採用多個線性方程進行擬合,但是終究會存在很大的誤差;

因此,啟用函式的目的就是為了將線性方程變為非線性的;

如下圖所示:

此時,線性分類通過引入非線性因素就變成了非線性分類,解決了線性分類所不能夠解決的問題;

三、batchnormalize

個人感覺batchnormalize的根本操作就是歸一化,區別不同的就是batchnormalize操作可以加持在隱藏層;

之所以進行batchnormalize操作的目的可以很好理解。

對於乙個輸入,如果經過神經元計算得到的結果需要經過sigmod啟用函式,可能出現如下情況:

如果乙個x1=90 x2=60,且之間還用資料分布;

由於sigmod的性質,可以知道,x1,x2都無限趨緊於1。此時,就可以發現該激勵函式並不能很好的表達出資料分布的性質;

如果採用batchnormalize操作,將所有資料重新分布在0-1區間,就可以將每個資料經過sigmod之後的值完美的對映在0-1區間內,從而儲存了資料分布的特點;

當然batchnormalize還加了兩個引數,如下所示:

推導也會在後續的借鑑中給出;

反向傳播推導2

關於神經網路的需要注意的概念總結

之前接觸並了解過神經網路的相關概念,但是並沒有做過任何系統的總結,這一段時間藉此總結一下相關的概念 對於神經網路的入門概念來說最重要的是一些相關的理解性概念 反向傳播 啟用函式 正則化以及batchnomalizim等。一 反向傳播 其實反向傳播歸根結底就是乙個每一次訓練的動態更新的的過程,其遵循的...

訓練深度神經網路的時候需要注意的一些小技巧

翻譯網上的哈,我覺得有很大一部分從沒看到過,所以就翻譯了下,如有不對的地方,歡迎指正 1 準備資料 務必保證有大量 高質量並且帶有乾淨標籤的資料,沒有如此的資料,學習是不可能的 2 預處理 這個不多說,就是0均值和1方差化 3 minibatch 建議值128,1最好,但是效率不高,但是千萬不要用過...

訓練深度神經網路的時候需要注意的一些小技巧

翻譯網上的哈,我覺得有很大一部分從沒看到過,所以就翻譯了下,如有不對的地方,歡迎指正 1 準備資料 務必保證有大量 高質量並且帶有乾淨標籤的資料,沒有如此的資料,學習是不可能的 2 預處理 這個不多說,就是0均值和1方差化 3 minibatch 建議值128,1最好,但是效率不高,但是千萬不要用過...