优化输入向量以获得最佳结果
Optimize Input Vector to achieve optimal results
我无法弄清楚以下问题:如果可以的话,我想马上给你举个例子
想象一下,您使用营销数据并提出了一个很好的回归模型,预测了某个活动的 "reach"。一切都很好,花花公子。数据科学家工作完成。
可是等等。我们可以做得更多。
我的问题是:
假设我们有一个好的模型,我们如何优化输入向量(=营销活动)以获得最好的"reach"(=预测变量/优化目标)?
我疯狂地谷歌搜索,但找不到任何好的方法(我不是在谈论任何超参数优化)。目前我发现的最佳方法是遗传算法...示例here and here
或者 - 一种蛮力方法 - 计算一个巨大的网格,其中包含大量可能的输入向量,然后检查哪个是最好的(直接) - 但那将是计算昂贵的。
我很想听听您对此的看法。关于我应该检查哪些主题有什么建议吗?
很长的评论:
遗传算法可以嵌套。将您的遗传解决方案查找器放入适应度函数中。将其交给父遗传算法。让他们通过外部 GA 的 "optimizing input vector" 和内部 GA 的 "optimizing goal" 搜索结果。
你甚至可以添加第三层GA,来测试中间层GA的构建参数,因为我们可能不知道我们需要什么样的搜索space。如果我们知道,那么我们就不需要优化那个向量了。
您甚至可以通过这种方式减少每个 GA 问题的维度。
vector:x,y,z
GA1: optimizes x and GA2 parameters
GA2: optimizes y and GA3 parameters
GA3: optimizes z
fitness(x,y,z)
all pass their best fitness to parent
我不确定 faster/slower 是否会比
GA: optimize x,y,z
fitness(x,y,z)
因为我不知道 GA3 的变异是否可以从局部最小值中拯救整个优化器。还有其他版本:
GA1: optimize GA2
GA2: optimize x,y,z
fitness(x,y,z)
我不知道它的性能。也许 GA 也可以解决嵌套 GA 应该有多少
GA0: optimize N, x0,x1,..xM-N
GA1: optimize XM-N+1
GA2: optimize XM-N+2
...
GAM: optimize XM
fitness(X0,X1,..XM)
但我想在所有级别上拥有太多对象 constructed/destructed 会降低性能(内存带宽相关)和可读性(回调地狱)。
我无法弄清楚以下问题:如果可以的话,我想马上给你举个例子
想象一下,您使用营销数据并提出了一个很好的回归模型,预测了某个活动的 "reach"。一切都很好,花花公子。数据科学家工作完成。
可是等等。我们可以做得更多。
我的问题是:
假设我们有一个好的模型,我们如何优化输入向量(=营销活动)以获得最好的"reach"(=预测变量/优化目标)?
我疯狂地谷歌搜索,但找不到任何好的方法(我不是在谈论任何超参数优化)。目前我发现的最佳方法是遗传算法...示例here and here
或者 - 一种蛮力方法 - 计算一个巨大的网格,其中包含大量可能的输入向量,然后检查哪个是最好的(直接) - 但那将是计算昂贵的。
我很想听听您对此的看法。关于我应该检查哪些主题有什么建议吗?
很长的评论:
遗传算法可以嵌套。将您的遗传解决方案查找器放入适应度函数中。将其交给父遗传算法。让他们通过外部 GA 的 "optimizing input vector" 和内部 GA 的 "optimizing goal" 搜索结果。
你甚至可以添加第三层GA,来测试中间层GA的构建参数,因为我们可能不知道我们需要什么样的搜索space。如果我们知道,那么我们就不需要优化那个向量了。
您甚至可以通过这种方式减少每个 GA 问题的维度。
vector:x,y,z
GA1: optimizes x and GA2 parameters
GA2: optimizes y and GA3 parameters
GA3: optimizes z
fitness(x,y,z)
all pass their best fitness to parent
我不确定 faster/slower 是否会比
GA: optimize x,y,z
fitness(x,y,z)
因为我不知道 GA3 的变异是否可以从局部最小值中拯救整个优化器。还有其他版本:
GA1: optimize GA2
GA2: optimize x,y,z
fitness(x,y,z)
我不知道它的性能。也许 GA 也可以解决嵌套 GA 应该有多少
GA0: optimize N, x0,x1,..xM-N
GA1: optimize XM-N+1
GA2: optimize XM-N+2
...
GAM: optimize XM
fitness(X0,X1,..XM)
但我想在所有级别上拥有太多对象 constructed/destructed 会降低性能(内存带宽相关)和可读性(回调地狱)。