y = y.flatten() # 這裡消除了乙個維度,方便後面的計算 (5000,)
x = np.insert(x, 0, values=np.ones(x.shape[0]), axis=1) # 為x新增了一列常數項 1,(5000, 401)
x.shape, y.shape
a1 = x
z2 = a1 @ theta1.t
z2.shape
def sigmoid(z):
return 1 / (1 + np.exp(-z))
a2 = sigmoid(z2)
a2.shape
a2 = np.insert(a2, 0, 1, axis=1) # 為a2 新增了一列常數項1(偏置單元),(5000, 26)
a2.shape
z3 = a2 @ theta2.t
a3 = sigmoid(z3)
a3.shape
# np.argmax返回array中數值最大數的下標,預設將輸入array視作一維,出現相同的最大,返回第一次出現的。
y_pred = np.argmax(a3, axis=1) + 1 # np.argmax(a, axis=none, out=none),a—-輸入array,axis—-為0代表列方向,為1代表行方向,out—-結果寫到這個array裡面。y_pred.shape (5000,)
accuracy = np.mean(y_pred == y)
print ('accuracy = %'.format(accuracy * 100)) # accuracy = 97.52%
前饋函式時大概流程:
第一層叫輸入層(input layer),在這一層輸入特徵;最後一層叫輸出層(output layer)輸出最後的結果;中間層叫隱層(hidden layer)看不到輸入或者輸出的值。
此外有時還可以設定乙個值為1的偏置單元(bias unit)。
吳恩達|機器學習作業3.1前饋神經網路
吳恩達機器學習作業python實現(三):多類分類和前饋神經網路
前饋神經網路
前饋神經網路 ffnn 由乙個輸入層,一到多個隱藏層,有乙個輸出層組成。資料通過網路一層層向後傳遞,直到輸出層,之間沒有反饋迴路。前饋神經網路可得到的函式 1 有乙個隱藏層的網路,可形成任意乙個連續函式 2 有倆個及以上的隱藏層,可形成任意函式,包括連續函式和離散函式 說明 設計乙個計算函式的網路,...
前饋神經網路 神經元
引言 人工神經網路 artificial neutral network 是受生物神經網路啟發而開發,由神經元連線組成的網路狀機器學習模型。其中,前饋神經網路 feedforward neural network 多層感知機 multilayer perceptron,mlp 是最具代表的神經網路,...
前饋神經網路(matlab例項)
前饋網路也稱前向網路。這種網路只在訓練過程會有反饋訊號,而在分類過程中資料只能向前傳送,直到到達輸出層,層間沒有向後的反饋訊號,因此被稱為前饋網路。感知機 perceptron 與bp神經網路就屬於前饋網路。對於乙個3層的前饋神經網路n,若用x表示網路的輸入向量,w1 w3表示網路各層的連線權向量,...