【发布时间】:2014-08-27 14:16:50
【问题描述】:
我正在逐包远程传输一些数据。 在发送每个数据包之前,我需要睡眠一段时间(毫秒)。传输每个文件后,我有一个反馈:失败或成功。 当然,由于延迟越小,我的成功率就会越小,但是转移的时间会更少。 我的目标是自动调整电流延迟,使平均成功率等于某个常数(比如 98%)。 我直觉地假设:
- 每次成功传输后,我都会增加当前延迟
- 每次传输不成功后,我都会减少当前延迟
- 我会及时修改当前延迟(淡化)
您会建议哪些算法来有效地(从学习时间、记忆的角度)找到最佳参数值?
【问题讨论】:
-
建议您计算过去 10 或 100 个样本的运行平均成功率,然后根据该平均值决定是否增加或减少当前延迟,而不是单独查看每个最近的结果.
-
与其使用特定百分比,不如使用一系列值,例如 97-99%。再一次可能意味着98-100%的范围)。二进制搜索应该可以很好地接近范围。一旦在范围内,@user1990169 的建议应该会很有效。
标签: algorithm optimization machine-learning data-transfer