3D演示帮你一眼看懂线性规划问题 这篇可视化教程火了
你觉得线性规划怎么样?首先在二维平面上画一幅画,然后找到最优解?
但毕竟,这是理论。每个人或多或少都会感到无聊和默默无闻。那么,为什么不尝试一种更直观、更有趣的学习方式呢?例如:
这是一个由外国博主发布的机器学习3D教程,展示了如何在线性规划问题中一步一步地接近最优解。
这篇文章在reddit上仅一天就获得了近200点人气:
它也得到了许多网民的高度赞扬:
我喜欢数学问题的高度直观的描述。伟大的!
什么内容这么好?让我们看看他做了什么。
线性规划也可以一目了然
每个人都应该熟悉线性规划。
在一组线性方程或不等式的约束下,求线性目标函数的极值问题是一个线性规划问题。
其解决方案之一,如上图所示的单纯形法,也被评为20世纪最伟大的算法之一。它广泛应用于生产计划、进度管理、交通运输、农业等诸多领域。
接下来,我们以生产计划为例:
如果你现在是老板,经营一家货运公司,有两种卡车。
第一种卡车运行两天,燃烧4桶油,可以创造1000元的利润。
第二个需要15天,燃烧8桶石油,但它可以创造5000的利润。
如果你手头有500桶石油,你怎么能与这两辆卡车的货运时间相匹配,从而在一年内获得最大利润?
这是一个简单的线性规划问题。
这些限制似乎感觉不到什么,但在空间上是不同的。
与许多平面类似,整个空间被划分为一个多面体:
分段多面体(粉红色部分)是可行区域或可行多面体。它包含满足约束的所有点。
线性规划的目的只是在可行多面体上找到一点以满足期望。例如,在前面的示例中,获取最大利润。
我该怎么找到它?这位博主比较了这两种方法。
第一种是单纯形法。
由于约束函数和目标函数都是线性的,最优解必须存在于可行多面体的顶点。
因此,寻找最优解的过程可以描述为沿着可行多面体的边和目标函数值增加的方向搜索顶点。
听起来不清楚,所以?但用图形来解释它要清楚得多:
然而,这种方法只能用于求解线性规划问题。对于非线性规划,我们无能为力。
第二种内点方法可以应用于更广泛的凸集优化问题。
与单纯形法不同的是,内点法通过添加惩罚函数p(x)连续调整路径:
当我们接近可行多面体边界时,罚函数将取越来越小的值。
直观地说,内点法如下:
它不是沿着可行多面体的边迭代,而是直接从内部开始,逐渐接近最优解。一目了然吗?
与纯数学或算法的推导相比,可视化的形式显然更令人印象深刻。
更多可视化教程
除了本3D教程外,博主还在另一个介绍KKT条件和凸优化内点方法的视频中,展示了内点方法如何通过AndyLau的迭代逐步获得最优解:
在视频中,每次x(T)通过一个黄色的圆圈框时,它表示AndyLau迭代,左下角的图像表示x(T)在连续迭代下接近最优解。同样,它比视频顶部的一长串公式更容易理解。
以这种形式呈现复杂内容不免让网民想起另一位视频博客:
好内容!我还看到了3blue1brown的阴影,动画也非常清晰。
在博主的回复中,我们还可以看到他的灵感来自另一位数学可视化博主3blue1brown。
后者还输出许多与数学可视化相关的视频。如果你感兴趣,你可以学到更多。
参考链接:
https://www.reddit.com/r/MachineLearning/comments/qtx8hn/d\u返回到基本的线性规划/
© 本文系原创,著作权归:芦虎导航官网。如需转载,请署名并注明出处:https://www.luhu.co/article/000000000012941.shtml