与生成模型相比,为何机器人研究还在用几年前的老方法?

目前机器人领域取得了显著进展,这些进展预示着未来机器人可以做更多事情。但是也有让人困扰的事情,因为与生成模型相比,机器人的进展还是有点逊色,尤其是 GPT-3 等模型的出现,这一差距更加突出。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

生成模型产生的结果好到令人震惊。如上图左侧是谷歌推出的 Imagen 的输出结果。你可以提供一段文字给它,如「一只仓鼠戴着橙色的小帽,手里拿着我爱 JAX 的纸片」,根据给定的文字,Imagen 会渲染出合理的图像。此外,谷歌还训练了一个大型语言模型 PaLM,可以用来解释为什么笑话很有趣等。他们用 TPUv4 等先进硬件训练模型,并且在计算机视觉领域,研究人员正在开发一些非常复杂的架构,如 Vision Transformers 等。

生成模型发展如此迅猛,与机器人技术相比,两者之间有什么联系呢?

本文中,来自挪威机器人公司「Halodi Robotics」的 AI 副总裁 Eric Jang 介绍了《我们如何让机器人更像生成模型?》。以下为文章主要内容。

作为一名机器人领域专家,生成模型领域的进展让人有点羡慕。因为在机器人领域中,大多数研究者可能仍在使用 ResNet18,这个已有 7 年历史的深度学习架构。我们当然不会像生成模型那样在巨大的数据集上训练模型,所以很少有机器人方面的研究工作成为「耀眼」的头条新闻。

我们知道莫拉维克悖论:相较于认知型任务,灵活的操纵机器人很困难,从直觉上看,让机器人拿起并运送物体这些操作,似乎没有把文字变成图像或解释笑话那么令人印象深刻。​

首先我们给生成模型下一个定义。生成模型不仅仅是渲染图片或生成大量的文本。它还是一个框架,我们可以用它来理解所有的概率机器学习。生成模型有两个核心问题:

1、你要建模的数据类别有多少 bits?

2、你能把模型建的多好?

2012 年 AlexNet 取得突破,它可以对 1000 个类别进行预测,Log2(1000 classes)大约是 10 class bit。你可以把 AlexNet 想象成基于图像的生成模型,包含 10bits 信息。如果你把建模任务的难度升级到 MS-CoCo 字幕任务,这时模型包含大约 100bits信息。如果你正在进行图像生成,例如使用 DALLE 或 Imagen 从文本到图像生成,大约包含 1000bits信息。​

通常对越多的类别进行建模,就需要越多的算力来计算其中蕴含的条件概率,这就是为什么随着类别的增多模型会变的庞大。当我们训练越来越大的模型时,就有可能利用数据中的特征,从而可以学习更丰富的结构。这就是为什么生成模型和自监督学习已经成为流行的方法,可以在不需要大量人工标签的情况下对大量的输入进行深度学习。​

Rich Sutton 在其文章《The Bitter Lesson》中指出:人工智能的大部分进展似乎都是在这股计算热潮中取得的,而其他方面几乎没有发展。Vision 算法、NLP 和 Yann LeCun 的 LeCake 等都受益于这股计算热潮。

图片

这种趋势给我们什么启示?如果你有过渡参数化的模型,其能够处理更多数据,并且模型能够掌握网络中的所有特征,加上很强的算力和训练目标,深度学习几乎总是可行的。​

下面让 DALL-E 2 生成一副图像:一头踏在巨浪上的骡子,这幅图展示了生成模型是如何借助计算热潮取得不凡的成绩。你手握强大的算力(transformer、Resnet 等),并且可以选择 VQVAE、Diffusion、GAN、Autoregressive 等算法来建模。当前每种算法细节很重要,但未来一旦计算机的算力足够强大,这些细节可能就不重要了。但从长远来看,模型规模和良好的架构是所有这些进步的基础。

图片

相比之下,下图展示的是机器人领域泛化研究的现状。目前很多机器人研究人员仍在进行的是小模型训练,并且还没有用过 Vision Transformer!图片

对于从事机器人研究的人来说,他们都希望机器人能更广泛的应用在现实世界中,并且发挥更大的作用。在生成模型领域,研究者面临的问题相对较少,而在机器人研究领域,经常遇到机器人部署难、噪声数据等问题,这些从事生成模型的研究者都不会遇到。

接下来我们从三个不同的维度比较生成模型和机器人技术,这三个方面包括优化、评估和表达能力。

优化​

首先让我们看一个简单的生成模型:PixelRNN。图片

从第一个像素的红色通道开始(红色通道的先验概率是已知的),模型告诉 canvas(顶行)它要绘制的像素。canvas 将完全按照指令绘制,因此它将像素值复制到 canvas 上,然后将 canvas 读回模型中,以预测下一个通道即绿色通道。然后将 R、G canvas 上的值反馈给 RNN,依此类推,最终生成 RGBRGBRGB… 序列。​

在实际的图像生成任务中,可以使用 diffusion 或 transformer。但为了简单起见,我们仅使用前向执行的 RNN。​

现在让我们将一般控制问题转换为 PixelRNN。与生成图像不同的是,我们要生成 MDP(马尔可夫决策过程):状态、动作和奖励的序列。我们希望生成 MDP,这个 MDP 对应于完成某些任务的智能体(如机器人)。这里我们也是从先验知识开始,模型对强化学习 (RL) 环境的初始状态进行采样。这是模型的第一个输入,RNN 对第一个像素 (A) 进行采样,canvas 完全按照指令的要求生成 A。但是,与生成图像不同的是,canvas 总是将之前的 RNN 输出返回,现在的操作是接下来的两个像素(R,S)由当前环境决定:即它接受动作和所有之前的状态,并以某种方式计算 R,S。

图片

我们可以把 RL 环境视为绘制对象(painter object),它执行 RNN 动作,而不是直接在 canvas 上绘制想要的内容,它会使用任意复杂的函数绘制像素。​

如果我们将其与前面绘制图像的 PixelRNN 进行对比,这个任务显然更具挑战,因为当你尝试对想要的图像进行采样,会有一个黑盒,这个黑盒会对要绘制内容造成困难。​

绘制过程中会碰到一个典型的问题:如果环境绘制了一个非预期内的状态,就会有问题,即如何发出纠正指令,以便可以返回到我们尝试绘制的图像。此外,与图像生成不同,我们实际上必须按顺序生成 MDP 图像,并且不能回溯进行编辑,这也带来了优化挑战。​

如果想理解 PPO 这样的 RL 方法是如何泛化的,我们应该在非控制环境下对其进行基准测试,将其应用于图像生成技术,并将其与现代生成模型进行比较。Hinton 和 Nair 在 2006 年的工作中,他们使用 springs 系统对 MNIST 数字合成进行建模。DeepMind 使用 RL 方法复现这种图像合成的部分工作。​

图像生成是研究优化和控制的很好的基准,因为它真正强调了在成千上万个不同场景中进行泛化的必要性。​

近期如 Decision Transformer、Trajectory Transformer 以及 Multi-Game Decision Transformer 表明,upside-down RL 技术在泛化方面做得很好。那么 upside-down RL 技术与在线(PPO)或离线 RL 算法(CQL)相比如何?其实要进行评估也很简便,我们可以评估密度(专家完全观察的似然模型)并验证给定的 RL 算法选择是否可以在测量测试似然度时泛化到大量图像。

评估​

如果想估量机器人在某些任务上的成功率,我们可以使用二项分布。

二项分布的方差为 p(1−p)/N,p 为样本均值(估计的成功率); N 为试验次数。在最坏的情况下,如果 p=50%(最大方差),那么需要 3000 个样本才能使标准差小于 1%!​

如果我们从计算机视觉的角度来看,0.1-1% 范围内的提升是前进的重要驱动力。ImageNet 目标识别问题,自 2012 年以来取得了很大进步,2012 到 2014 年的错误率降低了 3%,然后每年大约降低 1%,有很多人在研究如何使这项工作发挥作用。也许今年 (2022 年) 在基准提升上已经达到瓶颈,但在 2012-2018 年的这 7 年间,研究人员取得了很多进展和成果。

可灵大模型 可灵大模型

可灵大模型(Kling)是由快手大模型团队自研打造的视频生成大模型

可灵大模型 214 查看详情 可灵大模型

图片

在生成建模的其他领域,研究人员一直在降低语言模型的复杂性,以及生成模型在图像上的每维 bit 数(bits-per-dimension)。

图片

图片

下面大致比较一下通用基准的评估速度。2012 年 ImageNet 目标识别测试集中有 150000 个图像。假设每个图像的推理速度为 10ms,并且每次是连续评估每个图像,这样评估每个测试示例大约需要 25 分钟(实际上评估速度要快得多,因为可以进行批量处理)。但这里假设我们只有单台机器人进行评估操作,并且必须连续处理图像。

因为有海量图像,所以我们可以得到标准误差估计在 0.1% 以内。事实上我们不需要 0.1% 的标准误差才能在该领域取得进展,可能 1% 就够了。​

在评估复杂性方面,端到端的性能也是重要的一块。下面我们来看看怎样进行神经网络在模拟任务中的端到端性能评估。Habitat Sim 是目前速度最快的模拟器之一,其设计目的是最大限度地减少神经网络推理和环境步进之间的开销。模拟器可以每秒 10000 step,但由于神经网络的正向传递约为 10ms,该瓶颈导致每个 episode 的评估时间为 2 秒(假设典型的 navigation episode 为 200 step)。这比运行真正的机器人快得多,但比评估单个计算机视觉样本慢得多。​

如果要评估端到端的机器人系统,其多样性水平与我们使用 ImageNet 所做的相似,普通的评估需要 1 周时间来处理数十万个评估场景。这并不完全是合理的比较,因为每个 episode 实际上有 200 个左右的推理过程,但我们不能将单个 episode 内的图像视为独立的验证集。如果没有任何其它 episode 度量,我们只知道任务是否成功,因此 episode 内的所有推理只对二项式估计的单个样本有贡献。我们必须根据数万个 episode 而不是图片来估计成功率。当然,我们可以尝试使用其他策略评估方法,但这些算法还不够可靠,无法开箱即用。​

接下来阶段,我们对真实机器人进行现场评估。在现实世界中每个 episode 大约需要 30 秒的时间进行评估,如果一个由 10 名操作员组成的团队进行评估,每个操作员每天可以完成 300 个 episode,那么每天可以进行大约 3000 次评估。​

如果评估模型需要一整天的时间,这会对工作效率造成很大的限制,因为这样每天只能尝试一种想法。所以我们不能再研究那些将性能逐步提高 0.1% 的小想法,或者非常极端的想法。我们必须想办法在性能上实现大飞跃。虽然这看起来不错,但在实践中很难做到。​

当考虑进行机器人学习迭代过程时,很容易让评估试验的数量远远超过你的训练数据!几个月的不间断评估产生了约数万个 episode,这已经超过了大多数机器人深度学习演示数据集。

图片

几年前,研究人员仍在解决类似让机械臂开门的问题,但这些策略不能进行很好的泛化。研究人员通常按照 10 个 episode 左右的顺序进行评估。但 10-50 次试验实际上不足以保证统计鲁棒性。为了取得好的效果,实际可能要进行超过 1000 次试验以进行最终评估。​

但当进一步扩展试验时会发生什么呢?假如我们最终需要训练具有 O(100,000)种行为、极其通用的机器人系统,我们需要多少次试验来评估这样的通用系统?这里的评估成本变得极其高昂。

这里再强调一次:数据是足够的,评估存在瓶颈!

图片

如何加速评估?

下面介绍关于如何加快通用机器人系统评估的想法。​

方法之一是分别对泛化问题和机器人进行研究。其实深度学习社区已经做到了这一点。大多数计算机视觉和生成建模研究人员并不直接在实际机器人上测试他们的想法,而是期盼一旦他们的模型获得强大的泛化能力,那么它将快速地迁移到机器人上。在计算机视觉领域开发的 ResNets 极大地简化了许多机器人视觉运动建模选择。想象一下,如果一名研究人员每次想尝试不同的神经网络架构时都必须在真实的机器人上测试他们的想法!另一个成功案例是 CLIPort,它将图像 – 文本模型强大的多模式泛化能力与用于抓取规划的基本几何推理解耦。​

我们可以进一步将 RL 的技术堆栈分为「模拟玩具环境」、「模拟机器人」和「真实机器人」三层(按评估难度的增加顺序排列)。

图片

在金字塔的底层,是一般的基准,比如 Kaggle 竞赛的基准。往上走,是一组「玩具控制问题」,以「裸机」的方式研究问题,只有模拟器和神经网络运行,所有与真实世界机器人相关的代码,如电池管理等都不存在。沿着金字塔再向上走,就来到更特定领域,与你试图解决的问题更相关。例如「模拟机器人」和「真实机器人」可能用于相同的任务,并重用相同的底层机器人代码。模拟玩具环境可用于研究一般算法,但与最终机器人领域重叠的较少。在「评估金字塔」的顶部,是我们试图解决的真实机器人任务。直接迭代这个过程非常慢,因此我们都希望在这里花费尽可能少的时间。我们希望,在较低层次上训练和评估的基础模型能够帮助了解哪些想法有效,而不必在顶层进行每一次评估。​

同样,该领域已经以这种解藕的方式运作。大多数有兴趣为机器人做出贡献的人不一定会操控机器人。他们可能会训练最终可能对机器人有用的视觉表示和架构。当然,去耦合的缺点是感知基准的改进并不总是对应于机器人能力的改进。例如正在改进语义分割或视频分类准确性的 mAP 指标,甚至是无损压缩基准(理论上最终应该有所贡献),我们不知道表示目标的改进在实际上如何与下游任务的改进产生映射。所以最终必须在端到端系统上进行测试,以了解真正的瓶颈在哪里。​

Google 曾发表过一篇很酷的论文《Challenging Common Assumptions in Unsupervised Learning of Disentangled Representations》,他们证明了许多完全无监督的表示学习方法不会在下游任务中带来显著的性能改进,除非我们正在执行评估和选择模型使用的是自己关心的最终下游标准。图片

论文地址:https://arxiv.org/pdf/1811.12359.pdf​

另一种降低评估成本的方法是确保数据收集和评估过程一致。我们可以同时收集评估数据和专家操作数据。我们可以通过一定的干预来收集 HG-dagger 数据,这样就可以收集有用的训练数据。同时,每个 episode 的平均干预次数大致可以告诉我们该策略是否够好。我们还可以观察标量指标,而不是二项式指标,因为这些指标的每个 episode 产生的信息比单次成功 / 失败更多。​

使用 RL 算法进行自主数据收集是将评估和数据收集相结合的另一种方法,但该方法需要我们对 episode 进行人工评分,或者使用精心设计的奖励函数。所有这些方法都需要在现实世界中部署大量机器人,这仍然会陷入在现实世界中不断迭代的泥潭。​

让评估算法更快的方法是改进 sim-to-real 的迁移算法。我们可以并行模拟许多机器人,这样就不会再受约束。Mohi Khansari、Daniel Ho 和 Yuqing Du 等人开发了一种被称为「任务一致性损失(Task Consistency Loss)」的技术,该技术将来自 sim 和 real 的表示正则化为不变量,因此策略在 sim 和 real 下的行为应该类似的。当我们将 sim 中评估的策略迁移到 real 时,我们希望确保 sim 中的较高性能指标也确实对应于 real 中的较高性能指标。sim2real 差距越小,就越可信任模拟实验中的指标。

表达性

让我们看看现代生成模型可以输出多少位。每通道 8 位的 64x64x3 RGB 图像为 36864bits。语言模型可以生成任意数量的 tokens,但如果我们将输出窗口固定为 2048 个 tokens,每个 token 有 17bits,总共 36793bits。因此,图像和文本生成模型都可以合成大约 37kbits。随着模型的表现力越来越强,人们对这些模型的感知会发生质的飞跃。甚至有人开始认为语言模型是部分有意识的,因为它们的表达能力太强大!图片

相比之下,当下机器人的表达性如何?这里我们设计一个简化现实世界的环境,桌上有 6 个物品,机器人的任务是必须将一个物品移动到另一个物品的顶部或运送某几个物品,总共 100 个任务。log2(100)大约是 7 个 bits,也就是说“给定世界的状态,机器人能够将原子移动到 N 个状态中的一个,其中 N 可以用 7bits 来描述”。谷歌的 SayCan 算法可以用一个神经网络完成大约 550 个操作任务,这在当前的机器人深度学习标准中是相当令人印象深刻的,总共只有大约 10 个 bits。​

这种比较并不是完美合理的,因为信息的定义在两者之间是不同的,这里只是提供一个粗略的直觉,当人们衡量一组任务与另一组任务的相对复杂性时,需要弄明白什么是重要的。​

我们遇到的挑战之一是机器人的功能仍然有限。如果你看一下 Ego4D 数据集,很多任务都需要双手操作,但现在大多数机器人仍然使用带轮底座、单臂的移动机械手。他们无法移动不能去任何地方,显然我们拥有的只是「机械臂」,这排除了很多有趣的任务。图片

我们需要研究更具表达性的机器人,但是机器人学习算法的表现力是受硬件限制的。下面是机器人开门、打包行李箱、拉上拉链、给植物浇水以及翻转水瓶瓶盖的画面。随着机器人硬件越来越接近真实的人类,在以人类为中心的世界里,你可以做的事情的数量呈指数级增长。图片

随着机器人变得更具表达性,我们不仅需要互联网规模的训练数据,还需要互联网规模的评估过程。如果你看一下大型语言模型 (LLMs) 的进展,现在有很多论文研究调优以及现有模型可以做什么和不能做什么。

比如,BigBench 的基准编译了一系列任务,并询问我们可以从这些模型中获得什么。OpenAI 面向互联网用户评估他们的 DALLE-2 和 GPT-3 模型。他们的工程和产品团队可以从用户参与的人工智能试验中学习,因为任何一位研究人员都很难掌握 LLMs 模型的细节。

最后向读者提个问题,机器人领域中与 GPT-3 或 DALLE-2 API 等价的技术是什么?通过这个等价技术,互联网社区的研究人员可以对机器人研究进行质疑、并了解它到底可以做什么吗?

最后用表格总结优化、评估和表达性之间的比较:

图片

以上就是与生成模型相比,为何机器人研究还在用几年前的老方法?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/567464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Java 8中的Lambda表达式和Stream API是如何简化函数式编程的?(Java 8的Lambda和Stream API在函数式编程中起到了怎样的简化作用?)
上一篇 2025年11月10日 04:14:06
小米14如何设置图标大小?
下一篇 2025年11月10日 04:14:08

相关推荐

  • JavaScript 中使用多个 querySelector 更新页面元素

    本文旨在讲解如何在 JavaScript 的 if 语句中使用多个 querySelector 来更新不同的页面元素,并提供示例代码和注意事项,帮助开发者理解并应用此技术。通过该方法,可以根据特定条件动态修改页面内容,提升用户体验。 使用 querySelector 在 if 语句中更新多个元素 在…

    2026年5月10日
    100
  • 控制HTML Canvas颜色空间输出24位深度TIFF图像

    本教程详细介绍了如何在web前端环境中,特别是结合`html2canvas`和`canvas-to-tiff`库时,通过明确设置html canvas的颜色空间为`srgb`,从而确保输出24位深度的tiff图像。文章将提供具体的javascript代码示例,并解释其原理,帮助开发者解决canvas…

    2026年5月10日
    100
  • HTML中如何实现MathML

    答案是利用HTML5原生支持MathML,只需将MathML代码嵌入标签即可,现代浏览器能直接渲染,无需插件;通过CSS可美化公式样式,如字体、颜色、间距等,提升显示效果;对于老旧浏览器,推荐使用MathJax作为兼容方案,支持LaTeX输入并渲染为高质量公式,兼顾可访问性与跨浏览器兼容性。 在HT…

    2026年5月10日
    000
  • p5.js图像像素化与阈值处理:loadPixels()函数深度解析与性能优化

    本教程深入探讨p5.js中`loadpixels()`函数在图像像素化与阈值处理中的应用。我们将重点讲解如何优化`loadpixels()`的调用时机以提升性能,正确计算图像亮度,并构建清晰有效的条件阈值逻辑。文章还涵盖了避免变量命名冲突、选择合适的绘图函数等关键实践,旨在帮助开发者高效、准确地实现…

    2026年5月10日
    000
  • JavaScript图形可视化与Canvas编程

    Canvas是JavaScript图形可视化核心,通过获取2D上下文实现绘图;可绘制矩形、路径、圆弧并设置样式,结合requestAnimationFrame实现动态柱状图动画。 JavaScript 图形可视化在现代网页开发中扮演着重要角色,尤其适合需要动态展示数据的场景,比如仪表盘、图表、动画和…

    2026年5月10日
    000
  • HTML Canvas动画残影消除:实现动态元素无痕移动

    本文旨在解决HTML Canvas动画中元素移动时产生的残影问题。通过在每个动画帧开始时清空并重绘Canvas背景,可以有效消除元素留下的“轨迹”,实现平滑、无痕的动态效果。文章将详细介绍背景重绘的实现方法,并提供代码示例,同时探讨如何利用半透明背景创建渐隐残影的进阶技巧。 理解Canvas动画中的…

    2026年5月10日
    000
  • HTML结构错误解析与W3C验证器指南

    本文旨在深入解析常见的html结构错误,特别是涉及` `、“和` `元素的不当使用,这些错误常导致w3c验证器报错。我们将详细阐述这些元素的正确语义和放置规则,解释隐式闭合机制如何引发验证问题,并通过实际代码示例展示如何构建符合标准、易于维护的html文档,从而提升网页的兼容性和可访问性…

    2026年5月10日
    000
  • html如何制作水印_HTML水印(文字/图片)添加与设置方法

    使用CSS和HTML可实现网页水印,方法包括:一、通过background-image与data URI嵌入斜向文字水印;二、利用伪元素结合transform旋转生成叠加文字层;三、插入img标签或背景图设置固定位置图片水印;四、用Canvas绘制多行斜纹并转Base64作背景;五、通过禁用右键、屏…

    2026年5月10日
    100
  • Canvas 环形进度条:实现无动画即时显示百分比的教程

    本教程将指导您如何使用html canvas和javascript创建并即时显示一个环形进度条,而无需任何动画过渡。我们将通过调整javascript代码中的关键参数,使得进度条在加载时直接显示目标百分比,并提供优化方案以避免不必要的定时器开销,确保高效且直接的视觉反馈。 在Web开发中,进度条是常…

    2026年5月10日
    000
  • HTML5画布动画:制作简单动画的代码实现指南

    答案:使用HTML5 Canvas API制作动画需先创建canvas元素并获取2D上下文,接着绘制基本图形,通过requestAnimationFrame实现循环更新位置与重绘,结合速度变量和边界检测控制运动,最后用对象数组管理多个动画元素。 如果您尝试在网页中创建动态视觉效果,但不知道如何开始,…

    2026年5月10日
    000
  • 如何自学HTML5_HTML5自学技巧【指南】

    掌握HTML5需系统学规范、用平台实操、拆解开源项目、做功能练习、测无障碍性。重点包括语义标签、表单控件、localStorage、Canvas及ARIA等,结合W3C文档、CodePen、GitHub与校验工具实践。 如果您希望掌握HTML5的基础知识并独立构建网页,可以从理解其核心语法和语义化结…

    2026年5月10日
    000
  • 怎样使用JavaScript进行图像处理与滤镜效果实现?

    JavaScript通过Canvas API实现图像处理,先加载图像并绘制到canvas,再用getImageData获取像素数据,遍历修改RGB值实现灰度、反色、亮度调节等滤镜,最后用putImageData将结果渲染回canvas。 JavaScript 可以通过 HTML5 的 Canvas …

    2026年5月10日
    000
  • HTML5Canvas怎么画图_HTML5Canvas元素绘制图形的基本方法与实例

    Canvas通过JavaScript绘制图形,需先创建画布并获取2D上下文;使用fillRect、strokeRect绘矩形,arc绘圆,lineTo连线,结合fillStyle等设样式;示例绘制了黄色笑脸,包含眼嘴,体现其在图形与动画中的灵活性。 HTML5 中的 Canvas 元素提供了一个通过…

    2026年5月10日
    000
  • 使用C++构建机器学习模型:初学者入门指南

    使用 c++++ 构建机器学习模型的初学者指南。首先安装编译器和线性代数库,创建数据集,建立线性回归模型,优化模型权重以训练模型,然后使用模型预测目标值。实战案例演示了使用房屋面积和价格数据集预测房屋价格。 使用 C++ 构建机器学习模型:初学者入门指南 简介 利用机器学习构建强大的预测模型对于解决…

    2026年5月10日
    000
  • 利用CSS实现高性能无缝循环背景动画的实践指南

    本教程深入探讨了javascript canvas中实现无缝循环背景动画时可能遇到的常见逻辑问题,例如图像位置重置失效导致动画中断。针对这些挑战,我们提出并详细讲解了如何利用css的`background-repeat`、`transform`和`@keyframes`属性,构建一个高性能、平滑且易…

    2026年5月10日
    000
  • PHP图片怎么滤镜_PHP图片滤镜效果实现及图像处理库。

    可通过GD库和ImageMagick实现多种PHP图片滤镜。一、灰度滤镜:启用GD后,用imagecreatefromjpeg()加载图像,imagefilter($image, IMG_FILTER_GRAYSCALE)转灰度,保存并释放资源。二、复古滤镜:加载图像后叠加色彩偏移imagefilt…

    2026年5月10日
    000
  • p5.js 中函数首次调用耗时较长的原因分析与优化

    在 p5.js 中,尤其是在使用 WEBGL 渲染器时,函数首次调用往往比后续调用耗时更长。这是由于图像纹理的初始化和上传过程导致的。首次调用时,需要分配显存、将图像数据复制到显存,并进行着色器编译等操作,这些操作会显著增加耗时。后续调用则可以直接使用缓存的纹理,从而大大提高效率。本文将深入探讨这一…

    2026年5月10日
    000
  • 使用ThreeJS在Canvas中实现动态图像效果并与DOM同步

    本文探讨了如何在网页中利用html `canvas>` 元素,结合threejs库,实现高级动态图像效果并与常规html dom元素完美同步。针对将图像渲染到canvas而非直接使用html “ 标签的挑战,我们揭示了threejs多元素渲染的核心机制,即通过动态调整渲染器的视口和裁剪区域,…

    2026年5月10日
    000
  • typescript用来干嘛_typescript的作用

    TypeScript 是一种用于构建大型复杂应用程序的开源编程语言,它扩展了 JavaScript 的功能,具有以下作用:类型系统:编译时检查类型错误,提高代码可靠性。面向对象编程特性:支持类、接口、抽象类,增强代码组织性和维护性。模块系统:分解程序为可重用模块,提升可维护性和可扩展性。全面的类型推…

    2026年5月10日
    000
  • JavaScript中Base64图片到ImageData数组的转换指南

    本文详细介绍了在javascript中如何将base64编码的图片字符串转换为可用于像素级操作的imagedata数组。通过利用html canvas元素和image对象,教程将逐步演示从加载base64图片、绘制到canvas,最终提取imagedata的过程,并提供完整的代码示例及注意事项,帮助…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信