Sigmoid函數(也叫邏輯斯諦函數)由下列公式定義:

其對x的導數可以用自身表示:

相關代碼:
def nonlin(x, deriv=False): if(deriv): return x*(1-x) return 1/(1+np.exp(-x))
Sigmoid函數的圖形如S曲線:

1.在神經網絡中sigmoid通常被用作激活函數,它可以用來處理二分類問題。那么什么是激活函數呢?
我們知道在多層的神經網絡中,上一層的信號(也就是wx+b算出的結果y)要作為下一層的輸入,但是這個上一層的信號在輸入到下一層之前需要一次激活f = sigmoid(y),因為
並不是所有的上一層信號都可以激活下一層,如果所有的上一層信號都可以激活下一層,那么這一層相當於什么都沒有做。因此我需要選擇一些信號激活下一層的神經元。如何表
示激活呢?就是當activation function的輸出結果是0就代表抑制,是1就代表激活。因為按照下一層的神經元的計算wf+b來看,如果f接近於0,那么就會阻止x對應的權重起
作用,如果接近1,這個權重的作用會最大,在這個就是激活的含義。
2.可以很容易的抑制誤差,尤其是相差比較大的誤差。
在x=5的點和x=10的點原本相差很遠(10-5=5)的點,在激活之后,也就是x=5和x=10對應的y坐標的值,相差的不大。比如說有一個噪聲誤差,在x=1000處,其他的點都分布
在x=5到x=10之間,那么sigmoid的函數就可以很好的去掉這種誤差帶來的影響。
