我正在尝试比较通过反向传播和粒子群优化(PSO)进行的神经网络优化。我想使用相对较大的数据集,因此我正在使用完全连接的网络对MNIST数据集进行分类。
我的PSO实现是对https://github.com/kuhess/pso-ann的改编。
使用反向传播,网络结构[784,15,10]使我达到了90%的精度 即一个具有15个节点的隐藏层。现在,我用PSO优化此架构所做的最好的工作是达到30%左右的精度。
我的问题是:如何使用PSO估算反向传播的性能?
我尝试过的事情:
在大多数测试中,我发现前15到50次迭代后收敛缓慢。要么我的粒子不再更新(当惯性很高且粒子找不到更好的解决方案时),要么每次更新都变得如此之小,以至于几乎没有收敛(对于低惯性)。
由于使用这种简单的网络结构,反向传播实现可以轻松地获得85%以上的精度,因此我们知道有可能获得更高的精度,但是现在我不得不调整这些参数。
所以