第1章 强化学习的基本概念与基本理论
1.1 强化学习研究的问题及基本概念
1.1.1 一些强化学习研究实例
1.1.2 智能体
1.1.3 环境
1.1.4 状态及其观测
1.1.5 状态转移概率
1.1.6 动作
1.1.7 奖励
1.1.8 策略
1.2 马尔可夫决策过程
1.2.1 马尔可夫性质与转移概率
1.2.2 轨迹、回合及经验转换样本
1.2.3 回报及折现率
1.2.4 马尔可夫决策过程的数学记号及其含义
1.3 强化学习的基本函数
1.3.1 目标函数及其作用
1.3.2 状态价值函数及其作用
1.3.3 动作价值函数及其作用
1.3.4 Vπ(s)与Qπ(s, a)的互相表示关系
1.4 贝尔曼方程理论
1.4.1 Bellman方程及其作用
1.4.2 最优策略及最优状态价值函数
1.4.3 最优动作价值函数及其作用
1.4.4 Bellman最优方程及其作用
1.4.5 求解Bellman方程的思路
*1.5 神经网络的基本知识及几个重要定理
1.5.1 神经网络基本知识
1.5.2 神经网络通用近似定理
1.5.3 可微假设与矩阵点乘运算等基本知识
1.5.4 梯度及梯度下降与神经网络权值参数更新公式
1.5.5 数学期望基本知识
1.5.6 循环迭代结果的存在性与唯一性
1.6 本章小结
习题1
第2章 Q-learning算法求解最优路径问题
2.1 Q-learning算法的基本思想
2.2 ε-贪婪策略与时序差分算法
2.2.1 ε-贪婪策略及其作用
2.2.2 时序差分算法
2.3 Q-learning算法的实现
2.3.1 Q-learning算法的应用条件
2.3.2 Q-learning算法的伪代码
2.3.3 Q-learning算法的程序步骤
2.3.4 Q-learning算法的收敛性
2.4 Q-learning算法实例:寻找最优路径
2.4.1 问题说明
2.4.2 数学模型
2.4.3 基于MATLAB自带函数实现求解
2.4.4 基于自编代码实现求解
2.5 Q-learning算法的优缺点及算法扩展
2.5.1 Q-learning算法的优缺点
2.5.2 模型扩展
2.5.3 算法扩展
2.6 本章小结
习题2
第3章 SARSA算法求解最优安全路径问题
3.1 SARSA算法的基本思想
3.2 SARSA算法的实现
3.2.1 SARSA算法的伪代码
3.2.2 SARSA算法的程序步骤
3.2.3 on-policy和off-policy
3.2.4 SARSA算法的收敛性
3.3 SARSA算法实例:寻找最优安全路径
3.3.1 问题说明
3.3.2 数学模型
3.3.3 主程序代码
3.3.4 程序分析
3.4 SARSA算法与Q-learning算法对比
3.4.1 SARSA算法的优缺点
3.4.2 SARSA算法与Q-learning算法适用情况对比
3.4.3 最优策略对比
3.4.4 图像对比分析
3.5 本章小结
习题3
第4章 策略迭代算法求解两地租车最优调度问题
4.1 策略迭代算法的基本思想
4.2 策略迭代算法的实现
4.2.1 策略迭代算法的应用条件
4.2.2 策略迭代算法的伪代码
4.2.3 策略迭代算法的程序步骤
4.2.4 策略迭代算法的收敛性
4.3 策略迭代算法实例:寻找最优调度方案
4.3.1 问题说明
4.3.2 数学模型
4.3.3 主程序代码
4.3.4 程序分析
4.3.5 程序结果解读
4.4 策略迭代算法的优缺点及算法扩展
4.4.1 策略迭代算法的优缺点
4.4.2 模型扩展
4.4.3 算法扩展
4.5 本章小结
习题4
第5章 价值迭代算法求解最优路径问题
5.1 价值迭代算法的基本思想
5.2 价值迭代算法的实现
5.2.1 价值迭代算法的应用条件
5.2.2 价值迭代算法的伪代码
5.2.3 价值迭代算法的程序步骤
5.2.4 价值迭代算法的收敛性
5.2.5 价值迭代算法与策略迭代算法的联系与区别
5.3 价值迭代算法实例:寻找最优路径
5.3.1 问题说明
5.3.2 数学模型
5.3.3 主程序代码
5.3.4 程序分析
5.3.5 程序结果解读
5.4 价值迭代算法的优缺点及算法扩展
5.4.1 价值迭代算法的优缺点
5.4.2 模型扩展
5.4.3 算法扩展
5.5 本章小结
习题5
第6章 DQN算法求解平衡系统的最优控制问题
6.1 DQN算法的基本思想
6.2 经验回放技术与目标网络技术
6.2.1 经验回放技术与重要性采样及其作用
6.2.2 当前网络与目标网络
6.3 DQN算法的实现
6.3.1 DQN算法的应用条件
6.3.2 DQN算法的伪代码
6.3.3 DQN算法的流程与程序步骤
6.3.4 DQN算法的收敛性
6.4 DQN算法实例:求解平衡系统最优控制策略
6.4.1 问题说明
6.4.2 数学模型
6.4.3 主程序代码
6.4.4 程序分析
6.4.5 程序结果解读
6.5 代码程序细化
6.5.1 问题改进说明
6.5.2 主程序代码
6.5.3 程序分析
6.5.4 程序结果解读
6.6 强化学习算法的性能指标
6.6.1 任务累计
展开