> 文档中心 > 强化学习(DQN)之基础概念

强化学习(DQN)之基础概念

目录

1. 数学知识

1.1 随机变量与观测值

1.2 概率密度函数

1.3 期望

2. 专业术语

2.1 agent

2.2 action

2.3 state

2.4 policy

2.5 reward

2.6 state transition

2.7 trajectory

2.8 return

2.9 value function

2.9.1 动作价值函数

2.9.2 状态价值函数

3.OpenAI Gym


讲完了神经网络的一些基本知识,我们现在来学习强化学习(DQN),首先我们需要了解DQN有什么用,强化学习是一种目标导向的计算方法,其中计算机通过与未知的动态环境进行交互来学习执行任务。 这种学习方法使计算机可以做出一系列决策,以最大化任务的累积奖励,而无需人工干预,也无需进行明确编程即可完成任务。简单来说就是我们想要计算机像人一样能够与环境进行互动。比如说前阵子非常火AlphaGo就是通过DQN实现的。要学习DQN,我们需要一些简单的概率论知识。

1. 数学知识

1.1 随机变量与观测值

随机变量是一个基于随机事件结果的变量,我们通常用大写字母表示X=\left \{ 0,1 \right \} 指的是某个随机事件有两种结果,其中一个结果我们用0表示另一个用1表示。

观测值指的是已经发生的事件的结果的值,我们通常用小写字母表示如 x_1=1,x_2=0 表示第一次发生的事件的结果为1,第二次为0。

1.2 概率密度函数

我们在高中就学过的正态分布的函数就是一个概率密度函数,它的自变量是随机变量的可能值,因变量是这些可能值所对应的概率。

1.3 期望

期望可以粗略理解为一个事件发生很多后结果的“平均值”,我们用 E(f(X)) 表示 f(x) 的期望严格定义如下

若随机事件的概率密度函数是连续的,则:

E(f(X))=\int_{\mathcal{X}}p(x)f(x)dx

若随机事件的概率密度函数是离散的,则:

E(f(X))=\sum_{\mathcal{X}}p(x)f(x)dx

其中\mathcal{X}是一个指标集,可以看成 f(x) 的定义域。

2. 专业术语

要学习DQN我们需要先熟悉常用的术语。

2.1 agent

agent指的是智能体,就是我们可以控制的进行决策的主体。比如说下棋的那个AlphaGo就是一个agent。

2.2 action

action指的是agent进行的决策,记成 a 。比如说AlphaGo落的某一步子可以看成一个action。

2.3 state

state指的是当前状态,记成 s 。比如说下棋过程中某一时刻整个棋盘就是某个状态。

2.4 policy

policy指的是控制action的策略,它是一个与state有关的关于action概率密度函数,记成\pi(a | s)=P(A=a|S=s).表示在状态 s 下的 a 的概率密度。

2.5 reward

reward指的是奖励,可以看出一种反馈来优化策略,记成 R 通常是自己定义。比如AlphaGo落子获得“气”网络就获得奖励。

2.6 state transition

state transition称之为状态转移,指的是state因为agent进行了某一个action而发生改变的过程。

2.7 trajectory

trajectory称之为轨迹,指的是从开始到结束的所以state和action构成的序列,如 s_1,a_1,r_1,s_2,a_2,r_2...s_T,a_T,r_T 便称为一个trajectory,其中 T 最后一步。

2.8 return

return称为回报又称为未来的累计奖励(cumulative future reward),一般用 U_t 表示,U_t=R_t+R_{t+1}+...+R_{t+n}+...,但是我们通常认为不同时刻的 R 并不同等重要,即不同的 R

的权重不等,于是我们引入折扣(discount),用 \gamma 表示,于是得到 U_t=R_t+\gamma R_{t+1}+...+\gamma^n R_{t+n}+... 。

2.9 value function

2.9.1 动作价值函数

 action value function称为价值函数,其基本表达式是 Q_\pi(s_t|a_t)=E[U_t|S_t=s_t,A_t=a_t]

表示对return也就是未来积累奖励求期望,Q_{\pi} 这个函数和当前的state和action还有policy有关,我们的目标肯定是最大化积累奖励,我们知道 Q_{\pi} 这个函数和当前的state和action还有policy有关,三个变量不好处理,我们试着简化问题,我们定义 Q^*=\underset{\pi}{max}Q_{\pi}(s_t,a_t)  表示便利所有policy中最大的 Q_{\pi},这样只要确定了当前state我们就只需要决策当前的action就行了。

2.9.2 状态价值函数

如果我们定义V_{\pi}(s_t)=E_{A}[Q_{\pi}(s_t,a_t)],即对action求期望,这样我们就得出了回报和当前state的函数关系,确定了当前state我们就知道了当前胜算有多大,从而对局势进行判断。

3.OpenAI Gym

Gym是强化学习的常用标准库之一,有几大控制问题,常用于测试模型 Gym。