基于RNN模型的人类决策行为预测

基于RNN模型的人类决策行为预测

原文链接

摘要

  人在决策行为中往往会受到思维中信息的影响,会考虑别人会怎么做。本文采用基于LSTM的RNN模型来预测每个步骤和时间序列下人们进行决策的思维过程,并在单智能体场景如爱荷华博弈任务和多智能体场景如囚徒困境中应用。

前言

  人类行为决策的预测对于经济、政治和人工智能各个领域来说都是至关重要的,但是对于人类行为建模尤为重要的是心理学学科,其目的是为了描述、解释和预测这些行为。结合这样的一个领域,创造可以有效模仿人类进行决策的智能体。
  尽管对于研究者们来说打破了神经科学中无法解释的壁垒,已有分析依然在指导行为中具有局限性,并且没有对真实世界的复杂问题进行建模。囚徒困境是一个描述合作与对抗的一个经典博弈模型。除了对博弈结果和既往经验的认知建模评估合作的概率(如文献5,6),文献7提出一种逻辑回归的模型分析。逻辑回归模型也是预测行为序列的一种前沿手段。文献8,9,10采用强化学习的手段克隆和模拟人类行为轨迹,但如果希望这些强化学习模型提供有针对性或可解释的特征来表征人类决策过程,这些模型在复杂决策问题如囚徒困境等问题中表现的却不尽人意。
  至此,我们已经讨论了描述人类决策行为过程的一些基于线性的模型,但我们都知道人类的决策并不是线性的,在非线性的模型中性能最好的就是机器学习的模型了。因此我们提出一种基于长短时记忆网络的模型预测人类的决策行为,应用在爱荷华博弈任务和囚徒困境中。本篇文章是第一个提出在预测人类决策行为中使用神经网络的算法,我们认为这项工作可以推进加快将人类认知过程应用在线上博弈中。

背景

一. 爱荷华博弈任务
  IGT包括4副纸牌A/B/C/D,纸牌中奖惩的具体安排是:纸牌A每次给100美元的奖励,但是连续10次中会有5次35~150美元的惩罚;纸牌B每次给的奖励是100美元,但是连续10次中有一次1250美元的惩罚;纸牌C每次给50美元的奖励,但连续10次中有5次是25~75美元的惩罚;纸牌D每次给50美元的奖励,但连续10次中有一次250美元的惩罚。在任务开始前,被试不知道纸牌中奖励惩罚的数量,频率等情况,只是被告知每次任意从4副纸牌中选择1张(每副纸牌都按从上到下的顺序),以达到选择多次以后赢分尽可能多的目的。被试以2000美元开始。从长远看:A、B是不利纸牌; C、D是有利纸牌。
爱荷华赌徒任务具体描述

二. 多人多轮囚徒困境
描述:多智能体场景下,可以选择合作或是对抗,一共四种结果,reward,penalty,sucker,temptation T>R>P>S 2R>S+T;如果两人都选择合作,这两人都获得reward;两人都选择对抗,都获得penalty;一人合作一人对抗,则合作者获得sucker,对抗者获得temptation

多人多轮囚徒困境具体描述

模型

  对每个时间步骤,上一个时间节点的历史序列会存入RNN模型中作为输入,并输出一个预测行为。对于单智能体(不和其他人交互做出决策),RNN模型的输入仅包括该玩家的行为;对于多智能体(做出决策时要考虑全部玩家的行为),RNN模型的输入就包括所有玩家的行为。在进入预测网络之前,将行为都表示成多维的独热向量。

实验

一. 爱荷华博弈任务
数据集:文献[15],617个人类决策轨迹
Baseline:文献[16]向量自回归模型
Benchmark : LSTM:两层,每层10个神经元,80-20训练集和测试集,评估:随机交叉验证
群体预测:选择更有利的两个选项的比例的时间序列,作为评估预测模型预测真实的人类决策序列的指标。AR和LSTM拟合人类真实决策的效果都很好。

IGT群体预测

个体预测:对单个博弈的预测准确性进行评估,防止不好的预测结果依然在整体结果上具有好的性能,因此通过MSE来评估单个博弈项目的预测与真实值的差距。实验结果表明,LSTM模型的预测效果更好。

IGT个体预测

二. 囚徒困境
数据集:通过收集各种人类决策的真实数据168386个,文献[17, 18, 19, 6, 5, 20, 21, 22]通过金钱奖励吸引实验对象,并且涵盖了囚徒困境实验的基本规则。实验对象可以匿名和其他人交流,他们的决定会在每个时间段和交流后被记录下来。轮次:2-30轮,基本是包含9轮左右的历史信息,我们挑选了包含所有玩家9轮信息的8257个行为轨迹。
Baseline:逻辑回归(文献[7])向量自回归(文献[16])
Benchmark: LSTM:两层,每层10个神经元,80-20训练集和测试集,评估:随机交叉验证
群体预测:指标:囚徒困境中合作的倾向性是一个重要的评估指标,文献[7]也采用了合作率作为预测IPD问题的指标,我们也记录合作率来评估与真实的人类决策行为的关系。实验结果如下,LSTM>LR>AR。和LR、AR不同,LSTM只针对预测过程进行了训练,而不是针对合作率进行迭代训练和预测模型的更新。

IPD群体预测

个体预测:LSTM是MSE最小的。观察发现:
(1)和IGT不同,由于存在未知对手行为,加剧了预测行为的复杂性,MSE结果呈现对称性,而不是单调减少的。
(2)LR模型在群体预测中性能良好,在个体预测中性能不好
(3)AR模型尽管群体预测中预测结果偏高,在个体预测中和LSTM效果却表现的差不多良好。
(4)第4-5轮次LR模型误差越来越大,LSTM模型误差越来越小。
我们相信,预测囚徒困境比预测爱荷华赌博问题要困难得多。由于多智能体带来的其他复杂性而导致的任务和社会困境的设置。在此任务中超过baseline的LSTM模型证明了循环神经网络更好地捕捉现实的人为决策,并提供可靠的预测个性化的人类行为。

IPD个体预测

结论

  我们引入了LSTM网络来预测动作序列爱荷华赌博中的人类决策过程任务和囚徒困境。 第一次尝试利用递归神经网络直接预测人类这些行为任务中的动作顺序,我们的方法与现有baseline对比以预测人口趋势和个人策略,在IGT任务中,然后在IPD任务中表现出色。 我们特别发现后者值得注意的是IPD是一项在认知上更为复杂的任务,因为涉及多智能体相互预测行为。下一步包括将我们的评估扩展到人类其他顺序决策中的行为轨迹激励更加复杂和混合的环境结构,例如外交官问题,扑克和下棋,以及替代递归模型,更容易接受神经科学的解释和心理观点。

总结与思考

  本文提到的模型是第一次在人类行为决策中应用神经网络模型,本文采用的LSTM模型契合了人类进行真实决策中的不同时间序列考虑的因素不同这一特点,是一次将决策与认知进行关联的全新模式,也是我们未来探索方向的一个指引。此外,本篇文章考虑到了人类在进行决策时,他人的行为对决策方的影响,例如在多智能体的囚徒困境中,对决策方之间的交流进行编码表示,符合真实世界中人类的决策模式。本文在单智能体和多智能体两个方面都进行了模型评估,可以发现这样结合认知学和神经科学的模型是可以应用于真实的决策模型中的,选择的两个问题也是博弈论中的经典问题:爱荷华赌徒问题和囚徒困境问题,后续如果展开实验也可以在这两个模型中进行对比和评估。

参考文献

[5] Howard Kunreuther, Gabriel Silvasi, Eric Bradlow, Dylan Small, et al., “Bayesian analysis of deterministic and stochastic prisoner’s dilemma games,” Judgment and Decision Making, vol. 4, no. 5, pp. 363, 2009.
[6] John Duffy, Jack Ochs, et al., “Cooperative behavior and the frequency of social interaction,” Games and Economic Behavior, vol. 66, no. 2, pp. 785–812, 2009.
[7] John J Nay and Yevgeniy Vorobeychik, “Predicting human cooperation,” PloS one, vol. 11, no. 5, 2016.
[8] Baihan Lin, Djallel Bouneffouf, and Guillermo Cecchi, “Unified models of human behavioral agents in bandits, contextual bandits, and rl,” arXiv preprint arXiv:2005.04544, 2020.
[9] Baihan Lin, Djallel Bouneffouf, Jenna Reinen, Irina Rish, and Guillermo Cecchi, “A story of two streams: Reinforcement learning models from human behavior and neuropsychiatry,” in Proceedings of the Nineteenth
International Conference on Autonomous Agents and Multi-Agent Systems, AAMAS-20. 5 2020, pp. 744–752, International Foundation for Autonomous Agents and Multiagent Systems.
[10] Baihan Lin, Djallel Bouneffouf, and Guillermo Cecchi, “Split q learning: reinforcement learning with twostream rewards,” in Proceedings of the 28th International Joint Conference on Artificial Intelligence. AAAI
Press, 2019, pp. 6448–6449.
[15] Helen Steingroever, Daniel J Fridberg, Annette Horstmann, Kimberly L Kjome, Veena Kumari, Scott D Lane, Tiago V Maia, James L McClelland, Thorsten Pachur, Preethi Premkumar, et al., “Data from 617 healthy participants performing the iowa gambling task: A” many labs” collaboration,” Journal of Open Psychology Data, vol. 3, no. 1, pp. 340–353, 2015.
[16] Helmut L¨utkepohl, New introduction to multiple time series analysis, Springer Science & Business Media,
2005.
[17] James Andreoni and John H Miller, “Rational cooperation in the finitely repeated prisoner’s dilemma: Experimental evidence,” The economic journal, vol. 103, no. 418, pp. 570–585, 1993.
[18] Pedro Dal B´o, “Cooperation under the shadow of the future: experimental evidence from infinitely repeated games,” American economic review, vol. 95, no. 5, pp. 1591–1604, 2005.
[19] Yoella Bereby-Meyer and Alvin E Roth, “The speed of learning in noisy games: Partial reinforcement and the sustainability of cooperation,” American Economic Review, vol. 96, no. 4, pp. 1029–1042, 2006.
[20] Pedro Dal B´o and Guillaume R Fr´echette, “The evolution of cooperation in infinitely repeated games: Experimental evidence,” American Economic Review, vol. 101, no. 1, pp. 411–29, 2011.
[21] Daniel Friedman and Ryan Oprea, “A continuous dilemma,” American Economic Review, vol. 102, no. 1, pp. 337–63, 2012.
[22] Drew Fudenberg, David G Rand, and Anna Dreber, “Slow to anger and fast to forgive: Cooperation in an uncertain world,” American Economic Review, vol. 102, no. 2, pp. 720–49, 2012.

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用RNN模型进行时间序列预测是一种常见的方法。以下是一个基本的时间序列预测RNN模型示例: ```python import torch import torch.nn as nn # 定义RNN模型 class RNN(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(RNN, self).__init__() self.hidden_size = hidden_size self.rnn = nn.RNN(input_size, hidden_size, batch_first=True) self.fc = nn.Linear(hidden_size, output_size) def forward(self, x): h0 = torch.zeros(1, x.size(0), self.hidden_size).to(x.device) out, _ = self.rnn(x, h0) out = self.fc(out[:, -1, :]) return out # 定义输入数据和目标数据(时间序列) input_size = 1 hidden_size = 32 output_size = 1 input_data = torch.tensor([[0.1], [0.2], [0.3], [0.4], [0.5], [0.6]], dtype=torch.float32) target_data = torch.tensor([[0.2], [0.3], [0.4], [0.5], [0.6], [0.7]], dtype=torch.float32) # 创建RNN模型实例 model = RNN(input_size, hidden_size, output_size) # 定义损失函数和优化器 criterion = nn.MSELoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.01) # 训练模型 num_epochs = 1000 for epoch in range(num_epochs): # 前向传播 output = model(input_data) loss = criterion(output, target_data) # 反向传播和优化 optimizer.zero_grad() loss.backward() optimizer.step() if (epoch+1) % 100 == 0: print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item())) # 使用训练好的模型进行预测 with torch.no_grad(): predicted = model(input_data) print('Predicted:', predicted.flatten()) ``` 这个示例中使用了一个简单的RNN模型,接受一个维度为1的输入序列,并输出一个维度为1的预测结果。训练过程中使用均方误差(MSE)作为损失函数,并使用Adam优化器进行参数更新。预测过程中,使用训练好的模型对输入数据进行预测,并打印出预测结果。 请注意,这只是一个简单的示例,实际应用中可能需要更复杂的模型结构、更大的数据集和更多的训练步骤来获得更好的预测性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值