【问题标题】:Adjusting parameter - Machine learning调整参数 - 机器学习
【发布时间】:2014-08-27 14:16:50
【问题描述】:

我正在逐包远程传输一些数据。 在发送每个数据包之前,我需要睡眠一段时间(毫秒)。传输每个文件后,我有一个反馈:失败或成功。 当然,由于延迟越小,我的成功率就会越小,但是转移的时间会更少。 我的目标是自动调整电流延迟,使平均成功率等于某个常数(比如 98%)。 我直觉地假设:

  1. 每次成功传输后,我都会增加当前延迟
  2. 每次传输不成功后,我都会减少当前延迟
  3. 我会及时修改当前延迟(淡化)

您会建议哪些算法来有效地(从学习时间、记忆的角度)找到最佳参数值?

【问题讨论】:

  • 建议您计算过去 10 或 100 个样本的运行平均成功率,然后根据该平均值决定是否增加或减少当前延迟,而不是单独查看每个最近的结果.
  • 与其使用特定百分比,不如使用一系列值,例如 97-99%。再一次可能意味着98-100%的范围)。二进制搜索应该可以很好地接近范围。一旦在范围内,@user1990169 的建议应该会很有效。

标签: algorithm optimization machine-learning data-transfer


【解决方案1】:

您实质上是在描述网络拥塞解决方案。查看http://en.wikipedia.org/wiki/Network_congestion_avoidance#Avoidance 了解有关该主题的更多信息。

一种可能非常适合您的算法是减少每次成功传输后的等待时间。在传输不成功后,增加时间(通过设定的量或动态地)并无限期地重复。我希望我能记住这个算法的具体名称,但目前它正在逃避我。

请注意,如果您真的通过网络发送包,而不仅仅是播放网络,“最佳”不是一个常数,因为网络总是处于变化状态。

【讨论】:

    猜你喜欢
    • 2016-01-17
    • 2011-02-15
    • 2011-09-28
    • 2020-04-14
    • 2019-03-05
    • 2023-01-07
    • 2017-01-16
    • 2018-12-14
    • 2021-04-05
    相关资源
    最近更新 更多