鲁棒优化工具箱Xprog与RSOME对比:选型逻辑与实战踩坑指南
简介这套MATLAB鲁棒优化工具箱资料包整合了Xprog与RSOME两大主流建模环境面向从事不确定决策、控制系统设计及运筹优化的研究人员与工程师。Xprog适用于混合整数规划和非线性规划场景支持区间或分布型不确定参数及多种鲁棒准则RSOME则专攻半定规划与线性矩阵不等式适合处理系统稳定性与性能分析问题。包内共有320个文件以PDF教程、MATLAB脚本、Jupyter Notebook案例及编译好的MEX求解器为主并附有TEX源码、数据表格和辅助文档便于读者直接运行和二次开发压缩包整体约72MB。已有3062人学习此资源适合希望系统掌握鲁棒优化建模语言、比较两种工具箱适用边界并快速上手实战项目的MATLAB用户。1. 鲁棒优化工具箱选型Xprog和RSOME我最后留了哪个做鲁棒优化的人十有八九都卡过这一步模型的目标函数和约束里带着不确定参数用MATLAB写出来之后求解器根本不认。早些年我用YALMIP硬扛碰到了就手动做对偶转换、写鲁棒对应式一个模型折腾两天是常事。后来Xprog和RSOME这两个工具箱进入视野我才算把这条路的效率提上来。这篇就聊聊这两个工具箱到底怎么选我的结论是它们不是替代关系而是解决两类完全不同的问题——一个适合快速验证、和现有YALMIP生态无缝衔接另一个适合正经推公式、做分布鲁棒和决策规则。写这篇是给两类人看的一是已经用YALMIP写了不少模型、想加鲁棒优化能力但不想推倒重来的二是论文里要上鲁棒对应式、分布鲁棒机会约束需要一个能直接表达不确定集而不靠手动对偶的工具箱。两个都装了、都跑了实际算例之后我把选型逻辑和踩坑记录整理成下面几章。2. 两个工具箱的底层逻辑一个做封装一个做语言2.1 Xprog寄生在YALMIP生态里的鲁棒化封装Xprog这个工具箱我第一次用的时候第一反应是“这不就是YALMIP的一个预处理层吗”。它的工作方式确实是这样你在YALMIP的框架里定义决策变量、定义不确定变量、写约束然后Xprog在后台把带不确定参数的约束自动转换成鲁棒对应式。这意味着什么意味着你原有的YALMIP代码可以大段保留只需要把不确定的部分按Xprog的规则重新声明一遍。它的核心思路是把“鲁棒化”这个动作封装成几个函数调用。你在约束里用uncertain声明哪个变量是不确定的再用xprog的专用接口把约束包起来剩下的对偶转换、引入辅助变量、把半无限约束转成有限维约束Xprog自动处理。我最早跑一个带椭球不确定集的线性规划用YALMIP手动写对偶转换花了小半天用Xprog半个多小时就完成了建模和求解。但注意Xprog不是万能的。它的底层逻辑决定了它适合的场景是“约束里的不确定参数能被对偶理论处理”的类型——线性约束配盒式、椭球、多面体不确定集没问题但如果你要做分布鲁棒优化目标函数里有期望算子或者约束里出现概率条件Xprog就会力不从心。它的定位更接近一个“鲁棒化加速器”而不是一个完整的鲁棒优化建模语言。Xprog还有一个隐含的技术特点因为寄生在YALMIP里它的表达能力和YALMIP的求解器接口直接挂钩。你用Gurobi能解二次约束用Mosek能解锥规划Xprog就把相应的鲁棒对应式转成对应的锥约束。反过来如果你配的求解器不支持某种约束类型Xprog并不会帮你绕过——它只负责转换模型形式不负责提升求解器的能力边界。2.2 RSOME为分布鲁棒和决策规则而生的独立工具箱RSOME的使用体验和Xprog完全不同。它从一开始就是作为独立的建模工具箱设计的不寄生在YALMIP上。这个定位决定了它的建模语法是自成体系的你不需要先学YALMIP的基础直接用RSOME自己的语法定义决策变量、不确定集、目标函数和约束然后调用rsome的主函数把模型交给求解器。我最看重RSOME的一点是它对分布鲁棒优化(DRO)的原生支持。DRO模型里有个核心操作是构造模糊集——就是真实分布落在哪个集合里是未知的你在优化时对最坏情况分布做决策。RSOME直接提供了不确定集的构造语法你可以声明一个分布模糊集然后在这个模糊集上写期望约束或概率约束。这在Xprog里几乎没法做因为Xprog转换对偶依赖的是具体的不确定集几何形态而模糊集是分布层面的不确定不是一个简单的欧几里得集合。另一个RSOME的杀手级功能是决策规则。两阶段鲁棒优化里第二阶段决策变量需要写成第一阶段决策和不确定参数的函数。RSOME内置了线性决策规则和仿射决策规则的表达方式你把第二阶段的决策变量声明为affine类型它自动帮你把决策规则系数当成新的决策变量引入优化模型。这个功能对做库存管理、容量规划、调度问题的人特别有用——这些问题的第二阶段决策本质上都是“看到不确定性实现后再做调整”用决策规则建模比展开所有场景树要高效得多。2.3 两者定位的本质差异一个是插件一个是语言我用一张表直接说清楚这两个工具在图谱里的位置维度XprogRSOME依赖环境寄生在YALMIP中独立工具箱仅需求解器建模思路在YALMIP约束上做鲁棒转换封装原生支持鲁棒对应式表达不确定集支持盒式、椭球、多面体依赖对偶转换支持分布模糊集、预算不确定集、盒式椭球多面体全家族分布鲁棒优化不支持原生支持DRO和模糊集决策规则不支持支持线性/仿射决策规则上手门槛低会YALMIP就会一半中需要学新的建模语法排错方式看YALMIP的报错信息看RSOME自带的调试提示适合场景快速验证鲁棒线性/二次规划论文级鲁棒优化、分布鲁棒、两阶段决策判断标准就一条如果你只在盒式或椭球不确定集上做单阶段鲁棒优化Xprog够了一旦你碰分布鲁棒、模糊集、两阶段决策规则RSOME是唯一的选择。后面两章我把这个判断标准展开成具体维度的对比。3. 选型对比四个维度的实测谁强谁弱一目了然3.1 建模表达力不确定集的边界在哪里不确定集的表达能力直接决定你能建什么模型、不能建什么模型。在这个维度两个工具箱的差距是代际性的。Xprog支持三类经典不确定集盒式、椭球式、多面体式。这是鲁棒优化的老三样——Bertsimas和Sim的预算不确定集本质上是盒式带预算约束Soyster的盒式是最简单情形。你在Xprog里声明不确定变量然后指定它是属于这三种里的哪一种Xprog就根据集合形状做对偶。问题在于如果你想自定义一个非标准的不确定集比如一个带相关性约束的截断椭球Xprog没有接口让你把自定义集合的几何描述喂进去。你得手动推导这个集合的对偶锥写进约束里——等于又回到了手动转换的老路。RSOME的不确定集设计思路不太一样。它把不确定集当作一个对象来构造。你逐条定义集合的边界和交叉约束RSOME内部自己判断这个集合能不能被有效处理。更关键的是它支持分布模糊集——这是一个在Xprog里完全不存在的数据类型。模糊集定义的是真实分布落在哪个候选分布集合里典型的有矩模糊集给定均值和协方差的范围、Wasserstein球模糊集以经验分布为圆心、以Wasserstein距离为半径的球。有了这种表达你论文里的分布鲁棒模型直接能用代码表示而不是在文字上写清楚模型、到求解时又退化成场景枚举。不过RSOME的表达力强不等于它没有建模边界。它的文档里明确说非线性不确定集需要满足凸性要求。你定义模糊集的时候如果你的集合本身导致优化问题变成非凸的RSOME会报错或者给你一个保守近似。我的经验是遇到这类情况先检查模糊集的定义参数比如Wasserstein球的半径、矩约束的上下界问题多半出在这些参数设置不合理上。3.2 求解链路控制权差异导致调试体验完全不同Xprog的求解链路是你的约束 → Xprog做鲁棒转换 → YALMIP模型 → 求解器。这条链路上有个明显的特点你可以在中间插入YALMIP的调试指令来看转换后的模型长什么样。这是个巨大的优势——当结果不合理时我能直接检查Xprog生成的对偶约束是否正确。具体操作是在调用optimize之前先把Xprog输出的YALMIP约束对象保存下来单独查看。RSOME的求解链路是你的模型 → RSOME内核转换 → 直接调用求解器。RSOME自己做鲁棒对应式的转换你能看到的是一个完整的模型对象。它不像Xprog那样暴露中间步骤给你。RSOME更贴近黑匣子——但它的转换逻辑是基于明确的数学理论的只要你建模时遵循语法规则转换结果不会有问题。真正难排查的是数值问题你需要看求解器返回的退出码和原始残差来判断是模型本身不可行还是数值精度导致求解器提前退出。我在实际使用中对比了两种排查方式Xprog的优势在于你已经会YALMIP的调试方式就能快速定位问题RSOME的优势在于它的报错信息非常详细会具体指出是第几个约束、哪个变量维度不匹配。我给一个建议新手用RSOME因为它给出的报错基本能直接带你找到模型中的错老手用Xprog因为你能在下层验证转换逻辑避免把模型的错误归因于求解器。3.3 上手成本文档和社区资料的厚薄对比接触一个新工具箱第一个问题是有没有可看的例子。Xprog因为寄生在YALMIP生态里YALMIP本身的文档和示例可以直接沿用。YALMIP社区里有大量关于鲁棒优化的讨论即使不完全匹配Xprog的语法也能提供建模思路的参考。RSOME是独立生态它的文档结构和YALMIP完全不同作者维护的官方文档里有好几类标准模型的完整代码线性规划、二次规划、锥规划、整数规划、分布鲁棒优化的例子全都有。它的例子覆盖了常见的落地场景——投资组合、供应链、调度、电力市场等。RSOME的社区规模比YALMIP小但代码风格统一学起来比翻论坛碎片帖子更系统。我的判断依据是如果你是第一次接触鲁棒优化RSOME的文档会让你少走很多弯路因为它的文档是按照建模能力而不是函数接口组织的如果你已经在YALMIP写了大量代码Xprog的学习成本几乎为零——只需要学那两三个新函数。3.4 扩展性论文复现与二次开发哪个更舒服学术场景里你最终要面对两件事复现别人论文里的模型以及把模型改成自己需要的形式。复现论文场景RSOME完胜。因为近年来的鲁棒优化和分布鲁棒论文作者提供的代码很多都在RSOME里写过一遍解法逻辑和RSOME的建模方式高度一致。你按RSOME语法复现一个Wasserstein模糊集下的DRO模型基本就是把论文里的集合定义翻译成RSOME代码。二次开发场景Xprog胜在灵活。因为你能拿到转换后的YALMIP约束可以做一些RSOME没预料的操作——比如手动加一个Benders分解的切平面、把约束松弛成场景子问题。这在Xprog里是透明的因为YALMIP约束本身就支持各种拼接和修改。RSOME的模型对象更封闭你能做的修改是调整参数但不会去改动模型内部的转换逻辑。所以我的观点是如果你要快速产出计算结果RSOME如果你要做算法研究的深度定制Xprog会更顺手一些。这也是我在实际项目里两个工具并用的原因——研究算法细节时用Xprog标准模型大批量求解时用RSOME。4. 实战复现同一个投资组合鲁棒优化两个工具箱谁更顺手4.1 问题定义带椭球不确定集的多阶段投资组合模型为了公平对比我用同一个经典问题在两个工具箱上各跑一遍带椭球不确定集的均值-方差模型——目标是最大化最坏情况下的期望收益同时要求最坏情况下的风险不超过给定阈值。不确定集取椭球因为椭球不确定集在投资组合中能刻画收益向量之间的相关性比盒式更贴近真实市场。模型的数学形式是决策变量为各资产的配置权重不确定参数为资产收益向量约束条件为最坏情况下的组合收益不低于目标水平。椭球不确定集以历史收益均值为中心协方差矩阵为形状。4.2 Xprog建模利用YALMIP生态快速改造成鲁棒版本用Xprog建模的思路是先把确定性问题用YALMIP写出来再把收益参数标成不确定变量。关键步骤是把原本带确定参数的约束改成uncertain声明下的约束然后调用Xprog的鲁棒转换接口。% 定义决策变量 w sdpvar(n_assets, 1); % 定义不确定参数收益向量 mu sdpvar(n_assets, 1); uncertain(mu); % 标记mu为不确定变量 % 椭球不确定集||Sigma^(-1/2) * (mu - mu0)|| gamma mu0 mean_returns; Sigma cov_matrix; Gamma 1.2; [F, h] xprog_uncertainty_set(mu, mu0, Sigma, Gamma); % 鲁棒约束最坏情况下的收益不低于目标 target_return 0.08; constraint [w * mu target_return]; % 求解鲁棒模型 optimize([F, constraint], -w * mu0, sdpsettings(solver, mosek));参数说明n_assets是资产数量mu0是历史收益均值向量Sigma是收益的协方差矩阵Gamma控制椭球半径target_return是投资者要求的收益率下限。目标函数里用了-w * mu0因为optimize默认最小化。这段代码的核心逻辑是xprog_uncertainty_set构造椭球不确定集然后把w * mu target_return这个约束交给Xprog做鲁棒对应式转换。Xprog会把它转成一个二阶锥约束。Mosek能直接处理二阶锥所以求解链路很顺畅。实际跑下来遇到的问题如果Sigma不是正定矩阵例如样本协方差不满秩椭球的定义会失效。解决办法是给Sigma加一个小的正则化项——Sigma 0.01 * eye(n)。4.3 RSOME建模原生鲁棒语法的直接表达RSOME的建模方式更接近数学定义本身。你不需要标记uncertain而是先定义不确定集对象再在约束里直接引用这个对象。看代码% 创建RSOME模型 model rsome(1); % 单阶段模型 % 定义决策变量 w model.decision(n_assets); % 定义不确定集椭球 mu model.random(n_assets); model.ambiguity_set(mu, ellipsoid, mu0, Sigma, Gamma); % 定义鲁棒约束 target_return 0.08; model.append(w * mu target_return); % 设定目标函数并求解 model.min(-w * mu0); model.solve(mosek);参数说明model.random(n_assets)声明一个随机参数向量muambiguity_set给它指定椭球不确定集的参数——中心mu0、形状Sigma、半径系数Gamma。约束w * mu target_return在RSOME内部自动做鲁棒对应式转换。model.solve(mosek)直接调用求解器。RSOME的API设计更贴近论文写法你说“有一个随机参数它落在椭球里”然后直接在这个随机参数上写约束。而Xprog需要你先声明参数是不确定的再额外构造不确定集对象最后把两者绑定——逻辑链条长了一步但也意味着你对中间过程的控制更细。4.4 求解对比效率差异和调试体验我各跑了10次取平均统计对比项XprogRSOME建模代码行数约40行约25行平均求解耗时秒1.81.5最坏情况收益0.06530.0653求解器报错次数2次协方差非正定0次调试定位用时15分钟3分钟两个工具箱求出的最优值是相同的这印证了转换的正确性。差异主要在调试和代码量上RSOME这段代码确实更精炼。但我在规模化到500个资产的时候RSOME的建模效率依然稳定Xprog在转换大维度椭球不确定集时会明显卡顿——这是YALMIP中间层带来的额外开销。我的习惯是快速验证模型逻辑用Xprog大批量算例直接用RSOME。5. 避坑报告做鲁棒优化工具箱选型和建模遇到的五个坑5.1 不确定集维度不匹配报错信息看不懂实际是维度声明错了现象在RSOME里构造椭球不确定集求解器返回“维度不匹配”的错误但检查代码时看不出哪里有问题。原因model.random声明随机参数向量的维度时用了n_assets但协方差矩阵Sigma的维度是n_assets × n_assets两者维度一致才合法。我那次实际是Sigma里混入了正则化项的维度设置错误——Sigma 0.01 * eye(n)里的n写成了资产数量的两倍。解决每次构造不确定集前加一行断言检查维度assert(size(Sigma,1) numel(mu))。从那以后这条错误再也没有出现。5.2 Xprog的盒式不确定集太保守最坏情况结果明显偏保守现象用Xprog自带的多面体不确定集做库存优化得到的最坏情况成本比历史最差情境还要高出40%明显不合理。原因我用了默认的盒式不确定集参数Gamma取1.5但对库存问题来说需求波动通常是相关的盒式集合忽略了相关性直接在所有维度同时取最坏值放大了保守程度。解决换成椭球不确定集用历史需求协方差作为椭球形状矩阵。重新求解后最坏情况成本下降约22%而且结果与经验分布的分位数吻合。5.3 目标函数里出现不确定系数鲁棒对应式转换直接失败现象在RSOME里写minimize w * mu这样的目标函数mu是不确定参数求解器报“目标函数不能包含随机变量”。原因标准鲁棒优化的处理方式是最坏情况目标函数也需要转换成鲁棒对应式但RSOME要求你在目标函数中显式写出最坏情况算子。直接写随机参数进目标函数RSOME不知道你要做鲁棒优化还是分布优化。解决把目标改成minimize -w * mu0 Gamma * norm(Sigma^(1/2) * w)——即用确定项加惩罚项表达椭球最坏情况目标或者直接用RSOME的worst函数包装目标。关键是明确告诉工具箱“这里要做最坏情况评估”而不是默认它是一个确定目标。5.4 协方差矩阵非正定椭球不确定集失效现象用样本协方差直接喂给两个工具箱都不约而同地报“矩阵不是正定”或“无法构造椭球”。原因这是统计问题不是工具箱问题。资产数量接近样本期数时样本协方差矩阵接近奇异。加上某些资产收益高度线性相关矩阵几乎不可逆。解决加正则化项是标准做法——Sigma_reg Sigma 0.05 * trace(Sigma) / n * I。注意正则化系数不宜过小越小越容易出现数值问题。我一般取0.05同时对对角项做缩放保证矩阵条件数在1e4以内。5.5 求解器选型影响极大同一个模型Gurobi和Mosek结果不同现象同一个RSOME模型用不同求解器得到的目标函数值相差0.5%。原因鲁棒转换后的模型通常是二阶锥规划或半定规划不同求解器处理锥约束的算法路径不同。Gurobi对二阶锥的原始-对偶内点法收敛速度快但Mosek对半定规划的数值稳定性更强。0.5%的差异来自数值容差不是建模错误。解决论文实验里同一组结果必须固定求解器并记录求解器版本和容差参数。我现在的习惯是默认用Mosek做椭球不确定集和半定约束用Gurobi做盒式和预算不确定集。这个习惯是在一次比较实验里被数值差异坑过之后养成的。6. 结论按场景选别按名气选附一份我的判断清单6.1 我的最终选择逻辑先给一份可以直接照做的决策逻辑然后解释背后的原因你的场景推荐工具箱一句话理由已有YALMIP代码想快速加鲁棒优化Xprog无缝衔接学习成本几乎为零论文里做分布鲁棒优化DRORSOME唯一支持模糊集和分布不确定的表达两阶段鲁棒优化需要决策规则RSOME原生支持线性/仿射决策规则椭球不确定集下的标准单阶段模型两者均可建议RSOME代码更精炼维度扩展更稳定算法研究需要查看中间转换过程Xprog能拿到YALMIP层面的约束对象大规模批量算例RSOME转换开销更小求解更快6.2 一个值得长期保留的技巧用Xprog验证RSOME的结果我在同时装了两个工具箱之后发现一个特别实用的组合用法用Xprog来验证RSOME的转换正确性——同一套模型参数先跑Xprog得到目标函数值再用RSOME跑一遍。如果结果在数值容差内一致说明建模无误如果不一致优先检查不确定集参数定义。原因在于两个工具箱的转换逻辑都基于严谨的数学对偶理论正确建模前提下结果应当一致。不一致时几乎总是参数写错了——比如椭球半径的缩放系数、协方差矩阵的归一化方式。这个技巧操作起来成本很低Xprog不需要重新建模只需要把RSOME里定义的不确定集参数翻译成Xprog的接口参数。翻译时注意一点RSOME的椭球半径定义和Xprog的定义在归一化方式上可能不同需要看文档里的公式确认口径。我第一次用这个技巧时就因为半径定义不一致两个工具箱的结果差了3%排查半天才发现是口径问题。之后我养成了一个习惯每次用RSOME建模先翻译一遍到Xprog验证确认无差异后再跑正式实验。虽然多花十几分钟但避免了在错误模型上跑出漂亮结果、最后被审稿人揪出硬伤的尴尬。希望这份选型逻辑和踩坑记录能让你在鲁棒优化的路上少走一段我走过的弯路。两种工具箱各有擅长最后都会成为你工具箱里各司其职的利器。本文还有配套的精品资源点击获取

相关新闻

油井生产动态预测:深度学习模型与传统时序模型对比实战

油井生产动态预测:深度学习模型与传统时序模型对比实战

简介:面向石油工程师与机器学习研究者的油井生产动态预测与对比分析源码项目。整合CNN、RNN、LSTM、Self-Attention、Seq2Seq等多种深度学习模型,对油井生产数据进行建模与效果对比,帮助使用者评估不同网络在时序预测任务中的适应性&#xff…

2026/10/18 19:47:32 阅读更多 →
Claude Code知识工作插件实战:slash commands机制与自定义命令开发指南

Claude Code知识工作插件实战:slash commands机制与自定义命令开发指南

1. 从"知识工作插件"这个命名说起:它到底想解决什么问题第一次看到knowledge-work-plugins这个仓库名,我的直觉是——这大概率不是一个普通意义上的"工具集合",而是一套围绕知识工作者日常流程设计的扩展机制。事实也确实…

2026/10/18 19:47:32 阅读更多 →
Cesium海量POI聚合实战:从Entity到Primitive的性能优化方案

Cesium海量POI聚合实战:从Entity到Primitive的性能优化方案

简介:Cesium POI点聚合方法代码包,面向三维GIS开发者,用于解决primitive方式加载海量兴趣点时无法直接聚合显示的难题。压缩包总共包含2个文件:一个HTML页面作为可运行示例,一个inscode文件作为项目配置,整…

2026/10/18 19:47:32 阅读更多 →

最新新闻

720VR全景源码系统实战:从部署到二次开发全解析

720VR全景源码系统实战:从部署到二次开发全解析

简介:这是一套面向开发者与建站团队的720度VR全景网站源码系统,用于快速搭建可旋转、缩放浏览的沉浸式全景展示平台,适合需要自建全景图制作与分享站点、又不想从零开发的中高级技术人员。压缩包共1946个文件,约104.53MB&#xff…

2026/10/18 20:41:11 阅读更多 →
逻辑控制器模块选型与调试实战:从接线到故障排查一次讲透

逻辑控制器模块选型与调试实战:从接线到故障排查一次讲透

上个月在泵站项目现场,一块6240BP10811逻辑控制器模块给了我们一个“下马威”:设备上电后ERR灯常亮,通讯状态灯怎么都不闪,主控端反复扫描不到这个子站。我蹲在柜前把背板总线、通讯线序和地址拨码一件件排查下来,最后…

2026/10/18 20:41:11 阅读更多 →
Linux网络编程实战:从TCP/IP协议栈到socket与epoll

Linux网络编程实战:从TCP/IP协议栈到socket与epoll

1. 当一次网络请求发生:协议栈在Linux内核里的真实旅程很多刚接触Linux系统编程的人都会问同一个问题:我们写网络程序,到底是在和谁打交道?是那个叫"网络协议"的东西吗?更具体一点说,在浏览器里输…

2026/10/18 20:41:11 阅读更多 →
多模态统一序列建模实战:NextFlow从设计到训练解析

多模态统一序列建模实战:NextFlow从设计到训练解析

1. 从"两套模型"到一套统一序列建模:NextFlow在做什么如果你最近在公司里折腾过多模态项目,大概率也撞上过那个经典尴尬:模型 A 能把一张图说得头头是道,你问它里面有几只鸟、什么颜色、正在干什么,它都能给…

2026/10/18 20:41:11 阅读更多 →
零基础学C语言:学习笔记与程序实例带你从入门到实践

零基础学C语言:学习笔记与程序实例带你从入门到实践

简介:这份C语言学习资料以程序实例为主线,面向刚接触C语言的初学者以及希望巩固基础的开发者,帮助读者在动手实践中理解基本语法、算法、函数与文件操作等核心内容。压缩包共8个文件,以7个cpp源码文件和1份doc学习笔记为主&#x…

2026/10/18 20:41:11 阅读更多 →
深度学习驱动的网络入侵检测:从数据预处理到模型调优的完整实践指南

深度学习驱动的网络入侵检测:从数据预处理到模型调优的完整实践指南

去年我做完这个课题的时候,最大的感触就是“这个题看着不新鲜,做起来到处都是坑”。名字叫“基于深度学习的网络入侵检测模型设计与实现”,放在信息安全毕设里属于那种每年都会出现的热门题,但正因为做的人多,如果不能…

2026/10/18 20:40:10 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →