DEoptim包中步长参数解释

发布于 2024-12-18 07:42:19 字数 553 浏览 6 评论 0原文

我正在查看小插图“使用 DEoptim 进行大规模投资组合优化< /a>”。该插图应用遗传算法来解决非凸优化问题。

我的问题是解释参数“F”步长。文档中写道:“F:间隔 [0,2] 的步长。默认为 0.8”。在基于梯度下降方法的机器学习文献中,步长是指选择向量在最大下降方向上调整的量。大步长意味着收敛速度更快,但精度较低。

小插图案例研究涉及投资组合优化。步长未指定为参数,因此始终使用 0.8 的步长。然而,由于优化是寻找最小化某些投资组合目标的权重,并且由于权重之和必须为 1,因此 0.8 的步长(投资组合的 80%)对于这个问题来说似乎太大了。更好的步长选择可能是 0.01。

然而,我一定错过了一些东西,因为当我运行优化时,我可以看到每一代的权重并不是每次都跳动 0.8。那么“步长”的解释是什么?在投资组合优化的背景下,将此值设置为较小的值(例如 0.01 (1%))是否有意义?

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%)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别理我 2024-12-25 07:42:19

F为差分权重因子;文档中的“步长”描述很差。我会改变这一点。

F 用于在添加到第三个总体成员以创建新的总体成员之前对两个总体成员之间的差异进行加权。根据策略,它用于创建抖动或抖动。

例如,以下是创建新总体成员的经典策略的公式:

newMember = oldPop[i,] + F*(oldPop[j,] - oldPop[k,])

其中 ijk 是随机总体成员。

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:

newMember = oldPop[i,] + F*(oldPop[j,] - oldPop[k,])

where i, j, k are random population members.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文