導航:首頁 > 網路問題 > 網路黑箱是什麼

網路黑箱是什麼

發布時間:2024-10-18 09:31:24

① 一文搞懂梯度下降&反向傳播

如果把神經網路模型比作一個黑箱,把模型參數比作黑箱上面一個個小旋鈕,那麼根據通用近似理論(universal approximation theorem),只要黑箱上的旋鈕數量足夠多,而且每個旋鈕都被調節到合適的位置,那這個模型就可以實現近乎任意功能(可以逼近任意的數學模型)。

顯然,這些旋鈕(參數)不是由人工調節的,所謂的機器學習,就是通過程序來自動調節這些參數。神經網路不僅參數眾多(少則十幾萬,多則上億),而且網路是由線性層和非線性層交替疊加而成,上層參數的變化會對下層的輸出產生非線性的影響,因此,早期的神經網路流派一度無法往多層方向發展,因為他們找不到能用於任意多層網路的、簡潔的自動調節參數的方法。

直到上世紀80年代,祖師爺辛頓發明了反向傳播演算法,用輸出誤差的均方差(就是loss值)一層一層遞進地反饋到各層神經網路,用梯度下降法來調節每層網路的參數。至此,神經網路才得以開始它的深度之旅。

本文用python自己動手實現梯度下降和反向傳播演算法。 請點擊這里 到Github上查看源碼。

梯度下降法是一種將輸出誤差反饋到神經網路並自動調節參數的方法,它通過計算輸出誤差的loss值( J )對參數 W 的導數,並沿著導數的反方向來調節 W ,經過多次這樣的操作,就能將輸出誤差減小到最小值,即曲線的最低點。

雖然Tensorflow、Pytorch這些框架都實現了自動求導的功能,但為了徹底理解參數調節的過程,還是有必要自己動手實現梯度下降和反向傳播演算法。我相信你和我一樣,已經忘了之前學的微積分知識,因此,到可汗學院復習下 Calculus
和 Multivariable Calculus 是個不錯的方法,或是拜讀 這篇關於神經網路矩陣微積分的文章 。

Figure2是求導的基本公式,其中最重要的是 Chain Rule ,它通過引入中間變數,將「 y x 求導」的過程轉換為「 y 對中間變數 u 求導,再乘以 u x 求導」,這樣就將一個復雜的函數鏈求導簡化為多個簡單函數求導。

如果你不想涉及這些求導的細節,可以跳過具體的計算,領會其思想就好。

對於神經網路模型: Linear -> ReLu -> Linear -> MSE(Loss function) 來說,反向傳播就是根據鏈式法則對 求導,用輸出誤差的均方差(MSE)對模型的輸出求導,並將導數傳回上一層神經網路,用於它們來對 w b x (上上層的輸出)求導,再將 x 的導數傳回到它的上一層神經網路,由此將輸出誤差的均方差通過遞進的方式反饋到各神經網路層。

對於 求導的第一步是為這個函數鏈引入中間變數:

接著第二步是對各中間變數求導,最後才是將這些導數乘起來。

首先,反向傳播的起點是對loss function求導,即 。 :

mse_grad()之所以用unsqueeze(-1)給導數增加一個維度,是為了讓導數的shape和tensor shape保持一致。

linear層的反向傳播是對 求導,它也是一個函數鏈,也要先對中間變數求導再將所有導數相乘:

這些中間變數的導數分別是:

對向量 求導,指的是對向量所有的標量求偏導( ),即: ,這個橫向量也稱為y的梯度。

這里 ,是一個向量,因此, 求導,指的是y的所有標量(y_1, y_2, ..., y_n)對向量x求偏導,即:

這個矩陣稱為雅克比矩陣,它是個對角矩陣,因為 ,因此 。

同理, 。

因此,所有中間導數相乘的結果:

lin_grad() 中的inp.g、w.g和b.g分別是求 的導數,以inp.g為例,它等於 ,且需要乘以前面各層的導數,即 outp.g @ w.t() ,之所以要用點積運算符(@)而不是標量相乘,是為了讓它的導數shape和tensor shape保持一致。同理,w.g和b.g也是根據相同邏輯來計算的。

ReLu層的求導相對來說就簡單多了,當輸入 <= 0時,導數為0,當輸入 > 0時,導數為1。

求導運算終於結束了,接下來就是驗證我們的反向傳播是否正確。驗證方法是將forward_backward()計算的導數和Pytorch自動微分得到的導數相比較,如果它們相近,就認為我們的反向傳播演算法是正確的。

首先,將計算好的參數導數保存到w1g、b1g、w2g和b2g中,再用Pytorch的自動微分來求w11、b11、w22和b22的導數。

最後,用np.allclose()來比較導數間的差異,如果有任何一個導數不相近,assert就會報錯。結果證明,我們自己動手實現的演算法是正確的。

反向傳播是遵循鏈式法則的,它將前向傳播的輸出作為輸入,輸入作為輸出,通過遞進的方式將求導這個動作從後向前傳遞回各層。神經網路參數的求導需要進行矩陣微積分計算,根據這些導數的反方向來調節參數,就可以讓模型的輸出誤差的優化到最小值。

歡迎關注和點贊,你的鼓勵將是我創作的動力

網路安全中,入侵和滲透的區別

滲透測試為模擬黑客攻擊測試,但兩者也有區別,滲透測試是「面」的測試,黑客攻擊是「深度」測試。前者講究廣泛度,後者講究破壞性。

③ 神經網路演算法相對於普通的演算法的優越性在哪啊! 例如在曲線擬合方面與基本的命令有什麼區別 信號處理不也

優點:
(1)對特徵數據無要求,不需相互獨立
(2)適用於非線性問題;
缺點:
(1)黑箱,即難以解釋其運算結果;
(2)需要較多的訓練數據;
(3)存在過擬合;

④ 滲透測試的主要目標是

滲透測試的主要目標是評估。

一、滲透測試含義

滲透測試,是一項在計算機系統上進行的授權模擬攻擊,旨在對其安全性進行評估,是為了證明網路防禦按照預期計劃正常運行而提供的一種機制。

二、滲透測試目標分類

1、主機操作系統滲透

對Windows、Solaris、AIX、Linux、SCO、SGI等操作系統本身進行滲透測試。

3、隱秘測試

隱秘測試是對被測單位而言的,通常情況下,接受滲透測試的單位網路管理部門會收到通知,在某些時段進行測試。因此能夠監測網路中出現的變化。

但隱秘測試則被測單位也僅有極少數人知曉測試的存在,因此能夠有效地檢驗單位中的信息安全事件監控、響應、恢復做得是否到位。

閱讀全文

與網路黑箱是什麼相關的資料

熱點內容
二埠網路可以寫多少套參數方程 瀏覽:550
怎麼知道自己網路的帶寬是多少 瀏覽:615
網路游戲網速多少合適 瀏覽:562
蘋果手機密碼忘了怎麼解鎖未連網路 瀏覽:533
東莞外貿網路營銷怎麼做 瀏覽:36
網路上傳圖片如何避免侵權 瀏覽:801
你個斗是什麼網路用語 瀏覽:86
租房網路壞了不知道是哪個寬頻 瀏覽:77
手機無法連接路由器無線網路 瀏覽:629
計算機網路犯罪作文 瀏覽:840
網路盒子如何連接wifi 瀏覽:327
聯通手機4g網路apn如何設置 瀏覽:551
衛東區網路信號 瀏覽:521
網路連接列印機為什麼無法列印 瀏覽:423
怎麼看到別人連我的網路了 瀏覽:164
電信無線網路id 瀏覽:786
全國大學生網路安全技術競賽 瀏覽:93
全國有百分之多少青少年沉迷網路 瀏覽:256
福特金牛座是怎麼連接4g網路 瀏覽:735
479是什麼意思網路用語 瀏覽:665

友情鏈接