带有大量输入的反向传播

时间:2018-02-01 01:46:00

标签: machine-learning neural-network backpropagation multi-layer

我是初学者,我试图在C#中实现Backpropagation用于学校目的(所以现在没有张量流,我们必须手动学习它)。我有64个节点用于输入层,64个节点用于输出层,有点像Autoencoder结构,因为我们稍后将讨论MLP。

我将Delta输出计算为:

delta_out = (y_out) * (1 - y_out) * (desired - y_out)

我已经测试了我的程序到XOR输入/输出场景,它会正确猜测这个场景,但是如果我将所有64个节点的输入和输出,那么它将不会给我正确的预测(如0%精度)。

我还尝试将所有delta_out abs(delta_out)计算在内。对于XOR场景,随着训练的进行,delta_out的绝对和接近于零。但是如果我选择64输入和输出测试,那么所有delta_out的绝对总和从一个非常小的数字开始并保持不变。

对于正常工作的XOR(我也尝试过正常工作的OR和AND测试),我使用以下结构2个节点进行输入,4个节点用于隐藏,1个节点用于输出。 / p>

对于64输入和输出,我已经测试了隐藏层的各种节点数,从8个节点到128个节点。如果我使用64个或更多节点作为隐藏层,那么所有delta_out的绝对和即使在开始时也接近0并且变化太慢。

我还测试了各种学习率(隐藏和输出层的学习率不同)。我从0.1到0.75进行了测试,但似乎对我应该完成的64输入/输出没有任何帮助。我也把时代的数量从100k改为500k,但似乎没有任何帮助。

也许我不太了解Backpropagation概念?

0 个答案:

没有答案