非線性單元

2021-12-30 03:29:56 字數 2491 閱讀 1047

在這篇文章當中,我們就來簡單**一下神經網路當中的非線性單元

通常用的非線性單元有兩類sigmoid非線性單元,rulu非線性單元

這個問題其實涉及到乙個非常基本的問題:神經網路為什麼可以用來做分類?

sigmoid函式是這樣乙個函式

函式影象是這樣的

這個函式可以把

範圍當中的值對映到[0,1]

有興趣的同學可以看一下這段**,自己嘗試著畫一下sigmoid的函式

import numpy as np

import math

import matplotlib.pyplot as plt

from scipy.misc import imread, imresize

def sigmoid(x):

return [ (1.0 / ( 1.0 + math.exp( i * -1 ) )) for i in x ]

def main():

x = np.arange(0,1, 0.01)

w = 10

b = -5

z = w * x + b

print z

y = sigmoid( z )

plt.plot(x,y)

plt.show()

if __name__ == '__main__':

main()

如果我們考量輸入的變數t,再把它進一步分解成神經網路的輸入的話,公式就變成了這樣

這個式子是非常有意思的,如果我們改變w和b的值,就可以改變函式的形狀

在這個式子中,如果改變w的值,就會改變sigmoid函式的形狀,w越大,變化越都快函式形狀越陡峭;改變b的值可以改變函式的位置。 而且如果我們關注

這個值的話,就會發現這個值就是s(t)=0.5的位置,我們可以通過控制這個值來控制函式的位置

當w和b的值很大的時候,函式就會變成乙個離散的階越函式,就像這樣

而我們可以通過構造兩個階越函式來實現乙個階越,就像這樣

the code is here

import numpy as np

import math

import matplotlib.pyplot as plt

from scipy.misc import imread, imresize

def sigmoid(x):

num = x.shape[0]

for i in range(num):

x[ i ] = (1.0 / ( 1.0 + math.exp( x[i] * -1 ) ))

return x

def main():

x = np.arange(0,1, 0.01)

w1 = 300

b1 = -100

z1 = sigmoid(w1 * x + b1)

h1 = 1

a1 = z1 * h1

w2 = 600

b2 = -400

z2 = sigmoid(w2 * x + b2)

h2 = -1

a2 = z2 * h2

y = a1 + a2

plt.plot(x,y)

plt.show()

if __name__ == '__main__':

main()

這段**可以實現乙個bump,而我們可以通過這個bump來逼近分類的邊界函式。當然乙個bump是極其不精確的,我們需要增加神經元的數量,以及層數(因為增加了層數就增加了非線性單元)來實現逼近。理論上來講,只要神經元足夠多,就可以足夠逼近,達到我們的要求

relu的全稱是rectified linear units(修正線性單元),它的函式表示式非常的簡單

就是說小於0的部分全部置為0,其他的維持原來不變

這樣做有幾個好處

第一,計算方便

尤其是我們要在back propagation的階段要計算偏導的時候,如果是要計算sigmoid的偏導,那就是

但是計算relu的偏導就是

第二,不會出現dead neuron

在訓練神經網路的時候,有時候會出現dead neuron的情況,就是說某個neuron出現了特定的值,導致不管怎麼訓練它的值都不會發生太大的變化。這是因為如果使用了sigmoid的啟用函式的話,我們可以看到在x足夠大的時候,函式的值接近1,趨向於飽和,這個時候x的值可能發生了變化,但是表現在啟用函式的輸出上可能根本不明顯,所以才會出現不管怎麼訓練都沒有效果的情況

線性與非線性

就是變數是一次的就叫做線性,否則就是非線性。不過每個具體問題都不盡相同。1.比如線性函式,就是自變數都是一次的,f x1,x2,xn a0 a1x1 a2x2 anxn 線性 與 非線性 常用於區別函式y f x 對自變數x的依賴關係。線性函式即一次函式,其影象為一條直線。其它函式則為非線性函式,其...

非線性優化

問題的一般表達 x 是 n 維實向量 x x x t in r n,s是 r n 的子集,f 0 x f m x 是x相關的實值函式。我們所要解決的主要是以下最小問題的變體 min f 0 x s.t.f j x 0,j 1.m,x in s,其中 可以是 geq,leq or f 0 是問題的目標...

時間非線性

時間非線性 2011年12月31日 現在 我的面前時一堆白紙黑字,那麼多人的心情要我體會,那麼多人的思考要我識辨,然後用最準確的方式寫在卷子上,署上我的名字,接下來的考試,就是這個形式,似乎到了大學也就考試的時候享受那種筆力風劍的刀光血影了,寫完是一陣得酣暢淋漓,寫之前是一陣得鬧心。寫作是文人的生活...