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