当前位置: 首页 > news >正文

强化学习笔记

第一章

基础概念

强化学习就是:学习π函数或者Q*函数。

如何控制Agent:

①假如知道,直接把当前状态s输入到函数中,得到各个action的概率,然后随机抽样得到一个动作a

②假如知道,就可以用来当前状态s下的每一个动作a的好坏,选出Q最高的动作。

两种随机性:

action的随机性:π函数是action的概率密度函数,最终采取哪个是从(0.3前进,0.1后退,0.7跳)中抽样得到的。
state的随机性:下一个环境是环境根据状态转移概率函数p抽样得到的,输入为s和a。

  • π是Policy函数。π(a|s)=P(A=a|S=s) 意思是给定状态s,做出action=a的概率密度函数。
  • 轨迹trajectory是一个序列,序列单个元素包含(state,action,reward)。

第二章-Value-based learning

DQN(Deep Q Network):用一个神经网络来近似Q*,神经网络参数的学习需要使用TD(temporal different)算法。

TD是学习DQN最常用的算法。

TD算法意义:有了TD算法,不需要打完游戏也能更新模型。

理解:出发时预估全路程所需时间=当前时刻真实走过的时间+当前时刻预估剩下路程所需时间。

损失:用模型的最初估计 Q(w),基于部分实事+重新估计的值y的差叫做TD error。损失函数是求td error的平方/2。

DQN的神经网络输入:状态s

DQN的神经网络输出:对每一个动作a的打分

TD算法流程


第三章-Policy-based learning

用一个神经网络来近似Policy函数π,神经网络参数的学习需要使用Policy Gradient。

Policy函数π对三个action的示例,输出是一个三维向量:

  • π(left|s):0.2
  • π(right|s):0.3
  • π(up|s):0.5

蒙特卡洛:从某个位置的函数中抽多个随机样本,用随机样本来近似函数期望。

Policy Gradient策略梯度算法流程:

用蒙特卡洛近似来计算梯度,从策略密度函数π(·|st;θt)随机抽样得到一个动作at。

根据Q_π的计算法方法不同分为两类算法:

  • Reinforce算法:用策略π来控制agent运动,从一开始到游戏结束,记录整个轨迹(a,s,r三元组的集合)。用观测到的u_t来近似Q_函数。
  • 用神经网络近似Q_π:我们已经用一个神经网络来近似π,现在又要用另一个神经网络来近Q_π。

第四章-Actor-critic Method(策略学习+价值学习)

Actor策略网络:

优化策略网络使得裁判给的分更高。策略梯度算法更新网络。

Critic价值网络(给动作打分):

靠环境给的reward让自己打分越来越准。用TD算法更新网络。

整体流程:

Critic裁判根据前后两个时刻的输出(q_t和q_t+1)以及奖励R_t,用tf算法来更新价值网络。

参考资料:翻遍整个B站!这绝对是2023年讲的最好的强化学习零基础入门到精通完整版教程(含实战源码)_哔哩哔哩_bilibili


http://www.mrgr.cn/news/90278.html

相关文章:

  • 【专题】2025年我国机器人产业发展形势展望:人形机器人量产及商业化关键挑战报告汇总PDF洞察(附原数据表)
  • D3实现站点路线图demo分享
  • zabbix监控nginx指标
  • 通过cad中块获取块的略缩图——cad c# 二次开发
  • Cadence17.4软件的使用--1)配置CIS数据库
  • Visual Studio踩过的坑
  • 推荐系统Day1笔记
  • [LUA ERROR] bad light userdata pointer
  • java后端开发day13--面向对象综合练习
  • 服务器绑定 127.0.0.1 和 0.0.0.0 的区别
  • 保姆级教程Docker部署Zookeeper镜像
  • 从零开始构建强大 AI 对话系统:ollama + deepseek + open-webui 完整部署教程(Docker 版)
  • 如何本地部署DeepSeek
  • 【Docker】
  • iOS主要知识点梳理回顾-3-运行时消息机制
  • ESP32_H2(IDF)学习系列-蓝牙基础学习(上)
  • [开源]MaxKb+Ollama 构建RAG私有化知识库
  • Generate html
  • C#、.Net 中级高级架构管理面试题杂烩
  • linux_kernel驱动开发_驱动调试
  • C++STL(六)——list模拟
  • verilog练习:i2c slave 模块设计
  • 一文总结C++ STL算法库
  • android framework原生功能配置改动
  • React(三)
  • 分布式id探索