【问题标题】:Automatic adjustment of 3 parameters to minimize standard deviation自动调整 3 个参数以最小化标准偏差
【发布时间】:2011-09-23 09:26:24
【问题描述】:

情况: 我目前正在开发基于规则的 Java 应用程序。每个规则都有 3 个数字参数来影响数据库通信。我正在测量一个受此规则影响的值并计算测量值的标准偏差。标准偏差应尽可能小。

问题: 我想知道是否可以自动执行此操作?我已经可以自动启动测试场景,并且可以自动计算标准偏差。所以,现在我正在寻找根据测量值调整参数的机制。有什么想法吗?

谢谢。

PS:我知道,这是一个非常笼统的问题...

【问题讨论】:

    标签: java database automation artificial-intelligence machine-learning


    【解决方案1】:

    正如彼得所说,您必须最小化函数f(a,b,c)。对于表现良好的功能,有很多精心设计的方法。例如,对于可以微分的函数,或者对于所谓的凸函数。在您的情况下,您有一个我们不太了解的功能。所以 f 可能有不同的局部最小值,这会扼杀许多已建立的最小化方法。

    如果对参数集a,b,c 的简单评估很快,您可以尝试某种坐标下降。这不是最好的方法,蛮力但很容易实现。我将(a,b,c)实现的标准差命名为s(a,b,c)

    我给你一些python风格的伪代码,应该很容易阅读:

       def improve(a,b,c):
           eps = .01
    
    
           s1 = s(a*(1+eps), b, c)
           s2 = s(a, b*(1+eps), b, c)
           s3 = s(a, b, c*(1+eps))
    
           s4 = s(a*(1-eps), b, c)
           s5 = s(a, b*(1-eps), c)
           s6 = s(a, b, c*(1-eps))
    
           # determine minimal of (s1....s6) and take index:
           i = argmin (s1....s6) 
    
           # take parameters which lead to miminal si:   
           if i==1:
              a = a*(1+eps)
           if i==2:
              b = b*(1+eps)
    
           ...
    
           if i==6:
              c = c*(1-eps)
    
           return a,b ,c
    

    你必须从一些值开始(a,b,c),这个函数应该给你一个新的三元组(a,b,c),从而减少变化。现在,您可以根据需要随时应用此步骤。 也许你必须适应eps,这取决于如果你对abc进行少量修改,s(a,b,c)的变化速度。

    这不是最好的解决方案,而是一种易于动手尝试的方法。

    【讨论】:

      【解决方案2】:

      幸运的是,有许多通用解决方案。应该是解决函数以最小化结果的问题。如果你有一个函数 x= f(a,b,c) 你想找到 a, b, c ,它给出了最小的x。最简单的方法是试错,但您可以通过使用二分搜索和线性插值来改进这一点(假设拓扑相对简单)还有更复杂的方法,但您可能不需要它们。

      你知道实际的功能是什么吗?如果它是纯标准偏差,您可以使 a、b、c 相同,例如平均值,您的标准差将为 0。

      【讨论】:

      • 我对我的参数(a、b 和 c)的标准偏差不感兴趣。参数正在影响另一个值,我每 10 秒测量一次。我对该值以及每个间隔的值的偏差感兴趣。
      【解决方案3】:

      如果您对f 一无所知,我想我会运行一段时间的随机样本并查看结果。然后,您可以决定是否要进行梯度下降或其他操作。

      【讨论】:

        猜你喜欢
        • 2021-10-16
        • 2014-05-09
        • 1970-01-01
        • 2020-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-11
        • 1970-01-01
        相关资源
        最近更新 更多