强化学习(一)模型基础
1.强化学习在机器学习中的位置
强化学习的学习思路和人比较类似,是在实践中学习,比如学习走路,如果摔倒了,那么我们大脑后面会给一个负面的奖励值,说明走的姿势不好。然后我们从摔倒状态中爬起来,如果后面正常走了一步,那么大脑会给一个正面的奖励值,我们会知道这是一个好的走路姿势。那么这个过程和之前讲的机器学习方法有什么区别呢?
强化学习是和监督学习,非监督学习并列的第三种机器学习方法,从下图我们可以看出来。
强化学习来和监督学习最大的区别是它是没有监督学习已经准备好的训练数据输出值的。强化学习只有奖励值,但是这个奖励值和监督学习的输出值不一样,它不是事先给出的,而是延后给出的,比如上面的例子里走路摔倒了才得到大脑的奖励值。同时,强化学习的每一步与时间顺序前后关系紧密。而监督学习的训练数据之间一般都是独立的,没有这种前后的依赖关系。
再来看看强化学习和非监督学习的区别。也还是在奖励值这个地方。非监督学习是没有输出值也没有奖励值的,它只有数据特征。同时和监督学习一样,数据之间也都是独立的,没有强化学习这样的前后依赖关系。
2.强化学习的建模
我们现在来看看强化学习这样的问题我们怎么来建模,简单的来说,是下图这样的:
上面的大脑代表我们的算法执行个体,我们可以操作个体来做决策,即选择一个合适的动作(Action) A t A_t At。下面的地球代表我们要研究的环境,它有自己的状态模型,我们选择了动作 A t A_t At后,环境的状态(State)会变,我们会发现环境状态已经变为 S t + 1 S_{t+1} St+1,同时我们得到了我们采取动作 A t A_t At的延时奖励(Reward) R t + 1 R_{t+1} Rt+1。然后个体可以继续选择下一个合适的动作,然后环境的状态又会变,又有新的奖励值…这就是强化学习的思路。
那么我们可以整理下这个思路里面出现的强化学习要素。
第一个是环境的状态 S S S, t时刻环境的状态 S t S_t St是它的环境状态集中某一个状态。
第二个是个体的动作 A A A, t时刻个体采取的动作 A t A_t At是它的动作集中某一个动作。
第三个是环境的奖励 R R R,t时刻个体在状态 S t S_t St采取的动作 A t A_t At对应的奖励 R t + 1 R_{t+1} Rt+1会在t+1时刻得到。
下面是稍复杂一些的模型要素。
第四个是个体的策略(policy) π \pi π,它代表个体采取动作的依据,即个体会依据策略 π \pi π来选择动作。最常见的策略表达方式是一个条件概率分布 π ( a ∣ s ) \pi(a|s) π(a∣s), 即在状态 s s s时采取动作 a a a的概率。即 π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s)=P(A_t=a|S_t=s) π(a∣s)=P(At=a∣St=s).此时概率大的动作被个体选择的概率较高。
第五个是个体在策略
π
\pi
π和状态
s
s
s时,采取行动后的价值(value),一般用
v
π
(
s
)
v_π(s)
vπ(s)表示。这个价值一般是一个期望函数。虽然当前动作会给一个延时奖励
R
t
+
1
R_{t+1}
Rt+1,但是光看这个延时奖励是不行的,因为当前的延时奖励高,不代表到了t+1,t+2,…时刻的后续奖励也高。比如下象棋,我们可以某个动作可以吃掉对方的车,这个延时奖励是很高,但是接着后面我们输棋了。此时吃车的动作奖励值高但是价值并不高。因此我们的价值要综合考虑当前的延时奖励和后续的延时奖励。价值函数
v
π
(
s
)
v_π(s)
vπ(s)一般可以表示为下式,不同的算法会有对应的一些价值函数变种,但思路相同。
v
π
(
s
)
=
E
(
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
.
.
.
∣
S
t
=
s
)
v_{\pi}(s)=\mathbb{E}(R_{t+1}+\gamma{R_{t+2}}+\gamma^2{R_{t+3}}+...|S_t=s)
vπ(s)=E(Rt+1+γRt+2+γ2Rt+3+...∣St=s)
其中
γ
\gamma
γ是第六个模型要素,即奖励衰减因子,在[0,1]之间。如果为0,则是贪婪法,即价值只由当前延时奖励决定,如果是1,则所有的后续状态奖励和当前奖励一视同仁。大多数时候,我们会取一个0到1之间的数字,即当前延时奖励的权重比后续奖励的权重大。
第七个是环境的状态转化模型,可以理解为一个概率状态机,它可以表示为一个概率模型,即在状态 s s s下采取动作 a a a,转到下一个状态 s ′ s' s′的概率,表示为 P s s ′ a P_{ss'}^a Pss′a。
第八个是探索率 ϵ \epsilon ϵ,这个比率主要用在强化学习训练迭代过程中,由于我们一般会选择使当前轮迭代价值最大的动作,但是这会导致一些较好的但我们没有执行过的动作被错过。因此我们在训练选择最优动作时,会有一定的概率ϵϵ不选择使当前轮迭代价值最大的动作,而选择其他的动作。
最优动作时,会有一定的概率 ϵ \epsilon ϵ不选择使当前轮迭代价值最大的动作,而选择其他的动作。
以上8个就是强化学习模型的基本要素了。当然,在不同的强化学习模型中,会考虑一些其他的模型要素,或者不考虑上述要素的某几个,但是这8个是大多数强化学习模型的基本要素。