☰
AI驱动的决策框架拆解:从强化学习原理到库存补货实战
2026/10/31 3:42:07 网站建设 项目流程

蓉阅系列写到第31期了。这期不聊工具教程,也不写完整项目复盘,专门拆一篇期刊论文的第三章,核心主题就是AI驱动的决策框架。这类标题在期刊里其实不算罕见,但这篇第三章很特别:它不是画个架构图就完事的“政策型”论文,而是把每个模块的输入输出、状态怎么编码、奖励函数怎么设计、训练时要注意什么,全部交代得比较清楚。我读完以后,直接把它复现到了自己手头一个库存补货场景里,效果比原来的规则策略好出一截,所以这期想认认真真把这一章拆开来讲。

这篇内容适合两类人:一类是正在做推荐、定价、调度、供应链这类决策系统的工程师,可以对照着调整自己的方案;另一类是刚接触强化学习、想搞明白“AI决策框架到底是怎么落地的”新手。我按自己的阅读轨迹来写,先讲论文在解决什么问题,再拆框架结构,接着讲几个核心选型逻辑,最后分享我在自己项目里的复现过程和踩坑记录。前两节帮你建立整体认知,后两节提供可以直接抄作业的经验。

1. 为什么我要把第三章单独拎出来精读

1.1 这篇论文到底在解决什么问题

论文要解决的是一个很普遍也很头疼的问题:真实业务场景里的决策,怎么做才能又快又好。库存补货、动态定价、广告投放、客服调度、风控策略,这些都属于典型决策场景。传统做法是“业务规则 + 人工经验 + 单点优化模型”,比如库存低于阈值就补货、价格跟着竞品走、排班靠老员工手排。问题很明显:规则僵硬,环境一变就得改规则;单点优化模型只能看到静态约束,处理不了序列决策;反馈又滞后,一个决策的效果要等很久才能从业务指标上看出来。

比如一个补货场景,规则是“低于安全库存就补到上限”,这个规则在平稳需求下没问题,但一旦遇到促销、天气变化、竞品降价,需求突然波动,规则就会要么缺货要么积压。优化模型可以基于需求预测算最优补货量,但预测本身有误差,而这个误差会在一个补货周期内不断累积,最后执行出来的效果可能比规则还差。

论文的切入方式,是把决策问题建模成马尔可夫决策过程,用强化学习做闭环决策。也就是说,不再靠人去写“如果……就……”这样的规则,而是让模型直接学习“看到什么状态,应该采取什么动作”,再用业务结果作为奖励信号持续迭代。这个思路在我做过的推荐、定价项目里同样成立,所以我看到这个切入角度时,就知道第三章会是硬货。

1.2 第三章在全篇里的位置

论文的结构很标准:第一章是问题引入,第二章做相关研究综述,从运筹优化讲到机器学习再讲到强化学习,第三章就是框架设计,后面的章节是实验和案例验证。我之所以把第三章单独拎出来精读,是因为它决定了后面实验能达到什么水平。算法可以换,数据可以换,但框架如果设计不好,后面怎么调都是白搭。

前两章更多是铺垫,对实践的指导意义有限。第二章综述虽然把基础理论讲清楚了,但距离落地还有距离。第三章直接给出了一套通用决策框架,后面做实验本质上只是换了场景参数。这就像做菜,前两章告诉你食材有哪些、营养成分是什么,第三章直接给了你一份可以照着做的菜谱。所以如果你时间有限,只想读一章,我会建议读第三章。

另外还有一点我很欣赏:作者不是只给了框架图,而是把每个模块的边界条件、输入输出都做了说明。很多论文的框架图画得很漂亮,一到细节就含糊,这一章不是这种风格。我后面能顺利复现,就是因为在读这章时找到了足够多的实现细节,而不是靠猜。

2. 这个AI驱动的决策框架到底长什么样

2.1 五层架构拆解

这一章提出的框架,我把它理解成五层:感知层、预测层、决策层、执行层、反馈层。每层职责界定得非常清楚。

感知层负责多源数据接入和状态特征编码。这一层听着简单,实际上最影响最终效果。论文强调状态编码可以采用“实体-行为-环境”三维特征。以库存补货为例,实体特征就是商品属性,比如品类、成本、体积;行为特征是历史行为,比如过去7天销量、访问量;环境特征是外部环境,比如季节、节假日、促销日历。把这些特征拼成一个向量喂给模型。论文里有个细节我印象很深:数值型特征一定要做归一化,不然模型收敛会非常慢;类别特征如果基数太大,不要用one-hot,要做embedding。这两点我在复现时都验证过,确实如此。

预测层对未来N步的需求或流量做预估。这一层不是必需的,但如果决策对环境有前瞻性依赖,加一层预测可以给决策Agent提供“前瞻特征”。还拿补货举例,如果未来两周有一个大型促销,决策Agent光看当天库存是不够的,它需要知道需求会突然放大。预测层把促销影响编码成一个特征传下去,决策层才能提前备货。论文的建议是预测层不必单独做一个复杂模型,可以用轻量级的时序模型,因为它只是给决策层提供辅助特征,不是最终输出。

决策层是核心。它接收感知层和预测层拼接好的特征,通过强化学习训练决策策略,输出动作分布。论文重点讲了一个反直觉的选型:为什么要用随机策略而不是确定性策略。一个原因是探索,随机策略天然带有探索性,能在训练初期更多尝试不同动作;另一个原因是应对部分可观测问题,业务系统的状态往往观测不全,随机策略能给决策留出鲁棒性空间。这一点我一开始没太理解,后来在复现中观察到,确定性策略很容易跑到极端动作上,比如疯狂补货或者完全不补,随机策略则稳得多。

执行层负责把动作映射到实际业务操作,同时做安全约束校验。比如价格不能低于成本、补货量不能超过仓库容量、投放预算不能超过上限。论文的一个关键做法是:约束不要写在奖励函数里,而是在执行层做硬约束,动作先经过约束映射再真正执行。这个点我记得特别牢,因为如果约束只在奖励函数里,训练初期模型会频繁违反约束,导致奖励信号混乱、训练崩溃。硬约束相当于给模型装了护栏,让它在合法空间里探索,训练会稳定很多。

反馈层处理延迟奖励、归一化和经验回放。业务反馈往往不是即时的,补货决策的收益要等到一个周期结束才能评估,定价决策的影响可能要几天后才能在转化率上看到。论文用了奖励分解和episode回报估计来处理延迟奖励。反馈层还承担数据回流的功能,把新产生的业务数据持续送回到感知层,形成闭环。一个决策框架如果少了反馈层,本质上只是一个离线打分模型,谈不上“AI驱动”,因为模型永远在静态学习。

2.2 各层之间的接口设计

这套框架好落地,很大程度上是因为接口定义清楚。感知层输出状态向量,用数学语言写就是 s_t = enc(业务特征),这个向量的维度要控制在几十到几百,不能太大,否则决策层的模型会很难训。我做过的项目里,有些人喜欢把能拿到的特征全塞进去,结果状态空间爆炸,训练慢到无法接受。

动作层的设计也有讲究。离散动作可以直接用类别,连续动作要用有界分布。论文有个建议我很认可:连续动作推荐用Beta分布而不是高斯分布。原因是业务参数通常有上下界,比如补货量只能在0到某个上限之间,Beta分布天然在有界区间采样,不会产生越界动作,训练也更稳定。用高斯分布的话,采样出来的动作经常超出业务边界,你还得额外做截断,截断又会影响梯度更新。

奖励接口可以理解为“业务指标的机器翻译”。奖励函数 r_t = 业务指标组合,但要注意不同指标的scale统一。论文里说得很细,利润和缺货惩罚不是一个量纲,直接相加的话,大数会完全掩盖小数。比如毛利是几百块,缺货惩罚是几块钱,模型会完全被毛利主导,完全不管缺货。这个问题我复现时也遇到过,后面会细说。

2.3 与传统框架的对比

读这个框架的时候,我脑子里一直浮现传统决策系统的影子。这里做了一张对比,几乎可以当成项目汇报PPT素材:

对比维度规则系统数学模型优化AI决策框架
决策依据人工经验、专家规则目标函数 + 约束条件从数据中学到的策略
环境假设静态、相对固定可建模,但通常是单次优化动态、持续变化
反馈利用基本不利用基本不利用,一次一解完整闭环,持续迭代
可解释性强,规则透明中等,模型可分析较弱,需要事后解释工具
扩展性差,规则越来越多中等,重新建模成本高好,换场景改状态动作即可

规则系统的问题不是不聪明,而是维护成本太高。你可以写几十条规则覆盖常见情况,但业务环境是连续变化的,每出现一种新情况就得加一条规则,最后规则之间还会互相冲突。数学模型优化则通常在一个静态快照上求解,比如“给定未来需求预测,求最优补货量”,它不考虑这次决策对下一次决策的影响,属于一步最优而非序列最优。

AI决策框架的核心优势是闭环。每一次决策的结果都会反馈到模型里,让下一次决策更好。这在业务上意味着,系统是越用越准的,而不像规则系统要等着人去优化。当然它也有弱点,就是可解释性差,这也是为什么论文在框架里专门留了决策日志和事后解释的模块。我后面复现时也深刻体会到,没有解释能力的AI决策系统,上线时很难过安全审计这一关。

3. 框架里最值得学习的几个技术选型逻辑

3.1 为什么决策核心用强化学习而不是监督学习

这个选型逻辑,论文没有用太多篇幅解释,但我认为这是整个框架成立的关键。监督学习需要标签,而决策问题最大的特点就是没有标准答案。还是在定价场景里想:什么是“最优价格”?没有一个人能给出标准答案。如果你硬要给监督学习造标签,比如用“历史某次实验中被验证效果最好的价格”,那这个标签本身就是规则或人工定的,模型学到最好也只是逼近规则,永远超不过规则。

强化学习走的是另一条路:不依赖标签,只依赖奖励信号。模型先随机试一个价格,观察业务反馈,如果效果好就增大这个方向被选中的概率,效果差就减小。这个“试错”机制天然适合决策。就像教小孩走路,你没法给他一张“标准走姿图”让他照着模仿,你能做的只是在他走得稳的时候给表扬、走摔了不给表扬,他会在试错中学会走路。

另一个原因是决策的序列性。今天的决策会影响明天的状态,比如你今天把库存补得很满,明天就没必要再补;你今天把价格压得很低,明天的需求预期就变了。监督学习假设样本独立同分布,但决策问题的状态转移是有依赖的。强化学习本身就是针对这种序列决策设计的,它优化的不是一个单步动作,而是整个决策链路的累积回报。

3.2 多目标冲突:分层奖励和约束马尔可夫决策过程

业务决策几乎都是多目标的:想利润高一点,又想库存周转快一点,还想客户体验好一点,同时风险不能失控。论文提出的是两个机制配合使用。

第一个机制是分层奖励。把主要目标作为核心奖励,次要目标放到约束里。比如补货场景,毛利是核心奖励,缺货率和库存周转率放约束里。这样做的好处是避免了目标之间的互相干扰,模型不会为了一个目标去牺牲另一个。我复现的时候试过把四个目标直接加权成一个奖励,结果模型把周转率刷得很高,但缺货率高得离谱,因为少补货可以同时提高周转率和降低成本,但它没意识到缺货会让客户体验崩掉。改成约束之后,缺货率被强制压住,整体指标反而更均衡。

第二个机制是约束马尔可夫决策过程。它在策略优化的过程中加入约束条件,让模型在探索时不能越过底线。普通强化学习和约束强化学习的关键区别在于:前者是“目标最优就行”,后者是“在满足XX条件的前提下,目标最优”。这个数学上的小差别,在业务上就是“不管黑猫白猫抓到老鼠就是好猫”和“不管黑猫白猫,不能挠人还得抓到老鼠”的区别。

3.3 离线评估与在线自适应的三层验证体系

决策模型上线前必须经过三层验证,这是整个框架里最务实的设计,我觉得也是最容易被复读者忽略的部分。

第一层是仿真环境验证。用历史数据搭建模拟器,模型先在仿真器里跑。注意这里的关键词是“模拟器”而不是“数据回放”。很多人以为仿真就是用历史数据重新播一遍,其实那样做价值不大,因为数据回放无法让模型感受到动作的效果。真正有用的模拟器必须能响应动作:你补了100件货,模拟器会告诉你库存变成多少、下一次需求可能是什么。这样才能训练出策略。

第二层是离线策略评估。用真实历史轨迹做off-policy evaluation,比如带重要性加权的估计方法。这相当于在投钱之前先用过去的账本试算一下,让新策略评价自己在历史数据上大概能拿到多少回报。这个环节论文给出了具体操作建议,就是要给评估结果加置信区间,不要只看一个点估计值。

第三层是线上小流量实验。一般用流量分桶的方式,先切5%流量看效果,确认无副作用后再逐步放量。这一层是最终防线,前面评估做得多好,都不能替代真实环境的检验。这个三层验证体系,我后来几乎原样搬到了自己的项目里,效果非常稳。

4. 我用自己的场景复现这套框架的完整过程

4.1 复现前的准备:场景、数据、指标

读第三章的时候,我脑子里就在想什么场景最适合复现。最后选了一个零售库存补货场景,模拟某个小型商超SKU的日粒度补货决策。为什么选这个场景?因为它状态简单、动作清晰、奖励容易定义,不会有“这个指标到底怎么算”的扯皮问题。

数据准备上,我用了半年历史销售数据,包括日销量、商品属性、促销日历、供货周期、库存成本。这里有个经验:数据不一定要特别大规模,但一定要有足够的波动性。如果数据全是平稳状态,模型学到的策略也会很单一,体现不出AI框架的优势。

指标我定了三个:缺货率、库存周转率、毛利率。奖励函数设计成:毛利除以补货周期,减去缺货惩罚,再减去持有成本。这个设计很大程度上是参考论文的分层奖励思路,把毛利作为核心奖励,缺货和持有成本放到约束里。

4.2 复现过程中踩过的坑

整个过程正常是一边读论文一边写代码,走了不少弯路,其中有几个坑我觉得值得单列出来。

第一个坑是状态没有归一化。库存量的绝对值范围可能是几十到几千,而节假日flag是0或1。两者直接拼成一个向量,训练初期loss上下乱跳,网络根本学不进去。后来把所有数值特征做了z-score归一化,问题立刻缓解。这个错我犯过一次之后提醒自己:任何决策类模型,特征标准化都是第一步,不是可选项。

第二个坑是奖励量纲混乱。毛利收益可能是几百块,缺货惩罚是几十块,持有成本只有几块钱。三者直接相加,模型被毛利完全主导,疯狂补高毛利商品,把低毛利但高周转的商品全忽略了。后来我参考论文的做法,把奖励各分量做了标准化,并且把缺货率调整为硬约束,发现问题改善很多。奖励scale的问题如果没有提前注意,会消耗大量调试时间。

第三个坑是训练不收敛。用PPO训练时,奖励曲线看起来像过山车。排查后发现学习率设得太高,初值3e-4,clip范围也偏大。调整到1e-4和clip=0.1之后,训练曲线稳定多了。这些参数在不同项目里都要重新调,不能拿开源示例的参数直接套自己业务。

第四个坑是模拟器与真实环境不一致。仿真里效果很好,小流量测试效果打了折。仔细排查后发现是随机需求生成方式和真实情况不符,后来改成bootstrap方式从历史真实需求中抽样,效果才对齐。模拟器做得越真实,后续线上线下效果就越一致,这个环节值得多花时间。

4.3 效果对比与结果分析

复现完成后,我把新框架和原先的规则策略做了对比测试,用同一批历史数据跑的回测结果:

指标规则策略(阈值补货)AI决策框架复现
缺货率11.2%6.8%
库存周转率4.25.6
毛利率26.1%27.3%
单SKU日均收益基准+3.2%

这个结果是在我的数据集上跑的,不一定代表普遍效果,但差距还是很明显的。缺货率几乎砍半,周转率提升超过30%,毛利率也有小幅增长。我分析原因主要是两个:一是AI框架能利用促销日历和季节性特征,在需求上升之前提前补货,规则策略很难做到这种前瞻预判;二是闭环反馈让模型能不断修正自己的偏差,而规则只能等人工发现问题再改。

当然不能只说好的一面。模型训练和调参花的时间远超预期,即使是这个相对简单的场景,也花了我将近三周的下班时间。如果你准备在更复杂的场景复现,要有心理准备。

4.4 实操层面的几个关键经验

复现让我对AI决策框架有了比较清晰的理解。印象最深的一条经验是:分层奖励真的比简单加权好用。如果你做一个多目标决策系统,强烈建议先选定一个你想追求的核心指标,其他指标放约束里,不要五瓜六枣一锅炖,否则模型一定会钻空子。

第二条经验是,直接拿开源RL库训练业务模型时,80%的坑不在算法,而在环境建模和状态表征。环境建模就是模拟器怎么响应动作,状态表征就是特征怎么编码。这两块如果没想清楚,算法调得再花哨也没用。

第三条经验是关于可解释性。框架再黑盒,也一定要保留决策日志。每个动作对应什么样的输入状态、当时的业务环境是什么,都要有完整记录。这样做有两个好处:一个是排查问题时能回溯,另一个是上线时能应付安全审计。不要等被人追问了才后悔没有日志。我在复现时顺手就把每个决策的动作分布、状态特征、约束校验结果都存了下来,后来排查模拟器不一致问题全靠这批日志。

5. 常见问题排查与避坑手册

5.1 训练不收敛或崩溃的排查速查表

我把复现过程中遇到的问题,以及身边同事跟我交流时提到的类似问题整理成了一张速查表,希望对正在调模型的朋友有用:

症状可能原因排查思路
Loss不断震荡奖励各分量量纲不统一检查奖励组成,对每个分量做归一化或标准化
策略坍缩为单一动作熵系数过小或衰减太快提高熵奖励,或使用自适应熵调节
训练前期指标暴跌约束只写在奖励里,没有做硬编码把约束从奖励函数移到执行层动作映射前做硬校验
状态特征过多、训练极慢无关特征太多先做特征筛选,离散特征用embedding压缩
离线效果好、线上效果差模拟器和真实环境分布偏移用bootstrap重采样历史数据,让模拟器保持动态性
奖励长期不变探索不足或状态空间太稀疏降低学习率,增大探索噪声,检查状态编码是否有区分度

这张表不是万能药,但能帮你快速定位问题方向。遇到训练不收敛时,第一件事不要调算法,先检查数据和奖励设计,大部分问题都出在这两位。

5.2 离线评估和线上效果为什么经常对不上

这是做决策类模型时最常见的困惑之一,属于反复出现的“意难平”。核心原因在于分布偏移:离线评估用的是历史轨迹,但策略在线上的动作会影响后续状态分布,旧轨迹没有覆盖新的状态空间。简单说,历史数据里没有“模型尝试过的新动作”,离线评估怎么看都像是在盲人摸象。

论文给的方法是使用双重稳健估计这样的离线评估手段,并计算置信区间。但老实说,纯离线评估是有局限的,所以论文才强调线上小流量实验是最后一道防线。我的经验是:评估指标别只看均值,要看分位数和长尾表现。模型很容易在常态场景表现不错,一到异常事件就拉胯,比如突然的需求暴增、突发性库存积压,这些场景在均值指标里完全看不出来。

5.3 上线后的监控体系怎么搭

模型上线只是开始,监控体系才是让系统长治久安的关键。我试下来觉得有四层监控是必要的。

第一层监控决策动作分布。如果动作分布发生突变,通常说明环境出现了模型没见过的状态,要赶紧看是不是数据分布变了。第二层监控业务指标。盯住核心指标,比如缺货率、周转率、毛利率,设一个滚动时间窗口的预警阈值,结合统计过程控制的思想,指标超界就报警。第三层监控状态分布。定期拿新到数据和训练集做分布对比,比如算KL散度或JS散度,如果漂移明显,说明到了重新训练的时间点。

最后是兜底机制。模型输出的每个动作都要过约束校验,一旦校验不通过,直接回退到规则策略。这个兜底不需要很聪明,关键在于可靠。宁可让业务回到老的规则流程,也不能让模型在异常状态下乱跑。我在复现时还加了一个人工复核节点,大额补货和促销决策会先挂起等人确认,模型稳定运行一段时间之后才逐渐放开。这个习惯让我避免了一次比较离谱的过拟合决策导致的损失。

6. 读完第三章之后我的一些延伸思考

论文第三章给的是一个单Agent决策框架,但这套框架的可扩展性很强。现在大家都在聊多Agent协作,很多AI Agent系统本质上就是把这个框架横向扩展:每个决策Agent负责一块子问题,通过共享状态和统一奖励来协同决策。我在读框架时很明显感觉到,作者在接口设计上预留了这种扩展空间,每个模块都是松耦合的,替换和扩展成本都比较低。

还有一个让我很兴奋的方向是决策框架和大模型的结合。过去靠规则维护的决策逻辑,现在可以用大模型生成候选策略,再用强化学习做精细调优。比如定价场景,大模型根据市场描述生成几套定价策略,强化学习负责在真实反馈中选出并优化最有效的策略。论文里的执行层和反馈层,正好可以作为接住大模型输出、控制安全边界的框架。

如果你最近也在读这类论文,我建议一边读一边画一张“论文框架到自己的业务场景”的映射表。论文里的状态就对应你业务中的画像和上下文,动作就是你能做的操作,奖励就是业务目标,约束就是规则红线。把这张表填完,这篇论文基本就吃透了。这套映射方法,比单纯摘抄论文里的公式有用得多。

我个人在实际操作中的体会是,读框架论文最忌讳只看图不看接口。架构图谁都能画,真正决定系统能不能落地的是模块之间的协议,比如状态向量怎么拼、动作空间怎么定义、奖励怎么返回、约束在哪里做硬校验。读第三章的时候,我把这些信息全部标了出来,复现时才没有走太多弯路。如果你也想在自己的业务场景里用上AI决策框架,我建议从一个小场景开始,选状态和动作都比较清晰的环节,先跑通闭环,再逐步扩大范围。框架本身不复杂,复杂的是把你的业务逻辑翻译成状态、动作、奖励和约束的过程。这一步做扎实了,后面的训练和调参都是水到渠成的事。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询