Timeline for General question related to BFGS
Current License: CC BY-SA 4.0
12 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Feb 5, 2021 at 21:21 | comment | added | Abdullah Ali Sivas | Non-smoothness should be trivial, set $Y_i=Y$ for all $i$ and set $Z_i=Z$ for all $i$. Also let $X_i = X$ for all $i\neq n+1$. Then the function you are interested in reduces to $\sqrt{(X_{n+1}-X)^2} = | X_{n+1}-X |$, which is continuous but not continuously differentiable, hence, nonsmooth. | |
Feb 4, 2021 at 19:18 | comment | added | Habib | I have two questions regarding this matter: 1- How can I prove that this is a non-smooth function? I need a bulletproof claim for this. 2- Can gradient-based algorithms be used to solve non-smooth functions? | |
Feb 4, 2021 at 18:39 | comment | added | Brian Borchers | That's nonsmooth. I would suggest that you create a new questions including this information and ask for suggestions on how to solve the optimization problem. | |
Feb 4, 2021 at 16:58 | comment | added | Habib | That's the original issue. Based on my objective function, I am not so sure if I can use BFGS or any other gradient-based algorithm. Thus, I was trying to see if using BFGS might work. My objective function is the following for a specified n: $$\sum_{i=1}^n \sqrt{(X_{i+1}-X_i)^2+(Y_{i+1}-Y_i)^2+(Z_{i+1}-Z_i)^2}$$ | |
Feb 4, 2021 at 16:48 | review | Close votes | |||
Feb 23, 2021 at 3:04 | |||||
Feb 4, 2021 at 16:35 | comment | added | Brian Borchers | Actually, it's quite likely that you're not at a minimum- the error message shows a clear failure. Rather, there could be an error in your implementation of the gradient, or you could be dealing with an objective function that doesn't satisfy the smoothness requirements of the method. You should check your gradient routine for errors. If you could provide more information about your objective function we might be able to provide more help. | |
Feb 4, 2021 at 16:32 | comment | added | Brian Borchers | Does this answer your question? scipy.optimize.fmin_bfgs: "Desired error not necessarily achieved due to precision loss" | |
Feb 4, 2021 at 16:10 | history | edited | Habib | CC BY-SA 4.0 |
added 89 characters in body
|
Feb 4, 2021 at 16:07 | comment | added | Habib | I would also like to add that I received this message when the optimization was terminated: "Desired error not necessarily achieved due to precision loss." | |
Feb 4, 2021 at 16:04 | comment | added | Habib | I am not sure how to check using python but I am assuming that yes the tolerance criteria was satisfied. However, I cannot comprehend how the algorithm evaluated the objective function 76 times in two iterations. Shouldn't both occur almost equally? Since the main loop of the BFGS algorithm is to iterate from k=0 to k=n until the tolerance is satisfied. | |
Feb 4, 2021 at 15:51 | comment | added | Brian Borchers | If the algorithm was started very close to a local minimum, then it could very easily have converged in two iterations. Have you checked whether the norm of the gradient satisfies the tolerance at the point returned by the routine? | |
Feb 4, 2021 at 12:59 | history | asked | Habib | CC BY-SA 4.0 |