Hello! I am doing my undergraduate thesis on biomass quantification in oak forests in Chile and I am building equations that allow estimating the total aerial biomass from the biomass of leaves, biomass of branches and trunk biomass simultaneously using the BFGS method, but it is difficult for me find the starting values (in RStudio) and I would like to know if you know any method to find good values and generate good estimates. Beforehand thank you very much!
Hi, this sounds like an interesting problem! Unfortunately, I think choosing the starting value is quite problem dependent. So, maybe the equations indicate that there is some candidate for a good initial value? If there is no obvious candidate, I could think of two possible ways: 1. I guess the easiest is to just start BFGS multiple times from random starting values. For example, you could start BFGS 100 or more times with a different starting value each. Then you can just keep the best result. This might also give you some insight in how sensitive the optimization problem is in regard to the starting value. Do all runs result in similar values or are the results highly different? 2. Alternatively if there are way too much local minima, you could try a global optimization algorithm. There are some implemented in the nlopt library (seems to be available via nloptr in R, but I don't use R). However, I expect those to have a way longer runtime than BFGS. I am also not sure how they scale with the dimensionality of the problem. In both cases you would need to have bounds on the reasonable range where the starting value could be, either for the sampling or the global optimization algorithms. Personally, I would start with the multiple random initializations if I don't have good prior knowledge about what a good starting value would be.
This is gold man. Would love to see more videos breaking down optimization algorithms!
Great videos, with succinct explanations, there are very helpful.
thank you so much for this series💖
Great two-part series. If you upload more videoes like this I will definetly watch them.
Thank you! I am happy to hear this!
Great video series! Looking forward to whatever you'll make after this.
Thank you for the kind words :-)
Like these animations, you should post more.
Hello! I am doing my undergraduate thesis on biomass quantification in oak forests in Chile and I am building equations that allow estimating the total aerial biomass from the biomass of leaves, biomass of branches and trunk biomass simultaneously using the BFGS method, but it is difficult for me find the starting values (in RStudio) and I would like to know if you know any method to find good values and generate good estimates. Beforehand thank you very much!
Hi, this sounds like an interesting problem! Unfortunately, I think choosing the starting value is quite problem dependent. So, maybe the equations indicate that there is some candidate for a good initial value? If there is no obvious candidate, I could think of two possible ways:
1. I guess the easiest is to just start BFGS multiple times from random starting values. For example, you could start BFGS 100 or more times with a different starting value each. Then you can just keep the best result. This might also give you some insight in how sensitive the optimization problem is in regard to the starting value. Do all runs result in similar values or are the results highly different?
2. Alternatively if there are way too much local minima, you could try a global optimization algorithm. There are some implemented in the nlopt library (seems to be available via nloptr in R, but I don't use R). However, I expect those to have a way longer runtime than BFGS. I am also not sure how they scale with the dimensionality of the problem.
In both cases you would need to have bounds on the reasonable range where the starting value could be, either for the sampling or the global optimization algorithms.
Personally, I would start with the multiple random initializations if I don't have good prior knowledge about what a good starting value would be.