我想了解更多关于神经网络训练的其他方法,我可以找到一些关于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,等等。
我希望朝着正确的方向前进,但不一定要编写代码,因为我更感兴趣的是在实现之前首先了解它。
发布于 2020-04-01 17:28:25
为了子孙后代,万一其他人遇到了这个问题:粒子群算法通过代替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还有其他的应用,你可以使用粒子群算法结合神经网络,如超参数选择或模型结构选择。然而,我最感兴趣的是训练。
https://stackoverflow.com/questions/60942202
复制相似问题