机器学习 - 强化学习详解

想胖的壮壮 2024-10-02 11:01:04 阅读 76

强化学习:算法的思维与具体过程

强化学习(Reinforcement Learning, RL)是一种机器学习方法,通过与环境的交互来学习策略,以最大化累积奖励。本文将通过详细阐述强化学习的核心概念,并以 Q-learning 和 Proximal Policy Optimization (PPO) 两种典型算法为例,深入探讨它们的算法思维和具体操作步骤。

1. 强化学习的基本概念

在强化学习中,智能体(Agent)通过与环境(Environment)互动来学习如何在不同的状态(State, S)下选择合适的动作(Action, A)以获得最大的累积奖励(Reward, R)。这个学习过程通常被建模为一个马尔可夫决策过程(Markov Decision Process, MDP),MDP 由以下要素组成:

状态空间 (S):所有可能的状态集合。动作空间 (A):所有可能的动作集合。状态转移概率(P) :从一个状态转移到另一个状态的概率。奖励函数 (R):每个状态和动作对的即时奖励。折扣因子 (γ):未来奖励的折扣系数,取值范围为 [0, 1]。

此外,强化学习的核心在于学习一个策略(Policy, π),即在给定状态下选择动作的规则或概率分布。智能体的目标是通过不断调整策略,使其能够在不同状态下选择最优动作,以最大化累积奖励。强化学习主要分为基于值的算法和基于策略的算法,分别以 Q-learning 和 PPO 为代表。

2. Q-learning 算法详解
2.1 Q-learning 的思维框架

Q-learning 是一种基于值的强化学习算法,其核心思维是通过不断尝试不同的动作,逐渐学习到哪些动作在不同状态下能够带来最大的累积奖励。Q-learning 通过构建一个 Q 表(Q-table)来记录每个状态-动作对的预期累积奖励,并通过与环境的持续交互不断更新这个表,最终找到最优策略。

2.2 Q-learning 的算法步骤

步骤 1:初始化 Q 表

目的:为每个状态-动作对分配一个初始值,用于存储这些对的价值。操作:通常将所有 Q 值初始化为零或随机值。对于一个简单的网格世界,每个位置(状态)都可能有四个方向的动作,每个动作的初始值都是零。

步骤 2:选择动作

思维:在探索新动作与利用已有知识之间找到平衡。智能体既要尝试新动作(探索),也要利用已知的最优动作(利用)。操作:使用 ε-贪婪策略选择动作。以 ε 的概率随机选择动作(探索),以

1

ε

1-ε

1−ε 的概率选择当前 Q 值最大的动作(利用)。

步骤 3:执行动作并观察结果

思维:通过与环境互动,智能体可以获得关于每个动作是否有利的信息,从而调整 Q 表中的值。操作:执行选择的动作,观察即时奖励

r

t

r_t

rt​ 和新状态

s

t

+

1

s_{t+1}

st+1​。

步骤 4:更新 Q 值

思维:使用新体验到的奖励来修正当前 Q 值,使其逐渐接近实际的最佳值。操作:更新公式如下:

Q

(

s

t

,

a

t

)

Q

(

s

t

,

a

t

)

+

α

[

r

t

+

γ

max

a

Q

(

s

t

+

1

,

a

)

Q

(

s

t

,

a

t

)

]

Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_t + \gamma \max_{a'} Q(s_{t+1}, a') - Q(s_t, a_t) \right]

Q(st​,at​)←Q(st​,at​)+α[rt​+γa′max​Q(st+1​,a′)−Q(st​,at​)]

解释

r

t

+

γ

max

a

Q

(

s

t

+

1

,

a

)

r_t + \gamma \max_{a'} Q(s_{t+1}, a')

rt​+γmaxa′​Q(st+1​,a′) 代表实际体验到的值。通过当前估计值

Q

(

s

t

,

a

t

)

Q(s_t, a_t)

Q(st​,at​) 与实际值之间的差距,更新 Q 表。

步骤 5:重复迭代

思维:强化学习是一个试错的过程,通过不断与环境交互,智能体逐渐修正策略,找到最优解。操作:重复上述步骤,直到 Q 表收敛,即 Q 值不再显著变化或达到预设的训练次数。

步骤 6:形成最优策略

思维:一旦 Q 表稳定,智能体可以通过查询 Q 表,在每个状态下选择 Q 值最大的动作,从而找到最优策略。

3. Proximal Policy Optimization (PPO) 算法详解
3.1 PPO 的思维框架

PPO 是一种基于策略优化的算法,特别适用于复杂环境中的强化学习任务。与 Q-learning 的基于值的思维不同,PPO 通过直接优化策略,使得每次策略更新更加平稳和高效。其核心思维是通过限制策略更新的步长,防止策略发生剧烈变化,确保训练过程的稳定性。

3.2 PPO 的算法步骤

步骤 1:初始化策略网络和值函数网络

目的:准备好一个初始的策略网络,用于生成动作的概率分布,以及一个值函数网络,用于估计每个状态的价值。操作:策略网络用于决定在每个状态下采取各个动作的概率,值函数网络用于估计每个状态的价值。

步骤 2:采样数据(与环境交互)

思维:通过与环境的交互,收集数据以了解当前策略的表现,从而为后续的策略优化提供依据。操作:使用当前策略与环境进行交互,生成状态、动作、奖励和新状态的样本。这些数据将用于计算优势函数和更新策略。

步骤 3:计算优势函数

思维:优势函数用于评估在特定状态下,实际采取的动作与当前策略期望的动作相比是否更优,从而指导策略的优化。操作:基于采样数据,通过实际的奖励序列和当前值函数之间的差异计算优势函数

A

t

A_t

At​,该函数反映了动作

a

t

a_t

at​ 在状态

s

t

s_t

st​ 下的相对好坏。

步骤 4:更新策略

思维:通过优化策略网络,使智能体逐渐学会最优策略。PPO 的创新在于引入剪切机制,防止策略更新过快,导致训练不稳定。操作:更新策略的目标函数为:

L

C

L

I

P

(

θ

)

=

E

t

[

min

(

r

t

(

θ

)

A

t

,

clip

(

r

t

(

θ

)

,

1

ϵ

,

1

+

ϵ

)

A

t

)

]

L^{CLIP}(\theta) = \mathbb{E}_{t} \left[ \min \left( r_t(\theta) A_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) A_t \right) \right]

LCLIP(θ)=Et​[min(rt​(θ)At​,clip(rt​(θ),1−ϵ,1+ϵ)At​)]

解释

r

t

(

θ

)

=

π

θ

(

a

t

s

t

)

π

θ

o

l

d

(

a

t

s

t

)

r_t(\theta) = \frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{old}}(a_t | s_t)}

rt​(θ)=πθold​​(at​∣st​)πθ​(at​∣st​)​ 是新旧策略的概率比,衡量新策略与旧策略的变化幅度。

clip

(

r

t

(

θ

)

,

1

ϵ

,

1

+

ϵ

)

\text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon)

clip(rt​(θ),1−ϵ,1+ϵ) 限制了更新步长,确保策略变化在合理范围内。

步骤 5:更新值函数

思维:通过更新值函数,使其能够更准确地估计状态的价值,从而为策略优化提供更可靠的参考。操作:使用真实的奖励序列和值函数之间的误差来更新值函数网络的参数。

步骤 6:迭代训练

思维:强化学习是一个反复迭代的过程,通过多次与环境交互和策略优化,策略网络逐步接近最优策略。操作:重复采样、计算优势、更新策略和值函数的步骤,直到策略和值函数都达到稳定状态。

4. 总结

通过对 Q-learning 和 PPO 算法的深入剖析,可以看到强化学习的核心在于通过与环境的持续交互,智能体能够不断调整其策略或值函数,以实现最优决策。Q-learning 通过更新 Q 表来找到最优策略,而 PPO 则通过策略优化直接改进策略网络,使智能体能够在复杂环境中稳定学习。无论哪种算法,其最终目的都是帮助智能体在各种状态下做出最优决策,从而实现预期的目标。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。