- 强化学习(RL)是机器学习的一个分支,其中学习是通过与环境交互来进行的。
- 与其他 ML 范例不同,RL 通过训练和误差方法工作。
- 智能体是做出明智决策的软件程序,它们基本上是 RL 的学习器。
- 策略函数指定在每个状态下要执行的操作,而值函数指定每个状态的值。
- 在基于模型的智能体中,使用以前的经验,而在无模型的学习中,则不会有任何以前的经验。
- 确定性的,随机的,完全可观察的,部分可观察的,离散的连续的,事件的和非事件的。
- OpenAI Universe 为训练 RL 智能体提供了丰富的环境。
- 请参阅 RL 的“应用”部分。
-
conda create --name universe python=3.6 anaconda
-
使用 Docker,我们可以将应用及其依赖关系打包,称为容器,并且我们可以在服务器上运行应用,而无需将任何外部依赖关系与打包的 Docker 容器一起使用。
-
gym.make(env_name)
-
from gym import envs
print(envs.registry.all())
-
OpenAI Universe 是 OpenAI Gym 的扩展,还提供各种丰富的环境。
-
占位符用于提供外部数据,而变量用于保持值。
-
TensorFlow 中的所有内容都将表示为由节点和边组成的计算图,其中节点是数学运算(例如加法,乘法等),而边是张量。
-
计算图只会被定义; 为了执行计算图,我们使用 TensorFlow 会话。
- 马尔可夫性质指出,未来仅取决于现在而不是过去。
- MDP 是马尔可夫链的延伸。 它提供了用于建模决策情况的数学框架。 几乎所有的 RL 问题都可以建模为 MDP。
- 请参阅“折扣系数”部分。
- 折扣系数决定了我们对未来奖励和即时奖励的重视程度。
- 我们使用贝尔曼函数求解 MDP。
- 有关值和 Q 函数的信息,请参见“推导贝尔曼方程”部分。
- 值函数指定状态的优劣,而 Q 函数指定状态下的行为的优劣。
- 请参阅“值迭代”和“策略迭代”部分。
-
当环境模型未知时,在 RL 中使用蒙特卡洛算法。
-
请参阅“使用蒙特卡洛估计
pi
的值”部分。 -
在蒙特卡洛预测中,我们通过取均值回报而不是期望回报来近似值函数。
-
在蒙特卡洛的每次访问中,我们平均将剧集中每次访问状态的收益均值化。 但是在首次访问 MC 方法中,我们仅在剧集中首次访问状态时才对返回值进行平均。
-
请参阅“蒙特卡洛控制”部分。
-
请参阅“策略上的蒙特卡洛控制”和“策略外的蒙特卡洛控制”部分
-
请参阅“让我们使用蒙特卡洛玩二十一点”部分。
- 蒙特卡罗方法仅适用于剧集任务,而 TD 学习可应用于剧集任务和非剧集任务
- 实际值与预测值之差称为 TD 误差
- 请参阅“TD 预测”和“TD 控制”部分
- 请参阅“使用 Q 学习解决滑行问题”部分
- 在 Q 学习中,我们使用
ε
贪婪策略采取行动,并且在更新 Q 值的同时,我们仅采取最大行动。 在 SARSA 中,我们使用ε
贪婪策略采取措施,并且在更新 Q 值的同时,我们使用ε
贪婪策略采取措施。
- MAB 实际上是一台老虎机,是一种在赌场玩的赌博游戏,您可以拉动手臂(杠杆)并根据随机生成的概率分布获得支出(奖励)。 一台老虎机称为单臂老虎机,当有多台老虎机时,称为多臂老虎机或 k 臂老虎机。
- 当业务代表不确定是使用以前的经验来探索新动作还是利用最佳动作时,就会出现探索-利用困境。
- ε用于确定智能体是否应使用
1-ε
进行探索或利用我们选择最佳作用的作用,而使用ε则探索新作用。 - 我们可以使用各种算法(例如
ε
贪婪策略,softmax 探索,UCB,Thompson 采样)解决探索-利用难题。 - UCB 算法可帮助我们根据置信区间选择最佳分支。
- 在 Thomson 抽样中,我们使用先验分布进行估计,而在 UCB 中,我们使用置信区间进行估计。
- 在神经元中,我们通过应用称为激活或传递函数的函数
f()
将非线性引入结果z
。 请参阅“人工神经元”部分。 - 激活函数用于引入非线性。
- 我们计算成本函数相对于权重的梯度以最小化误差。
- RNN 不仅基于当前输入,而且还基于先前的隐藏状态来预测输出。
- 在网络反向传播时,如果梯度值变得越来越小,则称为消失梯度问题,如果梯度值变得更大,则它正在爆炸梯度问题。
- 门是 LSTM 中的特殊结构,用于决定保留,丢弃和更新哪些信息。
- 池化层用于减少特征映射的维数,并且仅保留必要的细节,因此可以减少计算量。
- 深度 Q 网络(DQN)是用于近似 Q 函数的神经网络。
- 经验回放用于删除智能体经验之间的相关性。
- 当我们使用同一网络来预测目标值和预测值时,会有很多差异,因此我们使用单独的目标网络。
- 由于最大运算符,DQN 高估了 Q 值。
- 通过具有两个单独的 Q 函数,每个学习都独立地加倍 DQN,从而避免了高估 Q 值的情况。
- 经验是优先经验回放中基于 TD 误差的优先级。
- DQN 通过将 Q 函数计算分解为值函数和优势函数来精确估计 Q 值。
- DRQN 利用循环神经网络(RNN),其中 DQN 利用原始神经网络。
- 当可以部分观察 MDP 时,不使用 DQN。
- 请参阅“DRQN 的 Doom”部分。
- 与 DRQN 不同,DARQN 利用注意力机制。
- DARQN 用于理解和专注于游戏屏幕的特定区域,这一点更为重要。
- 软硬注意力。
- 即使该举动无用,我们也将智能体的每次举动设置为活奖赏 0。
- A3C 是“异步优势演员评论家网络”,它使用多个智能体进行并行学习。
- 三个 A 是异步,优势,演员评论家。
- 与 DQN 相比,A3C 需要更少的计算能力和训练时间。
- 所有智能体(员工)都在环境副本中工作,然后全局网络汇总他们的经验。
- 熵用于确保足够的探索。
- 请参阅“A3C 的工作方式”部分。
-
策略梯度是 RL 中令人惊奇的算法之一,在该算法中,我们直接优化由某些参数设置参数的策略。
-
策略梯度是有效的,因为我们无需计算 Q 函数即可找到最佳策略。
-
演员网络的作用是通过调整参数来确定状态中的最佳动作,而评论家的作用是评估演员产生的动作。
-
请参阅“信任区域策略优化”部分
-
我们迭代地改进了该策略,并施加了一个约束,即旧策略和新策略之间的 Kullback-Leibler(KL)差异要小于某个常数。 该约束称为信任区域约束。
-
PPO 通过将约束更改为惩罚项来修改 TRPO 的目标函数,因此我们不想执行共轭梯度。
- DQN 直接计算 Q 值,而决斗 DQN 将 Q 值计算分解为值函数和优势函数。
- 请参阅“记忆回放”部分。
- 当我们使用同一网络来预测目标值和预测值时,会有很多差异,因此我们使用单独的目标网络。
- 请参阅“记忆回放”部分。
- 请参阅“决斗网络”部分。
- 决斗 DQN 将 Q 值计算分解为值函数和优势函数,而双 DQN 使用两个 Q 函数来避免高估。
- 请参阅“决斗网络”部分。
-
智能体中的想象力指定了采取任何行动之前的可视化和计划。
-
想象力核心由执行想象力的策略网络和环境模型组成。
-
智能体反复从人类那里获得反馈,并根据人类的喜好改变目标。
-
DQfd 使用一些演示数据进行训练,因为 DQN 并未预先使用任何演示数据。
-
请参阅事后经验回放(HER)部分。
-
提出了分层强化学习(HRL),以解决维数诅咒,其中我们将大问题解压缩为层次结构中的小子问题
-
我们试图在 RL 中找到给定奖励函数的最优策略,而在逆向强化学习中,给出最优策略并找到奖励函数