def Back_Propagation():
global In_param
global Out_param
global thres_in
global thres_out
rate = 0.1
for epoch in range(50000):
for id, item in enumerate(traits):
hid_In = np.array(np.mat(item) * np.mat(In_param))
hid_Out = sigmoid(hid_In - thres_in)
fin_In = np.array(np.mat(hid_Out) * np.mat(Out_param))
fin_Out = sigmoid(fin_In - thres_out)
g = fin_Out * (1.0 - fin_Out) * (judge[id] - fin_Out)
e = hid_Out * (1.0 - hid_Out) * np.array([np.dot(x, g) for x in Out_param])
In_param += np.array(rate * np.matrix(item).T * np.matrix(e))
Out_param += np.array(rate * np.matrix(hid_Out).T * np.matrix(g))
thres_in -= rate * e
thres_out -= rate * g
评论列表
文章目录