强化学习是Agent在与环境(模型)Environment的互动当中为了达成一个目标而进行的学习过程.
目前最多的应用领域为:游戏,即棋盘,Dota,星际争霸等等
Basic Element
Agent
与环境(Environment
)进行互动的主体,如下棋中我们玩家这个个体.
Environment
我把它理解为是除了
Agent
以外的主体
Goal
是一个长远的结果.
Main Element
State
即Agent
和Environment
目前所处的状态(泛指状态,如地理位置,是否存有等等)
Action
State
和Action
的往复就构成了强化学习的主体.
Reward
指
Agent
在一个状态之下采取了特定的行动之后多得到的即时反馈.其Reward
是一个实数,而且可能为0.(如下棋的过程,我们刚开始的每一步下棋并不会导致胜利,因而这一过程中,我们的Reward
都为0)Reward
应该是由Goal
所决定的.
这里指出一点:对奖励设置的太过理想会导致收敛速度缓慢或者甚至不会收敛,比如围棋的输赢,是一个很缓慢的收敛过程,就会造成整个学习过程崩溃
Core Element
Policy
在某一个状态下应该采取什么样的行动.
用数学角度可以理解Policy
即为一个函数,而其的自变量或输入是一个状态,而因变量或输出是一个行动.
A
c
t
i
o
n
=
P
o
l
i
c
y
(
S
t
a
t
e
)
Action = Policy(State)
Action=Policy(State)
Value
Value
也是一个函数,且Policy
就取决于Value
.
它指的是预期将来会得到的所有奖励之和.
也就是说处于当前这一状态的情况下,玩家(Agent
) 在将来能够得到的所有奖励的一个期望值.玩家(Agent
)的Goal
就是Value
尽可能的大.
其通常有两种: 1. State Value
2. State-Action Value
1. State Value
它的输入是一个状态,输出则是一个实数,这个实数则称为是这个状态的价值.
通过State Value
,玩家应该选择进入Value
尽可能大的状态,而这是通过特定的行动(Action
)来实现.
2. State-Action Value
它指的不单单是一个状态所对应的价值,而是在特定状态下,采取某种行动所具有的价值.
在一定的状态下,根据状态行动价值函数,玩家应该选择价值最大的那一个行动,这也就是状态行动价值函数决定了玩家的策略.
这里指出 状态价值函数和状态行为值函数 可以通过bellman 方程来进行互相转化
Trait
强化学习有两个特点,
- 试错(
Trial and Error
); 2. 延迟奖励(Delay Reward
)
1. Trial and Error
此外,强化学习是一种试错学习,即在不断的尝试中去学习
2. Delay Reward
即,行动没有得到即时的奖励,但是每一个行动对最后的胜利都会产生一定的贡献,这就说明一个行动可能没有奖励,但是这个行动一定是有价值的.但是一个行动所具有的价值,只有在得到了奖励之后才会真正被体现出来.
那么我们如何去知道 过去的行动对当前奖励的影响?
这就涉及到了Credit Assignment
和Backpropagation
问题.
核心问题
强化学习的核心问题是:Exploration
和Exploitation
即利用最好的同时仍要去探索出新的道路,真的好哲理啊这个核心问题.