ML的多变量优化问题从哪里开始



我正在寻找一个开始用ML解决优化问题的地方。

假设我有一大堆砖,我需要从这堆砖中挑选50块砖来制作一堵墙。我的砖都是不同的类型:我的一些砖比其他砖更强,有些更重,所以每次我选择一套砖时,我都需要做一个(相对缓慢的(结构计算,以确保墙不会倒塌。我的堆里有太多的砖块,为了尝试每一个蛮力排列,所以我想使用ML来帮助我找到可能有效的砖块排列,因为我有几百个以前的集合,我知道是可以的。

这堵墙还需要满足一些主观标准——如果我的青砖太多,它可能看起来很难看。我很清楚哪些标准是主观看待的(例如,我知道建筑师关心有多少青砖(,但我想用以前的数据训练ML模型,以了解给出这些标准的权重,因为我对青砖的数量没有任何硬性限制——我只是有一个数据集,显示建筑师不喜欢过去有很多青砖的墙。

这是ML可以帮助我解决的问题吗?我应该研究什么框架/模型来解决这类问题?我很难找到一个起点!

答案在一定程度上取决于你是否需要帮助来提出(生成(新颖的组合,或者你是否想了解影响成功/接受可能性的变量。

如果以后,您可以将其作为一项分类任务来处理。根据您的描述,您可能会想出一些功能来描述您测试/将要测试的砖组,例如:青砖的数量、砖的总重量、砖的平均重量、最下面一排砖的重量。

然后,您会有一个表,其中每一行都是一个砖的配置,每一列都是上面生成的特性。您的目标有一个附加列,该列将为true/false,具体取决于配置是否成功。

+---------+------------+-------------+---------------+----------------+
| n_green | weight_sum | weight_mean | weight_br_sum | target_success |
+---------+------------+-------------+---------------+----------------+
|      10 |        102 |         0.6 |            15 | true           |
|       2 |         60 |         0.5 |            30 | false          |
|      40 |        250 |         1.1 |            15 | true           |
+---------+------------+-------------+---------------+----------------+

您可以使用线性模型(例如逻辑回归(,其中X是n_green:target_success列中的值数组,y是目标列。然后,你可以查看拟合模型的系数,以了解哪些特征对成功的影响最大(尽管你应该首先缩放你的特征(。

然后,您可以生成新的组合,并在拟合的模型中运行它们,以获得成功的概率。

如果砖块的排列/配置很重要,你可能想研究神经网络,特别是卷积神经网络(CNN(。您必须使用像ELI5或Shap这样的库来调查特性的重要性。

如果是前者,你应该调查GANs。

最新更新