實現sigmoid 手把手教你自己動手實現神經網路

2021-10-12 21:20:09 字數 1576 閱讀 5871

階躍函式是指一旦輸入超過閾值,就切換輸出的函式。上述感知機中使用的就是該種啟用函式,一旦a大於0則,輸出變為1.上述感知機的階躍函式圖形如下,從圖中可以看出該階躍函式以0為界,輸出從0切換為1(或從1切換為0),值呈階梯式變化,因此稱為階躍函式。

sigmoid函式與階躍函式對比

sigmoid函式(右圖)

階躍函式(左圖)

範圍(0,1)

0或1平滑性

平滑突變

共同特徵

輸入小時,輸出接近0(為0);

隨著輸入增大,輸出向1靠近(變成1);兩者均為非線性函式,(線性函式為一條筆直線)

注意:神經網路的啟用函式必須使用非線性函式。這是為什麼呢?原因如下:線性函式的問題在於,不管如何加深層數,總是存在與之等效的「無隱藏層的神經網路」。舉例:我們考慮把線性函式 h(x) = cx 作為啟用函式,把y(x) = h(h(h(x)))的運算對應3層神經網路 a。這個運算會進行y(x) = c × c × c × x的乘法運算,但是同樣的處理可以由y(x) = ax(注意,a = c

3)這一次乘法運算(即沒有隱藏層的神經網路)來表示。如本例所示,使用線性函式時,無法發揮多層網路帶來的優勢。因此,為了發揮疊加層所帶來的優勢,啟用函式必須使用非線性函式。relu( rectifed linear unit)函式:relu函式在輸入大於0時,直接輸出該值;在輸入小於等於0時,輸出0。數學表示式如下:

h()( σ讀作sigma)。用σ()表示輸出層的啟用函式。h()表示隱藏層的啟用函式。3層神經網路的具體**實現:

總結

神經網路的組成,層的概念,權重以及偏置;啟用函式的定義以及幾種啟用函式的介紹及實現;3層神經網路的實現方式。

手把手教你OA選型

oa選型永遠是oa行業的重要焦點,在選型問題上困擾了很多客戶,雲全oa從這幾個方面教你如何選型。了解研發技術 技術是硬道理。只有過關的技術才會研發出過硬的產品。如果技術不過關,後期將會帶來一系列的問題。同時需要考慮技術的先進性。在現如今社會發展日新月異,今天還遙遙領先的管理模式也許明天就會被淘汰。所...

手把手教你玩轉git

使用以上來寫git命令。mkdir xx 建立乙個空目錄 xx指目錄名 pwd 顯示當前目錄的路徑。git init 把當前的目錄變成可以管理的git倉庫,生成隱藏.git檔案。git add xx 把xx檔案新增到暫存區去。git commit m xx 提交檔案 m 後面的是注釋。git sta...

npm發布 手把手教你

註冊完畢,回到我們的電腦。windows直接cmd到命令列 輸入以下命令,會提示輸入使用者名稱 密碼 郵箱,這些都是註冊時填寫過的。發布之前首先準備 手動建立乙個命名為lib的資料夾,手動建立index.js package.sjon和typing.d.ts文件,建立完成之後就開始下一步,向裡面新增...