import numpy as np
defsigmoid
(x,deriv =
false):
if(deriv ==
true):
return x*(1
-x)#x是經過啟用函式後的
return1/
(1+np.exp(
-x))
#前向傳播的值
x = np.array([[
0,0,
1],[
0,1,
1],[
1,0,
1],[
1,1,
1],[
0,0,
1]])
#標籤,監督學習
y = np.array([[
0],[
1],[
1],[
0],[
0]])
np.random.seed(1)
#隨機數,3行特徵
w0 =
2*np.random.random((3
,4))
-1#x*w 3行特徵
w1 =
2*np.random.random((4
,1))
-1
for j in
range
(60000):
#前向傳播
l0 = x
#隱含層
l1 = sigmoid(np.dot(l0,w0)
) l2 = sigmoid(np.dot(l1,w1)
) l2_error = y - l2#當前的錯誤
#print(l2_error.shape)
if(j%
5000)==
0:print
('error'
+str
(np.mean(np.
abs(l2_error)))
)#反向傳播
l2_delta = l2_error * sigmoid(l2,deriv =
true
) l1_error = l2_delta.dot(w1.t)
#w1轉置,相當於對矩陣求導
l1_delta = l1_error * sigmoid(l1,deriv =
true
)#因為是y - l2
#修正 w1 += l1.t.dot(l2_delta)
w0 += l0.t.dot(l1_delta)
三層神經網路python 簡單的三層神經網路
參照 python神經網路程式設計 寫乙個簡單的三層神經網路 usr bin env python coding utf 8 import numpy sigmoid 函式 import scipy.special 簡單的三層全連線網路,包括乙個輸入層,乙個隱層和乙個輸出層 損失函式用sigmoid...
從0實現三層神經網路
分享李沐老師關於深度學習的觀點 1 從實踐的角度入手深度學習可能比單純的研究演算法更好 2 如果想學習深度學習,要只用簡單的資料結構,譬如numpy ndarray,從0實現乙個深度學習演算法,這樣才能碰到進而解決深度學習中的許多核心問題,也可以更好的理解現在流行的框架 3 從應用的角度,那就直接上...
最簡單的三層神經網路Matlab實現
人工神經網路 artificial neural n etwork,ann 1 具有很廣的應用。理論上來說,採用多層的神經網路能夠逼近任何的連續函式,而不管該函式是否平滑。自從svm出現後,大家都快忘了還有ann這種東東。但是近幾年隨著deep learning技術的興起,大牛們又重新開始關注神經網...