0

我想了解更多关于训练神经网络的其他方法的信息,我可以找到相当多的关于 GA 训练网络的文献,但关于 PSO 训练的文献不多。这是如何运作的?

我有一个大概的想法:你创建了这么多粒子群,并使用网络损失函数(例如 MSE)作为启发式算法。粒子将移动到 MSE 最低的区域,然后你就有了网络的权重。

我了解在线香草反向传播网络,这是训练的总体思路:

for each epoch:
  for each training example d:
    feed-forward d through layers 0..n
    find error e as a function of expected vs. actual output
    back-propagate e through layers n..0
    update weights w as a function of w, e, learning and momentum rates
  endfor
endfor

我只是找不到太多关于使用 PSO 训练神经网络或它适合算法的信息。除了我的陈词滥调(也许是不正确的)假设之外,我不知道它是用于在线学习还是批量学习,如何在没有 BP 的内层发现错误,PSO 是否替代或伴随 BP 等等。

我希望朝着正确的方向前进,但不一定要编写代码,因为我更感兴趣的是在实施之前先了解它。

4

1 回答 1

0

只是为了后代,以防其他人遇到这个问题:PSO 通过替换 BP 进行训练被集成到神经网络中。使用 MSE 误差函数和一组训练示例,您可以获得连续且有界的搜索空间和适应度函数,这正是 PSO 所需要的。

initialize a set of random particles in n-dimensions (n = # of weights in network)
perform PSO using swarm of particles
PSO fitness function is network MSE function
MSE function should (always?) uses feed forward to generate sum of errors of found vs target
over time, particles (as an encoding of weights) will find a minimum of MSE
return the best particle after so many iterations, initialize network weights as position

您还可以将 PSO 与神经网络结合使用,例如超参数选择或模型结构选择。然而,我对训练最感兴趣。

于 2020-04-01T17:28:25.793 回答