2016-07-09 82 views
0

我讀過你計算神經網絡中神經元的輸出,將所有輸入乘以相應的權重,然後用例如Sigmoid函數。神經網絡神經元輸出數> 1

但我不明白的是,這個總和(不平滑)可以得到大於1

發生這種情況時我的雙曲線函數輸出1.0。

我使用來計算神經元輸出(無平滑)的功能是:

def sum(self, inputs): 
    valu = 0 
    for i, val in enumerate(inputs): 
     valu += float(val) * self.weights[i] 
    return valu 

所以我的問題是: 難道我做錯了什麼,因爲我已閱讀,輸出應該是介於0和1?

+2

不是很瞭解你的問題。加權輸入的總和可以大於1。它也可以小於零。 sigmoid函數將把這個值映射到0到1之間的數字。您的代碼示例只是計算加權總和而不應用sigmoid函數。 –

+0

如果輸入到sigmiod函數的值大於1,那麼它只是返回1.這就是我的問題 –

+0

但是如果不顯示sigmoid函數的代碼,我們該如何幫助您?你的代碼示例只是計算神經元的狀態,而不是輸出。通常你可以通過在狀態中應用ome類型的sigmoid函數來獲得輸出結果。 –

回答

0

的S形函數是不完全平滑函數,它是該域映射到[0,1]範圍內的非線性方式的非線性函數。非正式地說,非線性函數沒有一個固定的斜率,換句話說,它不能被描述爲一條直線。

如您在下圖中看到的那樣,sigmoid函數使輸入變得如此,以至於隨着輸入量的增加,sigmoid的輸出漸近地接近0(負輸入)和1(正輸入) Sigmoid and its derivative in the [-6, 6] range