Python 用模拟退火法训练神经网络

Python 用模拟退火法训练神经网络,python,neural-network,simulated-annealing,Python,Neural Network,Simulated Annealing,我试图用模拟退火训练一个简单的神经网络。我编写了一个神经网络,输入层有784个输入节点(28 x 28像素:我正在使用MNIST数据库进行训练),1个隐藏层有100个节点,输出层有10个终端节点。我还编写了一个模拟退火算法,该算法接受一个输入向量并最小化一个函数以获得所需的输出向量 现在我的问题是如何将两者结合起来?我读过几篇文章,但他们没有具体说明这是如何做到的。我认为这个想法如下: 初始化随机权重向量(在我的例子中,向量的长度为79400;输入层到隐藏层的权重为78400,隐藏层到输出层的权

我试图用模拟退火训练一个简单的神经网络。我编写了一个神经网络,输入层有784个输入节点(28 x 28像素:我正在使用MNIST数据库进行训练),1个隐藏层有100个节点,输出层有10个终端节点。我还编写了一个模拟退火算法,该算法接受一个输入向量并最小化一个函数以获得所需的输出向量

现在我的问题是如何将两者结合起来?我读过几篇文章,但他们没有具体说明这是如何做到的。我认为这个想法如下:

初始化随机权重向量(在我的例子中,向量的长度为79400;输入层到隐藏层的权重为78400,隐藏层到输出层的权重为1000)。计算相应的输出(当然不正确)和误差平方和。然后循环遍历权重向量,通过添加或减去一个小数字来稍微调整每个权重。对于每次调整,再次计算误差平方和,并查看哪个调整(加或减)减少了该值。在我看来,重复这个过程应该会得到与期望输出相对应的权重

我想知道这种方法是否可行。如果是的话,这似乎是一个非常耗时的过程,我想知道是否有更有效的方法来做到这一点

提前谢谢