Active learning 主动学习

Active ADP

active ADP的更新公式

$$
\begin{equation}
U(s)=\max {a \in A(s)} \sum{s^{\prime}} P\left(s^{\prime} \mid s, a\right)\left[R\left(s, a, s^{\prime}\right)+\gamma U\left(s^{\prime}\right)\right]
\end{equation}
$$

active adp 和passive adp的主要区别是在于agent在学习效用函数时,对于passive ADP在某个状态的策略是固定的,对于active adp在某个状态下有多个动作可以选择,active adp 会选择产生的最大的效用值作为expected utility value(MEU).

exploration and exploitation

智能体对环境的探索依然受到exploration和exploitation的限制,对于使用ADP算法,可以将乐观估计融入效用之更新公式中:

$$
\begin{equation}
U^{+}(s) \leftarrow \max a f\left(\sum{s^{\prime}} P\left(s^{\prime} \mid s, a\right)\left[R\left(s, a, s^{\prime}\right)+\gamma U^{+}\left(s^{\prime}\right)\right], N(s, a)\right)
\end{equation}
$$

其中:
$U^+(s)$ 表示的是optimistic estimate of the utility of the state

$N(s, a)$ 表示的是动作$a$在状态$s$所尝试的次数,是一个固定常数

其次,更新的效用值函数中多了$f(u,n)$,可以表示为如下形式

$$
f(u, n)=
\begin{cases}
R^{+} & \text {if } n<N_e \ u & \text { otherwise }
\end{cases}
$$

其中:

$R^+$ 表示的是在动作$a$尝试次数小于某个阈值$N_e$之前,给与$U^{+}(s)$乐观估计量(best possible reward obtainable in any state)的更新,这个作用是会让agent在每一个状态-动作对都尝试至少$N_e$次,因为每次都会是最大的反馈。右边的$U^{+} (s)$带加号能够让agent持续的对未知区域进行探索,其代表了探索未知区域这一行为的好处能够通过效用值从那些尚未探索的区域边缘向回传递,如果去掉加号,则代表较为悲观保守的探索策略,即不再在效用值上区分未知区域,这样agent会很快就停止朝着未探索区域前进了。

Safe exploration

安全探索意思是实行更加保守的探索策略,即在实验环境,如果agent遇到了负反馈奖励,其会通过学习来改善自己的策略,下次就避免不再进行负反馈运动了,但是在实际生活中,如果一辆智能车撞了墙产生了负反馈,则没有回头路和二次机会去供其学习,更不用说避免下次再撞墙这一事件的发生了。 另外,safe exploration 还要避免进入到死胡同的状态中去,比如开车开到了泥潭中,没有办法脱离该状态。

三个准则实行safe exploration:

  1. 避免进入到拥有很大负反馈的状态,比如严重车祸
  2. 避免进入没有回头路的状态,比如开车开进了泥潭
  3. 避免进入到没有后续奖励的状态,即进入到absorbing state,在这种状态下无论任何可行动作都不能够产生任何反馈和作用,比如汽车的引擎坏掉、电脑断电等状态。

Bellman equation Q-learning

$$
Q(s, a)=\sum_{s^{\prime}} P\left(s^{\prime} \mid s, a\right)\left[R\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)\right]
$$

使用Bellman equation Q-learning 其实本质上和使用bellman equation没有大的区别,除了Q-function会自动选择最优的动作$\arg \max _{a} Q(s, a)$ 而不需要基于transition model 提前一步look-ahead.

Temporal-difference Q-learning

$$
Q(s, a) \leftarrow Q(s, a)+\alpha\left[R\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)-Q(s, a)\right]
$$

TD Q-learning 不需要transition model,而是利用两个连续状态间的Q差值来进行学习。其中$R\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)-Q(s, a)$ 代表的是状态更新想要最小化的误差。

image-20220426211436114

SARSA

SARSA 是state, action,reward, new state, new action的简写。

SARSA的公式为:

$$
Q(s, a) \leftarrow Q(s, a)+\alpha\left[R\left(s, a, s^{\prime}\right)+\gamma Q\left(s^{\prime}, a^{\prime}\right)-Q(s, a)\right],
$$

SARSA与Q-learning的区别在于SARSA取实际走的动作产生的$Q(s^\prime,a^\prime)$,而Q-learning则是预演一步,看哪一个动作产生最大Q值,取该动作产生的$Q(s^\prime,a^\prime)-Q(s,a)$差值进行优化,而实际上更新该Q值时agent还没有进行这一步动作,而SARSA是先动作后更新。

对于探索时如果agent得到负反馈,则SARSA会惩罚该动作,即该动作的Q值会减少,而Qlearning并不会进行对探索动作进行惩罚。

Qlearning和SARSA在agent是greedy agent的时候,即总是选取最优下一步的agent时变成一样。

Q-learning is an off-policy learning algorithm, because it learns Q-values
that answer the question “What would this action be worth in this state,
assuming that I stop using whatever policy I am using now, and start
acting according to a policy that chooses the best action (according to my
estimates)?” SARSA is an on-policy algorithm: it learns Q-values that
answer the question “What would this action be worth in this state,
assuming I stick with my policy?” Q-learning is more flexible than SARSA,
in the sense that a Q-learning agent can learn how to behave well when
under the control of a wide variety of exploration policies.