Perceptron一直学习只复制一种模式

问题描述 投票:0回答:1

这是一个很奇怪的问题。

A的反向传播代码非常有效,就像这样:

“

现在,当我进行批处理学习时,即使仅涉及简单的标量函数逼近,我也会得到错误的结果。

训练后,网络为所有输入模式产生几乎相同的输出。

此刻我已经尝试:

  1. 偏重介绍
  2. 尝试使用和不更新输入权重
  3. 打乱了批处理学习的模式
  4. 试图在每个模式后累积更新
  5. 以不同可能的方式初始化权重
  6. 仔细检查代码10次
  7. 通过模式数量归一化的累积更新
  8. 尝试不同的层,神经元编号
  9. 尝试了不同的激活功能
  10. 尝试不同的学习率
  11. 尝试的纪元数从50到10000
  12. 试图标准化数据

[我注意到,在仅针对一种模式进行一堆反向传播之后,网络为多种输入产生几乎相同的输出。

[当我尝试近似一个函数时,我总是只得到线(几乎是线)。像这样:

“

相关问题:Neural Network Always Produces Same/Similar Outputs for Any Input添加偏见神经元的建议并没有解决我的问题。

我发现了一个类似的帖子:

When ANNs have trouble learning they often just learn to output the
average output values, regardless of the inputs. I don't know if this 
is the case or why it would be happening with such a simple NN.

这充分描述了我的情况。但是如何处理呢?

我得出的结论是,我遇到的情况是正确的。实际上,对于每种网络配置,都可以将所有连接“切断”到输出层。确实可以做到这一点,例如,通过将所有隐藏权重设置为接近零或在某些疯狂值上设置偏差,以使隐藏层过饱和并使输出独立于输入。之后,我们可以自由调整输出层,以使它只是独立于输入而再现输出。在批处理学习中,发生的事情是对梯度进行平均,并且网络仅复制目标的均值。输入没有任何作用。

machine-learning neural-network backpropagation perceptron gradient-descent
1个回答
1
投票

我的答案不能完全准确,因为您尚未发布功能perceptron(...)backpropagation(...)的内容。

但是根据我的猜测,您对一个网络进行了很多次网络训练,然后在循环for data in training_data中对另一个网络进行了完全训练,这导致您的网络只会记住最后一个。相反,尝试对每个数据进行一次网络训练,然后再次进行多次(反转嵌套循环的顺序)

换句话说,for I = 1:number of patterns循环应位于backpropagation(...)函数的循环内,因此此函数应包含两个循环。


示例(在C#中:

这里是反向传播功能的某些部分,我在这里简化了它。在权重和偏差的每次更新时,将“传播”整个网络。在此URL上可以找到以下代码:https://visualstudiomagazine.com/articles/2015/04/01/back-propagation-using-c.aspx

public double[] Train(double[][] trainData, int maxEpochs, double learnRate, double momentum)
{
    //...
    Shuffle(sequence); // visit each training data in random order
    for (int ii = 0; ii < trainData.Length; ++ii)
    {
        //...
        ComputeOutputs(xValues); // copy xValues in, compute outputs 
        //...
        // Find new weights and biases
        // Update weights and biases
        //...
    } // each training item
}

也许不起作用只是您想用第二个Batch learn循环将注释后的所有内容(以for为例)括起来,以进行多个学习时期:

%--------------------------------------------------------------------------
%% Get all updates
© www.soinside.com 2019 - 2024. All rights reserved.