宜宾有什么大型网站建设公司昆明中小企业网站建设

张小明 2026/1/1 23:46:46
宜宾有什么大型网站建设公司,昆明中小企业网站建设,王烨名字打分,一键生成个人网站原文#xff1a;towardsdatascience.com/hands-on-global-optimization-methods-with-python-07bff0e584a9 想象一下和你的最佳朋友出去。你决定去一个你从未去过但你的朋友去过的地方。 此外#xff0c;想象一下你在一个交通有点问题的城市#xff0c;比如罗马#xff08…原文towardsdatascience.com/hands-on-global-optimization-methods-with-python-07bff0e584a9想象一下和你的最佳朋友出去。你决定去一个你从未去过但你的朋友去过的地方。此外想象一下你在一个交通有点问题的城市比如罗马因为我来自那里这很痛苦考虑一下你和你的最佳朋友将在那里见面但带着两辆不同的车离开同一所房子。你和你的最佳朋友同时离开家由于你们从未去过那个地方你们使用GPS导航到达那里。当你到达那里时你发现你的朋友已经在点饮料了并告诉你他已经在等你 10 分钟了。假设你和你的朋友都没有超速这个故事告诉我们两件事你应该对你最好的朋友感到愤怒因为他本可以告诉你更快的路线而不是让你使用 GPS。他为什么还是没给你打电话呢你刚刚遇到了一个局部最小值问题在这篇文章中我们将重点关注问题 2我会让你自己处理你的最佳朋友。为什么局部最小值在这个例子中很重要让我们退一步。类似于 Google Maps或通常所说的地图这样的服务已经是非常知名的优化算法。你需要从 A 点去 B 点并且你希望最小化完成这一过程所需的时间。这正是我们所说的“优化”的含义在给定一组参数的情况下优化目标函数的过程。每个人都依赖 Google Maps 去往我们从未去过的地方我们之所以这样做是因为我们相当自信 Google Maps 不会浪费你很多时间并且会带你到达你想要的目的地而不会出现大的延误或问题。然而当我们确实知道位置时大多数情况下我们相信如果我们选择另一条路线我们会更快到达目的地。这是因为我们可能知道在一天中的某个特定时间会有计划的道路施工因为交通会在你离开家之后开始涌现而且它不会给 Google Maps 时间重新计算因为那里有很多测速陷阱汽车往往会猛踩刹车减缓整个车流等等。换句话说我们认为我们拥有的数据比谷歌地图有时确实如此更多。随着数据的增加我们最终达到的极小值比谷歌地图的极小值还要低。但是等等我们不是说谷歌地图也在运行优化吗是的确实如此这是一个我们可以说是其极小值是局部的情况。那么我们的极小值也是局部的吗也许也许不是可能。也许这是一个比谷歌地图的局部极小值还要低的另一个局部极小值。或者也许这确实是迄今为止最快的路线全局极小值。可以确定的是找到全局优化的任务即“所有极小值中的最低点”或“所有极大值中的最大点”是一个非常迷人的练习。希望通过我给出的这个简介你对我这个关于全局优化的文章足够感兴趣愿意继续阅读。我们将从给出全局优化问题的形式化开始然后我们将找到多种方法或算法来达到全局最优解。特别是我们将从最简单的方法到最复杂的方法列出这些方法。让我们开始吧0. 形式化问题那么全局最优解。我们这是什么意思让我们从可能稍微有些平凡但非常关键的一点开始。我们所说的所有这些以及已经说过的都是与黑盒函数一起工作并且有意义的。当我这么说的时候我的意思是我给函数输入后台发生一个数值过程函数“吐出”一个数字。换句话说我们必须假设我们没有任何关于函数外观的解析估计。为什么是这样呢因为如果我知道了解析函数我就可以通过求导数看到它何时为 0二阶导数的符号是“-”或“”取决于最大值或最小值并找到最优解值。例如让我们考虑 argmax最优解最大值的情况。我们有一个这样的方程https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/65473efd4aba1a171dee8e5d7a1e8886.png作者制作的照片所以再次强调在我们已知 f(x) 的解析形式的情况下我们得到的结果类似于https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/586610eed8a32797609106b7ca95bb05.png作者制作的照片但在现实中我们没有 f’(x)因为你一开始就没有 f(x) 的解析表达式所以你实际上无法通过解析方法得到 X_opt。但问题中还有更多因素。在现实中X是一个连续集合所以我们实际上无法“检查它们所有”这意味着我们无法真正看到所有可能的 X 的 f(x) 的值。这是我们进行全局优化时面临的问题概述这也是为什么我们使用数值方法来解决它们的原因。这意味着我们放弃了导数的解析定义并试图用算法来接近这个问题。当然我们仍然会使用解析表达式来测试它发明黑盒但之后我们不会在我们的优化中使用任何解析操作。你同意吗我希望你能同意。让我们开始吧*请注意X是一个 k 维空间。在你的问题中可以考虑多个参数。1. 粗暴力方法们1.1 理念当你想找到一个数据集的最小值时最合理的事情即使是非技术人员也会建议的事情是这样做让我们探索所有可能性现在这仅仅适用于非常有限的情况。例如如果我们只有一个参数有四种不同的选择或者三个参数有两种选择或者两个参数有三种选择。我想你已经明白了这个要点。如果你只有几个选择尝试探索它们是值得的。但如果你的参数空间是连续的你就已经无计可施了你无法探索一个封闭无限空间的全部可能性。尽管如此你仍然可以使用这种逻辑。一个简单的事情就是通过将其分成多个步骤网格方法来采样你的参数空间X。然而文献清楚地表明当你想要进行一些模拟时添加一些随机性会更明智。**拉丁超立方采样**是一个非常好的替代方案。我担心这会变得过于技术化进展得太快。我想通过一些编码来使其变得平缓这样我们就有机会进行解释。1.2 代码让我们考虑一维输入的直线y mxc。假设我们固定 m 和 c 为 m 5 和 c 3。假设我们想要识别 m 和 c。当然你可以直接拟合这条线并结束但我们可以也将这为了教学目的视为一个优化问题。好了说够了让我们导入一些库。我们将使用超级知名的库numpy 和 scipy。Jovian 优化过程现在目标目标是通过这个函数定义的Jovian 优化过程我们还添加了“compute_error”函数该函数计算目标行与新行方程 y mx c之间的差异。这些是一些随机行和目标行cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D5dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D5imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2Ff0dc8e2716c7408d9d263144d3a979d4%2Fpreview%2F182fc648dc2443ba8b165bd9e7556eb8%3Fts%3D1725295093219keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian现在我们从1 条随机红色线开始计算误差它可能非常高。然后我们继续添加模拟。模拟的数量会越来越大。通过比较越来越多的线条我们将得到越来越准确的估计。我们可以从这里清楚地看到cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D6dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D6imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2Ff0dc8e2716c7408d9d263144d3a979d4%2Fpreview%2F182fc648dc2443ba8b165bd9e7556eb8%3Fts%3D1725295093219keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian这意味着我们正在收敛使用 100,000 个样本对 m 和 c 的估计非常好。以下是如果我们绘制它的情况cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D7dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D7imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2Ff0dc8e2716c7408d9d263144d3a979d4%2Fpreview%2F182fc648dc2443ba8b165bd9e7556eb8%3Fts%3D1725295093219keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian在这个特定情况下代价函数是目标线和新候选线之间的差异我们正在用来自拉丁超立方体的“num”次模拟填充 2 维参数空间m,c。我们在目标线和“num”行之间计算代价函数并提取最佳结果现在这相当于“枚举可能性”但它们并不完全是所有可能性因为我们处于连续空间中。这是一个非常简单的方法并且容易受到局部最小值的存在的影响。另一方面当模拟次数增加时处于局部最小值的概率会降低你可能已经探索了所有最小值并达到了其中最低的一个。这被称为暴力法因为它完全依赖于模拟次数和错误计算。没有任何复杂性计算量非常大。暴力法在所应用的采样方法上有所不同。正如之前所说我们应用了拉丁超立方体。2. 梯度下降2.1 概念我将要展示的方法在机器学习社区中非常知名因为它是用作训练神经网络的方法。我们开始涉及更复杂的算法。这个想法如下我们从一个随机参数向量 x_start开始。在任何感兴趣的 k 维空间中。我们计算随机参数x_start的损失。我们计算特定x_start的损失梯度并朝相反方向移动**请注意如果我们想要最大值这个方法的工作方式完全相同但你需要遵循梯度的方向而不是相反。如你所见这个想法本身非常简单。让我们看看代码。整个想法非常简单可以用几行代码实现cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D9dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D9imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2Ff0dc8e2716c7408d9d263144d3a979d4%2Fpreview%2F182fc648dc2443ba8b165bd9e7556eb8%3Fts%3D1725295093219keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian现在正如您所知这个问题中仍然存在局部最小值的问题cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D10dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D10imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2Ff0dc8e2716c7408d9d263144d3a979d4%2Fpreview%2F182fc648dc2443ba8b165bd9e7556eb8%3Fts%3D1725295093219keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian如您从上面的示例中可以看出如果我们从一个错误区域开始的随机参数我们就会陷入局部最小值。现在有几种方法可以使这种梯度下降方法更有效并避免局部最小值。这些方法包括随机梯度下降SGD在 Keras 中经常用作“优化器”添加动量以及进行随机重启。一篇很好地总结了所有这些可能性的文章是由Mohit Mishra提供的。这些方法并不完美因为它们只是尝试逃离局部最小值的数值方法你仍然不能确定最小值是全局的就像总是那样。尽管如此像 SGD 和动量这样的技术因其是逃离梯度下降中局部最小值的好方法而闻名并且在训练神经网络时通常被使用。3. 贝叶斯优化3.1 想法现在我们进入代理模型的业务领域这恰好也是我的博士论文主题。当黑盒函数实际上计算密集时使用贝叶斯优化你可能需要等待很长时间数十秒才能得到输入 x 对应的输出 f(x)。策略如下你选取一小部分点并在这些小部分点上计算你的损失函数**。这些点的配对x,f(x)用于训练高斯过程回归Gaussian Process Regression, GPR。训练好的 GPR 用于密集采样参数空间。期望改进EI告诉你GPR 不确定的地方。换句话说使用 EI我们可以选择可能存在全局最小值或最大值的地方你选择具有最大 EI 的点。计算(x_new, f(x_new)并重新训练 GPR。然后重新运行 3、4 和 5。如果你想了解所有这些数学你可以看看我的文章这里其中我花了 10 分钟的时间深入讨论它。3.2 代码好吧让我们考虑这个函数*https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b3ddd268c591d69aaba5ae485ec908c2.png由作者制作的照片Jovian正如我说的让我们取一小部分数据作为训练集Jovian 上的优化过程我们训练我们的 GPRJovian 上的优化过程然后我们选择 EI 值最大的区域并重新训练 GPR。我们重复进行这个过程。这是结果cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D16dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D16imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2Ff0dc8e2716c7408d9d263144d3a979d4%2Fpreview%2F182fc648dc2443ba8b165bd9e7556eb8%3Fts%3D1725295093219keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian我对这种方法有着爱恨交加的关系。我发现它极其吸引人、优雅且有用但实际上要训练一个用于大型数据集的 GPR 需要很多工作尤其是在维度很大k0的情况下。简而言之我尽一切可能使用 GPR并希望有更多机会使用它。4. 遗传算法4.1 想法遗传算法是另一种寻找黑盒函数全局最优解的极其吸引人的方法。其逻辑是选择一组随机候选人根据你的成本函数选择最好的将它们配对并将它们进化成新的候选人。更精确地说这些步骤是你从一个随机生成的可能解决方案种群开始。你使用预定义的成本或适应度函数评估每个候选人的适应度。适应度函数告诉你解决方案有多“好”。你将选定的候选人父母配对以产生新的候选人后代。这个过程通过交换父母解决方案的部分来创建后代的多样性通常被称为交配。你可以并且通常这样做引入随机变化到一些后代基因解决方案的个体部分以保持种群内的多样性。这只是为了引入一些随机性实际上这有助于避免局部最小值你替换旧种群为新的一组候选人并在多代中重复此过程。停止终止是通过预定义的标准例如最大迭代次数1000获得的4.2 代码PyGAD 的出色人员使遗传算法GA的使用变得极其简单。安装方法如下pip install pygad现在让我们考虑这个损失函数来最大化。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/29c35b94048e3f3a48052806f0d50584.png*注意PyGAD 用于最小化-f(x)这与最大化 f(x)相同让我们以 x 在 [0,10] 和 y 在 [0,10] 的范围内运行 GA。这就是它的样子*cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D19dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D19imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2Ff0dc8e2716c7408d9d263144d3a979d4%2Fpreview%2F182fc648dc2443ba8b165bd9e7556eb8%3Fts%3D1725295093219keya19fcc184b9711e1b4764040d3dc5c07typetext%2Fhtmlscrollautoschemajovian注意有很多参数需要考虑。幸运的是PyGAD 解释得非常清楚。请参阅文档以了解更多信息正如我们所见我们收敛到全局最小值cdn.embedly.com/widgets/media.html?srchttps%3A%2F%2Fjovian.com%2Fembed%3Furl%3Dhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D21dntp1display_nameJovianurlhttps%3A%2F%2Fjovian.ml%2Fpiero-paialunga%2Foptimization-process%2Fv%2F4%26cellId%3D21imagehttps%3A%2F%2Fapi.jovian.com%2Fapi%2Fgist%2Ff0dc8e2716c7408d9d263144d3a979d4%2Fpreview%2F182fc648dc2443ba8b165bd9e7556eb8%3Fts%3D1725295093219keya19fcc184b9711e1b4764040d3dc5c07typetext%2FhtmlscrollautoschemajovianGAs 在检测全局最优解方面非常出色但在处理大维度k0时时间和资源消耗略高5. 结论非常感谢您花时间与我一起探讨全局最优解的旅程。让我们看看我们做了什么我们使用 GPS 和到达目的地的最短时间示例引入了全局最优解的问题我们形式化了全局最优解的问题并解释了为什么我们需要数值方法来解决它们我们讨论了暴力法在参数空间中进行采样并计算损失。简单但效率不高。我们描述了梯度下降法在机器学习中臭名昭著用于处理高维问题。您可以通过使用随机梯度下降SGD或动量来尝试避免陷入局部最小值。我们讨论了代理建模贝叶斯优化您可以使用代理模型来模拟损失函数并使用期望改进来引导您找到全局最小值。极其优雅但计算量大。我们描述了遗传算法一种基于修改一组可能的随机解的优雅算法类。我们在一个二维问题上尝试了它并取得了成功。这种方法不适用于高维但它是对抗局部最小值/最大值的一个非常好的方法。6. 关于我再次感谢您抽出宝贵时间。这对您来说意义重大 ❤我叫 Piero Paialunga就是这里这位https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d9ed061b17ef8293f7fe9b102bd96c78.png图片由作者制作我是美国辛辛那提大学航空航天工程系的博士候选人同时也是 Gen Nine 的机器学习工程师。我在博客文章和领英上谈论人工智能和机器学习。如果您喜欢这篇文章并想了解更多关于机器学习的内容以及跟随我的研究您可以A. 在**领英上关注我我在那里发布所有故事。B. 订阅我的通讯。这将让您了解新故事并有机会给我发信息以便接收您可能有的所有更正或疑问。C. 成为推荐会员这样您就不会有“每月故事数量上限”的限制您可以阅读我以及成千上万的机器学习和数据科学顶级作家关于最新技术的所有文章。D. 想和我合作请查看我的收费和项目Upwork**如果您想向我提问或开始合作请在这里或**领英**上留言[email protected]
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建设官方网站查询网站建设策划书范文

目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果实现截图 同行可拿货,招校园代理 基于python的演唱会阳光音乐厅订票系统_9z622_pycharm django…

张小明 2026/1/1 18:42:06 网站建设

汽车租赁网站的设计与实现深圳工业设计工资

你是否曾经遇到过这样的情况:看到一个精彩的在线视频想要保存下来,却发现网站不提供下载按钮?或者好不容易找到了下载方法,却因为复杂的操作步骤而放弃?现在,m3u8下载器浏览器扩展为你提供了完美的解决方案…

张小明 2026/1/1 18:42:04 网站建设

学校网站建设通知做的网站怎么打开是白板

yuzu模拟器终极优化指南:GPU加速配置完全解析 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 在体验yuzu模拟器的过程中,你是否经常遇到画面卡顿、帧率不稳的问题?这些困扰的背后…

张小明 2026/1/1 18:42:02 网站建设

青海企业网站建设公司html网页设计代码word文档

如何在Kodi中直接播放115网盘视频?3步搞定云端观影体验 【免费下载链接】115proxy-for-kodi 115原码播放服务Kodi插件 项目地址: https://gitcode.com/gh_mirrors/11/115proxy-for-kodi 你是否厌倦了下载大容量视频文件到本地?想要在家庭影院系统…

张小明 2026/1/1 21:55:34 网站建设

企业网站怎样做可以搜索到做网站上海

Llama-Factory模型评估模块全面解读:准确率、困惑度一键生成 在大模型落地越来越密集的今天,一个现实问题摆在开发者面前:如何快速判断一次微调是否“有效”?不是看训练损失下降了多少,而是真正回答——这个模型现在能…

张小明 2026/1/1 21:55:31 网站建设

网站模板系统网站建设推广好处

还在为复杂的游戏模组安装而烦恼吗?想要轻松管理多个热门游戏的个性化体验?XXMI启动器正是你需要的解决方案!这款专业级游戏模组管理平台让技术小白也能轻松驾驭各类模组配置,为原神、星穹铁道、鸣潮、绝区零等游戏提供一键式模组…

张小明 2026/1/1 21:55:28 网站建设