Gridea

深度强化学习

2022-12-08 · 9 min read

强化学习

强化学习过程

强化学习是一种通过试错来学习的机器学习方法。在强化学习中,一个智能体(可以是一个机器人、计算机程序等)在一个环境中进行探索,通过执行动作并观察其后果来学习最优策略。

强化学习的过程可以分为四个主要步骤:

  1. 观察:智能体首先要对其当前所处的环境进行观察,获取关于环境的信息。
  2. 决策:接下来,智能体根据所获取的信息,通过一定的决策策略来选择执行的动作。
  3. 执行:智能体执行选择的动作,并观察其后果。
  4. 反馈:根据执行动作后的结果,智能体会得到一定的奖励或惩罚,这个反馈会对智能体的后续决策产生影响。

这个过程不断重复,智能体会根据它所获得的奖励和惩罚来不断优化其决策策略,从而达到最优化控制的目标。

探索和开发的权衡

在强化学习中,智能体需要通过探索来学习关于环境的信息,并在这些信息的基础上进行决策。然而,过多的探索可能会导致智能体无法及时地发现并利用已经学到的知识,从而降低其表现。相反,如果智能体过于依赖已有的知识而过少探索,可能会导致它错过一些更优的决策。因此,在强化学习中,探索和开发之间存在一个平衡,智能体需要在这两者之间找到一个适当的平衡点,以便在学习的过程中尽可能地发挥最优性能。

为了平衡探索和开发,强化学习算法通常采用一种名为“探索-利用权衡”的方法。该方法的基本思想是,智能体在初始阶段会以较高的概率进行探索,在不断的学习过程中,随着对环境的了解增加,智能体会逐渐转向利用已有的知识来决策。这样,智能体就能在探索和开发之间找到一个合适的平衡点,从而在学习过程中达到最优性能。

奖励的折扣率

定义一个在 0 和 1 之间的折扣率 γ\gammaγ\gamma 越大,折扣越小。因此,累计的预期奖励是:

Gt=k=0γkRt+k+1 where γ[0,1)G_{t}=\sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1} \text { where } \gamma \in[0,1)

\infty: 奖励总数
K: 奖励次数
γ\gamma: 折扣率
RtR_{t}: 当前状态下的奖励

强化学习中的任务及其类型

  • 持续
  • 偶发

价值模型

价值模型是一种预测未来奖励的模型,它用来估计某一状态或动作的价值。价值模型可以帮助智能体选择最优的策略,从而在不断的学习过程中达到最大化长期奖励的目标。

策略模型

策略模型是一种决策模型,它用来预测某一状态下的最优动作。策略模型帮助智能体在不断的探索中选择最优的动作,从而在学习过程中最大化奖励。

价值模型是在发出动作后,对未来总回报的期望;策略模型是在当前状态下,选择执行哪个动作奖励最大。

马尔可夫决策过程

在强化学习中,马尔可夫决策过程(MDP)是一种数学模型,用于描述一个智能体在一个环境中的决策问题。MDP 模型由五个部分组成:

  1. 状态(states):代表智能体所处的环境状态。
  2. 行为(actions):智能体可以采取的动作。
  3. 状态转移概率(state transition probabilities):智能体采取某一动作后环境变化的概率分布。
  4. 奖励函数(reward function):智能体在采取某一动作后所获得的奖励。
  5. 折扣因子(discount factor):用于权衡未来奖励与当前奖励的值。

马尔可夫决策过程的目标是找到一种最优的策略,使得智能体在未来的所有时刻获得的总奖励最大。这种策略通常是一个映射,将智能体的每个状态映射到一个最优的动作。

V 价值 & Q 价值

Q价值是指在当前状态下采取特定行动的预期未来奖励。例如,如果智能体当前位于某个房间并考虑采取行动A或B,那么Q价值可以帮助它决定哪个行动会带来更多奖励。

Q价值 = 当前奖励 + 未来奖励最大的路径上的奖励总和 * 折扣率

V价值是指在当前状态下采取任何可能行动的预期未来奖励。与Q价值不同,V价值并不考虑具体采取哪个行动,而是对当前状态下采取任何行动的预期奖励进行评估。

V价值 = 当前奖励 + 未来所有路径的总奖励期望

强化学习的目的是通过不断地更新Q和V价值来帮助智能体学习选择行动,从而达到预期的长远目标。

V价值更新

V 价值是用状态来衡量的,当前的价值由未来每个状态的价值总和的期望来决定。可以用马可夫随机过程来衡量,是一个价值模型。

Vt=E(Rt)=rt+λVt+1V_t = E(R_t) = r_t + \lambda V_{t+1}

Q价值

Q 价值是在一种状态 S 下,先执行某个动作 a 后,再采取某策略(最优策略)后,所带来的累积奖赏。

Q 价值是马可夫决策过程产生的,是一个策略模型。当前的状态不能完全决定价值,还和下一步选择哪个动作走哪条路径有关: Q(s,a)Q(s,a)

Bellman 方程

Rt=rt+γrt+1+γ2rt+2+γntrnR_{t}=r_{t}+\gamma r_{t+1}+\gamma^{2} r_{t+2} \ldots+\gamma^{n-t} r_{n}
Rt=rt+γ(rt+1+γ(rt+2+...))=rt+γRt+1R_t = r_t + \gamma (r_{t+1} + \gamma (r_{t+2}+...)) = r_t + \gamma R_{t+1}

Q函数

Q函数,也称为Q值函数或Q学习函数,是一个在强化学习中用于表示某个状态下采取某个行动的预期未来奖励的函数。Q函数的定义为:

Q(s,a)=r+γmaxaQ(s,a)Q(s, a)=r+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)

其中s表示状态,a表示行动,r表示在采取行动a后获得的奖励,γ表示折扣因子,s’表示采取行动a后的新状态,a’表示在新状态s’下可采取的行动。

Q函数通过计算当前状态下采取某个行动的预期未来奖励来帮助智能体选择行动。它的值可以通过不断地进行训练来更新,从而使智能体不断学习并逐渐提高。

Q-Learning

实际价值:r+γmaxaQ(s,a)r+\gamma \max _{a^{\prime}} Q(s, a)
估计价值:Q(s,a)Q(s, a)

Q(s,a)=Q(s,a)+α[r+γmaxaQ(s,a)Q(s,a)]Q(s, a)=Q(s, a)+\alpha\left[r+\gamma \max _{a^{\prime}} Q(s, a)-Q(s, a)\right]

DQN (Deep Q-Network)

Deep Q-Network(简称 DQN)是一种用于强化学习的深度神经网络。它的目标是学习一个价值函数,该函数可以估计在给定状态下采取某个行动的价值。通常,DQN 用于控制机器人或游戏人物的行为,并通过尝试许多不同的行动来学习最优策略。

强化学习的开发和探索

探索值给一个 0 到 1 的定值 (根据环境的复杂性而定,环境越复杂,探索值越大)。

每次训练的时候, 随机生成一个 0 到 1 的小数,如果随机数大于探索值,就执行 Q 值最大的那个动作 (开发),如果随机数小于探索值,就随机选择一个动作执行 (探索)。探索值随时间衰减 (随机数增加),刚开始探索值较大,随着训练,agent 对环境越来越熟悉,探索值可以逐渐减小。