机器学习笔记 - 优化简介

1、什么是优化?

        用最简单的术语来说,优化意味着在所有可用的解决方案中选择最好的解决方案。

        但是,怎么算是最好的? 最好的将取决于您手头的问题。 对于您正在解决的问题,最好的意思是最大的利润吗? 还是最好的意思是最低的成本? 这是否意味着节省的时间最多或使用的资源最少? “最佳”的定义将取决于您要解决的问题。

        什么时候需要优化? 仅当有超过 1 个解决方案可用时才使用优化。

2、优化为什么重要?

        为什么我们还要关心优化? 它为什么如此重要?

        要了解它的重要性,让我们看一下四个不同级别的分析。 查看下图的 Gartner 分析优势模型,这是说明组织数据成熟度的有用方法。

         x 轴表示难度或复杂程度,y 轴表示价值或影响。 四种不同级别的分析从后见之明到远见卓识,其中远见最为复杂。

        第一级分析是描述性分析。 它告诉你发生了什么。 例如,浏览网站的平均时间或同比销售额增长。

        第二级分析是诊断分析。 为什么会这样? 其特点是深入研究数据以确定您在数据中看到的潜在原因。

        接下来,您有预测分析。 会发生什么? 为了做出预测,我们使用机器学习模型。 也许您可能听说过聚类模型或回归模型。 好吧,你猜怎么着,这些机器学习模型,它们依靠优化来找到答案。

        优化也是规范分析下的自己的领域。 我们会做出哪些决定来让事情发生? 例如,我们如何分配零售货架以实现利润最大化? 将多少产品运送到全国各地的仓库以最大限度地降低总体成本,但仍能满足需求?

        这些决定将具有巨大的价值,对吧? 这将帮助我们提高效率,或者提供竞争优势。 优化非常强大,因为您能够在战略、运营和战术层面指导组织。

        从图表中可以看出,它是最复杂的分析级别,但它提供了如此多的价值。 我们将在接下来的几个示例中看到这一点。

3、优化在哪里使用?

        您可能不会考虑它,但优化在您周围工作。 当你使用 GPS 时,无论是谷歌地图还是苹果地图,它都会计算到目的地的最短行驶距离。 这就是优化。

        优化不仅在日常问题中发挥作用,而且已被用于各个行业的各种类型的问题中。 以下是一个著名的优化示例。

        运输行业使用优化的一个著名例子是 UPS。 UPS 希望为其司机找到最有效的包裹递送路线,以节省时间并降低油耗。 为了节省时间,该公司决定司机应尽可能避免左转。 否则需要等待绿灯以及交通通过才能左转。 因此,取消左转意味着更少的时间浪费和更少的燃料消耗。 UPS 创建了一个名为 ORION 的专有优化软件,以帮助最大限度地减少交付路线的左转。

         在上图中,左侧是驾驶员的路线解决方案,右侧是 ORION 的解决方案。 正如您在地图上看到的,ORION 的解决方案比司机的解决方案要高效得多。 使用 ORION 软件可以节省 30 英里。

        谈到价值,“自 ORION 最初部署以来,它每年为 UPS 节省了大约 1 亿英里和 1000 万加仑的燃料。” - UPS

        这肯定可以使他们比竞争对手更具竞争优势。 正如您在此处看到的,优化为 UPS 提供了重要价值。

4、无约束与约束优化

        从图形上看,如果我们考虑优化是什么,它只是找到最大点或最小点。

        在上图中,我们有一个无约束优化的示例,其中最高峰是最大点,最低谷是最小点。

        然而,实际上,我们有约束,所以图表看起来更像这样。

        我们将受到限制,因为我们身处一个资源有限的世界。 例如,一天只有 24 小时。 我的银行账户里只有 X 元。 我们可以利用的东西是有限的。

        红线代表约束,由于约束,我们的最大点不再是最高峰,而是在峰的一半左右。 上图说明了约束优化,即我们在讨论优化问题时通常处理的优化类型。

5、优化问题的三个核心要素

        现在让我们进入任何优化问题的三个核心要素。

(1)目标函数

        之前我们讨论过“最好”这个词。 在优化方面,我们正在努力寻找最佳解决方案。 目标函数将帮助我们衡量什么是最好的.

        在饮食问题中,“最佳”意味着最小化年度总成本。 因此,年度总成本是我们衡量解决方案质量的方式。 也就是说,年总成本越小,解决方案越好。

(2)决策变量

        决策变量是您必须做出决定的事情。 这些是可以调整的东西,或者换句话说,是在你的控制范围内的东西。 您不知道最佳值是多少,但优化求解器会为您选择最佳值。

        在饮食问题上,斯蒂格勒必须弄清楚要喂给士兵什么食物以及每种食物的量。 食物的种类和数量是这个问题的决策变量。

(3)约束

        约束是对这些决定的限制。 在饮食问题上,有以下营养限制。

        一个成年人每天需要摄入 3,000 卡路里,70 克蛋白质,等等。 选择的饮食需要满足这些要求。 这个元素非常重要,因为该软件可以为您计算并找到最佳解决方案,但它不了解现实。 您必须为机器翻译现实生活中的约束,否则,您最终可能会得到一个实际实施没有意义的解决方案。

6、结论

        我们经常使用解决方案这个词,所以让我们清楚地定义一些处理解决方案的术语。

        解决方案是每个决策变量的一组值。 例如,5磅菠菜。 这可以是一个解决方案。 20磅菠菜。 这可能是另一种解决方案。

        可行的解决方案是实际可行的解决方案。 也就是说,一个满足我们约束的解决方案。 如果 20 磅菠菜足以满足营养需求,那么这是一个可行的解决方案。

        为我们提供最佳价值的一种可行解决方案是我们的最佳解决方案。 在饮食问题上,就是23磅菠菜。

7、优化问题示例1

        现在我们已经掌握了所有术语,让我们看一个超级简单的玩具优化问题。 这意味着非常简单,以帮助您轻松进入设置优化问题的心态。 这里的想法是学习使用我们学习过的术语来构建优化问题,并理解优化是如何工作的,所以不要太担心解决方案。

         这是我们面临的问题。

        某有限责任公司想要最大化利润。

        他们有两种产品:可爱的独角兽枕头和可爱的猫娃娃。

        公司有足够的雪尼尔材料来生产最多 2 个可爱的独角兽枕头。

        公司有足够的面料生产最多 3 个丰满的猫娃娃。

        可爱的独角兽有 15 元的利润,猫娃娃有 10 元的利润。

        花点时间想想这个优化问题的三个核心组成部分是什么。

       目标函数是什么? 我们希望为公司带来最大的利润。 利润是独角兽枕头的价格乘以出售的独角兽枕头的数量加上猫娃娃的价格乘以出售的猫娃娃数量。

        什么是决策变量? 公司可以决定哪些事情? 要制作的可爱独角兽枕头的数量和要制作猫娃娃的数量。

        面临哪些制约因素? 由于材料限制,最多只能有2个可爱的独角兽枕头和3个猫娃娃。

        另一件值得注意的事情是,不可能生产少于 0 个独角兽枕头或 0 个猫娃娃。 尽管这对我们来说是直观和合乎逻辑的,但将这些约束构建到问题中是一种很好的做法。 您希望避免计算机可能输出不合逻辑的解决方案的情况,例如在这种情况下的负数。

        让我们将刚刚提出的组件转换为图形形式,以便将问题可视化。

        下图中的 X 和 Y 轴是我们的决策变量。 现在让我们画出我们的约束。 在向下滚动之前,请花点时间考虑一下如何在此图上绘制约束。

         它应该如下所示。 图表上的红线代表我们针对此优化问题应用的约束。 我们在 0 和 2 处有一条垂直线,在 0 和 3 处有一条水平线。我在绿色的可行解决方案空间和红色的不可行解决方案空间中画了阴影。

         在我们的绿色可行解决方案空间内,我们现在想要找到要制作的最佳独角兽和猫的数量。 请记住,独角兽枕头的利润为 15 元,猫娃娃的利润为 10 元。 如果该公司生产 1 个独角兽枕头和 0 个猫玩偶,它将赚 15 元。 如果该公司生产 2 个独角兽枕头和 1 个猫玩偶,它将赚 40 元。 等等。

        我已经计算了下图中每个可行解决方案的利润。 那么哪一个是最优解呢? 也就是说,哪一个会帮助我们实现利润最大化?

         最高利润为60元,其中制作了2个毛茸茸的独角兽枕头和3个猫娃娃。

         最优解:独角兽=2,猫=3

        该解决方案是合乎逻辑的,不需要经过这些步骤,但这里的想法是建立对如何构建优化问题的理解,就像我们刚刚所做的那样。 这很重要,因为计算机会执行计算来为您找到解决方案,但您必须正确地为计算机构建问题。

8、进一步添加约束

        在问题 1 的基础上,现在让我们为问题添加一个额外的约束。

        这家小型有限责任公司的人力只够一天生产最多 4 件产品。

        这对现在的事情有什么影响? 我们有一个额外的约束需要添加到问题中,但其他一切都保持不变。

         现在,让我们也将此约束添加到图形形式中。 下面的对角红线是我们刚刚添加的新约束。 由于这个额外的约束,绿色矩形右上角的三角形区域不再是绿色。

         因此,在我们可行的解决方案空间内,以下是每个解决方案的利润。

         最高利润为50元,其中制作了2个毛茸茸的独角兽枕头和2个猫娃娃。

         最优解:独角兽=2,猫=2

9、问题 1 与问题 2

        如果我们将问题 1 的解决方案与问题 2 的解决方案进行比较,您会注意到什么?

         我们的可行解空间在问题 2 中较小。在问题 2 中利润较低。

        一个额外的约束减少了我们可行的解决方案空间,并使我们的解决方案变得更糟。 在设置问题时要牢记这一点很重要。 您要添加的约束是必需的吗? 因为我们越能放松约束,优化软件找到更好解决方案的空间就越大。

猜你喜欢

转载自blog.csdn.net/bashendixie5/article/details/125273275
今日推荐