[問題] 神經網路 3 input 2 hidden 1 output

作者: fishworm (魚魚魚)   2018-12-31 09:04:52
請教各位,我想創造一個神經網絡包含
3 inputs
2 hidden nodes
1 output
import numpy as np
x = np.array([0.5, -0.2, 0.1])
y = np.array([0.4])
test_w_i_h = np.array([[0.1, -0.2],
[0.4, 0.5],
[-0.3, 0.2]])
test_w_h_o = np.array([[0.3],
[-0.1]])
delta_weights_i_h = np.zeros(test_w_i_h.shape)
delta_weights_h_o = np.zeros(test_w_h_o.shape)
activation_function = lambda x : 1/(1 + np.exp(-x))
hidden_inputs = np.dot(x, test_w_i_h)
hidden_outputs = activation_function(hidden_inputs)
final_inputs = np.dot(hidden_outputs, test_w_h_o)
final_outputs = activation_function(final_inputs)
error = y - final_outputs
hidden_error = error * final_outputs * (1 - final_outputs) * test_w_h_o
output_error_term = error * final_outputs * (1 - final_outputs)
hidden_error_term =
hidden_outputs[:, None] * (1 - hidden_outputs[:, None]) * hidden_error
delta_weights_i_h += hidden_error_term.T * x[:, None]
delta_weights_h_o += output_error_term * hidden_outputs[:,None]
但是在更新 Weight 時卻總是與預期答案不相符,想請問我是哪裡寫錯了?
提供p幣 100 拜託大家了
作者: ZongXiu   2018-12-31 10:00:00
怎麼不用TensorFlow之類的庫呢?
作者: fishworm (魚魚魚)   2018-12-31 10:08:00
在自己練習觀念,但發現好像有地方沒想通
作者: ZongXiu   2018-12-31 10:12:00
如果是多層感知器(MLP)的結構那你缺了偏差(Bias)
作者: germun (ger)   2018-12-31 10:33:00
通常是矩陣用錯或上面說的bias, 你先逐步檢查哪一步跟你預期的結果不同再來說吧
作者: fishworm (魚魚魚)   2018-12-31 11:29:00
好的,感謝兩位,我先回去檢查我的矩陣

Links booklink

Contact Us: admin [ a t ] ucptt.com