I was looking at the vignette “Large-scale portfolio optimization with DEoptim“. The vignette applies genetic algorithms to solve non-convex optimization problems.
My question was on interpreting the parameter ‘F’ step-size. The documentation reads: “F: step-size from interval [0,2]. Default to .8”. In the machine learning literature for gradient-based decent methods, stepsize refers to the amount that the choice vector is tweaked in the direction of maximal descent. Large steps imply faster convergence but less precision.
The vignette case-study involves portfolio optimization. The step-size is not specified as an argument so the stepsize of .8 is always used. However, since the optimization is finding what weights minimize some portfolio objective, and since weights must sum to 1, it seems that a stepsize of .8 (80% of the portfolio) is much to large for this problem. A better choice of stepsize might be .01.
However, I must be missing something since when I run an optimization I can see in each generation the weights are not jumping by .8 each time. So what is the interpretation of “stepsize”? In the context of portfolio optimization does it makes sense to set this value to a small value such as .01 (1%)?
F is the differential weighting factor; “step-size” in the documentation is a poor description. I’ll change that.
F is used to weight the difference between two population members before being added to a third population member to create a new population member. Depending on the strategy, it’s used to create jitter or dither.
For example, here’s the formula for the classical strategy to create a new population member:
where
i,j,kare random population members.