Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 贝叶斯神经网络:Hessian函数的计算_Python_Machine Learning_Neural Network_Mnist_Hessian Matrix - Fatal编程技术网

Python 贝叶斯神经网络:Hessian函数的计算

Python 贝叶斯神经网络:Hessian函数的计算,python,machine-learning,neural-network,mnist,hessian-matrix,Python,Machine Learning,Neural Network,Mnist,Hessian Matrix,我正试图用Python编写几种类型的ANN算法,以便更好地理解/直觉这些算法。我没有使用Scikit learn或任何其他现成的软件包,因为我的目标是教育性的,而不是实用性的。 作为一个示例问题,我使用MNIST数据库() 虽然我执行了简单的1-隐层神经网络和卷积神经网络,但我成功地避免了任何二阶优化方法,因此没有计算Hessian矩阵。然而,接下来我谈到了贝叶斯神经网络,为了优化超参数,Hessian的计算是强制性的 在我的全连接网络中,有784个输入、300个隐藏单元和10个输出单元。所有这

我正试图用Python编写几种类型的ANN算法,以便更好地理解/直觉这些算法。我没有使用Scikit learn或任何其他现成的软件包,因为我的目标是教育性的,而不是实用性的。 作为一个示例问题,我使用MNIST数据库()

虽然我执行了简单的1-隐层神经网络和卷积神经网络,但我成功地避免了任何二阶优化方法,因此没有计算Hessian矩阵。然而,接下来我谈到了贝叶斯神经网络,为了优化超参数,Hessian的计算是强制性的

在我的全连接网络中,有784个输入、300个隐藏单元和10个输出单元。所有这些导致238200个权重(+偏差)。 当我试图计算甚至近似Hessian(通过梯度的外积)时,Python会在“MemoryError”上发出通知。即使我将权重的数量减少到~40000,并且没有显示错误消息,我的计算机也会在几分钟后卡住。据我所知,问题在于理想的矩阵非常庞大。 我浏览了几篇关于贝叶斯NNs的文章,发现作者通常使用不超过10或20个输入和隐藏单元的网络架构,因此参数比我的少得多。然而,我没有看到任何关于此类限制的明确声明

如何将贝叶斯方法应用于MNIST的神经网络

更一般地说: 是否可以将贝叶斯方法应用于此(238200个权重)或更大的体系结构?
或者它只适用于相对较小的网络?

您可以尝试梯度上升,它近似于黑森曲线,并且倾向于节省(相当大的)内存。有一个问题。

我猜你在考虑L-BFGS(),BFGS需要与典型hessian方法相同的内存量,因此如果OPs问题在于内存消耗,BFGS将失败。谢谢你的澄清。