Skip to content

Behavioral_RL 中文导航

原文: Behavioral Reinforcement Learning
分类: 行为经济学 + 强化学习
大小: 297 MB
语言: Python


📚 仓库简介

Behavioral_RL 是一个将人类行为偏差整合到强化学习中的研究项目。它探索了如何将行为经济学中的认知偏差 (如损失厌恶、过度自信、时间折扣等) 融入 RL 算法,使 AI agent 的行为更接近人类决策模式。

GitHub: https://github.com/affaan-m/Behavioral_RL


🔧 核心功能

功能 描述 行为偏差
损失厌恶 RL 在奖励函数中模拟损失厌恶 前景理论
时间折扣 RL 双曲线折扣而非指数折扣 跨期选择
过度自信 RL agent 高估自身能力 过度自信偏差
锚定 RL 初始值影响学习 锚定效应
框架效应 RL 不同框架下的不同选择 框架效应

📁 目录结构

Behavioral_RL/
├── src/                   # 源代码
│   ├── agents/           # RL agent 实现
│   │   ├── qlearning.py
│   │   ├── dqn.py
│   │   └── ppo.py
│   ├── behaviors/        # 行为偏差模块
│   │   ├── loss_aversion.py
│   │   ├── time_discount.py
│   │   └── overconfidence.py
│   ├── environments/     # 测试环境
│   │   ├── gridworld.py
│   │   └── bandit.py
│   └── utils/            # 工具函数
├── experiments/           # 实验代码
│   ├── experiment_1/     # 损失厌恶实验
│   └── experiment_2/     # 时间折扣实验
├── results/               # 实验结果
├── notebooks/             # Jupyter 笔记
├── requirements.txt       # 依赖
└── README.md              # 主文档

🚀 快速开始

安装

# 克隆仓库
cd /workspace/code-examples/Behavioral_RL

# 安装依赖
pip install -r requirements.txt

# 主要依赖:
# - torch (PyTorch)
# - gym (强化学习环境)
# - numpy, pandas, matplotlib

第一个实验:损失厌恶 Q-Learning

import gym
from src.agents.qlearning import QLearningAgent
from src.behaviors.loss_aversion import LossAversionWrapper

# 创建环境
env = gym.make('CartPole-v1')

# 创建标准 Q-learning agent
agent = QLearningAgent(
    state_dim=env.observation_space.shape[0],
    action_dim=env.action_space.n,
    learning_rate=0.1,
    gamma=0.99
)

# 添加损失厌恶行为偏差
lambda_param = 2.0  # 损失厌恶系数 (λ>1 表示损失厌恶)
biased_agent = LossAversionWrapper(agent, lambda_param)

# 训练
for episode in range(1000):
    state = env.reset()
    total_reward = 0

    for t in range(200):
        action = biased_agent.act(state)
        next_state, reward, done, _ = env.step(action)

        # 损失厌恶 agent 会将损失放大λ倍
        biased_agent.learn(state, action, reward, next_state, done)

        state = next_state
        total_reward += reward

        if done:
            break

    if episode % 100 == 0:
        print(f"Episode {episode}, Total Reward: {total_reward}")

时间折扣实验

from src.behaviors.time_discount import HyperbolicDiscountAgent

# 双曲线折扣 agent (更符合人类行为)
agent = HyperbolicDiscountAgent(
    state_dim=env.observation_space.shape[0],
    action_dim=env.action_space.n,
    k=0.1,      # 双曲线折扣参数
    beta=0.5    # 现时偏差参数
)

# 比较标准指数折扣 vs 双曲线折扣
# 双曲线折扣 agent 会表现出自我控制问题和冲动行为

运行实验

# 损失厌恶实验
python experiments/experiment_1/run.py

# 时间折扣实验
python experiments/experiment_2/run.py

# 查看结果
cd results/

📖 关键文档

文档 说明
README.md 项目介绍和安装指南
notebooks/ Jupyter 笔记,交互式学习
experiments/ 实验配置和结果
src/behaviors/ 行为偏差实现细节

💡 行为偏差实现

1. 损失厌恶 (Loss Aversion)

# 前景理论中的价值函数
def value_function(x, lambda_param=2.0, alpha=0.88):
    """
    损失厌恶价值函数
    λ > 1: 损失比收益更令人痛苦
    """
    if x >= 0:
        return x ** alpha
    else:
        return -lambda_param * (-x) ** alpha

2. 双曲线时间折扣 (Hyperbolic Discounting)

# 人类倾向于对近期奖励过度加权
def hyperbolic_discount(reward, delay, k=0.1):
    """
    双曲线折扣函数
    比指数折扣更符合人类行为
    """
    return reward / (1 + k * delay)

3. 过度自信 (Overconfidence)

# agent 高估自身能力
class OverconfidentAgent:
    def estimate_value(self, state):
        # 过度高估价值
        true_value = self._true_value(state)
        confidence_bias = 1.2  # 高估 20%
        return true_value * confidence_bias

🎯 研究应用

1. 行为金融

模拟投资者行为:
- 损失厌恶 → 处置效应
- 过度自信 → 过度交易
- 锚定 → 价格锚定

2. 人机交互

AI 预测人类行为:
- 理解用户决策偏差
- 提供个性化推荐
- 设计助推干预

3. 行为公共政策

政策模拟:
- 测试不同助推策略
- 预测政策效果
- 优化干预设计

🔗 相关资源


📚 理论基础

行为经济学核心概念

概念 提出者 年份 说明
前景理论 Kahneman & Tversky 1979 风险决策理论
损失厌恶 Kahneman & Tversky 1992 损失比收益更强烈
双曲线折扣 Ainslie 1975 时间偏好模型
锚定效应 Tversky & Kahneman 1974 初始值影响判断

强化学习基础

算法 说明 适用场景
Q-Learning 值迭代方法 离散动作空间
DQN 深度 Q 网络 高维状态空间
PPO 近端策略优化 连续动作空间

🛠️ 扩展实验建议

1. 添加新的行为偏差

# 示例:添加锚定效应
class AnchoredAgent:
    def __init__(self, anchor_value):
        self.anchor = anchor_value

    def estimate(self, value):
        # 向锚定值偏倚
        return 0.7 * value + 0.3 * self.anchor

2. 多偏差整合

# 同时整合多种行为偏差
agent = MultiBiasAgent(
    loss_aversion=2.0,
    time_discount='hyperbolic',
    overconfidence=1.2,
    anchoring=0.3
)

3. 实证验证

1. 收集人类行为数据
2. 训练行为 RL 模型
3. 比较模型预测与真实行为
4. 调整偏差参数

本地路径: /workspace/code-examples/Behavioral_RL/
创建时间: 2026-06-01
难度: ⭐⭐⭐⭐ (研究级)


**Behavioral_RL 中文导航 | 行为经济学 × 强化学习** [返回代码索引](../../README_UPDATED.md) | [决策科学资源大全](../../docs/resources/decision-science-comprehensive-resources.md)