2025-3-28/29-RL简介
3.28:
难绷,一直在补坑。。。
这个补完了:AI Agent介绍
3.29:
这几天一直在看Reinforcement Learning。是的,我的框架还没搭好,原因是看的太浅了,不了解RL的一些执行细节,虽然之前有看过Markov Process,但是又是一段时间过去了,忘的都差不多了。
于是来写RL的一些东西。参考来自于李宏毅的RL介绍。
Reinforcement Learning
一句话介绍:不知道正确的答案,借由与环境互动、根据得到的奖励知道:什么是好的、什么是不好的。
区分ML/RL:
- ML:找一个function(映射输入/输出)-->定义loss函数-->最优化
- RL:代理或是叫智能体(Agent)与环境(Env)互动(Observation/Action),相互影响(Reward)

介绍一些术语
Actor/Agent:执行动作的主体,叫做代理或是智能体(下文都称之为智能体)。
Environment:外部的环境。既会影响智能体的行为、又会被智能体执行的行为所影响。
Observation/State:智能体通过环境得到现在的外部的状态、或许还包括了过去对外部状态的观测。
Action:智能体决定执行的动作、会影响到外部的环境。
Policy:智能体A不同于其他智能体B,对于智能体如何决定执行的动作、以及动作又会怎么影响环境(Reward)的整体。可以说是整个模型。通过Reward的optimization可以更新。
Episode:一个episode指的是一句游戏从开始到结束、其中经过的所有的状态以及动作的时间。可以得到一系列\(\{s,a\}\)(状态-动作)的集合。
Trajectory:指一个智能体在环境中进行了一系列动作是所经历的状态、动作、奖励的序列。一般是一个episode可以得到的一系列\(\{s,a\}\)的集合是一个Trajectory。用于训练智能体、学习从状态到动作、最终最大化总体奖励。
Reward:抽象的程度比较高,总的来说就是批判智能体执行当前动作的评价标准。与此相关的概念有:
- discount cumculated function: 在状态\(s\)下采取动作\(a\)后,期望获得多少的奖励。
- value function:在状态\(s\)下,无论采取什么动作,期望的奖励是多少(对于当前状态的评估,一般是平均期望奖励)。
- Advantage function:\(A(s,a)\)表示某个特定动作\(a\)相对于其他动作的优劣程度。
RL与ML之间的联系
对于强化学习来说,实际上比较类似于分类任务,对于给定的输入in:Env-->Observation/State,预测out:Action。并给出不同Action的置信度(然后Agent按照不同Action得到的置信度sample、从Action的distribution中sample)。
要是输入是img,那么和ML也没什么不同。
\[ \text{Action}=f(\text{Observation}) \]
目标: 找到最佳policy(model),\(\max\text{Reward}\)。
对于\(f\),假如输入是图片、那么需要使用CNN/ViT提取特征;
假如我们想更进一步看到历史的图片,那么可能会选取RNN提取特征。
定义loss
对于RL:经过observation: \(s_1,s_2,\dots,s_T\)(\(T\)时间游戏结束),在时间\(t\)下施加动作\(a_t\),得到奖励\(r_t\)
计算总奖励: \(R=\sum^T_{t=1}r_t\), 目标(loss func): \(\max R\)
最优化:根据R的值,例如梯度下降更新policy。

此过程中存在的问题?为什么RL那么难训看人品?
- sample具有随机性:动作必须要随机sample,要保证会有没出现过的动作,
- Env,Reward,是黑盒(里面是什么不知道):Env给出对应回应,Reward给出分数,不知道依据什么给出回应。
- Env/Reward也具有随机性(随着Action的随机)
- 重点:如何求解最优化问题?
RL的过程会有点像GAN:
- Env: Discriminator
- Agent: Generator
如何操控Agent输出
在给定的State下,有两种可能行为:
- 一定采取行动\(a\)
- 一定不要采取行动\(a\)
注意:是会采取行动\(a\),也会采取行动\(b\);明晰此处的不要采取行动\(a\),说明会采取\(a\)以外动作的可能性。
这是我们能够得到的训练数据(收敛了在不同\(s\)下采取了动作\(a\)/以及不想采取某动作)

对于Agent,输入State \(s\),输出Action \(a\)。输出动作与Ground truth之间可以计算交叉熵,这样就有loss,再对loss求梯度下降。