2、多維數(shù)組的計算
多維數(shù)組:np.dim()可以獲得數(shù)組的維數(shù),np.shape()可以獲得數(shù)組的形狀,返回一個元組,對應(yīng)每一個維度的元素個數(shù)。二維數(shù)組即矩陣。
矩陣乘法:np.dot(A,B)可以求A,B矩陣的乘積(點積),A(m×n)·B(n×k)=C(m×k)
神經(jīng)網(wǎng)絡(luò)的內(nèi)積:下圖所示的簡單神經(jīng)網(wǎng)絡(luò),輸入X是一維數(shù)組,W是二維數(shù)組,Y是一維數(shù)組。X(2)·W(2×3)=Y(3)
3、三層神經(jīng)網(wǎng)絡(luò)的實現(xiàn)
前向傳遞:輸入到輸出的傳遞。需要注意的是目前代碼中的W,B都是人為賦值的。
1'從輸入到第一個隱藏層:
A(1)=XW(1)+B(1)其中A(1)是輸入層中的具有兩個元素的一維數(shù)組,W是(2,3)的二維數(shù)組,B是具有三個元素的一維數(shù)組。用一行代碼即可實現(xiàn):
A1=np.dot(X,W1)+B1
激活函數(shù)選擇sigmoid(),第一個隱藏層中神經(jīng)元是激活函數(shù)轉(zhuǎn)換后的輸出:
Z1=sigmoid(A1)
2'從第一個隱藏層到第二個隱藏層:
第一個隱藏層的輸出Z1第二個隱藏層的輸入X:A2=np.dot(Z1,W2)+B2
Z2=sigmoid(A2)
3'第二個隱藏層到輸出層:
A3=np.dot(Z2,W3)+B3
激活函數(shù)選用恒等函數(shù)y=x,需要自己定義:
def identity_function(x):
return x
Y=identity_function(A3)
4、輸出層的設(shè)計
輸出層激活函數(shù),一般回歸問題可以用恒等函數(shù),二元分類問題用sigmoid函數(shù),多元分類問題用softmax函數(shù)。分類是區(qū)別輸入屬于哪一個類別的問題,回歸是預(yù)測一個數(shù)值的問題。
已經(jīng)介紹過恒等和sigoid,現(xiàn)在介紹一下softmax函數(shù)。
yk=exp(ak)/∑1nexp(ai)
輸出層有n個神經(jīng)元,第k個輸出是第k個輸入的指數(shù)函數(shù)除以每個輸入的指數(shù)函數(shù)的和,輸出與所有輸入都有關(guān)。這個函數(shù)需要定義才能使用,注意這個函數(shù)用到指數(shù)函數(shù),存在溢出的問題,需要對分子分母同除以一個常數(shù),即分子分母的指數(shù)同減去一個常數(shù),為了防止溢出,取輸入的最大值:
defsoftmax(a):
C=np.max(a)
exp_a=np.exp(a-C)
sum_exp_a=np.sum(exp_a)
y=exp_a/sum_exp_a
return y
softmax函數(shù)的特征是輸出0-1之間的實數(shù),且輸出值的總和為1,因此可以把函數(shù)的輸出解釋為概率。輸出層神經(jīng)元的數(shù)量就是類別的數(shù)量。由于指數(shù)函數(shù)單調(diào)遞增,輸出最大值的即概率最高的分類。一般神經(jīng)網(wǎng)絡(luò)只把輸出值最大的神經(jīng)元對應(yīng)的類別作為識別結(jié)果。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4764瀏覽量
100542 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4307瀏覽量
62433 -
神經(jīng)元
+關(guān)注
關(guān)注
1文章
363瀏覽量
18438 -
數(shù)組
+關(guān)注
關(guān)注
1文章
416瀏覽量
25910 -
深度學習
+關(guān)注
關(guān)注
73文章
5493瀏覽量
120980
發(fā)布評論請先 登錄
相關(guān)推薦
評論