知者,治也——增强学习的因果推断模型简介

字数 2852阅读 512

作者:Eric Jang
译者:尹肖贻
原文题目:What I Cannot Control, I Do not Understand
原文地址:https://blog.evjang.com/2019/03/causal-rl.html

若有任何意见或建议,我恳请读者不吝赐教,在Hacker news下留言。

我常听到坊间的一个说法:在商业环境中部署的强化学习(RL)的实例,都可以用更简单的算法取代。

这大概说出了实情,但看你怎么定义“强化学习”。 如果用“强化学习”来指代“用DQN / PPO / Soft-Actor Critic等训练的神经网络”,那么确实(至少截至目前)没有什么商业产品,其成功依赖于过去5年中深度强化学习算法的突破[1]。

然而,如果将“强化学习”解释为“从反复试验和错误中学习”的概念,那么商业应用就会比比皆是,特别是在药品、金融、电视节目推荐,以及其他基于科学实验和干预的项目中。

我将在这篇文章中,解释强化学习是解决因果推理问题的一般方法,这是几乎所有机器学习系统的需求。 从这个意义上讲,许多影响深远的问题,已经在使用增强学习的思想解决了。只是在不同的术语和工程流程中,我们用了不同的形式来表述。

医生,并没有让饮酒者活更久

假设你是一名医生,负责帮助患者延长寿命。 你对数据科学略知一二,于是你在很多病历上拟合了预期寿命的预测模型,并得到令人震惊的发现:每天喝红酒的人中,有90%的可能性活过80岁;相比之下,非饮酒者活过80岁的基础概率为50%。

使用因果推理的术语,你发现了以下数据分布:
p(寿命>80年|每天喝红葡萄酒)=0.9
进一步研究发现,你的模型在其余的数据集上也具有高精度,这增加了你对模型发现长寿秘诀的信心。你兴高采烈地告诉你的病人,每天喝红酒,寿命就长久。毕竟,作为一名医生,光是预测还不行,你还必须开处方!还有什么好事儿,能比得上又长寿和又喝红酒呢?

几十年后,你对患者进行了跟踪调查,然后非常失望地观察到以下的介入分布:
p(寿命>80年|do(每天喝红酒))=0.5
喝红酒的人,预期寿命没有增加!是什么导致的?

寻找因果模型

这里的核心问题在于混淆变量。 当我们决定根据观察模型,建议患者每天喝红酒时,我们对因果关系图做了一个很强的假设:



随机变量之间的指向表示因果关系,也可以被认为是“时间箭头”。改变“喝红酒”的值,将对“寿命> 80年”产生影响,但改变“寿命> 80年”对喝红酒没有影响。

如果这个因果图是正确的,那么我们的干预应该增加患者的寿命。但实际的实验并不支持这一点,因此我们必须拒绝这个假设的因果模型,并寻求替代假设来解释数据。也许有一个(或多个)变量会导致喝红酒的倾向,并且延长寿命,从而将喝红酒和长寿联系在一起。

我们猜测,很可能是富人们往往会同时活得更久,也喝更多的红酒。再次通过数据,我们发现P(喝红酒|富裕)=0.9P(寿命>80|富裕)=1.0。所以我们的假设现在采取以下形式:


如果我们的理解正确,那么(富裕)应该让人们活到80岁以上并且喝更多的红酒。 事实上,我们发现,一旦我们向患者提供100万美元现金,以使其富裕(按照美国标准),他们最终会延长寿命并每天饮用红酒(这是一个假设的结果,为了这篇博文而编造)。

增强学习作为自动因果推理

机器学习模型正在越来越多地用于推荐系统、自动驾驶汽车、制药研发和实验物理学的决策中。 在许多情况下,我们希望在掌握输入变量x_1,...,x_N的情况下,试图学习一个模型p(y|x_1,...,x_N);通过最大化p(y|x_1,...,x_N),了解结果事件y的概率(密度)。

从上面举的医学实例中,我们可以明显看出:在建立决策系统时,如果不能建立变量间的因果关系,就要冒着模型过度拟合的风险,而丧失对模型的干预能力。 假设我们以下列方式,自动地发掘因果模型:
1.根据模型拟合观测到的数据p(y|x_1,...,x_N)
2.假设模型捕获了因果关系。 规定干预措施do(x_i),使p(y|x_1..N)最大化。收集一个新的数据集,其中50%的x_i有干预,50%没有干预。
3.将观测模型拟合到新数据p(y | x_i)
4.重复步骤1-3,直到模型匹配到干预模型:p(y|do(x_i))=p(y|x_i)

作为上述步骤的测试案例,我们返回到红酒案例的研究:
1.你最初发现p(寿命>80年|每天喝红葡萄酒)=.9
2.收集新数据集后,将获得p(寿命>80年|do(每天喝红葡萄酒))=.5。虽然模型没有收敛,但至少你的观察模型不再相信喝红酒会延长寿命。此外,现在关注正确的变量,即p(寿命>80年|富裕)=1
3.然后,此过程的后续迭代发现p(寿命> 80年|do(富裕))=1,所以过程结束。

收集随机试验(干预与非干预以50%分开),并重新训练新的观察模型,是进行一般因果推理最有效的方法之一。因为它使用来自现实的数据(现实知道“真正的因果模型”)来消除不正确的假设。

重复训练模型并建议干预措施,包含了增强学习算法的全部内容。或者说,增强学习解决了顺序决策问题的最优控制控制是这里的关键词——对代理人(agent)是否了解其环境的测验,在于观察代理人是否能够解决环境的问题。

对于机器学习中,其预测用于推断干预(以便操纵一些下游随机变量)的模型,我认为过度拟合问题只不过是尝试解决因果推断问题的副产品。这也解释了增强学习比监督学习更难——不仅因为每次观察到的监督信号较少,更因为增强学习的代理人还必须找出干预行为所需的最佳因果分布。

一个显着的“过拟合”案例是增强学习算法理论上可以“离线”训练 ——也就是说,完全从非实时的数据中学习,而不从环境中收集新的数据样本。但是,如果没有定期从环境中收集新的经验信息,代理人可能会受限于过度使用有限大小的数据集,或受限于数据集不平衡。并提出不会超出其离线数据的干预措施。检查代理人是否“正确学习”的最佳方法,是在真实场景中部署该算法,并在干预下验证其假设。事实上,根据我们在谷歌对机器人掌握研究情况,通过“在线”测试进行微调,会大大提高算法性能。这相当于在新数据p上重新训练观察模型p(拟合成功|do(最优行动))

生产中的“增强学习算法”

生产工程中经常使用的A/B测试框架来测试系统性能,相当于做了上述“自动因果推理”流程的工业版本:50%的随机用户(假设分布相同)设置为干预组,另外50%为控制组。

因果推断是数据驱动决策的基石,正在被对冲基金、Netflix、StitchFix、谷歌、沃尔玛等公司广泛使用。虽然这个过程在工业生产中必须让人类参与其中(特别是提出干预措施并选择停止标准),但是其自动化的版本——增强学习,也借鉴了因果推断的许多思想,解决自身出现的问题,如解决数据非平稳性,或者难以在实验中获得真正的随机性,以及不同时长的权重分配问题。我自己刚刚开始学习因果推理。我希望在未来几年内,增强学习、数据科学和因果推理研究社区之间会有更多的思想交叉。

有关Causal Inference的更多技术介绍,请参阅Ferenc Huszar撰写的很棒的博客系列

[1]这个脚注关于我认为增强学习还没有进行太多商业部署的解释。如果读者确实知道某家公司在生产中使用增强学习(而还我不知道!)的话,请随时告诉我!

为了使公司采用增强学习的技术且有利可图,迎头待解决的问题是1)商业上有用;2)当前深度增强学习算法有效;3)最优控制的边际效用,必须能抵消隐深度增强学习技术带来的风险。

让我们通过对比,来考虑深度图像理解的商业价值:1)从视频监视,到自动驾驶汽车,再到人脸识别,这一切都具有很高的商业价值;2)当前模型非常准确,适用于各种图像数据集;3)模型通常按预期工作,不需要太多专业知识来训练和部署。

对于增强学习来说,目前还没有一般的增强学习算法的应用前景。如使机器人最终能够完全依靠自己学习技能,完成任务;或者帮助公司做出复杂的财务决策,如股票回购和招聘;或者在游戏设计中,让非玩家角色情节更加丰富。不幸的是,这些问题域不符合标准(2)——深度增强学习技术还没有准备好,需要更长时间的研发。

在现有的增强学习能够应用的场景中,即使你第一个将其应用在商业世界的话,也将很难验证算法选择策略的边际效用。可能的场景包括数据中心冷却,或空中交通管制。即使对于已经清楚地显示增强学习能够发挥作用的领域(例如,低维控制或像素级控制),增强学习算法仍然需要大量的研究技能,来构建一个可以正常工作的系统(违反标准3)。

推荐阅读更多精彩内容