我的matlab神经网络反向传播算法似乎有些问题

时间:2017-01-07 11:36:46

标签: matlab machine-learning neural-network artificial-intelligence backpropagation

这是我的代码。我认为这是错误的,因为这个计算的梯度和我的数值估计之间的差异太大了。它似乎不是由于错误地反转矩阵等等。

对于上下文,Y是输出图层,X是输入图层,只有1个隐藏图层。 Theta1是第一个输入层的权重,Theta2是隐藏层的权重。

for t = 1:m

% do fw prop again...
a1 = [1 X(i,:)];
a2 = [1 sigmoid(a1 * Theta1')];
a3 = sigmoid(a2 * Theta2');

delta_3 = a3' - Y(:, t);

delta_2 = Theta2' * delta_3 .* a2' .* (1 - a2)';

delta_2 = delta_2(2:end,:);

Theta1_grad = Theta1_grad + delta_2 * [1 X(i, :)];
Theta2_grad = Theta2_grad + delta_3 * [1 sigmoid([1 X(i,:)] * Theta1')];

end

grad = [Theta1_grad(:) ; Theta2_grad(:)];

0 个答案:

没有答案
相关问题