Перегрузить шаг обновления оптимизатора? - PullRequest
0 голосов
/ 24 июня 2019

Ceres Solver Framework (еще один проект Google с открытым исходным кодом), который предназначен для решения больших нелинейных наименьших квадратов, имеет функцию, позволяющую создать «локальную параметризацию» и перегрузить оператор «плюс», который управляет каждым шаг обновления оптимизатора.

Например, сфера в трех измерениях является двумерной многообразие, встроенное в трехмерное пространство. В каждой точке сфера, касательная к ней плоскость определяет двухмерную касательную пространство. Для функции стоимости, определенной в этой сфере, с учетом точки х, движение в направлении, нормальном к сфере в этой точке не полезно. Таким образом, лучший способ параметризации точки на сфере - это оптимизировать по двумерному вектору delta_x в касательном пространстве в точка на сфере сфера, а затем «двигаться» в точку х + delta_x, где операция перемещения включает в себя проецирование обратно на сферу. Это удаляет избыточное измерение из оптимизации, делая это численно более надежно и эффективно.

http://ceres -solver.org / nnls_modeling.html # localparameterization

Это также полезно при оптимизации задач, в которых могут быть скачкообразные скачки на определенных границах.

При использовании чего-то вроде ADAM для оптимизации функции затрат в TF возможно сделать что-то подобное?

...