[问题] 神经网络 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