如果TF可以用于函数的全局优化,我一直很好奇.例如,它是否可以用来有效地找到Lennard-Jones潜力的基态?是否比现有的优化方法更好或更差,比如盆地跳跃?
我的部分研究涉及寻找大型多组分分子的基态.传统方法(BH,等)对此有好处,但也很慢.我已经研究了TF,有些部分似乎足够强大,可以应用于这个问题,虽然我的有限的网络搜索似乎没有显示TF对这个问题的任何使用.
为训练神经网络而执行的梯度下降仅考虑该函数的局部区域.因此无法保证它会收敛到全局最小值(这对于大多数机器学习算法来说实际上是好的;考虑到所考虑空间的真正高维度,人们通常很乐意找到一个好的局部最小值,而不必探索周围太多了).
话虽这么说,人们当然可以使用Tensorflow(或任何此类框架)为全球流域跳跃方案实现本地优化器,例如如下(简化算法):
选择一个起点;
使用本地优化器获取当地最小值;
对这个最小值的坐标应用一些扰动;
从这个新位置,重新使用本地优化器来获得下一个本地最小值;
保持最低限度,从3开始重复.
其实,有些人是目前正在努力实现这个确切的方案,接口与TF scipy.optimize.basinhopping()
.目前的开发和讨论可以在这个Github问题中找到.