Skip to content

RL agent 的行为偏差注入——将损失厌恶和双曲线折扣接入 Q-learning 的工程实现

核心操作

问题:标准 RL agent 是理性最优化的——而现实中的人类决策受行为偏差支配。如何让 RL agent 的决策模式接近人类?

方案:在标准 RL 算法的三个关键节点注入行为偏差:

注入点 偏差 实现方式
奖励函数 损失厌恶 损失放大 λ 倍(λ≈2.0),收益不变
折扣函数 时间折扣/现时偏差 指数折扣 → 双曲线折扣(增加 k 和 β 参数)
价值估计 过度自信 标准差缩小 → agent 高估自身的估计精度

损失厌恶注入(最简实现):

def biased_reward(reward, lambda_param=2.0):
    """前景理论价值函数——损失比收益疼λ倍"""
    if reward >= 0:
        return reward  # 收益区域:线性
    else:
        return lambda_param * reward  # 损失区域:放大

双曲线折扣注入(vs 标准指数折扣):

# 标准 RL (指数折扣): V = r + γ * V_next
# 时间偏差 RL (双曲线折扣): V = r + β * δ^t * V_next
# β = 0.5 表示 agent 极端偏好立即奖励

这些注入不改变 RL 算法的核心结构(Q-learning、DQN、PPO)——只在标准算法的 reward 处理和 value update 路径上做 wrapper。

💡 关键教训

行为偏差注入的工程价值:不是为了让 agent「更不理性」——而是为了模拟真实用户的决策模式,从而让 agent 在与人交互的系统中表现更好(推荐系统、定价、对话)。一个标准 RL agent 推荐的折扣策略会假设用户以指数贴现价值——但真实用户用的是双曲线贴现,短期刺激效果被低估。

选择偏差的优先级:不是所有偏差都值得注入。损失厌恶(λ)最优先——因为它在几乎所有决策场景中都稳定存在且效应量大(λ≈1.5–2.5)。过度自信次之——在专家决策中尤其明显(医生、投资人、交易员)。框架效应用处有限——它取决于问题的呈现方式而非决策者的内在偏差。

工程注意事项:偏差参数是超参数,不是从数据学习的——需要事先估计(λ 来自行为实验,β 来自跨期选择任务)。错误的参数比不注入偏差更危险——一个 λ=5 的 agent 会过度规避任何有风险的行动,失去所有探索能力。