【问题标题】:How does training a neural network using a metaheuristic like PSO work?使用像 PSO 这样的元启发式算法训练神经网络是如何工作的?
【发布时间】:2020-03-31 01:47:07
【问题描述】:

我想了解更多关于训练神经网络的其他方法的信息,我可以找到很多关于 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,等等。

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

【问题讨论】:

    标签: machine-learning neural-network training-data particle-swarm


    【解决方案1】:

    只是为了后代,以防其他人遇到这个问题: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 与神经网络结合使用,例如超参数选择或模型结构选择。不过,我对培训最感兴趣。

    【讨论】:

      猜你喜欢
      • 2013-04-27
      • 2012-05-06
      • 2015-11-12
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2015-06-11
      相关资源
      最近更新 更多