强化学习的概念
强化学习主要由智能体(agent)和环境(environment)两部分组成。智能体代表具有行为能力的物体,环境指智能体执行动作时所处的场景。其目标是寻找一个最优策略,使智能体在运动过程中获得的累积奖励最大。
通俗的说:
强化学习算法通过不断的与用户进行交互,先推送少量的类似信息给用户,看用户的反馈,然后根据用户的反馈再推送相关的内容,并在后序交互过程中继续根据用户的反馈不断维护和更新上述内容。
学习过程
强化学习可以用四元组<S,A,P,R>表示,其中S为状态集合、A为动作集合、P为状态转移函数、R为奖励函数,其计算流程如下:
(1)在时刻
t
t
t
,智能体所处状态为
s
t
∈
S
s_t \in S
s
t
∈
S
,此时需要一定的策略policy从动作集合中选择一个动作
a
t
∈
A
a_t \in A
a
t
∈
A
。动作的连续性和集合的大小会直接影响到后面的结果;
(2)在完成动作
a
t
a_t
a
t
后,环境会给出一个强化信号
r
t
r_t
r
t
(奖励或者惩罚),经典的强化信号计算方法为:
G
t
G_t
G
t
=
r
t
+
r
t
+
1
+
.
.
.
+
γ
n
r
t
+
n
r_t+r_{t+1}+…+\gamma^nr_{t+n}
r
t
+
r
t
+
1
+
.
.
.
+
γ
n
r
t
+
n
其中
G
t
G_t
G
t
为奖励的回报,
γ
\gamma
γ
是衰减因子
0
≤
γ
≤
1
0\leq \gamma \leq 1
0
≤
γ
≤
1
,
n
n
n
是奖励的积累步骤,可以取到无限大。当
γ
=
0
\gamma=0
γ
=
0
时,回报只考虑当下的奖励,当
γ
=
1
\gamma=1
γ
=
1
时,回报会考虑整个过程的影响;
(3)动作
a
t
a_t
a
t
同时会改变环境。从当前状态
s
t
s_t
s
t
转移到下一状态
s
t
+
1
s_{t+1}
s
t
+
1
,在此之后,智能体根据
t
+
1
t+1
t
+
1
时刻的状态
s
t
+
1
s_{t+1}
s
t
+
1
选择下一个动作,进入下一个时间点的迭代。