《深度强化学习与控制》第一周学习笔记与总结
·
《深度强化学习与控制》第一周学习笔记与总结
摘要: 本周课程正式开启《深度强化学习与控制》的学习旅程。课程内容从人工智能任务分类切入,深入探讨了多臂老虎机模型、马尔可夫决策过程等核心理论,并结合网上资料完成了 Python 开发环境与虚拟环境的搭建。
一、 强化学习的宏观背景
- 人工智能任务分类: 人工智能任务主要分为预测任务(包括有监督学习和无监督学习)与决策空间任务(即强化学习)。
- 强化学习的定义: 强化学习旨在解决智能体在未知环境中,作为序贯决策者持续做出动作并观察到反馈奖励的过程。
- 核心三要素: 强化学习包含感知、行动和目标这三个关键方面。
- 课程参考资料: 推荐参考张的《动手学强化学习》一书。
二、 基础决策模型:多臂老虎机 (Multi-Armed Bandit, MAB)
多臂老虎机问题模拟了最简单的决策困境,即每一次决策没有“状态”转移,每一次选择都是独立的。
- 问题设定: 面对一排中奖概率不同且未知的机器,智能体需要在有限次尝试后,通过决策选择机器拉杆,以获得最多的总硬币奖励。
- 核心矛盾: 智能体需要在“利用”(坚持当前看起来最好的机器)与“探索”(尝试其他可能更好的机器)之间寻找平衡。
- 核心概念——遗憾 (Regret): * 遗憾用来衡量实际决策与“上帝视角的最优决策”之间的收益差距。
- 公式表达为 Δ(a)=Q∗−Q(a)\Delta(a)=Q^{*}-Q(a)Δ(a)=Q∗−Q(a)。
- 理论证明,无论采用何种算法,总遗憾的增长速度至少呈现对数级增长,这是其理论下限。
- 价值评估公式: 动作价值的迭代更新遵循公式 Qn+1(a)=Qn(a)+(1/n)[rn−Qn(a)]Q_{n+1}(a)=Q_n(a)+(1/n)[r_n-Q_n(a)]Qn+1(a)=Qn(a)+(1/n)[rn−Qn(a)]。
- 常见动作选择策略:
- 贪心策略: 仅选择当前统计上表现最佳的机器。缺点是若初期运气不佳,会错过真正的最优解,导致遗憾呈线性增长。
- ϵ\epsilonϵ-greedy (衰减-贪心): 设定一个探索概率 ϵ\epsilonϵ。以 1−ϵ1-\epsilon1−ϵ 的概率选择当前最优动作(利用),以 ϵ\epsilonϵ 的概率随机尝试(探索)。理论上若衰减速度合适,遗憾可接近对数增长。
- 乐观初始化 (Optimistic Initialization): 初期假设所有机器的期望都非常高,鼓励算法在初期广泛尝试每台机器。随着实测进行,差机器的估值下降,可避免早期放弃好机器,但仍可能陷入局部最优。
- 置信区间上界 (UCB): 这是一种基于不确定性测量的策略。它为尝试次数少的动作附加一个“探索bonus”,能巧妙平衡探索和利用,理论和实际效果均极佳。
三、 序贯决策框架:马尔可夫决策过程 (MDP)
现实中的决策往往受当前“状态”影响(如棋局、自动驾驶位置),且今天的选择会改变明天的局面,因此引入马尔可夫决策过程 (MDP)。MDP 提供了一套数学框架,用来描述在不确定环境中做序贯决策的问题。
1. MDP核心五元组 (S, A, P, R, γ\gammaγ)
- 状态 (S): 智能体所处的情形,例如迷宫中的坐标。
- 动作 (A): 智能体可执行的操作,如上下左右移动。
- 转移概率 §: 执行某动作后,环境随机转移到下一个状态的概率。例如 80% 概率移动成功,20% 概率失败。
- 奖励 ®: 执行动作后环境给予的即时反馈(正数、负数或零)。
- 折扣因子 (γ\gammaγ): 介于 0 到 1 之间,表明“未来的奖励不如现在重要”。
2. 马尔可夫性质与累积奖励
- 马尔可夫性质: 未来只取决于现在,与过去无关。数学表达为 P(St+1∣St)=P(St+1∣S1,...,St)P(S_{t+1}|S_t)=P(S_{t+1}|S_1,...,S_t)P(St+1∣St)=P(St+1∣S1,...,St)。
- 累积折扣奖励: 目标是最大化整个过程中的累计折扣奖励期望。回报公式为 Gt=Rt+1+γRt+2+γ2Rt+3+...G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+...Gt=Rt+1+γRt+2+γ2Rt+3+...。
3. 价值函数与贝尔曼方程 (Bellman Equation)
- 状态价值函数 Vπ(s)V^\pi(s)Vπ(s): 在状态 sss 按照策略 π\piπ 执行的期望累积奖励。 Vπ(s)=Eπ[Gt∣St=s]V^\pi(s)=E_\pi[G_t|S_t=s]Vπ(s)=Eπ[Gt∣St=s]。
- 贝尔曼期望方程: Vπ(s)=R(s)+γ∑s′P(s′∣s,π(s))Vπ(s′)V^\pi(s)=R(s)+\gamma\sum_{s'}P(s'|s,\pi(s))V^\pi(s')Vπ(s)=R(s)+γ∑s′P(s′∣s,π(s))Vπ(s′)。
- 最优贝尔曼方程: V∗(s)=maxa[R(s,a)+γ∑s′P(s′∣s,a)V∗(s′)]V^*(s)=\max_a[R(s,a)+\gamma\sum_{s'}P(s'|s,a)V^*(s')]V∗(s)=maxa[R(s,a)+γ∑s′P(s′∣s,a)V∗(s′)]。
- 求解方法: 包括价值迭代与策略迭代(包含策略评估与策略改进)。
4. 占用度量 (Occupancy Measure)
这是一个巧妙的观点,指不同策略导致智能体访问各个“状态-动作对”的频率分布不同。一个策略的长期累计奖励,等价于“占用度量”与“即时奖励”的乘积之和,这为高级强化学习算法奠定了将动态问题静态化的理论基础。
四、 无模型强化学习基础预告 (Model-Free RL)
- 特点: 在没有明确给出的状态转移概率和奖励函数的情况下,智能体无需构建模型,直接从环境交互的轨迹片段中学习价值。
- 蒙特卡洛方法 (MC): 通过完全随机采样获得完整轨迹来更新价值。更新公式:V(s)←V(s)+α(G−V(s))V(s)\leftarrow V(s)+\alpha(G-V(s))V(s)←V(s)+α(G−V(s))。
- 时序差分学习 (TD) 及核心算法:
- SARSA算法 (同轨策略): 依赖于完整序列 (S,A,R,S′,A′)(S, A, R, S', A')(S,A,R,S′,A′),更新公式:Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]Q(s,a)\leftarrow Q(s,a)+\alpha[r+\gamma Q(s',a')-Q(s,a)]Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]。
- Q-Learning算法 (离轨策略): 更新时直接采用下一状态的最大 Q 值。Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)]Q(s,a)\leftarrow Q(s,a)+\alpha[r+\gamma\max_{a'}Q(s',a')-Q(s,a)]Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)]。
五、 实践环境搭建及软件安装
本周在理论学习之余,也进行了算法实践相关的 Python 平台搭建。
1. 核心软件安装
- Anaconda: 用于为 Python 提供丰富的包管理与环境管理。
- PyCharm: 一款功能强大的跨平台 Python 集成开发环境 (IDE),支持代码调试高亮、项目管理、智能提示和自动完成等提高开发效率的工具。
2. 环境变量配置
安装 Anaconda 后,需将相关路径写入 Windows 的系统环境变量以支持命令行调用:
- 添加路径如
D:\Anaconda、D:\Anaconda\Scripts、D:\Anaconda\Library\bin及D:\Anaconda\Library\mingw-w64\bin等。
3. 虚拟环境创建与框架验证
- 使用终端命令
conda info --envs可以查看已配置的虚拟环境列表(如 base, paddle_env, pythonProject 等)。 - 使用命令
conda activate paddle_env激活新创建的虚拟环境。 - 框架验证: 在 Python 3.7.16 交互环境中导入 PaddleFluid 库 (
import paddle.fluid)。执行paddle.fluid.install_check.run_check()进行运行检查。 - 当控制台输出
Your Paddle Fluid works well on MUTIPLE GPU or CPU.以及Your Paddle Fluid is installed successfully!时,标志着深度学习环境已成功搭建就绪。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)