Ceres Solver Framework(另一个Google开放源项目),旨在解决大型非线性最小二乘法,具有一项功能,该功能允许创建“本地参数化”并重载“ plus”运算符,该运算符控制每个优化器的更新步骤。
例如,三维的球体是二维的 流形,嵌入三维空间中。在每个点上 球体,与之相切的平面定义了二维切线 空间。对于此球面上定义的成本函数,给定点x, 在那个点上不垂直于球体的方向移动 有用。因此,参数化球体上一个点的更好方法是 在切线空间中的二维矢量delta_x上进行优化 球体点上的点,然后“移动”到点x + delta_x, 移动操作涉及投影回球体。 这样做会从优化中删除多余的维度,从而使 在数字上更强大,更有效。
http://ceres-solver.org/nnls_modeling.html#localparameterization
在优化可能在特定边界处存在不连续跳跃的问题时,这也很有用。
在使用ADAM之类的功能优化TF中的成本函数时,是否可以执行类似的操作?