强化学习阶段性总结

原文发表在知乎,辛苦移步~《强化学习阶段性总结

近一年来断断续续了看了很多关于强化学习的基础性文章,偶尔也跑一些简单demo看看效果,有时候也会复现一些论文中的算法。整体学习过程相当于自底向上,从微观到宏观,从工程实现反推到算法理解的一个过程。到目前为止,把看过的东西稍微汇总整理一下,以便后续复习。

什么是强化学习

随便上网搜索一下,一定会非常专业的一段话说明,但如果对于没有搞过强化学习的同学来说,更多会感觉"听君一席话,如听一席话"的感觉。在这里笔者说下自己的浅见:

首先你得了解监督学习吧?例如目标检测,得有真值(groundtruth或label),然后设计模型输出预测值,然后计算真值与预测值之间的loss,用这个loss反向传播,来训练整个网络。

对于强化学习,笔者认为它有两个非常重要的核心属性:

监督信号来自反馈。监督信号不像监督学习一样直接,例如目标检测训练识别一辆车,监督信号来源于一个车的bbox,它有长宽高,位置,朝向等属性,很直接。而在强化学习里面,监督信号来源于反馈,是一种间接的信号,例如在机械臂上,监督信号来源于环境的反馈:机械臂有没有成功的抓起物体,有没有成功的将物体推到目标区域...;例如在LLM中,监督信号来源于人类的反馈,人类的标注员觉得A回答比B回答更友好,也可能来源于一些硬性的要求,例如A回答有点暴力/黄色等...; 在自动驾驶领域中,监督信号来源于人类的体感/安全的要求等等:轨迹A的体感要优于轨迹B,或者轨迹A发生了碰撞,但轨迹B没有...。在deepseek v1的技术报告中说了,他们仅仅设计奖励函数(反馈),奖励那些具有逻辑性,具有标准思维链结构的回答,LLM通过强化学习就拥有了思维链的能力(大概是这个意思)。

与环境交互探索。强化学习可以让agent在探索中持续获取反馈,从而持续学习提升。如果让agent在env中漫无目的的探索,效率低,笔者最近复现的《具身智能hil-serl强化学习算法在lerobot机械臂上复现》在探索中把人工的干预引入进来,提升探索效率。另一方面,更加有针对性,这个地方容易出错,那就在出错的地方反复学习纠错。听起来跟人类学习是一样的过程 。

当然与环境交互探索并不一定必须,在强化学习领域,offline policy就是利用采样好的数学离线进行强化学习,这样学习效果取决于数据的覆盖度和质量。

强化学习的基础与数学原理

笔者浅见:强化学习算法的核心思想就是将上面所说的"反馈"转化成leaning里面的监督信号。至于是Q函数还是V函数,PPO算法还是SAC算法,都是不同的数学建模方法而已。

概念与术语:《深入理解强化学习(一)- 概念和术语》

Q函数与V函数:《如何理解强化学习中的Q值和V值?》,这篇文章讲得太好,入门必读。

贝尔曼方程:这个就不推荐文章了,直接在大模型中问什么是贝尔曼方程?贝尔曼期望方程与贝尔曼最优方程的区别?这两个问题即可。

一些强化学习算法学习:

记录一些笔者研究过的案例:

1,基于stable baselines3的DDPG/TD3/SAC算法:《机械臂强化学习实战(stable baselines3+panda-gym)》,可以直接在仿真环境中跑起来,简单易学,值得推荐。

2,SAC算法:笔者复现的《具身智能hil-serl强化学习算法在lerobot机械臂上复现》里面使用的算法是SAC,里面的代码不仅支持连续动作,也支持离散动作。

3,DQN算法:《强化学习 - PyTorch官方教程中文版》,里面是一个离散动作场景下的DQN应用。

3,PPO算法:

PPO+离散动作/连续动作:《π RL(piRL)算法支持用强化学习方法训练π 0/π 0.5(pi0/pi0.5)》文章的附录部分有PPO在离散动作场景中的应用,而在正文部分的案例(pi0/pi0.5)是在连续动作+flow matching场景。

PPO+LLM场景:《图解大模型RLHF系列之:人人都能看懂的PPO原理与源码解读_图解大模型rlhf系列之:人人都能看懂的ppo原理与源码解读-CSDN博客》和《强化学习ppo算法在大语言模型上跑通》中有PPO算法在LLM强化学习场景的应用,这两篇文章讲得是一个案例。

先总结这么多吧,后续在需求中学习提升吧

相关推荐
永远都不秃头的程序员(互关)1 小时前
昇腾CANN算子开发实践:从入门到性能优化
人工智能·python·机器学习
ConardLi1 小时前
分析了 100 万亿 Token 后,得出的几个关于 AI 的真相
前端·人工智能·后端
明月照山海-1 小时前
机器学习周报二十五
人工智能·机器学习
AI Echoes1 小时前
LangGraph 需求转换图架构的技巧-CRAG实现
人工智能·python·langchain·prompt·agent
AI Echoes1 小时前
LangChain LLM函数调用使用技巧与应用场景
人工智能·python·langchain·prompt·agent
Allen正心正念20251 小时前
生成式多模态图像模型返回格式的处理方法
人工智能
爱装代码的小瓶子1 小时前
【cpp知识铺子】map与set的底层AVL树
开发语言·数据结构·c++·b树·算法·链表
愤怒的可乐1 小时前
从零构建大模型智能体:构建可调用工具的智能体
人工智能·大模型·智能体框架
xqlily1 小时前
PyTorch:深度学习研究的核心引擎(下)
人工智能·pytorch·深度学习