文章目录
1 再认识强化学习
深度强化学习:不需要设计特征,直接输出动作。
分类:
- 全部可观测(智能体状态与环境等价)、完全可观测(智能体可以观察到环境的所有状态)、部分可观测
- 离散动作空间和连续动作空间
- 有模型和无模型:有模型需要对环境进行建模,同时在真实环境和虚拟环境中进行学习;无模型直接与环境进行交互,需要大量数据
- 输出动作:基于策略和基于价值,或者混合模型
- 基于策略:智能体根据策略进行操作,强化学习算法直接对策略进行优化以获得最大奖励
- 基于价值:应用在离散环境下。Q-learning 或者 Sarsa
特点
- 环境和奖励函数在学习之前就设定好的,可以通过改变策略使得智能体输出的动作可以得到最大的奖励
- 应用场景:多序列决策问题
- 与无监督学习、监督学习的区别:
- 监督学习需要有标签,强化学习和无监督学习不需要
- 无监督学习直接基于给定的数据建模,寻找数据或特征中隐藏的结构或者规则
强化学习通过延迟奖励学习策略来得到模型与目标的距离,大多处理序列数据,样本之间强相关
- 与深度学习的区别
- 深度学习损失函数:缩小预测值和真实值之间的距离,尽可能预测精准
- 强化学习损失函数:使奖励的期望值尽可能大
2 马尔可夫决策过程
2.1 马尔可夫奖励过程
马尔可夫链+奖励函数
状态价值函数
V
t
(
s
)
=
E
(
G
(
t
)
∣
s
t
=
s
)
V^{t}(s)=E(G(t)|s_t=s)
Vt(s)=E(G(t)∣st=s):未来可能获得奖励的当前价值的表现。
折扣因子
γ
\gamma
γ,0表示只关注当前的奖励,1表示未来的奖励与当前的奖励一致。超参数之一
2.2 贝尔曼方程
贝尔曼方程
V
(
s
)
=
R
(
s
)
+
γ
∑
p
(
s
′
∣
s
)
V
(
s
′
)
V(s)=R(s)+\gamma\sum p(s^{'}|s)V(s^{'})
V(s)=R(s)+γ∑p(s′∣s)V(s′):即时奖励和未来奖励的折扣总和
贝尔曼方程就是当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算
2.3 马尔可夫决策过程
马尔可夫奖励+决策:中间多了一层动作a
Q函数(动作价值函数):
Q
π
(
s
,
a
)
=
E
π
(
G
(
t
)
∣
s
t
=
s
,
a
t
=
a
)
Q_\pi(s,a)=E_\pi(G(t)|s_t=s,a_t=a)
Qπ(s,a)=Eπ(G(t)∣st=s,at=a)
Q函数贝尔曼方程
Q
(
s
,
a
)
=
R
(
s
,
a
)
+
γ
∑
p
(
s
′
∣
s
,
a
)
V
(
s
′
)
Q(s,a)=R(s,a)+\gamma\sum p(s^{'}|s,a)V(s^{'})
Q(s,a)=R(s,a)+γ∑p(s′∣s,a)V(s′)
预测和控制时马尔可夫决策过程核心问题。预测是指给定一个马尔可夫决策过程以及一个策略
π
\pi
π ,计算它的价值函数,也就是计算每个状态的价值。控制就是我们去寻找一个最佳的策略,然后同时输出它的最佳价值函数以及最佳策略。
2.4 特点
马尔可夫最重要的性质时下一时刻的状态只与当前状态有关。若数据流不具备该性质,可以利用循环神经网络对历史信息进行建模,获得包含历史信息的转台表征,最后在表征状态空间求解马尔可夫决策过程问题
3 动态规划
转移概率已知,奖励函数已知,有模型
4 免模型预测
特点
免模型则直接学习在特定状态下执行特定动作的价值或优化策略。它直接从与环境的交互中学习,不需要建立任何预测环境动态的模型。其优点是不需要学习可能是较为复杂的环境模型,更加简单直接,但是缺点是在学习过程中需要与真实环境进行大量的交互。注意,除了动态规划之外,基础的强化学习算法都是免模型的。
预测与控制
预测的主要目的是估计或计算环境中的某种期望值
控制的目标则是找到一个最优策略,该策略可以最大化期望的回报。
4.1 蒙特卡洛估计
统计学方法,预测价值函数
首次访问蒙特卡洛:首先产生一个回合的完整轨迹,然后遍历该轨迹,计算每个状态的回报
每次访问蒙特卡洛:不忽略统一状态的多个回报,考虑所有轨迹的回报
4.2 时序差分估计
基于经验的动态规划算法,结合蒙特卡洛和动态规划的思想。
更新过程中使用了当前奖励和后继状态的估计,这是类似于蒙特卡罗方法的;但同时也利用了贝尔曼方程的思想,将下一状态的值函数作为现有状态值函数的一部分估计来更新现有状态的值函数。
4.3 时序差分和蒙特卡洛的比较
时序差分可以在线学习。蒙特卡洛必须等游戏结束后才可以学习
5 免模型控制
探索策略
ϵ
−
g
r
e
e
d
y
\epsilon-greedy
ϵ−greedy指智能体再探索过程中,以
1
−
ϵ
1-\epsilon
1−ϵ的概率按照Q函数来执行动作,以剩下盖里随机动作。一般
ϵ
\epsilon
ϵ会设置很小,比如0.1。
同策略与异策略: Sara算法在训练的过程中当前策略来生成数据样本,并在其基础上进行更新。换句话说,策略评估和策略改进过程是基于相同的策略完成的,这就是同策略算法。相应地,像 Q-learning算法这样从其他策略中获取样本然后利用它们来更新目标策略,我们称作异策略算法。
6 深度学习基础
线性回归是深度学习模型的基础,在深度学习中相当于单层的神经网络。
线性回归和逻辑回归,通常分别用于解决回归和分类问题。
逻辑回归是预测样本的类别。形式上,逻辑回归就是再线性模型的后边加一个sigmoid函数(激活函数),优点是增加了模型的非线性能力。二分类问题用sigmoid函数,多分类用softmax函数
损失函数:线性回归的损失函数是均方差损失,而逻辑回归是交叉熵损失。
6.1 全连接网络
线性层堆叠。其中,每个线性层的输出都会经过一个激活函数来增加模型的非线性能力。
激活函数:sigmoid/softmax/ReLU/tanh函数。ReLU将线性函数的输出映射到(0,1)之间,tanh 映射到(-1,1)之间
6.2 卷积神经网络-CNN
适用于处理具有网格结构的数据,图像或者时序数据。
局部感受野、权重共享、池化层、归一化和Dropout。
6.3 循环神经网络-RNN
适用于处理时序数据。容易产生梯度消失或梯度爆炸。
改进的RNN: LSTM和GRU等。LSTM主要通过引入门机制(输入门、遗忘门和输出门)来解决梯度消失的问题。GRU是LSTM的简化,只有更新门和重置门,并且将记忆单元和隐藏状态合并为一个状态向量,计算效率更高。
Transformer: 使用自注意力机制来同时考虑序列中的所有元素。适合并行计算。广泛用于自然语言处理,BERT和GPT模型
7 DQN
Q表只能处理离散的状态和动作空间,而神经网络则可以处理连续的状态和动作空间
在表中我们描述状态空间的时候一般用的是状态个数,而在神经网络中我们用的是状态维度。另外注意,无论是Q表还是DQN中的神经网络,它们输出的都是每个动作对应的Q值,即预测,而不是直接输出动作。要想输出动作,就需要额外做一些处理,例如结合贪心算法选择Q值最大对应的动作等,这就是我们一直强调的控制过程。