gpt4 book ai didi

java - 我怎么知道我的神经网络正在被正确训练

转载 作者:行者123 更新时间:2023-11-29 05:39:40 25 4
gpt4 key购买 nike

我编写了一个 Adaline 神经网络。我编译的所有东西,所以我知道我写的东西没有问题,但我怎么知道我的算法必须正确?当我尝试训练网络时,我的计算机只是说应用程序正在运行,然后就可以了。大约 2 分钟后,我就停止了它。

训练通常需要这么长时间吗(我有 10 个参数和 669 个观察值)?我是否只需要让它运行更长时间?

听说是我的训练方法

public void trainNetwork()
{
int good = 0;

//train until all patterns are good.
while(good < trainingData.size())
{
for(int i=0; i< trainingData.size(); i++)
{
this.setInputNodeValues(trainingData.get(i));
adalineNode.run();

if(nodeList.get(nodeList.size()-1).getValue(Constants.NODE_VALUE) != adalineNode.getValue(Constants.NODE_VALUE))
{
adalineNode.learn();
}
else
{
good++;
}
}
}
}

这是我的学习方法

public void learn()
{
Double nodeValue = value.get(Constants.NODE_VALUE);
double nodeError = nodeValue * -2.0;
error.put(Constants.NODE_ERROR, nodeError);
BaseLink link;
int count = inLinks.size();
double delta;

for(int i = 0; i < count; i++)
{
link = inLinks.get(i);
Double learningRate = value.get(Constants.LEARNING_RATE);
Double value = inLinks.get(i).getInValue(Constants.NODE_VALUE);
delta = learningRate * value * nodeError;
inLinks.get(i).updateWeight(delta);
}
}

这是我的运行方法

public void run()
{
double total = 0;

//find out how many input links there are
int count = inLinks.size();

for(int i = 0; i< count-1; i++)
{
//grab a specific link in sequence
BaseLink specificInLink = inLinks.get(i);
Double weightedValue = specificInLink.weightedInValue(Constants.NODE_VALUE);
total += weightedValue;
}

this.setValue(Constants.NODE_VALUE, this.transferFunction(total));
}

这些函数是我正在编写的库的一部分。我在 Github 上有全部内容 here .现在一切都写好了,我只是不知道我应该如何进行实际测试以确保我正确编写了训练方法。

我问了a similar question几个月前。

最佳答案

具有 669 个观测值的 10 个参数并不是一个大数据集。所以你的算法可能有问题。您可以做两件事来简化算法的调试:

  1. 在每次迭代结束时打印误差平方和。这将帮助您确定算法是否收敛(完全收敛)、停留在局部最小值或收敛非常缓慢。

  2. 在简单的数据集上测试您的代码。选择一些简单的东西,比如你知道线性可分的二维输入。你的算法会学习两个输入的简单 AND 函数吗?如果是这样,它会倾向于 XOR 函数(2 个输入、2 个隐藏节点、2 个输出)吗?

关于java - 我怎么知道我的神经网络正在被正确训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18110215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com