Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NeurIPS '21 | Two steps to risk sensitivity. #13

Closed
NorbertZheng opened this issue Jan 5, 2022 · 18 comments
Closed

NeurIPS '21 | Two steps to risk sensitivity. #13

NorbertZheng opened this issue Jan 5, 2022 · 18 comments

Comments

@NorbertZheng
Copy link
Owner

NorbertZheng commented Jan 5, 2022

Gagne C, Dayan P. Two steps to risk sensitivity.

@NorbertZheng
Copy link
Owner Author

@NorbertZheng
Copy link
Owner Author

动态规划

在动态规划中主要有两个问题一个是prediction问题,一个是control问题。prediction问题主要关注的问题是给定一个policy之后,如何得到在各个state下的关于reward分布的一个统计值,如mean、var或者CVaR(它们都是从一个dist到一个单一数值的映射,我们直到dist是由所有moment所决定的,这个单一数值可以看作是这些moment的一个组合映射)。
image
比如这里,我们对state的reward-mean进行evaluate。我们可以使用如上公式进行对reward-mean表的update,我们可以从任意初始的reward-mean表开始,进行如上update,经过多个loop,动态规划保证了到真实vπ的收敛。其实,这里的policy evaluation就是把Bellman方程的定义修正为了update-rule,而Bellman方程确定有且只有vπ为其不动点。

@NorbertZheng
Copy link
Owner Author

动态规划的另外一个问题便是control问题,如何依据当前policy(π)得到更好的policy(π')。我们一般采用的方法是policy improvement,我们在得到当前policy(π)的reward-mean表之后,可以把某个状态s下的v(s)替换为q(s,a)中的最大值,这时我们便得到了improvement之后的policy(π'),该policy(π')和之前的policy(π)仅在状态s下的action不同,其余都相同。但是policy(π')被证明是全局更优的。
这样我们就可以通过(policy evaluation,policy improvement)的循环不断提升policy直到optimal-policy,这就是policy iteration。但很多时候,我们无法等到整个policy对应的reward-mean值被evaluate之后再进行policy improvement,我们可以进行policy iteration的子集value iteration,来达到有关当前针对dist统计值下optimal的policy:
image

@NorbertZheng
Copy link
Owner Author

planning

在RL中,除了model-free的方式,还有model-based的方式,也就是说RL-agent会对环境建立一个model。在off-line的时候,不仅仅能通过存储的real-expr的重放进行policy/value的修正(其实在人中,比较难以保证,如何说明replay的expr就一定是real-expr呢?),还可以通过对环境的model产生simu-expr来进行policy/value的修正。
除此之外,simu-expr的内容顺序也是可以有一定结构的,比如Mattar et al. 2018提出replay的循序遵循RL-planning中的prioritized-sweep,也就是说replay会优先replay对当前dist统计值update最大的那个部分。当然,Eldar et al. 2020发现人们在replay的时候会倾向于pessimistic的expr来对抗遗忘带来的对环境的model uncertainty。但老师说,这个数据比较脏,Antonov et al. 2021也只是对那这个数据进行了一些分析,可以重新设计实验来验证CVaR的optimal-planning问题。
image

@NorbertZheng
Copy link
Owner Author

随机性和不确定性

来自知乎的一个回答Risk and Uncertainty

  • 随机性:We don’t know what is going to happen next, but we do know what the distribution looks like.
  • 不确定性:We don’t know what is going to happen next, and we do not know what the possible distribution looks like.

个人对于随机性和不确定性的理解为,随机性和不确定性的产生是因为人们的不完全观测导致决定state的环境动力学主变量并没有完全cover环境动力学系统中的全部主变量。随机性是一个短期可测量的dist,是一种可以被测量的不确定性,可以被视为动力学系统中未被观测的快速变化主变量,也就是衰减系数很小,该变量随着时间快速震荡。不确定性是一个长期缓慢变化的一个dist,不可被测量(毕竟我们的测量都是有限时间内进行的),可以被视为动力学系统中未被观测的慢速变化主变量,也就是衰减系数很大,该变量随着时间慢速震荡。

@NorbertZheng
Copy link
Owner Author

好像和衰减系数无关?必须要的一个条件为周期性震荡,但变化速度是不同的,这和衰减系数的平滑好像没有完全对等的关系。

@NorbertZheng
Copy link
Owner Author

所以risk和uncertainty其实都可以被dist所捕捉,只是uncertainty不能捕捉完全,但随着时间的加长,我们还是可以让dist捕捉一定量的uncertainty。比如下面,这样一个环境中,由于只有90%的概率会按照action指定的方向进行,action自身的随机性导致了reward-dist,这里能够捕捉所导致reward的随机性:
image
因为这里,state-trans是不变的,因而其model不存在uncertainty,uncertainty一般是通过state-trans的distortion来定义的。

@NorbertZheng
Copy link
Owner Author

CVaR

在给定dist的情况下,CVaR的定义如下:
image
也就是说,在α-quantile之下的mean,具象化描述如下:
image
我们知道MDP框架内的decision-making一般只包含对于risk-neutral性能对象的minimization,这一般是被称作理性的。这种方法既没有考虑reward的可变性(随机性),也没有考虑modeling-errors的敏感性。risk-sensitive MDP旨在解决第一个问题,robust MDP则旨在解决第二个问题,其会定义一些plausible的MDP参数,比如state-trans等,并让decision对其最坏的情况进行优化。

@NorbertZheng
Copy link
Owner Author

而CVaR则既考虑了risk-sensitivity,也考虑了uncertainty-sensitivity。
image
证明如下:
image
说白了,就是定义等价,既可以用dist来定义CVaR,也可以用distortion的MDP性能(reward-mean)下界来定义CVaR。

@NorbertZheng
Copy link
Owner Author

CVaR in sequential decision-making

上面忘提了,CVaR是一个coherent的risk measure,方便做数学分析,当然也有其它risk measure具备更好的数学性质,但没有被用过。另外一点,CVaR相比prospect theory更有优势的地方在于其可以进行sequential decision-making。但在将CVaR用于MDP框架中时会有time-inconsistency evaluation的问题,从而导致time-inconsistency policy的问题。这里相比dist-mean出现time-inconsistency的问题主要在于:
image
在论文中提到,使用CVaR的方式有三种,分别为fCVaR、pCVaR和nCVaR。其中,fCVaR-optimal policy是time-inconsistency的,但是pCVaR(nCVaR)-optimal policy是time-consistency的。

@NorbertZheng
Copy link
Owner Author

NorbertZheng commented Jan 8, 2022

time-consistency的定义为:The choices the decision maker at time t assumes will be executed at time t+1 are indeed carried out.

@NorbertZheng
Copy link
Owner Author

这三种形式的CVaR(fCVaR、pCVaR、nCVaR)的定义如下:
image
我们可以看到,pCVaR仅在init-state对某个policy下得到的reward-dist进行评估,而不会在后继的state中使用CVaR来评估,这样根本不会导致time-inconsistency,然而fCVaR与pCVaR不同的地方在于其不仅会在init-state对应的rewarad-dist(R0+γR1+...)使用CVaR,还会对全部后继state对应的reward-dist(R1+γR2+...)使用CVaR,从而会导致time-inconsistency的问题。
而nCVaR相比fCVaR的修正在于reward-dist被修正为reward-CVaR-dist,比如对应init-state的reward-CVaR-dist为(R0+γCVaR(R1+γCVaR(R2+...))),这样就会保证policy的time-consistency。
image
如上图中,pCVaR只在right-up中dist的蓝色部分计算mean,而nCVaR则是在state b和state g中分别计算CVaR,然后依据各自的state的trans-prob,形成一个CVaR的dist,用于计算上一步的CVaR值。

@NorbertZheng
Copy link
Owner Author

下面展示一些fCVaR、pCVaR、nCVaR计算的实例,并展示fCVaR的time-inconsistency问题。
image

fCVaR & pCVaR

在这里我们,考虑两个policy(π和π'),其对应的从状态A出发得到的reward-dist分别为:
image
这时,我们使用CVaR来评价两种policy的好坏:
image
这时,我们便认为第二个policy(π')是较好的。但是当我们在第一步执行了right动作之后,发现我们到达了状态B,这时fCVaR与pCVaR不同的一点在于其会以状态B开始再次使用CVaR进行评判:
image
这时,我们会发现在状态B执行right动作会更好,从而导致与π'在第二步所指定的动作left相违背,这就是fCVaR-optimal policy的time-inconsistency问题。

nCVaR

由于nCVaR的定义形式,我们必须从尾部reward开始计算,然后嵌套得到最终结果。比如,我们考虑如下policy(π‘):
image
其在第二步中,不同状态(B和C)下的CVaR分别为:
image
由于从第一步状态A转移到状态B和状态C的概率,分别为0.1和0.9,于是第二步CVaR可以被看作是一个R.V.:
image
而从状态A到第二步状态(状态B或状态C)没有中间reward,且衰减项γ为1,则原公式:
image
被简化为:
image
从而,我们可以计算出:
image

@NorbertZheng
Copy link
Owner Author

NorbertZheng commented Jan 8, 2022

为了方便使用动态规划进行policy evaluation和policy iteration,我们可以将其修正为Bellman-like equation的形式:
image
这里引入了distortion factor,这仅是为了保证原有定义和Bellman-like equation的定义在数学计算上相一致。同时,可以看出pCVaR中不同步使用不同的risk preference(α),其实是因为只能在init-state计算CVaR所导致的,每一步的α变化都是确定死的,也就是说人的α只能这么变。当然,这是有很大局限,但是如果能够通过(state,α)的增广状态解释人类的表现,结合time-consistency就说明我们捕获了人类进行decision-making任务时的所有主要变量,通过state空间和policy的形式,而policy在state空间上优化的performance object便是人类执行这一决策的目标。

@NorbertZheng
Copy link
Owner Author

使用CVaR建模

Two-Step Task

Two-Step Task如下,stage2的不同图片具备不同的奖励概率,且该奖励概率随时间而发生迁移。
image
对于一个reward-dist,我们可以直接利用CVaR计算其统计值,并使用一些方式转化为policy,如使用softmax将CVaR值转化为prob:
image
我们可以看到,这里的policy不仅有model-based部分,还有model-free的部分(这是要看MB和MF在这项任务中的占比?),以及sticky坚持选择上一个action的倾向(这个咋解释?超出MB和MF了么?)。当然,在这里我们只是描述了如何将CVaR转化为policy,没有使用policy evaluation、policy iteration和planning,但我们可以对该policy进行policy evaluation,也可以抛去该policy利用已有的reward-dist进行policy iteration和planning。
有关这里提到的reward-dist,这也是需要学习的,而这恰恰也是#14 中提到的,大脑中存在reward-dist的表征,以及驱动reward-dist学习的dopamine-cell(frate对于RPE的正负性有不同的slope)。在这项任务的建模中,论文中使用的是Approximate Kalman Filter:
image
也就是一种将reward-dist表征为一种参数化dist的形式,而没有像#14 在VTA发现的那样使用expectile来表征无参数dist。
然后,我们便可以使用此模型来对比之前模型的适应度,并探究其中一些参数相对应的变化趋势,后期使用multi-step decision-making我们发现,这种参数变化趋势对应着risk-aversion(risk-aversion被伪装了):
image

@NorbertZheng
Copy link
Owner Author

NorbertZheng commented Jan 8, 2022

1D world

还是对于之前提到的场景,地图的左边有一个火坑,会带来-10的reward,另外有两个分别reward为+1和+2的奖励点,action具备10%的随机性。
image
我们可以按照一开始提到的三个步骤使用CVaR对其进行simulation。我们先从policy evaluation开始,给定random policy(也就是在任何一个state采取任何一个action的概率都相同),使用上面给出的nCVaR、pCVaR的Bellman-like表达式,进行动态规划得到其对应的CVaR表。
image
然后,我们可以对其进行policy iteration,寻找pCVaR(nCVaR)-optimal policy。我们可以发现nCVaR表现出excess risk aversion(这不是显然的么?毕竟CVaR的嵌套就是在不断取min的过程,自然比pCVaR更加保守一些),而pCVaR则表现出risk reweighting。
image
我们可以发现,一个普遍(但不是全部)的现象,decision-maker在经历一次unfortunate(distortion factor > 1)的经历之后会更倾向于将risk-preference(α)提高,从而更加risk-seeking。这可以解释一些人类的行为,比如人们在下雨天的时候,一开始会十分谨慎地走路,避免自己的鞋子湿掉,但是一旦经历一个unfortunate的事情(踏入水坑),则会立即放下心中的忌惮,不再care鞋子湿掉的问题。但这个模型也是有问题的,因为有些人经历很多unfortunate的事情之后,会精分崩溃,更加risk-avoidance。
我们将risk-preference(α)取到很小,这时如图中所示,agent会表现出极端病态的行为,比如在1D world不知所措或者向右走极速逃离火坑。这一种现象可以建模Anxious Pathology,表明焦虑的病人其实不是尝试解决一个正确的问题但没有解决好,而是最优地解决了错误地问题。

@NorbertZheng
Copy link
Owner Author

当然CVaR也可以用于planning,使用prioritized-sweep进行planning模拟可以得到如下结果:

  • nCVaR
    image
  • pCVaR
    image

我们可以发现,CVaR-optimal planning,会更关注于如何逃离火坑,比如pCVaR中前面几步一直在规划逃离火坑,这就有些类似人们的worry现象,使用mental-simulation来尝试解决问题,但对于同一件事情会担忧很多次。同时,由于需要planning,我们必须要维持一个和dist-mean指标所需要的SR矩阵的相对应的distorted-SR矩阵。这里之所以是distorted-SR,是因为CVaR的Bellman-like表达式中存在distortion factor:
image
将其像#11 中那样拆开:
image
其中,distortion factor便被归入到M矩阵中,因而CVaR的计算需要distorted-SR矩阵,能否在大脑中找到distorted-SR的表征证据呢?相较之下,#14 中使用expectile表示reward-dist,其不同expectile是否也需要不同的SR表征呢(也就是将reward的偏好反映在SR矩阵上,而保证reward表征的唯一性)?

@NorbertZheng
Copy link
Owner Author

总结

  • CVaR
    • A coherent risk measure, having axiomatically desirable properties(compared to prospect theory).
    • Can be used in sequential decision making task, having time consistency(if use CVaR in MDP properly).
  • Anxious pathology is related to the optimal solutions under an extreme attitude towards risk, e.g. solving the wrong problem.
  • Worry is related to an attempt to engage in mental problem-solving(planning) in order to avoid or prevent the negative outcomes from occuring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant