首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用像PSO这样的元启发式方法来训练神经网络?

如何使用像PSO这样的元启发式方法来训练神经网络?
EN

Stack Overflow用户
提问于 2020-03-31 01:47:07
回答 1查看 108关注 0票数 0

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

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

我了解一个在线的香草反向传播网络,以下是培训的总体思路:

代码语言:javascript
复制
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,等等。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-01 17:28:25

为了子孙后代,万一其他人遇到了这个问题:粒子群算法通过代替BP进行训练,将粒子群算法集成到神经网络中。使用MSE错误函数和一组训练示例,您有一个连续且有界的搜索空间和一个适应度函数,这正是PSO所需要的。

代码语言:javascript
复制
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

还有其他的应用,你可以使用粒子群算法结合神经网络,如超参数选择或模型结构选择。然而,我最感兴趣的是训练。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60942202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档