gpt4 book ai didi

java - 人工神经网络 PSO 训练

转载 作者:行者123 更新时间:2023-11-30 04:23:51 25 4
gpt4 key购买 nike

我正在研究 FF 神经网络(用于分类问题),我正在使用 PSO 对其进行训练。我只有一个隐藏层,我可以改变该层中神经元的数量。

我的问题是神经网络可以很容易地学习线性可分离的问题,但不能像它应该能够做到的那样学习不可线性分离的问题(如 XOR)。

我相信我的 PSO 工作正常,因为我可以看到它试图最小化每个粒子的误差函数(使用训练集的均方误差)。

我尝试使用 sigmoid 和线性激活函数,但结果相似(不好)。我还有一个偏置单元(这也没有多大帮助)。

我想知道的是,是否有一些特定的事情我可能做错了,可能会导致此类问题,或者也许只是我应该看看错误可能出在哪里。

我现在有点迷茫

谢谢

最佳答案

PSO 可以训练神经网络来解决非线性可分问题,例如 XOR。我以前做过这个,我的算法最多需要大约 50 次左右的迭代。 Sigmoid 是一个很好的 XOR 激活函数。如果它确实针对不可分离的问题收敛,那么我的猜测是您的隐藏层没有产生效果,或者被绕过。因为隐藏层通常是不可分离的。

当我调试人工智能时,我发现首先确定我的训练代码或评估代码(在本例中为神经网络)是否有错误通常很有用。您可能想为您的网络创建第二个培训师。然后您可以确保您的网络代码正确计算输出。你甚至可以做一个简单的“爬山者”。选择一个随机权重并随机进行少量更改(向上或向下)。你的错误好转了吗?保持体重变化并重复。您的错误是否变得更严重,放弃更改并重试。

关于java - 人工神经网络 PSO 训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16349671/

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