基于西湖大学强化学习课程的笔记

放在前面 课程链接
2024年12月30日
前言:强化学习有原理部分的学习,也有与实践相关的编程部分。我认为实践部分应该是更适合我的,不过原理部分也很重要,我目前是准备先过一过原理。
应该花多少时间学习这部分呢?
但是这个视频强调了, 放弃速成的想法。把时间线放长,给自己更充裕的时间。
强化学习的数学性比较强,系统性比较强。
在学习的时候不要带着问题去学习,停下来多想想,放松心态。
给自己二十天的时间去学习(如果每天能学习两三个小时)。学得快不是目的:把基础打牢,让自己对强化学习的理解尽可能深刻一些,然后在配上一些实践,就可以去阅读论文了。据说这样就不会有很大的障碍了。
扎扎实实的往前走,其实才是更高效的。

第一天的学习:

一、脉络图

这个图包含了基础的工具以及方式

第一章:

基础概念介绍

第二章:贝尔曼公式

需要搞明白一个概念:state value
和一个工具:贝尔曼公式(求解贝尔曼公式,进而得到一个策略所对应的状态值,这个过程就是策略评价)
一个很基础的概念:我评价一个策略,得到它的值-》基于这个值-》改进策略-》循环———得到一个最优的策略。
第三章:MC
贝尔曼最优公式:其实是贝尔曼公式的一个特殊情况。每一个贝尔曼公式都对应一个策略,最优公式也对应了一个策略——最优策略。我们研究贝尔曼公式就是 因为他和最优策略有关系
强化学习的终极目标: 求解最优策略。
学习第三章需要掌握两个概念:optimal policy(定义:沿着它能得到最大的状态值)和optimal state value
和一个工具: 贝尔曼最优公式。要花比较多的精力去学习理解这个概念, 越深刻越好
分析这个式子用了用到了不动点原理——>告诉了我们这个式子两个方面的性质:
  • 最优策略是否存在的问题——一定是存在的(最优的策略不一定是唯一的,但是最优的状态值是唯一的——最优的策略有可能是确定性的,也有可能是随机性的。但是一定会存在最优策略)

第四章

第一批能够求解最优策略的方法:
  • 值迭代(该算法就是能求解贝尔曼最优公式的算法)
  • 策略迭代
  • 统一的表达方式(上面的两个情况是这个的极端情况)
这三个算法的共同特点:他们是迭代式的算法,并且在每个迭代步骤中都有两个子步骤:
策略迭代(通过一个值进行策略评价,来改进这个策略)和值迭代。 这两个步骤会不断地迭代,最后找到最优策略。
这样的思想不仅仅是在第四章当中,所有的强化学习算法都在这样做。只不过具体的算法形式可能不同。
这个算法是需要模型的,但是没有模型怎么办呢?这样就来到的第五章。

第五章:蒙特卡洛

是最简单也是第一个不需要模型就能找到最优策略的方法。
从第四章到第五章有一个鸿沟:我第一次要面对没有模型的情况,没了模型我应该怎么办呢?
这三个算法难度依次增加。
  • MC Basic:实际上是把第四章中的Policy Iteration依赖于模型的那部分拿掉,换成依赖于数据的,放进去就得到了MC Basic。但是这个算法实际中不能用,因为效率非常低。(强化学习真的是一环扣一环,学MC需要先学Policy iteration,然后还要先学Value iteration,还要先学贝尔曼最优等等递归——所以要打好基础

第六章:随机近似理论

  • 在学习的时候会有一个鸿沟:从非增量(将所有的数据都采集到了再求平均,)到增量(一开始会有一个估计,得到一个采样就用一个采样来跟新这个估计,慢慢的估计就会越来越准,这样就不用等待大量数据收集齐了再用,这样在收集信息的时候就可以有一些信息来使用)
  • 估计一个随机变量(用这个例子来理解什么事增量什么是非增量)
  • 介绍了三个算法:
  • RM算法:实际上是在求解一个简单的g(w)=0的一个方程,但是不需要知道g(w)长什么样
  • SGD:随机梯度下降。SGD其实是一个特殊的RM算法
  • 比较SGD,BGD,MBGD算法之间进行了比较
  • 第六章需要掌握:增量式算法的思想以及SGD算法思想。

第七章:时序差分方法

时序差分方法是强化学习中非常经典的方法
  • 用TD的方法来学习state values(之前是用MC的方法来学习,第四章是用模型计算state value)
  • 用TD的思想来学习action value(Sarsa),通过这个得到action value-》通过这个value来跟新策略-》循环
  • Q-learning算法:是一个off-policy算法(behavior policy是不同的,好处就是可以用别的策略生成的数据拿过来学习,得到最优的策略)
  • 介绍一个统一化的视角(我们所学算法的类似的)

第八章:value-gradient

第八章引入了一个函数进来, 神经网络就是函数的一个很好的表达方式,首次将神经网络引入到强化学习中。
  • 有一个比较大的鸿沟:从表格类型的数据到函数类型的数据
  • (value function approximation近似)VFA算法(实现state estimation):1、明确一个目标函数 2、求这个目标函数的梯度 3、通过梯度上升或者下降来对目标函数进行优化(找到一个最优的w,使得函数能够很好的表达近似真实的vpi(s))
  • VFA算法与sarsa算法结合
  • 与Qlearning结合
  • 与deep Qlearning结合(DQN)

第九章:policy-gradient

gap:第八章往前都是value-based的方法,第九章到第十章变成了policy-based的方法。第八章的目标函数是值函数j(w),我要跟新值函数的参数使这个值函数能很好的近似估计出来一个策略的值,在这个基础之上我再跟新策略,得到新的策略(循环)。
而policy-Gradient的目标函数使J(theta),这里是直接去优化这个theta,也就是直接改变策略,慢慢的找到最优的策略
  • 第九章的基本思路就是:找目标函数,求他的梯度,然后用梯度去优化目标函数。这里的目标函数是有两个
  • 这节课的一个重要目标是熟悉策略梯度的表达式(推导比较复杂)。
  • 获得了梯度,我就要通过这个梯度去优化这个最大目标函数,介绍一个算法叫(REINFORCE算法)

第十章:Actor-Critic算法

gap:将policy-based+value-based的方法结合。将第九章和第八章的内容结合起来。其实actor-critic算法就是第九章的policy-gradient的方法。
actor对应policy-gradient,critic对应value-gradient。
如何理解这个actor-critic呢:
就是用上一个策略(theta)来跟新一个新的策略,通过这个式子策略就会逐渐变好。 简单说:通过q来求出值,再用这个值跟新策略,策略得到新的值,然后再跟新策略,以此循环
  • 第十章介绍了几种算法:
  • 1、最简单的算法就是actor-critic算法——简称QAC
  • 2、Advantage actor critic(A2C)——实际上是引入了一个base-line来减小估计的方差
  • 3、off-policy actor-critic(ac算法本质上是一个on-policy算法,但是可以变成off-policy——通过importance sampling重要性采样算法)
  • 4、前三个的要求策略是随机的(在每一个状态都有可能选择到所有的action),也可以用确定性的策略:deterministic actor-critic(DPG)

二、这门课程的特点

这门课程是关于原理部分而不是编程实践部分。想学习编程的框架可以配合很多非常好的资料结合学习。
这门课程偏向于通过数学的方式去讲述。而不是通过语言的描述去讲述,这样可以了解这个问题最本质的数学原理,之后就可以360°无死角的理解这个问题。
更偏向于对强化学习希望有更深刻理解的同学,需要对原理部分有比较深的理解。 如果要以此为生,强化学习就是我的饭碗,要牢牢抓住!!!
要相信自己,从数学的方式是学习强化学习最高效的方式。学学学!
学完这个课程之后应该学什么呢: 实践!理论与实践相结合!再之后就可以去读论文了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498182.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CannotRetrieveUpdates alert in disconnected OCP 4 cluster解决

环境: Red Hat OpenShift Container Platform (RHOCP) 4 问题: Cluster Version Operator 不断发送警报,表示在受限网络/断开连接的 OCP 4 集群中无法接收更新。 在隔离的 OpenShift 4 集群中看到 CannotRetrieveUpdates 警报: …

Redis--持久化策略(AOF与RDB)

持久化策略(AOF与RDB) 持久化Redis如何实现数据不丢失?RDB 快照是如何实现的呢?执行时机RDB原理执行快照时,数据能被修改吗? AOF持久化是怎么实现的?AOF原理三种写回策略AOF重写机制 RDB和AOF合…

【数据结构】链表(1):单向链表和单向循环链表

链表 链表是一种经典的数据结构,它通过节点的指针将数据元素有序地链接在一起,在链表中,每个节点存储数据以及指向其他节点的指针(或引用)。链表具有动态性和灵活性的特点,适用于频繁插入、删除操作的场景…

开源电子书转有声书整合包ebook2audiobookV2.0.0

ebook2audiobook:将电子书转换为有声书的开源项目 项目地址 GitHub - DrewThomasson/ebook2audiobook 整合包下载 更新至v2.0.0 https://pan.quark.cn/s/22956c5559d6 修改:页面已转为中文 项目简介 ebook2audiobook 是一个开源项目,它能够将电子…

NSSCTFpwn刷题

[SWPUCTF 2021 新生赛]nc签到 打开附件里面内容 import osart (( "####!!$$ ))#####!$$ ))(( ####!!$:(( ,####!!$: )).###!!$:##!$:#!!$!# #!$: #$#$ #!$: !!!$:\ "!$: /\ !: /"\ : /"-."-/\\\-."//.-"…

java里classpath都包含哪些范围?

什么是 classpath ? classpath 等价于 main/java main/resources 第三方jar包的根目录 「引」SpringBoot中的classpath都包含啥

Docker+Portainer 离线安装

1. Docker安装 步骤一:官网下载 docker 安装包 步骤二:解压安装包; tar -zxvf docker-24.0.6.tgz 步骤三:将解压之后的docker文件移到 /usr/bin目录下; cp docker/* /usr/bin/ 步骤四:将docker注册成系统服务; vim /etc/sy…

#渗透测试#红蓝攻防#红队打点web服务突破口总结01

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

Java:190 基于SSM的药品管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统的用户分管理员和销售两个角色的权限子模块。 管理员统计药品销售量,可以导出药品出入库记录,管理药品以及报损信息。 销…

Quo Vadis, Anomaly Detection? LLMs and VLMs in the Spotlight 论文阅读

文章信息: 原文链接:https://arxiv.org/abs/2412.18298 Abstract 视频异常检测(VAD)通过整合大语言模型(LLMs)和视觉语言模型(VLMs)取得了显著进展,解决了动态开放世界…

VUE echarts 教程二 折线堆叠图

VUE echarts 教程一 折线图 import * as echarts from echarts;var chartDom document.getElementById(main); var myChart echarts.init(chartDom); var option {title: {text: Stacked Line},tooltip: {trigger: axis},legend: {data: [Email, Union Ads, Video Ads, Dir…

001__VMware软件和ubuntu系统安装(镜像)

[ 基本难度系数 ]:★☆☆☆☆ 一、Vmware软件和Ubuntu系统说明: a、Vmware软件的说明: 官网: 历史版本: 如何下载? b、Ubuntu系统的说明: 4、linux系统的其他版本:红旗(redhat)、dibian、cent…

Flutter中添加全局防护水印的实现

随着版权意识的加强,越来越多的应用开始在应用内部增加各种各样的水印信息,防止核心信息泄露,便于朔源。 效果如下: 在Flutter中增加全局水印的方式,目前有两种实现。 方案一,在native层添加一个遮罩层&a…

FOC控制原理-ADC采样时机

0、文章推荐 SimpleFOC移植STM32(五)—— 电流采样及其变换_极对数对电流采样的影响-CSDN博客 FOC 电流采样方案对比(单电阻/双电阻/三电阻) - 知乎 (zhihu.com) FOC中的三种电流采样方式,你真的会选择吗?…

git clone 和 conda 换源

文章目录 git clone 通过 sshconda 创建虚拟环境通过 env.yml 文件conda 换源 git clone 通过 ssh git clone ssh://用户名IP地址:/仓库名字.gitconda 创建虚拟环境通过 env.yml 文件 conda env create -f environment.ymlconda 换源 Step 1 生成 .bashrc 文件在家目录下。…

联邦协作训练大模型的一些研究进展

联邦协作训练大模型的一些研究进展: 架构与框架创新 凝聚联邦学习框架:中科院计算所等团队提出的凝聚联邦学习框架,借助端边云协同,通过桥接样本在线蒸馏协议,组织树状拓扑的算力网,实现不同层级节点间模型无关的协同训练,使各层级可依本地算力训练合适模型,云端最终集…

深度学习blog- 数学基础(全是数学)

矩阵‌:矩阵是一个二维数组,通常由行和列组成,每个元素可以通过行索引和列索引进行访问。 张量‌:张量是一个多维数组的抽象概念,可以具有任意数量的维度。除了标量(0D张量)、向量(…

ARM200~500部署

前提:数据库已经安装好,并且正常运行 1.修改hostname,将里面的AR-A 改为hzx vi /etc/hostname 2.重启网络服务 sudo systemctl restart NetworkManager 3.修改community-admin.service 文件,更改小区名称和IP,并将文件上传到/…

在实际开发中,如何权衡选择使用哪种数据结构和算法?

学习数据结构与算法有一段时间了,听音频、看视频、看专栏、看书、抄书,尝试了很多种方法,今天在 专栏 中看到一篇文章,觉得很不错,摘抄如下。 学习数据结构和算法,不要停留在学院派的思维中,只把…

基于Hadoop的物品租赁系统的设计与实现-springboot+vue

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…