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

網路黑箱是什麼

發布時間: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、隱秘測試

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

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

閱讀全文

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

熱點內容
x23手機無線網路打不開 瀏覽:348
建材行業網路整合營銷是什麼 瀏覽:338
手機上有網路電腦卻沒網路 瀏覽:759
計算機網路是什麼技術與什麼技術 瀏覽:682
寧波哪裡有賣無線網路 瀏覽:545
愛普網路共享列印機 瀏覽:508
計算機網路基礎是學什麼的 瀏覽:690
溫嶺哪個網路公司好 瀏覽:448
天貓精靈有屏幕怎麼連接網路 瀏覽:983
網路語方塊游戲什麼意思 瀏覽:792
為什麼wifi插上網線顯示沒有網路 瀏覽:466
國家重視網路安全的保護案例 瀏覽:60
手機連接開放性網路後 瀏覽:667
網路共享的靜默通知怎麼去除 瀏覽:929
梅州手機網路電話 瀏覽:520
瑞幸網路營銷思維導圖 瀏覽:6
計算機網路發展階段的圖 瀏覽:813
光遇是手機游戲還是網路游戲 瀏覽:252
聯通網路突然不管用了怎麼回事 瀏覽:719
深圳網路電話哪裡有 瀏覽:242

友情鏈接