强化学习 1
以下是对李宏毅老师 youtube视频-【机器学习2021】概述增强式学习一、二、三简要记录
https://www.youtube.com/watch?v=XWukX-ayIrs
https://www.youtube.com/watch?v=US8DFaAZcp4
https://www.youtube.com/watch?v=kk6DqWreLeU
什么是Reinforcement Learning(RL)?
先回顾一下Supervised Learning,以图像分类任务为例,图像有标注的标签,如下图第一行所示。要训练的模型,输入Input是一张猫咪图片,输出Output是“Cat”。有十分明确的输出信息。(这里需要提到Autoencoder任务,实际上该类任务的输出与输入是一样,其实也是一种SP任务,只不过该类任务不需要标注数据而已。)
如下图第二行所示。以下围棋为例,输入一张当前围棋局,即使对于人来说,下一步该怎么走是对的或者是最好的,这些都不确定。 当遇到类似问题,可以考虑使用强化学习,其特点是很难标注数据或者获得正确的标签,但是执行某个操作后,机器是知道结果是好的或者坏的。

RL构成
RL系统:2个对象与3种行动,如下图所示。
- 2个对象:Actor, Environment
- 3种行动:Actor进行观察Observation, Actor采取行动 Action;Environment进行奖励或惩罚Reward。

以太空入侵者游戏为例,Actor就是玩家,观察Obversation就是观看当前游戏界面,行动Action就是左移右移或者开火;Environment就是游戏机,游戏机的奖励就是界面左上角显示的分数。游戏结束条件:所有外星人都被杀死或者我方宇宙飞船被摧毁。

注:以太空入侵者为例,Actor每一步行动都会有明确的reward;而如下围棋游戏,并不是每一步都有reward,只有到游戏结束后才能知道最终的reward输或赢。
RL三步走
ML问题都可以通过以下三个步骤来完成
- Step1: function with unknown
- Step2: define loss from training data
- Step3: optimization
同样的,RL也可以分解为这三个步骤。
定义函数
以太空入侵游戏为例,最简单的一种方式,可以将要建模的任务看做是一个分类任务。输入一帧当前游戏画面,训练一个CNN网络,网络输出左移、右移、开火三种动作的概率值。

定义损失
从游戏开始到游戏结束,称之为一个episode,整个过程中所有的奖励之和 ,将负的total reward作为RL损失

优化
Actor依次观察到的状态和接下来采取的行动,依次记为,在一个episode中,这些有序的状态和行动构成序列,用字母 来表示,即.
在一个episode过程中,要求总reward之和最大。优化的困难点在于
- Actor采取的action有随机性,即使是完全相同的输入
- Environment与Reward计算都是黑盒,也可能具有随机性

如何控制Actor的行动
仍以太空入侵游戏来说明,如果要采取某个行动,则让对应类别概率满足交叉熵最小,反之则要最大。如下图所示。

数据是如何收集
Version 0:
执行的对应的那步reward值 作为。但是这种方法很短视没有考虑长远影响,比如太空入侵游戏,虽然当前的左移或者右移没有杀死外星人,但是间接带来后续行动杀死了外星人。
注:强化学习任务往往具有下述特点:
- 一个action 影响了接下来的observation 和接下来的reward
- 奖励延迟:Actor必须牺牲当前的reward来获取更多的长期reward

Version 1:
针对Version 0的问题进行优化,将Actor 第步行动 当前及后续所有行动的reward之和作为. 即

Version 2:
Version 0,Version 1可以看出两种极端。一种是当前action仅影响当前reward,一种是当前action对后续所有action产生的reward也都要归功于当前action。Version 2就是不左不右。给予越远的action产生的reward赋予越小的累加和系数,即

Version 3:
之前的Version0-2 还存在一个问题,就是reward没有进行归一化或者标准化。

Policy Gradient
- 构建Actor网络参数并初始化参数为
- 迭代训练
- 使用actor在参数取值为时去与environment进行交互
- 获得交互数据
- 计算每步reward值
- 计算损失值
- 更新参数
注:数据收集在循环内 是在 下收集的。这种参数下, 产生的reward可以用于更新 。当进行到,上次收集的都不适合了,即使是相同的状态s,actor采取的action也可能不同。所以要重新收集。 也正是如此,policy gradient 很耗时。
On-Policy/Off-Policy
- On-policy: The actor to train and the actor for interacting is the same
- Off-policy: The actor to train and the actor for interacting is different
Off-policy方法就是为了解决上述问题,使得 条件下收集到的数据也可以用于更新,从而缓解每一次迭代都要重新收集数据问题。
PPO 视频链接: https://www.youtube.com/watch?v=OAKAZhFmYoI
Critic
Value function : 在actor 参数为时,当观察到environment的状态s,打折扣的累积reward。这个function的目的是预测,不必等玩完整个游戏才能获得。
含义: 在观察到状态, 后续采取的action及reward,有多种可能,对应所有可能的最终reward求期望值,这个就是 。
如何估计
基于MC方法
直接观察,但要游戏玩到结束

基于Temporal-difference TD 方法
不需要玩完整个游戏,仅仅知道 就可以更新参数
使用打折扣的累积reward作为当前action的奖励,因此有
由上面两个公式,可以得到相邻两次行动的产生的reward之间关系式,即

做一道作业
如下图所示,分别进行了8轮游戏。 观察到采取行动后有6次reward为1,有2次reward为0,因此期望是,即。那么应该是多少呢?
- 基于MC
因为就观察到一次,且对于reward为0. 因此 - 基于TD
由于只有第1个episode同时出现了, 而且,此时,因此

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY