三層神經網路

2021-10-05 17:03:07 字數 1327 閱讀 1719

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技術的興起,大牛們又重新開始關注神經網...