使用PSO训练的神经网络改善MNIST分类

时间:2020-04-15 08:52:51

标签: machine-learning neural-network backpropagation mnist particle-swarm

我正在尝试比较通过反向传播和粒子群优化(PSO)进行的神经网络优化。我想使用相对较大的数据集,因此我正在使用完全连接的网络对MNIST数据集进行分类。

我正在使用https://stats.stackexchange.com/questions/376312/mnist-digit-recognition-what-is-the-best-we-can-get-with-a-fully-connected-nn-o进行反向传播实施。

我的PSO实现是对https://github.com/kuhess/pso-ann的改编。

使用反向传播,网络结构[784,15,10]使我达到了90%的精度 即一个具有15个节点的隐藏层。现在,我用PSO优化此架构所做的最好的工作是达到30%左右的精度。

我的问题是:如何使用PSO估算反向传播的性能?

我尝试过的事情:

在大多数测试中,我发现前15到50次迭代后收敛缓慢。要么我的粒子不再更新(当惯性很高且粒子找不到更好的解决方案时),要么每次更新都变得如此之小,以至于几乎没有收敛(对于低惯性)。

由于使用这种简单的网络结构,反向传播实现可以轻松地获得85%以上的精度,因此我们知道有可能获得更高的精度,但是现在我不得不调整这些参数。

所以

  • 我在尝试正确的事情吗?
  • 我应该添加额外的参数来在训练时逐渐改变惯性吗?
  • 如何调整PSO参数以近似估计反向传播的性能?

0 个答案:

没有答案