Tensorflow可以用于全局最小化多变量函数吗?

时间:2017-11-06 06:47:52

标签: python tensorflow mathematical-optimization

我很好奇TF是否可用于功能的全局优化。例如,它是否可以用来有效地找到Lennard-Jones潜力的基态?它会比现有的优化方法更好还是更糟,比如盆地跳跃?

我的部分研究涉及寻找大型多组分分子的基态。传统方法(BH,等)对此有好处,但也很慢。我已经研究了TF,有些部分似乎足够强大,可以应用于这个问题,虽然我的有限的网络搜索似乎没有显示TF对这个问题的任何使用。

1 个答案:

答案 0 :(得分:9)

为训练神经网络而执行的gradient descent仅考虑该函数的局部区域。因此无法保证它会收敛到全局最小值(这对于大多数机器学习算法来说实际上是好的;考虑到所考虑空间的真正高维度,人们通常很乐意找到一个好的局部最小值,而不必探索周围太多了)。

话虽如此,人们当然可以使用Tensorflow(或任何此类框架)来实现全局流域跳跃方案的本地优化器,例如,如下(简化算法):

  1. 选择一个起点;
  2. 使用本地优化器获取当地最小值;
  3. 对这个最小值的坐标应用一些扰动;
  4. 从这个新位置,重新使用本地优化器来获得下一个本地最小值;
  5. 保持最佳状态,从3开始重复。
  6. 实际上,有些人 目前正试图实施这个确切的方案,将TF与scipy.optimize.basinhopping()连接起来。目前的发展和讨论可以在Github issue中找到。