<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/scripts/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:h="http://www.w3.org/TR/html4/"><channel><title>AtPoint&apos;s Blog</title><description>安汀的博客</description><link>https://atpoint.top</link><item><title>Paper Reading 0</title><link>https://atpoint.top/blog/paper-reading/0</link><guid isPermaLink="true">https://atpoint.top/blog/paper-reading/0</guid><description>为了不被时代的潮流所淹没，为了追寻内心的知识殿堂，记录一些跟随时代的论文学习</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;在写之前还是先说说心里话吧，我知道做这个网站不一定会有其他人看，甚至以后我自己都会忘记更新。但是，也许这是在忙碌大学四年中给自己的旧相片，为自己留下的老唱片。&lt;/p&gt;
&lt;p&gt;目前我就把这个当作是读过的经典Paper的收集册了。不过真正投身科研后，读过的Paper太多了，涉及的领域也不少，真不能保证每篇都有独到的理解，每篇都作出详细的分析，但是经典的、优秀的自然是会好好鉴赏的，只是更新网站的频率不会太高罢了。&lt;/p&gt;
&lt;p&gt;反正，没关系。这里会陪伴我走很久很久。是到硕士，是到博士，还是说更高更远……我现在不在乎，至少正在打字的我是不在乎的。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;机器学习&lt;/h2&gt;
&lt;p&gt;对于现在的我，机器学习真算得上万恶之源，也是所有计算机学生在理论上进入科研的第一关。&lt;/p&gt;
&lt;p&gt;其实现在来看，机器学习算是一门科研新生的数理课，其中的数学计算、算法构建也是值得研究一二的。&lt;/p&gt;
&lt;p&gt;学习过程中什么方法都用过了。
书籍：西瓜书、南瓜书……（可能是我太笨了，看书既不好理解，又不好坚持）如果喜欢看书的就推荐李航老师的《统计学习方法》
||课程：&lt;a href=&quot;https://space.bilibili.com/406882224&quot;&gt;B站的简博士&lt;/a&gt;（这个时间长要坚持，基础好入门）、&lt;a href=&quot;https://space.bilibili.com/97068901?spm_id_from=333.788.upinfo.head.click&quot;&gt;白板推导&lt;/a&gt;（这个数学公式解释很清晰，但是很吃数学基础）
||实操：（如果想本科就业做量化……）&lt;a href=&quot;https://www.kaggle.com/&quot;&gt;Kaggle&lt;/a&gt;、&lt;a href=&quot;https://tianchi.aliyun.com/competition/?spm=5176.27080692.J_Np_brMFf-bNfjrM6A7x6k.1.31fe5699b84Gc2&quot;&gt;天池&lt;/a&gt;; github上按需查找&lt;/p&gt;
&lt;p&gt;这里是我自己学习 &lt;a href=&quot;https://github.com/Lou-uo/Machine_Learning_Algorithm&quot;&gt;机器学习的笔记&lt;/a&gt;，包含机器学习的十大经典算法实现与分析。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;深度学习&lt;/h2&gt;
&lt;p&gt;深度学习算是我科研实操的开始，这些是我做过的&lt;a href=&quot;https://github.com/Lou-uo/Deep_Learning&quot;&gt;DL项目&lt;/a&gt;，大部分是通过看&lt;a href=&quot;https://www.bilibili.com/video/BV12t411N748/?spm_id_from=333.788.top_right_bar_window_custom_collection.content.click&amp;#x26;vd_source=09b548343aff62fd78c442b7fba8f167&quot;&gt;致敬大神的鱼书&lt;/a&gt;、&lt;a href=&quot;https://www.bilibili.com/video/BV1vu4y1n77T?spm_id_from=333.788.videopod.sections&amp;#x26;vd_source=09b548343aff62fd78c442b7fba8f167&quot;&gt;爆肝杰哥&lt;/a&gt;等视频来学习手操的。&lt;/p&gt;
&lt;p&gt;后来，克服了语言障碍后，开始看CS231n（&lt;a href=&quot;https://www.youtube.com/watch?v=2fq9wYslV0A&amp;#x26;list=PLoROMvodv4rOmsNzYBMe0gJY2XS8AQg16&quot;&gt;原汁原味&lt;/a&gt;、&lt;a href=&quot;https://www.bilibili.com/video/BV1qy2uBTEic/?spm_id_from=333.1387.favlist.content.click&amp;#x26;vd_source=09b548343aff62fd78c442b7fba8f167&quot;&gt;B站配音-不全&lt;/a&gt;），这个课程还是非常推荐的。里面还涉及很多经典内容（如transformer、大规模分布式训练、3Dvision、Robot），这对日后选择自己的研究方向或者单纯开阔视野都是极大的帮助。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;结语&lt;/h2&gt;
&lt;p&gt;其实吧，科研最重要的是一个好的开始和长久的坚持。找一个好的实验室（老师能管、学长能带、同辈能聊），选一个不讨厌的研究方向（做科研大部分都谈不上喜欢），读第一篇论文（第一篇论文是最难受的，是真的需要一字一句来理解的），比前面的那些长线作战计划来得更加实在、有效。&lt;/p&gt;
&lt;p&gt;那么，你准备好踏上开拓的征途，与我共赴星辰大海了吗？&lt;/p&gt;</content:encoded><h:img src="/_astro/Paper-reading-0-zh.CrMobRwk.webp"/><enclosure url="/_astro/Paper-reading-0-zh.CrMobRwk.webp"/></item><item><title>月记-二零二六-六月</title><link>https://atpoint.top/blog/monthly-journal/2026-06</link><guid isPermaLink="true">https://atpoint.top/blog/monthly-journal/2026-06</guid><description>2026/06/01 ~ 2026/06/30</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;@/components/user&apos;
/* - note - 蓝色下周计划&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tip - 紫色完成出色&lt;/li&gt;
&lt;li&gt;caution - 黄色完成一般&lt;/li&gt;
&lt;li&gt;danger - 红色非常糟糕 */&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;上月算是个不错的开端吧，虽然没什么值得写入简历的产出，但是有明确的学习模式和方向了，就当上个月是做个试验吧。&lt;/p&gt;
&lt;p&gt;不过这个月的重心要调整，更多的心思要放在期末备考上。（体育、操作系统、电子技术基础、军事理论、数据库、数字通信原理，还有操作系统和电子技术的课设，创业基础的报告，英语六级）&lt;/p&gt;
&lt;p&gt;所以主要是先梳理一下考试时间，科研任务要往后延了。&lt;/p&gt;
&lt;p&gt;根据校历 7 月中旬放暑假，也就是现在处于期末月。&lt;/p&gt;
&lt;h3&gt;第一周&lt;/h3&gt;
&lt;p&gt;06/01 ~ 06/07&lt;/p&gt;
&lt;p&gt;下周明确任务有：数据库的期末考试，创业基础的报告提交，英语六级的考试，以及大部分课程的结课。&lt;/p&gt;
&lt;p&gt;这是真要进入备考模式了！！！&lt;/p&gt;
&lt;p&gt;具体验收如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;机器学习经典算法项目 (利用水课时间把剩的几个补完)&lt;/li&gt;
&lt;li&gt;跟进 paper&lt;/li&gt;
&lt;li&gt;DB (多做题) + OS (大题总结) + EE (笔记总结) + 通信 (笔记总结)&lt;/li&gt;
&lt;li&gt;英语听力+阅读每日练习&lt;/li&gt;
&lt;li&gt;调研后续可去的科研组&lt;/li&gt;
&lt;li&gt;强化学习和深度学习暂时停止推进，改为准备课设。&lt;/li&gt;
&lt;/ol&gt;</content:encoded><h:img src="/_astro/journal-2026-06.BTWZ4jWi.webp"/><enclosure url="/_astro/journal-2026-06.BTWZ4jWi.webp"/></item><item><title>月记-二零二六-五月</title><link>https://atpoint.top/blog/monthly-journal/2026-05</link><guid isPermaLink="true">https://atpoint.top/blog/monthly-journal/2026-05</guid><description>2026/05/01 ~ 2026/05/31</description><pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;@/components/user&apos;
/* - note - 蓝色下周计划&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tip - 紫色完成出色&lt;/li&gt;
&lt;li&gt;caution - 黄色完成一般&lt;/li&gt;
&lt;li&gt;danger - 红色非常糟糕 */&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;写月记的习惯是从来没有的，但不过如果每周不写些什么的话，感觉有点白活的意味了（doge）。所以，还是学着阿汐猫猫写一写自己的学习记录吧，生活上就算了，毕竟没有人家那样美满的爱情QAQ。&lt;/p&gt;
&lt;p&gt;虽然说是要记录自己的学习过程，不过像是课程内的学习记录起来实在是太无趣了。尽管自己投入科研的时间和经历有限，但是还是觉得要把这蹒跚学步的过程记录下来，这算不是一种养成系呢？&lt;/p&gt;
&lt;p&gt;虽说是抱着娱乐的心态来记录，但是不能真的就记录着好玩。每个月还是会给自己订一些指标的，这个月就先免了吧，就当是网站刚创立的过度月。&lt;/p&gt;
&lt;h3&gt;第一周&lt;/h3&gt;
&lt;p&gt;05/04 ~ 05/10&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;反正是第一篇月记，就好好谈谈如何弯弯绕绕走上科研的过程吧。
其实，进大学前，我是非常想复读的。我从长沙的重点高中---雅礼毕业出来，竟然来到如此“偏远”、“冷门”的大学（分校），说实话我在填志愿前我是不知道neu是985，更别说qhd分校了。可能是周围的人都太优秀了，导致我认为起码要去whu才算是勉强对得起自己，留本地的csu或hnu感觉都有些丢脸了，其实这么想更丢脸。不过，我当时是可以留在长沙的，无论是hnu，还是csu，甚至nudt，只是没有所谓的热门专业罢了（其实现在来看nudt的大气科学还是很好的QAQ）。
而选择计算机系，50%出于随大流，30%出于本科就业，20%因为初中的NOIP竞赛基础。尽管我现在我也不知道当年到底有没有选对，但是我至少能保证我现在有没有做好。这大抵是我做这个网站的初衷了，记录下我以后的每一个脚印，见证自己的成长。
说的闲话太多了，毕竟人生总是充满遗憾，我自然每次想起都会幻想如果当时……，会不会现在……。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;五一期间，还是有所作为的。这个网站就是这段时间诞生的，真正开始记录自己的日常学习了，算是把科研提上日程了。提到这点，我多少还是有些感慨的。从大一的懵懂到现在初入科研领域，竟然花了两年这么长的时间（我现在甚至觉得这两年都可以产出至少两篇工作了doge），实在是走了太多的弯路了。
直到4月末天梯赛的完赛才算是与竞赛说再见了，我也算彻底放下竞赛获奖的短暂快感了。从我现在的角度来看，竞赛的确是最好上手、最好见效的。但是，长远来看，竞赛的思维与科研的经历是有点相悖的，参与比赛的热情与选择科研的冷板凳完全不同，赛时的团队讨论和测试idea的孤单枯燥完全不同，赛后的光彩夺目与等待论文中稿的煎熬完全不同。
而且，大部分人（至少我之前是这样的）都是一种比较稚嫩的思维，希望参考答案，希望即时认可，害怕独立探索，害怕竹篮打水一场空。
不过，我在寒假期间想了很多，在走亲访友时见到了很多，也懂了很多，似乎是在那个时候，我的心智发生了就算是我现在看了都不可思议的变化。不过具体的就不在这里说了，等一个有缘人吧，我可以和Ta慢慢分享。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;算了，还是开始这周的总结吧。&lt;/p&gt;
&lt;p&gt;这周写了三篇blogs，分别是&lt;a href=&quot;/blog/paper-reading/world-model-1&quot;&gt;探索world model&lt;/a&gt;（以失败结尾，不算太坏的结果，至少我看透了很多虚假的泡沫）；&lt;a href=&quot;/blog/paper-reading/agent-memory-1&quot;&gt;整理Agent Memory的经典Bench&lt;/a&gt;（这个还没做完，不过还不能着急做完，至少等AAAI投稿结束吧）；&lt;a href=&quot;/blog/rl-notes/1&quot;&gt;正式开启强化学习的探索&lt;/a&gt;（这个后续一定会持续更新的，一定会列入每周的计划的）。&lt;/p&gt;
&lt;p&gt;这周的主要任务还是备考信号与系统，虽然我现在也不知道考得咋样，过去的还是让它过去吧。&lt;/p&gt;
&lt;p&gt;然后就是调研Agent Memory方面的论文，撰写related work。这个呢，我也是第一次写顶会的rw，所以过程可谓是磕磕绊绊，改来改去还是不太满意，感觉要留到下周了。&lt;/p&gt;
&lt;p&gt;最后，要批评自己，说好了每天至少听一篇英语听力和背英语单词的，不是忘了就是其他的事鸽了，下周必须要执行，这次考完六级大概率是不会再去刷分了。&lt;/p&gt;
&lt;p&gt;还有力扣的每日刷题也是，每天都忘了。不行的，不能到明年机试的时候后悔！下周必须每天抽出一个小时：保证每天一道hot100和一篇英语听力。&lt;/p&gt;
&lt;p&gt;今天也是懒了，本来独属周末的锻炼也睡过去了，悔悔悔QAQ&lt;/p&gt;
&lt;p&gt;还是和上周一样，每天在每个时间段写一个规划，定一个比较宽松的baseline和突破自我的SOTA任务线。唯一要注意的是，不要忘记每天的英语听力和力扣！！！&lt;/p&gt;
&lt;p&gt;具体验收如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;完成强化学习基础篇+Blog（多臂老虎机、马尔科夫决策、动态规划、时序差分、Dyna-Q）&lt;/li&gt;
&lt;li&gt;熟悉目前工作的pipeline，准备实验&lt;/li&gt;
&lt;li&gt;数据库初步完整复习（完成书上笔记）&lt;/li&gt;
&lt;li&gt;继续调研Agent Memory，完善Blog&lt;/li&gt;
&lt;li&gt;把Transformer手撕完，彻底理解掌握&lt;/li&gt;
&lt;li&gt;坚持每天的英语听力和力扣hot100，最好周末能加一套英语真题卷和力扣每日一题的总结&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;注：因为上周每天的英语和力扣都没做到，所以设下奖励，如果下周每天都做到了，周末就可以看《超时空辉夜姬》😘加油吧，少年，尽管你早已不是少年😎&lt;/p&gt;
&lt;h3&gt;第二周&lt;/h3&gt;
&lt;p&gt;05/11 ~ 05/17&lt;/p&gt;
&lt;p&gt;《超时空辉夜姬》还是看了，但是毕竟没有完成上周的目标，所以只看了一半 (其实是没有时间看了，有时间一定补，好看的捏！)。&lt;/p&gt;
&lt;p&gt;这周的话，还是比较中规中矩，基本是是按照计划走的，只不过有点高估自己的时间管理能力，事情一多就乱起来了。&lt;/p&gt;
&lt;p&gt;不过，值得一说的是，今天 (5.17) 花了将近4个小时，听完了 &lt;a href=&quot;https://www.bilibili.com/video/BV1YR5E6EE9o/?spm_id_from=333.1391.0.0&amp;#x26;vd_source=09b548343aff62fd78c442b7fba8f167&quot;&gt;对姚顺宇的4小时访谈&lt;/a&gt;，感觉对 AI 领域还是有了不一样的看法。上周的我还在追逐时代的主流 -- 疯狂地尝试 World Model 的新方向，不过听 ysy 的访谈，似乎像多模态、具身智能或者 AI4S 这些范式不确定但实操性强的方向，更应该是年轻一辈的选择。然后，现在的 Agent Flow 已经开始强大了，像是 &lt;a href=&quot;https://arxiv.org/abs/2605.03195&quot;&gt;Terminus-4B&lt;/a&gt; Google 这样的大团队开始下场完善，&lt;a href=&quot;https://github.com/Imbad0202/academic-research-skills&quot;&gt;Claude实现论文流水线&lt;/a&gt;，Human Researcher 的生存空间又进一步缩减，的确如 ysy 所说，AI 时代不存在个人英雄主义，一切都能由 AI “暴力”完成，目前人的价值就在于能否提供 good insights。&lt;/p&gt;
&lt;p&gt;与我而言的话，就是可能要考虑后续方向的变动了，大概率会尝试去调研 AI4S 方向，手撕一些多模态方向的代码和项目，学习一下具身的仿真软件……不过这些还是需要大量时间的。&lt;/p&gt;
&lt;p&gt;【插一句，写到这里的时候已经0:30了，我为了明天能早起测试 bench，就先去睡了，拜拜，明天见👋】&lt;/p&gt;
&lt;p&gt;好了，今早9:20，又开始写计划了。刚刚算了一下这周的时间 (17.5h[平时] + 20h[周末])，感觉这周时间非常的紧，也快要到期末了。加上上周的经验教训，我应该会稍微减少一些科研领域的探索，更多的集中于现有 paper 的完善、RL 的学习以及课内任务的学习。&lt;/p&gt;
&lt;p&gt;上周关于 base 和 SOTA 的任务分割做的不好，实现任务也没及时记录，这周需要注意！然后，英语六级考试时间是6.13，需要适当降低刷 LeetCode 的优先级，毕竟六级可能是最后一搏了。&lt;/p&gt;
&lt;p&gt;具体验收如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;强化学习基础篇 (动态规划、蒙特卡洛方法、时序差分学习) -- 上周布置的太多了，没考虑理解和实践的时间。其实这些应该也搞不完QAQ，但还是避免自己到时候闲下来了。&lt;/li&gt;
&lt;li&gt;跟进熟悉工作以及测试相关 bench。&lt;/li&gt;
&lt;li&gt;数据库 + 操作系统 + 电工学 复习 (优先级提高↑)&lt;/li&gt;
&lt;li&gt;调研 Agent Memory 的工作不会很勤，应该就是把 related works 的部分上传。&lt;/li&gt;
&lt;li&gt;每天先完成英语听力×1 + 阅读×1，再考虑完成 hot100 (不过时间不多，这周大概率刷不了 LeetCode)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;周末看情况，有时间就看完《超时空辉夜姬》😘&lt;/p&gt;
&lt;h3&gt;第三周&lt;/h3&gt;
&lt;p&gt;05/18 ~ 05/24&lt;/p&gt;
&lt;p&gt;虽然是每周总结，但是今天 (05/23) 周六一下子接受了太多的信息，需要静下来整理一下:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1、我现在的优势不是很大很稳，目前的两个 paper 仍在工作中，几乎都在下半年11月份才能有初步反馈 (一篇校内的投期刊，一篇校外的投A会)&lt;/p&gt;
&lt;p&gt;2、由于现在的优势不大，我需要考虑要不要再去套磁其他高档次院校 (目前来看就是清北了) 的实验组，看能不能利用人家的资源自己领导一篇出来，同时看看能不能留组。&lt;/p&gt;
&lt;p&gt;3、还有需要考虑的是，保研名额的确定已经几乎确定提前到了7月份，也就是暑假完全没有补救时间 (或许对我来说或许好事？ 毕竟可以全身心投入校外的套磁了)&lt;/p&gt;
&lt;p&gt;4、从学长那里了解到，到保研的时候别人很有可能拿出“杀招” (比如一篇“来路不明”的论文)，有一定的威胁，但是不多。(毕竟我要是能被这些水刊给挤下去，那出去升学也找不到什么好的学校了)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;应对措施还是要有的，还是要做好最坏的打算。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1、我准备抽个时间把我们专业前30%的所有数据统计分析一下，这样能看出来后面的人威胁大不大，需不需要使用“杀手锏”。&lt;/p&gt;
&lt;p&gt;2、手上的两篇工作投出去后，就要考虑自己独立完成一篇 paper了 (不过选择什么学校哪个实验组，还是个问题，需要从长计议)&lt;/p&gt;
&lt;p&gt;3、如果这两篇工作的结果非常惨淡的话 (那个时候应该是11月了)，就必须考虑使用点 trick 和调整计划。&lt;/p&gt;
&lt;p&gt;4、目前的话，还是稳扎稳打，把手头的工作好好完成，还有绩点一定要保住。&lt;/p&gt;
&lt;p&gt;5、比赛的话，只能见风使舵了，看看能不能提一提吧。&lt;/p&gt;
&lt;p&gt;6、英语六级，个人感觉这次也不一定能考到520+，但是口语还是要练习的。&lt;/p&gt;
&lt;p&gt;7、记住多和学长联系 (选课技巧、考试题型；掌握信息差)，多与导师沟通 (paper 进度)，其他的同学关系呵呵了 (hehe)。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;反正，不要太紧张，起码现在是知道这种零和博弈的风险了，也算是拥有了跳出博弈的手段，就继续保持现在学习的自觉与激情，应该是能成功的 (毕竟，少年，你是要追求上海 ailab 的啊！)&lt;/p&gt;
&lt;p&gt;这周过的比较平庸，可能是计划开始习惯，进度稳步向前，没有之前突破舒适圈的成就感了。&lt;/p&gt;
&lt;p&gt;不过，下周是比较关键的一周，作为5月底还是有许多的工作需要收尾，不少的事情又要开启了。&lt;/p&gt;
&lt;p&gt;说实话，吐槽一下我自己，昨天写的总结跟喝醉了似的，我现在自己看着都不太明白了？&lt;/p&gt;
&lt;p&gt;关于下周的计划大概集中于:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;复习 (DB 多做题；OS 大题总结；EE 笔记总结)&lt;/li&gt;
&lt;li&gt;paper 跟进&lt;/li&gt;
&lt;li&gt;RL 轻度学习 + 机器学习经典算法项目&lt;/li&gt;
&lt;li&gt;英语听力 + 阅读的每日练习&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;具体验收如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;强化学习 (TD、Sarsa、Q-Learning、DQN)&lt;/li&gt;
&lt;li&gt;机器学习经典算法项目 (这个目前不了解情况，需要尝试探索)&lt;/li&gt;
&lt;li&gt;跟进 paper&lt;/li&gt;
&lt;li&gt;DB (多做题) + OS (大题总结) + EE (笔记总结)&lt;/li&gt;
&lt;li&gt;英语听力+阅读每日练习&lt;/li&gt;
&lt;li&gt;调研后续可去的科研组 (稍微多关注 &lt;a href=&quot;http://team.neu.edu.cn/NEUNLPLab/zh_CN/index.htm&quot;&gt;NEUNLP&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;第四周&lt;/h3&gt;
&lt;p&gt;05/25 ~ 05/31&lt;/p&gt;
&lt;p&gt;昨天太晚了，很困，所有5月总结留到今天来写。&lt;/p&gt;
&lt;p&gt;先说说上周为什么 1、4、5 项一点没做。其实看了我每天完成的任务是不少的，但是不少的精力花在了 ML 算法项目和 veRL 测试上了，而且还有不小的作业压力，甚至周末还抽时间来复现 LongChain-chatchat。不过，我不否认我个人的计划有问题，执行力不足。&lt;/p&gt;
&lt;p&gt;然后，再象征性的做一个月末总结吧。&lt;/p&gt;
&lt;p&gt;这个月给我的感觉是时间紧张、学习充实的，感觉一个月活出了之前一个学期的忙碌。无论是从学习上，还是科研上，我很难想象自己能有如此大的变化。当然，就单单一个月的话，变化还不够明显，雪球不够大。&lt;/p&gt;
&lt;p&gt;人在经历过程中有无数的苦楚辛酸，但是回过头看，却说不出什么了，似乎一切必然如此、本应如此。所以，我也不再多说了，让我们六月相见！&lt;/p&gt;</content:encoded><h:img src="/_astro/journal-2026-05.CGspQzl8.webp"/><enclosure url="/_astro/journal-2026-05.CGspQzl8.webp"/></item><item><title>RL学习笔记（6）: 时序差分学习</title><link>https://atpoint.top/blog/rl-notes/6</link><guid isPermaLink="true">https://atpoint.top/blog/rl-notes/6</guid><description>时序差分学习（Temporal Difference Learning）</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;@/components/user&apos;
/* - note - 蓝色信息提示&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tip - 紫色技巧提示&lt;/li&gt;
&lt;li&gt;caution - 黄色警告提示&lt;/li&gt;
&lt;li&gt;danger - 红色危险提示 */&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;时序差分 (TD) 学习概述&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;动机: 结合动态规划 (DP) 与蒙特卡洛 (MC) 的优点&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DP&lt;/strong&gt;: 利用 &lt;strong&gt;自举 (Bootstrapping)&lt;/strong&gt;，即基于其他状态的 &lt;strong&gt;估计值&lt;/strong&gt; 来更新当前状态的估计值 (例如，$V(S_t) \leftarrow \mathbb{E}[R_{t+1} + \gamma V(S_{t+1})]$)。但它需要知道环境的 &lt;strong&gt;完整模型&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MC&lt;/strong&gt;: &lt;strong&gt;无模型&lt;/strong&gt;，直接从 &lt;strong&gt;完整经验片段&lt;/strong&gt; 的最终 &lt;strong&gt;实际回报&lt;/strong&gt; $G_t$ 中学习 (例如，$V(S_t) \leftarrow V(S_t) + \alpha[G_t-V(S_t)]$)。它不使用自举，必须等待片段结束。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TD 学习&lt;/strong&gt;: 旨在融合两者的长处
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;无模型 (Model-Free)&lt;/strong&gt;: 像 MC 一样，直接从经验中学习，无需环境模型 $\mathcal{P}, \mathcal{R}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自举 (Bootstrapping)&lt;/strong&gt;: 像 DP 一样，更新当前状态 $S_t$ 的价值时，会使用 &lt;strong&gt;后续状态 $S_{t+1}$ 的当前价值估计 $V(S_{t+1})$&lt;/strong&gt;，而 &lt;strong&gt;不需要等到片段结束&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;核心思想&lt;/strong&gt;: TD 学习在智能体与环境交互的每一步之后，利用观测到的 &lt;strong&gt;即时奖励 $R_{t+1}$&lt;/strong&gt; 和 &lt;strong&gt;下一状态 $S_{t+1}$ 的当前价值估计 $V(S_{t+1})$&lt;/strong&gt; 来构建一个 &lt;strong&gt;目标值 (TD Target)&lt;/strong&gt;。然后，用这个目标值来更新当前状态 $S_t$ 的价值估计 $V(S_t)$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TD(0) 更新规则 (最简单的 TD 算法)&lt;/strong&gt;:
$$
V(S_t) \leftarrow V(S_t) + \alpha \underbrace{\Big[ \overbrace{R_{t+1} + \gamma V(S_{t+1})}^{\text{TD 目标 (TD Target)}} - V(S_t) \Big]}_{\text{TD 误差 (TD Error) } \delta_t}
$$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TD 目标 (TD Target)&lt;/strong&gt;: $R_{t+1} + \gamma V(S_{t+1})$。这是对未来总回报 $G_t$ 的一个估计，它仅使用了一步的真实奖励 $R_{t+1}$ 和一步之后状态的价值估计 $V(S_{t+1})$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TD 误差 (TD Error)&lt;/strong&gt; $\delta_t$: $\delta_t = R_{t+1} + \gamma V(S_{t+1}) - V(S_t)$。它衡量了当前价值估计 $V(S_t)$ 与基于下一步信息的“更好”的估计 (TD 目标) 之间的差异，可以看作是对当前价值的一个调整信号。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;TD 学习的特点: 自举与采样 (Bootstrapping and Sampling)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;采样 (Sampling)&lt;/strong&gt;: 更新是基于智能体实际经历的转移 ($S_t, A_t, R_{t+1}, S_{t+1}$)，而不是像 DP 那样考虑有可能的后续状态和奖励。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自举 (Bootstrapping)&lt;/strong&gt;: 更新的目标值中包含了 &lt;strong&gt;当前的价值估计 $V(S_{t+1})$&lt;/strong&gt;，而不是像 MC 那样依赖最终观测到的完整回报 $G_t$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;学习内容&lt;/strong&gt;: 接下来我们将介绍 TD 如何用于策略评估 (TD 预测) 和策略改进 (TD 控制)。&lt;/p&gt;
&lt;h2&gt;TD 预测 (TD Prediction)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;: 在给定策略 $\pi$ 的情况下，估计其状态价值函数 $v_\pi$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TD(0) 算法 (用于估计 $v_\pi$)&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;输入: 需要评估的策略 π
算法参数: 步长 α ∈ (0, 1]
初始化:
  对于所有状态 s ∈ S⁺ (S⁺ 是包含终止状态的状态集):
    V(s) ← 任意值 (例如 V(s)=0)
  V(终止状态) ← 0

循环 对每个 episode:
  初始化 S (该 episode 的第一个状态)
  循环 对 episode 中的每一步:
    A ← 根据策略 π 在状态 S 选择的动作
    执行动作 A, 观察得到奖励 R 和下一状态 S&apos;
    // TD 更新
    V(S) ← V(S) + α * [R + γ * V(S&apos;) - V(S)]
    S ← S&apos; // 转移到下一状态
  直到 S 是终止状态
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;主要特点&lt;/strong&gt;: TD(0) 算法在 &lt;strong&gt;每一步&lt;/strong&gt; 交互后都进行价值更新，无需等待一个 episode 结束。这使得 TD 学习非常适合 &lt;strong&gt;在线 (Online)&lt;/strong&gt; 学习场景。&lt;/p&gt;
&lt;h2&gt;TD 与 MC 的比较: 性质与权衡&lt;/h2&gt;
&lt;p&gt;TD 和 MC 作为无模型学习方法，各有优势:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;更新时机与数据需求&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;TD可 &lt;strong&gt;在线学习&lt;/strong&gt;，每步更新；MC 需等待 episode 结束才能更新 (离散更新)。&lt;/li&gt;
&lt;li&gt;TD 能从 &lt;strong&gt;不完整&lt;/strong&gt; 的 episode 中学习；MC 必须基于完整的 episode。&lt;/li&gt;
&lt;li&gt;TD 天然适用于 &lt;strong&gt;连续性任务&lt;/strong&gt; (无终止状态)；MC 主要用于 &lt;strong&gt;分幕式任务&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;偏差与方差 (Bias vs Variance)&lt;/strong&gt;: 这是两者最核心的区别之一。
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MC 目标 ($G_t$)&lt;/strong&gt;: 是 $v_\pi(S_t)$ 的 &lt;strong&gt;无偏 (Unbiased)&lt;/strong&gt; 估计。因为 $G_t$ 是从 $t$ 时刻开始实际获得的总回报，其期望就是 $v_\pi(S_t)$。但 $G_t$ 的 &lt;strong&gt;方差较高&lt;/strong&gt;，因为它受到从 $t$ 到片段结束所有的随机因素 (动作选择、状态转移、奖励) 的影响。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TD(0) 目标 ($R_{t+1} + \gamma V(S_{t+1})$)&lt;/strong&gt;: 是 $v_pi(S_t)$ 的 &lt;strong&gt;有偏 (Biased)&lt;/strong&gt; 估计。因为目标中使用的 $V(S_{t+1})$ 本身就是当前的估计值，可能并不准确。然而，这个目标的 &lt;strong&gt;方差较低&lt;/strong&gt;，因为它只依赖下一个时间步的随机性 ($R_{t+1}, S_{t+1})$)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;总结&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;MC: 高方差，零偏差。对初始值不敏感。&lt;/li&gt;
&lt;li&gt;TD: 低方差，有偏差。通常比 MC &lt;strong&gt;学习效率更高&lt;/strong&gt; (收敛更快)，但对初始值比较敏感。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对马尔可夫性质的利用&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;TD 隐式地利用了马尔可夫性质，它假设状态 $S_{t+1}$ 的价值 $V(S_{t+1})$ 足够概括未来信息。在满足马尔可夫性的环境中，这种假设有助于提高概率。&lt;/li&gt;
&lt;li&gt;MC 不做此假设，它直接使用实际发生的完整回报序列。这使得 MC 在 &lt;strong&gt;非马尔可夫环境&lt;/strong&gt; 下可能比 TD(0) 更稳健。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;批量学习 (Batch Learning) 下的行为差异&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;当使用一个固定的、有限的经验数据集进行学习时:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;批量 MC&lt;/strong&gt; 收敛到的价值函数，能最小化训练数据中&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="/_astro/RL-6.DMM_Ic5X.webp"/><enclosure url="/_astro/RL-6.DMM_Ic5X.webp"/></item><item><title>RL学习笔记（5）: 蒙特卡洛方法</title><link>https://atpoint.top/blog/rl-notes/5</link><guid isPermaLink="true">https://atpoint.top/blog/rl-notes/5</guid><description>蒙特卡洛方法（Monte Carlo Methods）</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;@/components/user&apos;
/* - note - 蓝色信息提示&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tip - 紫色技巧提示&lt;/li&gt;
&lt;li&gt;caution - 黄色警告提示&lt;/li&gt;
&lt;li&gt;danger - 红色危险提示 */&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;引言&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;蒙特卡洛 (Monte Carlo, MC) 方法&lt;/strong&gt; 是一大类依赖于 &lt;strong&gt;重复随机抽样&lt;/strong&gt; 来获取数值近似解的计算技术。在强化学习 (RL) 领域，蒙特卡洛方法特指一类 &lt;strong&gt;无模型 (Model-Free)&lt;/strong&gt; 的学习算法，它们直接从与环境交互得到的 &lt;strong&gt;完整经验片段 (Complete Episodes)&lt;/strong&gt; 中学习价值函数和策略，而不需要关于环境动态 (如状态转移概率 $\mathcal{P}$ 和奖励函数 $\mathcal{R}$) 的先验知识。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心思想&lt;/strong&gt;: MC 方法利用 &lt;strong&gt;大数定律&lt;/strong&gt;，通过计算许多样本回报的 &lt;strong&gt;平均值 (Mean Sample Return)&lt;/strong&gt; 来估计期望回报，也就是状态或动作的 &lt;strong&gt;价值 (Value)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;基本要求&lt;/strong&gt;: MC 方法直接适用于 &lt;strong&gt;分幕式任务 (Episodic Tasks)&lt;/strong&gt;，因为它们需要等待一个完整的片段结束后才能计算该片段中每个时间步的 &lt;strong&gt;回报 (Return, $G_t$)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;学习内容&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;MC 预测 (Prediction)&lt;/strong&gt;: 给定一个策略 $\pi$，估计其价值函数 $v_\pi$ 或 $q_\pi$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MC 控制 (Control)&lt;/strong&gt;: 寻找最优策略 $\pi_*$。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;蒙特卡洛预测 (MC Prediction)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;: 给定策略 $\pi$，从遵循该策略生成的经验片段中估计其 &lt;strong&gt;状态价值函数 $v_\pi(s)$&lt;/strong&gt; 或 &lt;strong&gt;动作价值函数 $q_\pi(s, a)$&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;基本原理&lt;/strong&gt;: 价值函数定义为期望回报: $v_\pi(s) = \mathbb{E}&lt;em&gt;{\pi}[G_t | S_t = s]$ (状态价值) 或 $q&lt;/em&gt;\pi(s, a) = \mathbb{E}_{\pi}[G_t | S_t = s, A_t = a]$ (动作价值)。MC 方法通过收集大量样本回报并计算其平均值来近似这个期望。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;对于 $v_\pi(s)$: 收集策略 $\pi$ 下多个片段中，所有访问状态 $s$ 之后直到片段结束的回报 $G_t^{(i)}$，然后求平均。
$$
V(s) \approx \frac{\sum_{i} G_t^{(i)}}{N(s)}, \text{where } S_t^{(i)} = s
$$
其中 $N(s)$ 是访问状态 $s$ 的被访问的总次数 (根据首次 / 每次访问定义)。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;对于 $q_\pi(s, a)$: 类似地，收集所有访问状态-动作对 $(s, a)$ 之后的回报 $G_t^{(j)}$，然后求平均。
$$
Q(s, a) \approx \frac{\sum_{j} G_t^{(j)}}{N(s, a)}, \text{where } S_t^{(j)} = s, A_t^{(j)} = a
$$&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;首次访问 (First-Visit) vs 每次访问 (Every-Visit)&lt;/strong&gt;: 在一个片段中，某个状态 $s$ (或状态-动作对 $(s, a)$) 可能被访问多次。
- &lt;strong&gt;首次访问 MC&lt;/strong&gt;: 对于每个片段，只使用该片段中状态 $s$ (或对 $(s, a)$) &lt;strong&gt;第一次&lt;/strong&gt; 被访问时之后的回报 $G_t$ 来更新价值估计。
- &lt;strong&gt;每次访问 MC&lt;/strong&gt;: 对于每个片段，使用该片段中状态 $s$ (或对 $(s, a)$) &lt;strong&gt;每一次&lt;/strong&gt; 被访问时之后的回报 $G_t$ 来更新价值估计。
- 理论上，在无限数据下，两者都会收敛到真实的价值函数。首次访问 MC 在理论分析上更常用，且某些情况下方差可能更低。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;算法: 首次访问 MC 预测 (用于估计 $v_\pi$)&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;初始化:
  对于所有状态 s ∈ S:
    V(s) ← 任意值 (通常为 0)
    Returns(s) ← 空列表

循环 对每个 episode:
  生成一个 episode 遵循策略 π: S₀, A₀, R₁, S₁, A₁, R₂, ..., S_{T-1}, A_{T-1}, R_T
  G ← 0
  VisitedStates ← 空集合  // 记录本片段已访问的状态 (用于首次访问)

  循环 对于 t = T-1, T-2, ..., 0:
    G ← R_{t+1} + γ * G
    如果 S_t 不在 VisitedStates 中:
      将 G 添加到 Returns(S_t) 列表

      1. 计算回报平均值
      V(S_t) ← Average(Returns(S_t))  // 计算列表的平均值

      2. 增量式更新 (减少内存开销)
      N(S_t) ← N(S_t) + 1
      V(S_t) ← V(S_t) + (1/N(S_t)) * (G - V(S_t))  # 增量更新

      3. 固定步长更新 (环境非平稳)
      V(S_t) ← V(S_t) + α * (G - V(S_t))  # α ∈ (0,1]

      将 S_t 添加到 VisitedStates
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;增量式实现 (Incremental Implementation)&lt;/strong&gt;: 为了节省内存，避免存储所有回报，可以使用增量式更新 (运行平均) : 对于状态 $s$ (或对 $(s, a)$) 的第 $N$ 次 (首次 / 每次) 访问，得到回报 $G$:
$$
N(s) ← N(s) + 1
$$
$$
V(s) \leftarrow V(s) + \frac{G - V(s)}{N}（或 Q(s, a) \leftarrow Q(s, a) + \frac{G - Q(s, a)}{N(s, a)}）
$$
或者使用&lt;strong&gt;常数步长&lt;/strong&gt;$\alpha \in (0, 1]$，这有助于处理非平稳环境(奖励或动态随时间变化)或作为一种指数加权平均:
$$
V(s) \leftarrow V(s) + \alpha (G - V(s))（或 Q(s, a) \leftarrow Q(s, a) + \alpha (G - Q(s, a))）
$$&lt;/p&gt;
&lt;h2&gt;蒙特卡洛控制 (MC Control)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;: 在不知道环境模型的情况下，找到最优策略 $\pi_*$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;基于动作价值 (Action-Value Q)&lt;/strong&gt;: 在无模型情况下，仅仅知道状态价值 $V(s)$ 不足以改进策略，因为我们无法进行一步预测来比较不同动作的优劣 (这需要模型 $\mathcal{P}$ 和 $\mathcal{R}$)。因此，MC 控制方法通常直接估计 &lt;strong&gt;动作价值函数 $Q(s, a)$&lt;/strong&gt;，然后基于 $Q$ 值来改进策略。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;框架: 广义策略迭代 (GPI)&lt;/strong&gt;: MC 控制遵循 GPI 的模式: 不断交替执行 &lt;strong&gt;策略评估&lt;/strong&gt; 和 &lt;strong&gt;策略改进&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;评估 (E)&lt;/strong&gt;: 使用 MC 预测方法 (如首次访问 MC) 估计当前策略 $\pi$ 的动作价值函数 $Q \approx q_\pi$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;改进 (I)&lt;/strong&gt;: 基于当前的 $Q$ 值使策略 $\pi$ 变得更贪心。例如，对于每个状态 $s$，将策略更新为选择具有最高估计值的动作: $\pi(s) \leftarrow \arg \max_{a} Q(s, a)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;核心挑战: 维持探索 (Maintaining Exploration)&lt;/strong&gt;: 如果策略在改进步骤中变得完全贪心 (确定性策略)，智能体可能会停止探索某些状态-动作对。如果未被探索的 $(s, a)$ 对恰好是最优策略的一部分，那么算法将永远无法发现真正的最优策略。MC 方法依赖于持续不断地访问所有需要评估其价值的状态-动作对。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方案 (A): 试探性出发 (Exploring Starts, ES)&lt;/strong&gt; - 理论方法&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;假设&lt;/strong&gt;: 每次开始一个新片段时，我们能够以非零概率随机选择 &lt;strong&gt;任意一个&lt;/strong&gt; 状态-动作对 $(S_0, A_0)$ 作为起点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;算法: 带 ES 的 MC 控制&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;初始化:
  对于所有状态 s ∈ S, 所有动作 a ∈ A(s):
    Q(s, a) ← 任意值 (通常为 0)
    Returns(s, a) ← 空列表
  对于所有状态 s ∈ S:
    π(s) ← 任意确定性动作从 A(s) 中选择

循环 无限次:
  选择起始状态 S₀ 和 起始动作 A₀，确保所有 (s, a) 都有非零概率被选为起点 (ES 假设)
  从 (S₀, A₀) 开始, 之后遵循策略 π 生成一个 episode: S₀, A₀, R₁, ..., S_{T-1}, A_{T-1}, R_T
  G ← 0
  VisitedPairs ← 空集合 // 记录首次访问的 (s, a) 对

  循环 对于 t = T-1, T-2, ..., 0:
    G ← R_{t+1} + γ * G
    令 Pair = (S_t, A_t)

    如果 Pair 不在 VisitedPairs 中:
      将 G 添加到 Returns(Pair) 列表
      Q(Pair) ← Average(Returns(Pair))  // (E) 策略评估

      // (I) 策略改进：更新状态 S_t 的策略
      π(S_t) ← argmax_{a&apos; ∈ A(S_t)} Q(S_t, a&apos;)

      将 Pair 添加到 VisitedPairs
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;: 在 ES 假设下，保证收敛到最优策略 $\pi_&lt;em&gt;$ 和最优动作价值 $q_&lt;/em&gt;$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;: ES 假设在许多实际问题中不现实 (例如，机器人不能随意瞬移到任意状态并执行任意动作)。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;解决方案 (B): 维持策略本身的探索性&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;核心思想&lt;/strong&gt;: 不依赖 ES，而是确保用于生成数据的策略本身始终保持一定的探索性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;同轨策略 (On-Policy) vs 离轨策略 (Off-Policy)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;同轨策略学习&lt;/strong&gt;: 学习和改进的策略，与用于生成经验数据的策略是 &lt;strong&gt;同一个&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离轨策略学习&lt;/strong&gt;: 学习和改进的策略 (&lt;strong&gt;目标策略 $\pi$&lt;/strong&gt;)，与用于生成经验数据的策略 (行为策略 $b$) &lt;strong&gt;不同&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$\epsilon$-软性策略 ($\epsilon$-Soft Policies): 为保证持续探索，同轨方法通常采用 $\epsilon$-软性策略，即对于所有状态 $s$ 和动作 $a$，策略选择该动作的概率 $\pi(a|s) \ge \frac{\epsilon}{|\mathcal{A}(s)|} &gt; 0$。这意味着每个动作始终有至少 $\frac{\epsilon}{|\mathcal{A}(s)|}$ 的概率被选中。&lt;/li&gt;
&lt;li&gt;$\epsilon$-贪心策略 ($\epsilon$-Greedy Policies): 是实现 $\epsilon$-软性的一种常用策略。
&lt;ul&gt;
&lt;li&gt;以 1 - $\epsilon$ 的概率选择当前认为最优的动作 (即 $\arg \max_{a} Q(s, a)$)。&lt;/li&gt;
&lt;li&gt;以 $\epsilon$ 的概率从所有 $|\mathcal{A}(s)|$ 个可用动作中 (包括最优动作) 均匀随机选择一个。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;算法: 同轨首次访问 MC 控制 (使用 $\epsilon$-Greedy)&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;初始化:
  对于所有状态 s ∈ S, 所有动作 a ∈ A(s):
    Q(s, a) ← 任意值 (通常为 0)
    Returns(s, a) ← 空列表
  初始化策略 π 为关于 Q 的 ε-greedy 策略

循环 无限次:
  (a) 使用当前策略 π 生成一个 episode: S₀, A₀, R₁, ..., S_{T-1}, A_{T-1}, R_T
  G ← 0
  VisitedPairs ← 空集合

  (b) 循环 对于 t = T-1, T-2, ..., 0:
    G ← R_{t+1} + γ * G
    令 Pair = (S_t, A_t)

    如果 Pair 不在 VisitedPairs 中:
      将 G 添加到 Returns(Pair) 列表
      Q(Pair) ← Average(Returns(Pair))  // (E) 策略评估
      // 也可以用增量式更新

      // (c) 策略改进: 确保状态 S_t 的策略是关于更新后 Q 的 ε-greedy
      // (隐式或显式更新 π(·|S_t))
      令 A* = argmax_{a&apos; ∈ A(S_t)} Q(S_t, a&apos;)
      对于所有动作 a ∈ A(S_t):
        如果 a = A*:
          π(a|S_t) ← 1 - ε + ε / |A(S_t)| ← 最优动作的概率
        否则:
          π(a|S_t) ← ε / |A(S_t)|         ← 非最优动作的概率

      将 Pair 添加到 VisitedPairs
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;收敛性&lt;/strong&gt;: 同轨 MC 控制 (使用 $\epsilon$-Greedy) 会收敛到最优的 $\epsilon$-贪心策略，而不是真正的最优策略 $\pi_*$ (因为 $\epsilon &gt; 0$ 导致它永远在探索)。不过，这个策略通常也相当好。可以通过逐渐减小 $\epsilon$ 值 (例如 $\epsilon_k = 1/k$) 来使其在极限情况下趋近于最优策略 (GLIE - Greedy in the Limit with Infinite Exploration)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;策略改进保证&lt;/strong&gt;: 可以证明，对于任意 $\epsilon$-贪心策略 $\pi$，基于其动作价值 $q_\pi$ 进行 $\epsilon$-贪心选择得到的新策略 $\pi&apos;$，仍然满足 $v_{\pi&apos;}(s) \ge v_{\pi}(s)$ 对所有状态 $s$ 成立。这保证了 GPI 过程的单调性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;离轨策略蒙特卡洛方法 (Off-Policy MC)&lt;/h2&gt;
&lt;p&gt;同轨策略 MC 为了保证探索，最终学习到的只是一个 $\epsilon$-软性策略。&lt;strong&gt;离轨策略学习&lt;/strong&gt; 的目标是: 使用一个具有 &lt;strong&gt;探索性的行为策略 $b$ (Behavior Policy)&lt;/strong&gt; 来生成数据，但学习和评估的是一个不同的、通常是确定性的贪心策略——&lt;strong&gt;目标策略 $\pi$ (Target Policy)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可以学习最优的确定性策略 $\pi_*$ (目标策略)，同时通过行为策略 $b$ 保证充分的探索。&lt;/li&gt;
&lt;li&gt;更灵活，允许从历史数据、人类演示或智能体的经验中学习。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;挑战与核心技术&lt;/strong&gt;: &lt;strong&gt;重要性采样 (Importance Sampling, IS)&lt;/strong&gt; 由于数据来自 $b$ 而非 $\pi$，直接用 $b$ 产生的回报来评估 $\pi$ 是有偏的。我们需要一种方法来修正这种分布不匹配，这就是重要性采样的作用。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;覆盖性假设 (Coverage Assumption)&lt;/strong&gt;: 为了能够评估 $\pi$，行为策略 $b$ 必须覆盖 $\pi$ 可能采取的所有动作。即: 如果 $\pi(a|s) &gt; 0$，那么必须有 $b(a|s) &gt; 0$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;重要性采样比率 (Importance Sampling Ratio)&lt;/strong&gt;: 对于一个从时间 $t$ 开始到片段结束 (时间 $T - 1$) 的轨迹片段 $S_t, A_t, S_{t+1}, A_{t+1}, \ldots, S_{T-1}, A_{T-1}, S_T$，其在目标策略 $\pi$ 和行为策略 $b$ 下发生的相对概率由 &lt;strong&gt;IS&lt;/strong&gt; 比率给出:
$$
\rho_{t:T-1} \doteq \frac{\prod_{k=t}^{T-1} \pi(A_k \mid S_k) , p(S_{k+1} \mid S_k, A_k)}{\prod_{k=t}^{T-1} b(A_k \mid S_k) , p(S_{k+1} \mid S_k, A_k)} = \prod_{k=t}^{T-1} \frac{\pi(A_k \mid S_k)}{b(A_k \mid S_k)}
$$
(环境动态 $p(S_{k+1} \mid S_k, A_k)$ 相同，被约掉了)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离轨 MC 预测&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;要估计 $v_\pi(s)$ (或 $q_\pi(s, a)$)，我们可以使用行为策略 $b$ 生成的回报 $G_t$，并用 &lt;strong&gt;IS&lt;/strong&gt; 比率 $\rho_{t:T-1}$ 对其加权: $G_t^{\pi/b}=\rho_{t:T-1} , G_t$。&lt;/li&gt;
&lt;li&gt;理论上 $\mathbb{E}&lt;em&gt;b[G_t^{\pi/b} \mid S_t = s] = v&lt;/em&gt;\pi(s)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;普通重要性采样 (Ordinary IS, OIS)&lt;/strong&gt;: 简单地对加权回报求平均 $V(s)=\frac{\sum \rho G}{count}$。这是无偏估计，但是方差可能极大，尤其当 $\rho$ 值波动很大时。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;加权重要性采样 (Weighted IS, WIS)&lt;/strong&gt;: $V(s)=\frac{\sum \rho G}{\sum \rho}$。这是一个有偏估计 (偏差随样本增多趋于0)，但通常方差小得多，实践中更常用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;增量式 WIS 更新 (用于 Q 值)&lt;/strong&gt;: 维护累积权重 $C(s, a)$ 和价值估计 $Q(s, a)$。当获得状态-动作对 $(s, a)$ 的第 $n$ 个回报 $G_n$ 和对应的权重 $W_n=\rho_{t:T(n)-1}$ 时:
$$
C_n \leftarrow C_{n-1} + W_n , , , (初始 C_0 = 0)
$$
$$
Q_n(s, a) \leftarrow Q_{n-1}(s, a) + \frac{W_n}{C_n}[G_n-Q_{n-1}(s, a)]
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;算法: 离轨 MC 预测 (WIS 估计 $q_\pi$)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;输入: 目标策略 π
初始化:
  对于所有状态 s ∈ S, 所有动作 a ∈ A(s):
    Q(s, a) ← 任意值 (通常为 0)
    C(s, a) ← 0  // 累积权重

循环 无限次 (对每个 episode):
  选择行为策略 b (确保覆盖 π, 例如关于当前 Q 的 ε-greedy 策略)
  使用 b 生成 episode: S₀, A₀, R₁, ..., S_{T-1}, A_{T-1}, R_T
  G ← 0
  W ← 1  // 重要性采样比率的累乘

  循环 对于 t = T-1, T-2, ..., 0:
    G ← R_{t+1} + γ * G
    令 Pair = (S_t, A_t)

    C(Pair) ← C(Pair) + W
    如果 C(Pair) = 0:
      跳转到循环的下一次迭代 (t-1) // 避免除零
    Q(Pair) ← Q(Pair) + (W / C(Pair)) * [G - Q(Pair)] // WIS 更新

    // 更新下次回溯的 IS 权重
    W ← W * (π(A_t | S_t) / b(A_t | S_t))

    如果 W = 0:
      终止内层循环 (对于 t 的循环) // 后续轨迹与 π 无关
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;离轨 MC 控制 (Off-Policy MC Control)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;结合离轨预测 (WIS) 和策略改进。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标策略 $\pi$&lt;/strong&gt;: 通常是 &lt;strong&gt;确定性贪心策略&lt;/strong&gt;，即 $\pi(s) = \arg \max_{a} Q(s, a)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;行为策略 $b$&lt;/strong&gt;: 必须是探索性的，如 $\epsilon$-greedy 策略 (基于当前 Q 值)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;算法&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;初始化:
  对于所有状态 s ∈ S, 所有动作 a ∈ A(s):
    Q(s, a) ← 任意值 (通常为 0)
    C(s, a) ← 0
  目标策略 π(s) ← argmax_{a&apos; ∈ A(s)} Q(s, a&apos;)  // 初始贪心策略

循环 无限次 (对每个 episode):
  选择行为策略 b (例如关于当前 Q 的 ε-greedy 策略)
  使用 b 生成 episode: S₀, A₀, R₁, ..., S_{T-1}, A_{T-1}, R_T
  G ← 0
  W ← 1

  循环 对于 t = T-1, T-2, ..., 0:
    G ← R_{t+1} + γ * G
    令 Pair = (S_t, A_t)

    C(Pair) ← C(Pair) + W
    如果 C(Pair) = 0:
      跳转到循环的下一次迭代 (t-1)
    Q(Pair) ← Q(Pair) + (W / C(Pair)) * [G - Q(Pair)] // (E) Off-policy 评估

    // (I) 策略改进: 更新目标策略 π 使其对 S_t 贪心
    π(S_t) ← argmax_{a&apos; ∈ A(S_t)} Q(S_t, a&apos;)

    // 检查行为策略选择的动作是否是目标策略会选择的动作
    如果 A_t ≠ π(S_t):
      终止内层循环 (对于 t 的循环) // 因为 W 之后将变为 0

    // 更新 IS 权重 (假设 π 是确定性的, π(A_t|S_t) = 1)
    如果 b(A_t|S_t) = 0:
       W ← 0 // 覆盖性假设不满足 (理论上不应发生)
    否则:
       W ← W * (1 / b(A_t | S_t))

    如果 W = 0:
      终止内层循环 (对于 t 的循环) // 以防 b(A_t|S_t) = 0
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;关键点&lt;/strong&gt;: 当目标策略 $\pi$ 是确定性贪心时，只要行为策略 $b$ 在某一步 $t$ 选择了一个非贪心动作 $A_t \neq \pi(S_t)$，那么 $\pi(A_t|S_t)=0$，导致 &lt;strong&gt;IS&lt;/strong&gt; 比率 $\rho_{t:T-1}$ 必然为0。这意味着从该点往前的回报对于评估 $\pi$ 没有贡献，可以提前停止处理该 episode 的剩余部分。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;总结与讨论&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;蒙特卡洛 (MC) 方法&lt;/strong&gt; 是一种 &lt;strong&gt;无模型&lt;/strong&gt; 的 RL 方法，直接从 &lt;strong&gt;完整经验片段&lt;/strong&gt; 中学习价值函数和策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MC 预测&lt;/strong&gt; 使用平均样本回报来估计 $v_\pi$ 或 $q_\pi$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MC 控制&lt;/strong&gt; 在 GPI 框架下，通过估计 $q_\pi$ 并进行策略改进来寻找最优策略。&lt;strong&gt;动作价值 $Q$&lt;/strong&gt; 对于无模型控制至关重要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;探索&lt;/strong&gt; 是 MC 控制的核心挑战。可通过 &lt;strong&gt;ES (理论)&lt;/strong&gt;、&lt;strong&gt;同轨 $\epsilon$-软性策略 (实用)&lt;/strong&gt; 或 &lt;strong&gt;离轨方法&lt;/strong&gt; 来解决。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;同轨 (On-Policy) MC&lt;/strong&gt; 学习最优的 $\epsilon$-软性策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离轨 (Off-Policy) MC&lt;/strong&gt; 使用 &lt;strong&gt;重要性采样 (IS)&lt;/strong&gt;，允许从行为策略 $b$ 生成的数据中学习目标策略 $\pi$ (通常是最优贪心策略)。&lt;strong&gt;加权重要性采样 (WIS)&lt;/strong&gt; 在实践中更常用以减小方差。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MC 的优缺点&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;: 无模型；概念简单；无偏估计 (使用完整回报)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;: 必须是分幕式任务；效率不高 (需要等待片段结束)；方差可能较高 (尤其是普通 IS)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下期更精彩&lt;/strong&gt;: MC 的局限性 (特别是高方差和对完整片段的依赖) 引出了下一类重要的无模型学习方法 —— &lt;strong&gt;时序差分 (Temporal-Difference, TD) 学习&lt;/strong&gt;，它结合了 MC 和动态规划的思想。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="/_astro/RL-5.C9wTOWXL.webp"/><enclosure url="/_astro/RL-5.C9wTOWXL.webp"/></item><item><title>RL学习笔记（4）: 动态规划</title><link>https://atpoint.top/blog/rl-notes/4</link><guid isPermaLink="true">https://atpoint.top/blog/rl-notes/4</guid><description>动态规划（Dynamic Programming）</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;@/components/user&apos;
/* - note - 蓝色信息提示&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tip - 紫色技巧提示&lt;/li&gt;
&lt;li&gt;caution - 黄色警告提示&lt;/li&gt;
&lt;li&gt;danger - 红色危险提示 */&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;引言&lt;/h2&gt;
&lt;p&gt;由 Richard Bellman 提出的动态规划（Dynamic Programming）是一种用于解决决策问题的算法。在算法竞赛中，体现为将一个问题拆解为有递归关系的子问题，通过状态转移方程来解决。在强化学习中，DP 特指 &lt;strong&gt;在已知环境模型 (即马尔可夫决策过程 MDP) 完全信息的情况下，计算最优策略 $\pi_*$ 的一组算法&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心思想&lt;/strong&gt;: DP 充分利用了 &lt;strong&gt;价值函数&lt;/strong&gt; 的结构，特别是通过 &lt;strong&gt;贝尔曼方程 (Bellman Equation)&lt;/strong&gt; 来组织计算，有效地寻找最优策略。DP 适用的问题通常具有 &lt;strong&gt;最优子结构&lt;/strong&gt; 和 &lt;strong&gt;重叠子问题&lt;/strong&gt; 的性质，而 MDP 正好满足这些条件 (贝尔曼方程体现了递归分解，价值函数的计算会被重复利用)。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DP 主要解决的两类问题 (MDP 规划问题)&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;预测 (Prediction / Policy Evaluation)&lt;/strong&gt;: 评估一个给定的策略 $\pi$ 有多好。即输入 MDP 模型和策略 $\pi$，输出该策略下的价值函数 $v_\pi$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制 (Control)&lt;/strong&gt;: 寻找最优的行为方式。即输入 MDP 模型，输出最优价值函数 $v^&lt;em&gt;$ 和最优策略 $\pi^&lt;/em&gt;$。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;关键前提&lt;/strong&gt;: DP 算法必须知道环境的完整动态特性，即状态转移概率 $p(s&apos;,r|s,a)$ 和奖励函数 $R^a_s$。这通常被称为“基于模型的规划” (Model-based Planning)。&lt;/p&gt;
&lt;h3&gt;核心工具: 贝尔曼方程回顾&lt;/h3&gt;
&lt;p&gt;DP 算法的基础是价值函数必须满足的贝尔曼方程。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;贝尔曼期望方程 (Bellman Expectation Equation for $v_\pi$)&lt;/strong&gt;: 描述了给定策略 $\pi$ 下的状态价值函数 $v_\pi$ 与其后继状态价值的关系。
$$
v_\pi(s) = \sum_{a} \pi(a \mid s) \sum_{s&apos;,r}p(s&apos;,r \mid s,a) \left[ r + \gamma v_\pi(s&apos;) \right]
$$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;贝尔曼最优方程 (Bellman Optimal Equation for $v^*$)&lt;/strong&gt;: 描述了最优价值函数 $v^&lt;em&gt;(s)$ 与其后继状态价值的关系。
$$
v^&lt;/em&gt;(s) = \max_{a} \sum_{s&apos;,r}p(s&apos;,r \mid s,a) \left[ r + \gamma v^&lt;em&gt;(s&apos;) \right]
$$
类似地，对于最优动作价值函数 $q_&lt;/em&gt;(s, a)$:
$$
q_&lt;em&gt;(s, a) = \sum_{s&apos;,r}p(s&apos;,r \mid s,a) \left[ r + \gamma \max_{a&apos;} q^&lt;/em&gt;(s&apos;,a&apos;) \right]
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;策略评估 (预测问题)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;: 计算给定策略 $\pi$ 的状态价值函数 $v_\pi$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方法: 迭代策略评估 (Iterative Policy Evaluation)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;该方法通过迭代式地应用贝尔曼期望方程来逼近 $v_\pi$。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;初始化&lt;/strong&gt;: 从一个任意的初始价值函数估计 $v_0$ 开始 (通常是全零)。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;迭代更新&lt;/strong&gt;: 在第 $k+1$ 次迭代中，对所有状态 $s \in S$，使用第 $k$ 轮的价值 $v_k$ 来计算新的价值估计 $v_{k+1}(s)$:&lt;/p&gt;
&lt;p&gt;$$
v_{k+1}(s) ← \sum_{a} \pi(a \mid s) \sum_{s&apos;,r}p(s&apos;,r \mid s,a) \left[ r + \gamma v_k(s&apos;) \right]
$$&lt;/p&gt;
&lt;p&gt;或使用模型定义的期望奖励 $\mathcal{R}^a_s=\sum_{s&apos;,r}p(s&apos;,r \mid s,a)r$ 和状态转移概率 $\mathcal{P}^a_{ss&apos;}=\sum_{r}p(s&apos;,r \mid s,a)$:
$$
v_{k+1}(s) ← \sum_{a \in \mathcal{A}} \pi(a \mid s) \left( \mathcal{R}^a_s + \gamma \sum_{s&apos; \in S} \mathcal{P}^a_{ss&apos;} v_k(s&apos;) \right)
$$&lt;/p&gt;
&lt;p&gt;这种对所有状态同时基于旧值进行更新的方式称为&lt;strong&gt;同步备份 (Synchronous Backup)&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;收敛性&lt;/strong&gt;: 由于贝尔曼期望算子是一个 &lt;strong&gt;压缩映射 (Contractive Mapping)&lt;/strong&gt; (在折扣因子 $\gamma &amp;#x3C; 1$ 时)，价值函数序列 $v_0, v_1, v_2, \ldots$ 会保证收敛到真实的 $v_\pi$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;算法: 迭代策略评估&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;输入: MDP (S, A, P, R, γ), 策略 π, 阈值 θ &gt; 0
初始化 V(s) = 0 对于所有 s ∈ S

循环:
    Δ = 0   // 初始化本轮最大价值变化量
    对于每个状态 s ∈ S:
        v = V(s)  // 存储旧价值
        // 应用贝尔曼期望备份更新 V(s)
        V(s) = Σ[a] π(a|s) * Σ[s&apos;,r] p(s&apos;,r|s,a) * (r + γ * V(s&apos;))
        Δ = max(Δ, |v - V(s)|)  // 更新最大变化量
    如果 Δ &amp;#x3C; θ:
        终止循环 (收敛)

输出 V ≈ v_π
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;寻找最优策略 (控制问题)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;: 找到最优策略 $\pi^&lt;em&gt;$ 和相应的最优价值函数 $v^&lt;/em&gt;$ (或 $q^*$)。&lt;/p&gt;
&lt;p&gt;控制问题通常基于一个重要的思想: &lt;strong&gt;广义策略迭代 (Generalized Policy Iteration, GPI)&lt;/strong&gt;。GPI 指的是&lt;strong&gt;策略评估 (Policy Evaluation)&lt;/strong&gt; 和 &lt;strong&gt;策略改进 (Policy Improvement)&lt;/strong&gt; 两个过程相互作用、共同驱动策略和价值函数趋向最优的通用模式。几乎所有 RL 算法都可以看作是 GPI 的某种实现。&lt;/p&gt;
&lt;p&gt;DP 中实现 GPI 的两种主要算法是策略迭代和价值迭代。&lt;/p&gt;
&lt;h3&gt;策略迭代&lt;/h3&gt;
&lt;p&gt;策略迭代通过显式地交替进行完整的策略评估和策略改进步骤来寻找最优策略。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心流程&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;初始化&lt;/strong&gt;: 从一个任意 (通常是随机的) 策略 $\pi_0$ 和相应的 (可能不准确的) 价值函数 $v_0$ 开始。&lt;/li&gt;
&lt;li&gt;重复以下两个步骤直至策略稳定:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;(E) 策略评估 (Policy Evaluation)&lt;/strong&gt; 使用当前策略 $\pi_k$，通过 &lt;strong&gt;迭代策略评估&lt;/strong&gt; (见第2部分--策略评估) 计算其精确的价值函数 $v_{\pi_k}$。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;(I) 策略改进 (Policy Improvement)&lt;/strong&gt; 基于计算得到的 $v_{\pi_k}$，生成一个新的、改进的策略 $\pi_{k+1}$。对每个状态 $s$，选择能够最大化基于 $v_{\pi_k}$ 的一步期望回报的动作 (即对动作价值函数 $q_{\pi_k}(s, a)$ 进行贪心选择):&lt;/p&gt;
&lt;p&gt;$$
\pi_{k+1}(s) ← \argmax_{a \in \mathcal{A}} q_{\pi_k}(s, a) = \argmax_{a \in \mathcal{A}} \left{ \sum_{s&apos;,r}p(s&apos;,r \mid s,a) [ r + \gamma v_{\pi_k}(s&apos;) ] \right}
$$&lt;/p&gt;
&lt;p&gt;即:&lt;/p&gt;
&lt;p&gt;$$
\pi_{k+1}(s) = \argmax_{a \in \mathcal{A}} \left{ \mathcal{R}^a_s + \gamma \sum_{s&apos; \in S} \mathcal{P}^a_{ss&apos;} v_{\pi_k}(s&apos;) \right}
$$&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;策略改进定理 (Policy Improvement Theorem)&lt;/strong&gt;: 该定理保证，通过对 $v_\pi$ 贪心选择动作得到的新策略 $\pi&apos;$，其价值函数 $v_\pi&apos;$ 对于所有状态 $s$ 都满足 $v_\pi&apos;(s) \geq v_\pi(s)$。如果 $v_\pi&apos;= v_\pi$，则 $v_\pi&apos;$ 必定等于 $v_*$，且 $\pi$ 是最优策略之一。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;收敛性&lt;/strong&gt;: 由于状态和动作空间有限时，策略的数量也是有限的，且每次改进要么严格提升价值，要么保持不变（此时已达到最优），因此策略迭代保证在有限次迭代内收敛到最优策略 $\pi^&lt;em&gt;$ 和最优价值函数 $v^&lt;/em&gt;$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;算法: 策略迭代&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. 初始化：
   对于所有 s ∈ S，任意初始化 V(s) ∈ R
   对于所有 s ∈ S，任意初始化 π(s) ∈ A(s)      # 确定性策略
   终止状态的 V(s) = 0

2. 循环 (策略迭代主循环):

    // ===== (E) 策略评估（确定性策略版本）=====
    循环:
        Δ = 0
        对于每个状态 s ∈ S:
            v = V(s)
            # 确定性策略：直接取 π(s) 对应的转移
            V(s) = Σ_{s&apos;,r} p(s&apos;,r | s, π(s)) * [r + γ * V(s&apos;)]
            Δ = max(Δ, |v - V(s)|)
        如果 Δ &amp;#x3C; θ:
            终止内层循环

    // ===== (I) 策略改进 =====
    policy_stable = true
    对于每个状态 s ∈ S:
        old_action = π(s)
        
        # 贪心：最大化期望回报
        π(s) = argmax_a Σ_{s&apos;,r} p(s&apos;,r | s, a) * [r + γ * V(s&apos;)]
        
        如果 old_action ≠ π(s):
            policy_stable = false

    如果 policy_stable:
        终止外层循环，返回 V ≈ v_* 和 π ≈ π_*
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;价值迭代&lt;/h3&gt;
&lt;p&gt;价值迭代是另一种寻找最优策略的 DP 算法。它不显式地进行完整的策略评估，而是将一步策略评估和策略改进结合，直接迭代贝尔曼最优方程来逼近最优价值函数 $v^*$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心思想&lt;/strong&gt;: 策略迭代中的策略评估步骤可能需要很多次迭代才能收敛。价值迭代通过在每次迭代中直接应用贝尔曼最优方程的备份操作，来更快速地逼近 $v^*$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;更新规则&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;初始化&lt;/strong&gt;: 从一个任意的初始价值函数估计 $v_0$ 开始 (通常为全零)。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;迭代更新&lt;/strong&gt;: 在第 $k+1$ 次迭代中，对所有状态 $s \in \mathcal{S}$，使用第 $k$ 轮的价值 $v_k$ 来计算新的价值估计 $v_{k+1}(s)$，直接结合了最大操作 (隐式的策略改进):
$$
v_{k+1}(s) ← \max_{a \in \mathcal{A}} \left{ \sum_{s&apos;,r}p(s&apos;,r \mid s,a) [ r + \gamma v_k(s&apos;) ] \right}
$$&lt;/p&gt;
&lt;p&gt;或使用 $\mathcal{R}$ 和 $\mathcal{P}$:
$$
v_{k+1}(s) ← \max_{a \in \mathcal{A}} \left{ \mathcal{R}^a_s + \gamma \sum_{s&apos; \in S} \mathcal{P}^a_{ss&apos;} v_k(s&apos;) \right}
$$&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;收敛性&lt;/strong&gt;: 由于贝尔曼最优算子也是一个&lt;strong&gt;压缩映射&lt;/strong&gt;，价值函数序列 $v_0, v_1, v_2, \ldots$ 会保证收敛到最优价值函数 $v^*$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;与策略迭代的区别&lt;/strong&gt;: 价值迭代的中间价值函数 $v_k$ 不一定对应任何一个固定策略的价值函数 (除非到最后收敛)。它直接朝着 $v^*$ 逼近。策略迭代则是在完整的 $v_\pi$ 和 $\pi$ 之间切换。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;算法: 价值迭代&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;输入: MDP (S, A, P, R, γ), 阈值 θ &gt; 0
初始化 V(s) = 0 对于所有 s ∈ S

// ===== 价值迭代：直接优化贝尔曼最优方程 =====
循环:
    Δ = 0
    对于每个状态 s ∈ S:
        v = V(s)
        // 原位更新（异步风格，通常收敛更快）
        V(s) = max[a] Σ[s&apos;,r] p(s&apos;,r|s,a) * (r + γ * V(s&apos;))
        Δ = max(Δ, |v - V(s)|)
    如果 Δ &amp;#x3C; θ:
        终止循环  // V ≈ v_*

// 从收敛的 V 中提取确定性最优策略 π_*
初始化 π(s) 任意地 // 或者直接在下一步中赋值
对于 每个状态 s ∈ S:
  // 根据最优价值函数 V 选择最优动作
  π(s) = argmax[a] Σ[s&apos;,r] p(s&apos;,r|s,a) * (r + γ * V(s&apos;))

输出 π
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;DP 算法总结与比较&lt;/h2&gt;
&lt;p&gt;| 解决的问题类型 | 基于的贝尔曼方程 | 主要 DP 算法 |
|:--|:--|:--|
| 预测 (评估策略) | 贝尔曼期望方程 | 迭代策略评估 |
| 控制 (寻找最优) | 贝尔曼期望 + 贪心改进 | 策略迭代 (PI) |
| 控制 (寻找最优) | 贝尔曼最优方程 | 价值迭代 (VI) |&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;所有这些基本的 DP 算法都依赖于状态价值函数 $v(s)$ (或动作价值函数 $q(s, a)$) 的迭代更新。&lt;/li&gt;
&lt;li&gt;每次同步迭代 (遍历所有状态) 的计算复杂度大致为 $O(|\mathcal{S}|^2|\mathcal{A}|)$ (对于基于 $v$ 的更新)。如果状态转移是稀疏的，可能会更低。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;异步动态规划&lt;/h2&gt;
&lt;p&gt;上述的 &lt;strong&gt;同步 DP&lt;/strong&gt; 算法在每次迭代中都需要对整个状态集进行一次完整的扫描和更新。当状态空间很大时，这会非常耗时。&lt;strong&gt;异步 DP&lt;/strong&gt; 放宽了这一要求，允许更灵活的更新方式。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;核心思想&lt;/strong&gt;: 不进行全局同步扫描，而是以任意顺序、选择性地备份状态的价值。更新一个状态的价值时，使用其他状态的最新可用值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;减少计算量&lt;/strong&gt;: 可以避免对价值已经收敛或变化不大的状态进行计算。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;聚焦计算&lt;/strong&gt;: 可以优先更新那些与目标相关、或者贝尔曼误差较大的状态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可能更快收敛&lt;/strong&gt;: 有时通过优先更新关键状态，能够更快地传播价值信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;收敛性&lt;/strong&gt;: 只要保证所有状态最终都会被持续地 (无限次地) 选中进行更新，异步 DP 仍然能够收敛到正确的价值函数 ($v_\pi$ 或 $v_*$)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;常见变种&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;原位 DP (In-place DP)&lt;/strong&gt;: 只维护一份价值函数数组 $V(s)$，更新时立即写入，后续状态的更新会直接使用这个新值。更新顺序变得重要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优先级扫描 (Prioritized Sweeping)&lt;/strong&gt;: 维护一个优先级队列，根据状态的 &lt;strong&gt;贝尔曼误差&lt;/strong&gt; (当前价值与备份后价值的差) 的大小来决定更新哪个状态。优先更新误差较大的状态，并将更新的影响传播给其前驱状态 (那些可能转移到当前状态的状态)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实时 DP (Real-time DP)&lt;/strong&gt;: 只更新智能体在与环境 (或模拟环境) 交互过程中实际访问到的状态 $S_t$。非常适用于状态空间巨大，但智能体实际能到达或关心的状态子集有限的情况。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;DP 的局限性与展望&lt;/h2&gt;
&lt;p&gt;尽管 DP 是理解 RL 价值函数和最优策略的基础，但它有两大主要局限性:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;维度诅咒 (Curse of Dimensionality)&lt;/strong&gt;: DP 算法的计算和存储需求随着状态数量 $|\mathcal{S}|$ (有时还有动作数量 $|\mathcal{A}|$) 的增长而急剧增加 (通常是多项式级别，如 $O(|\mathcal{S}|^2|\mathcal{A}|)$)。对于状态空间非常庞大的现实问题 (如围棋、机器人控制)，DP 变得不可行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需要完美的环境模型 (Requires a Perfect Environment Model)&lt;/strong&gt;: DP 假设状态转移概率 $\mathcal{P}$ 和奖励函数 $\mathcal{R}$ 是完全已知的。然而，在许多实际应用中，我们无法事先获得精确的环境模型。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;展望: 超越 DP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;正是由于 DP 的这些局限性，特别是对模型的需求和计算复杂性问题，促使了 &lt;strong&gt;无模型 (Model-free)&lt;/strong&gt; 强化方法的发展，例如 &lt;strong&gt;蒙特卡洛 (Monte Carlo)&lt;/strong&gt; 和 &lt;strong&gt;时序差分 (Temporal Difference, TD)&lt;/strong&gt; 学习。此外，为了解决维度诅咒问题，&lt;strong&gt;函数逼近 (Funcition Approximation)&lt;/strong&gt; (如使用神经网络) 被引入来近似价值函数或策略，而不是使用表格存储，这引出了 &lt;strong&gt;深度强化学习 (Deep Reinforcement Learning)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;近似动态规划 (Approximate Dynamic Programming)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;即使在有模型的情况下，如果状态空间过大，也可以使用函数逼近 (例如 $\hat{v}(s, w)$ 或 $\hat{q}(s, a, w)$，其中 $w$ 是参数) 来替代表格存储价值。DP 的备份操作可以用来生成训练样本:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选择一个状态 $s$ (或一批状态)。&lt;/li&gt;
&lt;li&gt;使用当前的近似价值 $\hat{v}(s&apos;, w_k)$ 和贝尔曼 (最优或期望) 备份计算一个目标价值 $\tilde{v}_k(s)$。&lt;/li&gt;
&lt;li&gt;将 $(s, \tilde{v}&lt;em&gt;k(s))$ 作为监督学习的样本，更新参数 $w$ 以最小化预测误差，得到 $w&lt;/em&gt;{k+1}$ 和新的近似函数 $\hat{v}(s, w_{k+1})$。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这种方法结合了 DP 的思想和函数逼近的能力，有时也被称为 &lt;strong&gt;拟合价值迭代 (Fitted Value Iteration)&lt;/strong&gt; 或相关方法。&lt;/p&gt;
&lt;h2&gt;小结 (Summary)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;动态规划提供了一套理论上保证找到最优策略 (在已知模型下) 的算法基础。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;策略评估&lt;/strong&gt;用于计算给定策略的价值 (预测问题)，基于贝尔曼期望方程。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;策略迭代&lt;/strong&gt;和&lt;strong&gt;价值迭代&lt;/strong&gt;用于寻找最优策略 (控制问题)，分别基于贝尔曼期望方程+贪心改进 和 贝尔曼最优方程。&lt;/li&gt;
&lt;li&gt;**广义策略迭代 (GPI)**是评估和改进相互作用以趋向最优的核心思想。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;异步 DP&lt;/strong&gt;提高了 DP 在实践中的效率，尤其适用于大规模问题。&lt;/li&gt;
&lt;li&gt;DP 的主要缺点是&lt;strong&gt;对维度诅咒敏感&lt;/strong&gt;和&lt;strong&gt;需要完美的环境模型&lt;/strong&gt;，这激发了现代强化学习中无模型方法和函数逼近技术的发展。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;本文参考如下:&lt;/p&gt;
&lt;p&gt;[1] &lt;a href=&quot;https://axi404.top/blog/rl-note-4&quot;&gt;Axi&apos;s Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[2] &lt;a href=&quot;https://github.com/Lou-uo/Reinforcement-Learning/blob/main/Basic-knowledge-literacy/DP-CliffWalking.py&quot;&gt;Lou-uo&apos;s Code（Cliff Walking Problem）&lt;/a&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/RL-4.Du7xQRSF.webp"/><enclosure url="/_astro/RL-4.Du7xQRSF.webp"/></item><item><title>Paper Reading: Agent Memory 2</title><link>https://atpoint.top/blog/paper-reading/agent-memory-2</link><guid isPermaLink="true">https://atpoint.top/blog/paper-reading/agent-memory-2</guid><description>整理 Agent Memory 领域关于个性化记忆的工作</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;Generative Agents&lt;/h2&gt;
&lt;h2&gt;MemoryBank&lt;/h2&gt;
&lt;h2&gt;Me-Agent&lt;/h2&gt;
&lt;h2&gt;GUI Agent&lt;/h2&gt;
&lt;h2&gt;Mem-PAL&lt;/h2&gt;
&lt;h2&gt;Mem0&lt;/h2&gt;
&lt;h2&gt;PersonaMem-v2&lt;/h2&gt;
&lt;h2&gt;A-MEM&lt;/h2&gt;
&lt;h2&gt;MemoryArena&lt;/h2&gt;</content:encoded><h:img src="/_astro/Agent-Memory-2.DqwLo3N5.webp"/><enclosure url="/_astro/Agent-Memory-2.DqwLo3N5.webp"/></item><item><title>RL学习笔记（3）: 马尔可夫决策过程</title><link>https://atpoint.top/blog/rl-notes/3</link><guid isPermaLink="true">https://atpoint.top/blog/rl-notes/3</guid><description>马尔可夫决策过程（MDP）</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;@/components/user&apos;
/* - note - 蓝色信息提示&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tip - 紫色技巧提示&lt;/li&gt;
&lt;li&gt;caution - 黄色警告提示&lt;/li&gt;
&lt;li&gt;danger - 红色危险提示 */&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;引言&lt;/h2&gt;
&lt;p&gt;本文介绍马尔可夫决策过程 (Markov Decision Process, MDP)，它是强化学习中用于建模完全可观测环境下的序贯决策问题的标准框架。我们将从基础的马尔可夫性质开始，逐步构建马尔可夫过程 (MP)、马尔可夫奖励过程 (MRP)，最终引出马尔可夫决策过程 (MDP) 及其核心概念，如策略、价值函数和贝尔曼方程，最后再扩展到核心求解与优化知识。&lt;/p&gt;
&lt;h2&gt;马尔可夫过程 (Markov Processes)&lt;/h2&gt;
&lt;h3&gt;随机过程 (Stochastic Process)&lt;/h3&gt;
&lt;p&gt;在随机过程中，随机现象在某时刻 $t$ 的取值是一个向量随机变量，用 $S_t$ 表示，所有可能的状态组成集合 $S$。在某时刻 $t$ 的状态 $S_t$ 通常取决于 $t$ 时刻之前的状态。我们将已知历史信息 $(S_1, \ldots, S_t)$ 时下一个时刻状态为 $S_{t+1}$ 的概率表示成 $P(S_{t+1}|S_1, \ldots, S_t)$。&lt;/p&gt;
&lt;h3&gt;马尔可夫性质 (Markov Property)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;: 当前状态 $S_t$ 包含了预测未来所需的所有历史信息。即下一状态 $S_{t+1}$ 的概率分布仅依赖于当前状态 $S_t$。$\mathbb{P}(S_{t+1}|S_t) = P(S_{t+1}|S_1, \ldots, S_t)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;意义&lt;/strong&gt;: 当前状态是未来的“充分统计量”，历史信息可被丢弃。环境状态 $S^e$ 通常假定满足此性质。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;马尔可夫过程 (Markov Process, MP) / 马尔可夫链 (Markov Chain)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;: 一个满足马尔可夫性质的随机状态序列，是描述无外部控制（动作）和奖励的系统动态的模型。用元组 $&amp;#x3C; S, P &gt;$ 描述一个马尔可夫过程。
&lt;ul&gt;
&lt;li&gt;$S$ 是有限数量的状态集合。&lt;/li&gt;
&lt;li&gt;$P$ 是状态转移概率矩阵，$P_{ss&apos;} = \mathbb{P}(S_{t+1} = s&apos;|S_t = s)$。
$$
P = \begin{bmatrix}
P(s_1 \mid s_1) &amp;#x26; \cdots &amp;#x26; P(s_n \mid s_1) \
\vdots &amp;#x26; \ddots &amp;#x26; \vdots \
P(s_1 \mid s_n) &amp;#x26; \cdots &amp;#x26; P(s_n \mid s_n)
\end{bmatrix}
$$
矩阵 $P$ 中第 $i$ 行第 $j$ 列元素 $P(s_j|s_i)=P(S_{t+1}=s_j|S_t=s_i)$ 表示从状态 $s_i$ 转移到状态 $s_j$ 的概率，我们称 $P(s&apos;|s)$ 为状态转移函数。从某个状态出发，到达其他状态的概率和必须为 1，即状态转移矩阵 $P$ 的每一行的和为 1。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;马尔可夫奖励过程 (Markov Reward Process, MRP)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;: 在 MP 基础上增加了奖励和折扣因子。由元组 $&amp;#x3C; S, P, R, \gamma &gt;$ 定义:
&lt;ul&gt;
&lt;li&gt;$S, P$: 同上。&lt;/li&gt;
&lt;li&gt;$R$: 奖励函数。$R_s = \mathbb{E}[R_{t+1}|S_t=s]$ (离开状态 $s$ 的期望立即奖励)。&lt;/li&gt;
&lt;li&gt;$\gamma$: 折扣因子。$\gamma \in [0, 1]$，用于平衡当前奖励和未来奖励。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;回报 (Return)&lt;/strong&gt;: 从 $t$ 时刻开始的折扣累计奖励。$G_t = \sum_{k=0}^\infty \gamma^k R_{t+k+1}=R_{t+1}+\gamma G_{t+1}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态价值函数 (State-Value Function)&lt;/strong&gt;: 在 MRP 中，从状态 $s$ 开始的期望回报。$v(s):=\mathbb{E}[G_t|S_t=s]$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MRP 的贝尔曼方程 (Bellman Equation for MRP)&lt;/strong&gt;: 描述了状态价值与其后继状态价值的关系。$v(s)=R(s)+\gamma \sum_{s&apos;\in S} P_{ss&apos;}v(s&apos;)$。矩阵形式: $v=R+\gamma P v$，可直接求解 $v=(I-\gamma P)^{-1} R$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;马尔可夫决策过程 (Markov Decision Process, MDP)&lt;/h2&gt;
&lt;p&gt;MDP 在 MRP 基础上引入了动作和策略，用于形式化完全可观测的 RL 问题。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;: 元组 $&amp;#x3C; S, P, R, \gamma, A, \pi &gt;$
&lt;ul&gt;
&lt;li&gt;$S$: 有限状态集合。&lt;/li&gt;
&lt;li&gt;$A$: 有限动作集 (可能依赖于状态 $A(s)$)。&lt;/li&gt;
&lt;li&gt;$P$: 状态转移概率矩阵，$P_{ss&apos;}^a = \mathbb{P}(S_{t+1} = s&apos;|S_t = s, A_{t} = a)$。&lt;/li&gt;
&lt;li&gt;$R$: 奖励函数，$R^a_s = \mathbb{E}[R_{t+1}|S_t=s, A_{t}=a]$。&lt;/li&gt;
&lt;li&gt;$\gamma$: 折扣因子。&lt;/li&gt;
&lt;li&gt;$\pi$: 策略函数，从状态到动作的映射。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;核心假设&lt;/strong&gt;: 环境完全可预测 ($O_t = S^e_t$) 且状态满足马尔可夫性质。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;与相关模型的关系&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MAB&lt;/strong&gt;: 可视为单状态 MDP。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;POMDP (部分可观测 MDP)&lt;/strong&gt;: 当 $O_t \neq S^e_t$ 时使用。需要维护信念状态 (Belief State) 并在此空间上求解。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;策略 (Policy) $\pi$&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;: 智能体在状体 $s$ 选择动作 $a$ 的规则，通常是概率分布 $\pi(a|s)=\mathbb{P}(A_{t}=a|S_t=s)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特性&lt;/strong&gt;: 通常假定是稳态的 (stationary) 和马尔可夫的 (Markovian)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;固定策略下的 MDP&lt;/strong&gt;: 给定策略 $\pi$，MDP 退化为 MRP $&amp;#x3C; S, P^\pi, R^\pi, \gamma &gt;$。
&lt;ul&gt;
&lt;li&gt;$P^\pi_{ss&apos;} = \sum_{a} \pi(a|s) P_{ss&apos;}^a$ (状态转移概率矩阵)。&lt;/li&gt;
&lt;li&gt;$R^\pi_s = \sum_{a} \pi(a|s) R^a_s$ (期望奖励)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;价值函数 (Value Function)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;状态价值函数 (State-Value Function)&lt;/strong&gt;: 在状态 $s$ 开始，遵循策略 $\pi$ 的期望回报。$v_\pi(s):=\mathbb{E}_\pi[G_t|S_t=s]$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作价值函数 (Action-Value Function)&lt;/strong&gt;: 在状态 $s$ 开始，执行动作 $a$，然后遵循策略 $\pi$ 的期望回报。$q_\pi(s,a):=\mathbb{E}&lt;em&gt;\pi[G_t|S_t=s, A&lt;/em&gt;{t}=a]$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;贝尔曼期望方程 (Bellman Expectation Equation)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;描述了给定策略 $\pi$ 下 $v_\pi$ 和 $q_\pi$ 满足的一致性条件 (线性方程)。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;$$
\begin{aligned}
v^{\pi}(s) &amp;#x26;= \sum_{a \in A} \pi(a \mid s) q_\pi(s, a) \
&amp;#x26;= \sum_{a \in A} \pi(a \mid s) \left( \mathcal{R}&lt;em&gt;s^a + \gamma \sum&lt;/em&gt;{s&apos; \in S} \mathcal{P}&lt;em&gt;{ss&apos;}^a v&lt;/em&gt;\pi(s&apos;) \right) \[6pt]&lt;/p&gt;
&lt;p&gt;q^{\pi}(s, a) &amp;#x26;= \mathcal{R}&lt;em&gt;s^a + \gamma \sum&lt;/em&gt;{s&apos; \in \mathcal{S}} \mathcal{P}&lt;em&gt;{ss&apos;}^a v&lt;/em&gt;\pi(s&apos;)  \
&amp;#x26;= \sum_{a \in A} \pi(a \mid s) \left( R_s^a + \gamma \sum_{s&apos; \in S} P_{ss&apos;}^a v_\pi(s&apos;) \right)
\end{aligned}
$$&lt;/p&gt;
&lt;h4&gt;蒙特卡洛方法 (Monte-Carlo methods)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;: 一种基于概率统计的数值计算方法。我们通常使用重复随机抽样，然后运用概率统计方法来从抽样结果中归纳出我们想求的目标的数值估计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应用&lt;/strong&gt;: 用蒙特卡洛方法来估计一个策略在一个马尔可夫决策过程中的状态价值函数。一个状态的价值是它的期望回报，那么一个很直观的想法就是用策略在 MDP 上采样很多条序列，计算从这个状态出发的回报再求其期望。$v^\pi(s)=\mathbb{E}&lt;em&gt;\pi[G_t|S_t=s] \approx \frac{1}{N} \sum&lt;/em&gt;{i=1}^N G_t^i$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;占用度量 (Occupancy Measure)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;状态访问分布 (State Visitation Distribution)&lt;/strong&gt;: $\nu^\pi(s) = (1 - \gamma) \sum_{t=0}^{\infty} \gamma^t P^\pi_t(s)$
&lt;ul&gt;
&lt;li&gt;$P^\pi_t(s)$: 表示采取策略 $\pi$ 使得智能体在 $t$ 时刻状态为 $s$ 的概率。&lt;/li&gt;
&lt;li&gt;$\nu_0(s)$: 智能体在最开始处于各个状态的概率分布。$\nu_0(s)=P_0^\pi(s)$。&lt;/li&gt;
&lt;li&gt;$1-\nu$: 用来使得概率加和为 1 的归一化因子。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;递推公式&lt;/strong&gt;: $\nu^\pi(s&apos;) = (1-\gamma)\nu_0(s&apos;) + \gamma \int!!!\int P(s&apos; \mid s,a)\pi(a \mid s)\nu^\pi(s) , ds , da$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;: 表示动作状态对 (s, a) 被访问到的概率。$\rho^\pi(s, a)=(1-\nu)\sum^\infty_{t=0} \gamma^t P^\pi_t(s)\pi(a|s)$。
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;与状态访问分布的关系&lt;/strong&gt;: $\rho^\pi(s, a) = \nu^\pi(s) \pi(a|s)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定理1&lt;/strong&gt;: 智能体分别以策略 $\pi_1$ 和 $\pi_2$ 与同一个 MDP 交互得到的占用度量 $\rho^\pi_1$ 和 $\rho^\pi_2$ 满足 $\rho^{\pi_1} = \rho^{\pi_2} \iff \pi_1 = \pi_2$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定理2&lt;/strong&gt;: 给定一合法占用度量 $\rho$，可生成该占用度量的唯一策略是 $\pi_\rho=\frac{\rho(s, a)}{\sum_{a&apos;}\rho(s, a&apos;)}$。“合法”占用度量是指存在一个策略使智能体与 MDP 交互产生的状态动作对被访问到的概率。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;最优性 (Optimality in MDPs)&lt;/h2&gt;
&lt;p&gt;RL 的目标是找到使期望回报最大化的最优策略。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;最优价值函数&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;最优状态价值函数&lt;/strong&gt;: 所有策略中可能达到的最大期望回报。$v_*(s) = \max_{\pi} v^\pi(s)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最优动作价值函数&lt;/strong&gt;: 执行动作 $a$ 后遵循最优策略能达到的最大期望回报。$q_*(s, a) = \max_{\pi} q^\pi(s, a)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;strong&gt;最优策略 $\pi_*$&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;: 能够达到最优价值函数的策略，即 $v_{\pi_&lt;em&gt;}(s) = v_&lt;/em&gt;(s)$ 对所有 $s$ 成立。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;存在性&lt;/strong&gt;: 至少存在一个最优策略，且总能找到确定性的最优策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从 $q_&lt;em&gt;$ 导出 $\pi_&lt;/em&gt;$&lt;/strong&gt;: 通过贪心选择: $\pi_&lt;em&gt;(a|s)=1 \iff a = \arg \max_{a&apos;\in \mathcal{A}} q_&lt;/em&gt;(s, a&apos;)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从 $v_&lt;em&gt;$ 导出 $\pi_&lt;/em&gt;$ (需要模型)&lt;/strong&gt;: 通过一步前向规划: $\pi_&lt;em&gt;(a|s)=1 \iff a = \arg \max_{a&apos;\in \mathcal{A}} \left( \mathcal{R}&lt;em&gt;s^a + \gamma \sum&lt;/em&gt;{s&apos;} \mathcal{P}&lt;em&gt;{ss&apos;}^a v&lt;/em&gt;&lt;/em&gt;(s&apos;) \right)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;strong&gt;贝尔曼最优方程 (Bellman Optimality Equation)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;描述了最优价值函数 $v_&lt;em&gt;$ 和 $q_&lt;/em&gt;$ 必须满足的一致性条件 (非线性方程)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$v_*(s)$ 的方程&lt;/strong&gt;: $v_&lt;em&gt;(s) = \max_{a \in \mathcal{A}} q_&lt;/em&gt;(s, a) = \max_{a \in \mathcal{A}} { \mathcal{R}&lt;em&gt;s^a + \gamma \sum&lt;/em&gt;{s&apos; \in \mathcal{S}} \mathcal{P}&lt;em&gt;{ss&apos;}^a v&lt;/em&gt;*(s&apos;) }$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$q_*(s, a)$ 的方程&lt;/strong&gt;: $q_&lt;em&gt;(s, a) = \mathcal{R}&lt;em&gt;s^a + \gamma \sum&lt;/em&gt;{s&apos; \in \mathcal{S}} \mathcal{P}&lt;em&gt;{ss&apos;}^a v&lt;/em&gt;&lt;/em&gt;(s&apos;) = \mathcal{R}&lt;em&gt;s^a + \gamma \sum&lt;/em&gt;{s&apos; \in \mathcal{S}} \mathcal{P}&lt;em&gt;{ss&apos;}^a q&lt;/em&gt;*(s&apos;, a&apos;)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特性&lt;/strong&gt;: 由于 $max$ 算子，方程是非线性的，通常无法直接求解。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;求解方法&lt;/strong&gt;: 需使用迭代算法，如价值迭代、策略迭代 (动态规划，需要模型) 或 Q学习、Sarsa (强化学习，无需模型)。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;本文参考如下:&lt;/p&gt;
&lt;p&gt;[1] &lt;a href=&quot;https://axi404.top/blog/rl-note-3&quot;&gt;Axi&apos;s Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[2] &lt;a href=&quot;https://hrl.boyuai.com/chapter/1/%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E5%86%B3%E7%AD%96%E8%BF%87%E7%A8%8B/&quot;&gt;动手学强化学习&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[3] &lt;a href=&quot;https://github.com/Lou-uo/Reinforcement-Learning/blob/main/Basic%20knowledge%20literacy/%E7%AC%AC3%E7%AB%A0%20%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E5%86%B3%E7%AD%96%E8%BF%87%E7%A8%8B.pdf&quot;&gt;Lou-uo&apos;s PDF&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[4] &lt;a href=&quot;https://github.com/Lou-uo/Reinforcement-Learning/blob/main/Basic%20knowledge%20literacy/%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E5%86%B3%E7%AD%96%E8%BF%87%E7%A8%8B_%E6%A8%A1%E6%8B%9F%E5%A5%96%E5%8A%B1%E8%BF%87%E7%A8%8B.py&quot;&gt;Lou-uo&apos;s Code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[5] &lt;a href=&quot;https://hana0721.top/blog/rl-note-3&quot;&gt;Hana&apos;s Blog&lt;/a&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/RL-3.CZ2K9yQd.webp"/><enclosure url="/_astro/RL-3.CZ2K9yQd.webp"/></item><item><title>RL学习笔记（2）: 多臂赌博机</title><link>https://atpoint.top/blog/rl-notes/2</link><guid isPermaLink="true">https://atpoint.top/blog/rl-notes/2</guid><description>多臂赌博机问题（ϵ-贪心、UCB、汤普森采样……）</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;@/components/user&apos;
/* - note - 蓝色信息提示&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tip - 紫色技巧提示&lt;/li&gt;
&lt;li&gt;caution - 黄色警告提示&lt;/li&gt;
&lt;li&gt;danger - 红色危险提示 */&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;引言&lt;/h2&gt;
&lt;p&gt;本文先讨论一种简化版的强化学习问题：多臂赌博机。与强化学习不同的是，多臂赌博机不存在&lt;strong&gt;状态信息&lt;/strong&gt;，只有&lt;strong&gt;动作和奖励&lt;/strong&gt;，聚焦于单步决策中的&lt;strong&gt;探索与利用&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;多臂赌博机 (Multi-Armed Bandit, MAB) 问题&lt;/h2&gt;
&lt;h3&gt;情景引入&lt;/h3&gt;
&lt;p&gt;有一个拥有 $K$ 根拉杆的老虎机，拉动每一根拉杆都对应一个关于奖励的概率分布 $R$ 。我们每次拉动其中一根拉杆，就可以从该拉杆对应的奖励概率分布中获得一个奖励 $r$ 。我们在各根拉杆的奖励概率分布未知的情况下，从头开始尝试，目标是在操作 $T$ 次拉杆后获得尽可能高的累积奖励。由于奖励的概率分布是未知的，因此我们需要在“探索拉杆的获奖概率”和“根据经验选择获奖最多的拉杆”中进行权衡。“采用怎样的操作策略才能使获得的累积奖励最高”便是多臂赌博机问题。&lt;/p&gt;
&lt;h3&gt;细节剖析&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;场景&lt;/strong&gt;: 存在 $K$ 个选项，选择每个臂 $a$ 会根据未知的概率分布 $P_a$ 产生一个奖励。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;过程&lt;/strong&gt;: 在 $T$ 个时间步内，智能体在每一步 $t$ 选择一个臂 $A_t$ ，获得奖励 $R_{t+1}$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;: 最大化 $T$ 步内的累积奖励 $\sum^T_{t=1}R_t$， 等价于尽快找到并持续利用具有最高奖励价值 $Q^*$ 的最优臂。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;挑战&lt;/strong&gt;: 智能体不知道 $Q(a)$ ，必须通过尝试来估计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特性&lt;/strong&gt;: 无状态，当前选择不影响未来的奖励分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;参数定义&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;元组 &amp;#x3C; $ A, R $ &gt; : 已有条件
&lt;ul&gt;
&lt;li&gt;$A$ : &lt;strong&gt;动作集合&lt;/strong&gt;，即 $K$ 个拉杆，${a_1, \ldots, a_K}$。&lt;/li&gt;
&lt;li&gt;$R$ : &lt;strong&gt;奖励概率分布&lt;/strong&gt;。对于每个动作 $a$，奖励 $r \sim P_a(r)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;期望&lt;/strong&gt;: $Q(a) = \mathbb{E}_{r \sim R(\cdot | a)}[r]$，每个动作 $a$ 的期望奖励。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最优期望奖励&lt;/strong&gt;: $Q^* = \max_{a \in A} Q(a)$，所有动作 $a$ 中的奖励期望的最大值。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;strong&gt;懊悔 (Regret)&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;定义: 拉动当前拉杆的动作 $a$ 与最优拉杆的期望奖励差&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;累积懊悔&lt;/strong&gt;: $L_T = \sum^T_{t=1} (Q^* - Q(a))$，操作 $T$ 次后累积的懊悔总量。&lt;/li&gt;
&lt;li&gt;目标: 设计算法使总懊悔 $L_T$ 随时间 $T$ &lt;strong&gt;次线性 (sublinear)&lt;/strong&gt; 增长 (即 $\lim_{T \to \infty} \frac{L_T}{T} = 0$)。这意味着随着时间推移，智能体几乎一定能找到最优臂。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;动作价值估计方法 (Action-Value Methods)&lt;/h2&gt;
&lt;p&gt;估计 $Q(a)$ 使解决 MAB 的基础。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;采样平均法 (Sample-Average Method)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;思想&lt;/strong&gt;: 使用动作 $a$ 历史上获得的所有奖励的平均值作为其价值估计 $Q_t(a)$。&lt;/p&gt;
&lt;p&gt;$Q_t(a) := \frac{\sum^{t-1}_{i=1} R_i}{t-1} (A_i = a)$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;收敛性&lt;/strong&gt;: 根据大数定律，若每个动作被无限次选择，$Q_t(a)$ 会收敛到 $Q(a)$ 。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;strong&gt;增量式期望更新 (Incremental Expect Update)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目的&lt;/strong&gt;: 高效计算，无需存储所有历史奖励。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更新规则&lt;/strong&gt;: 对于动作 $a$ 的第 $n$ 次选择获得的奖励 $R_n$: $Q_{n+1} = Q_n + \frac{1}{n}(R_n - Q_n)$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;通用形式&lt;/strong&gt;: $新估计值=旧估计值+步长×误差$，&lt;code&gt;NewEstimate &amp;#x3C;- OldEstimate + StepSize * [Target - OldEstimate]&lt;/code&gt;，其中&lt;code&gt;StepSize&lt;/code&gt;$\alpha_n = 1/n$。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;strong&gt;处理非平稳问题 (Non-stationary Problems)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;问题&lt;/strong&gt;: 当 $Q(a)$ 随时间变化时，采样平均法 (步长 $1/n$) 因给予所有历史奖励同等权重而表现不佳。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决&lt;/strong&gt;: 使用&lt;strong&gt;常数步长 (Constant Step Size)&lt;/strong&gt; $\alpha \in (0, 1): Q_{n+1} = Q_n + \alpha (R_{n+1} - Q_n)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;效果&lt;/strong&gt;: 实现指数近因加权平均，更重视近期奖励，能追踪变化的目标，但不会完全收敛。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;&lt;strong&gt;步长参数选择 (Step-Size Parameter)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;收敛条件 (平稳问题，随机逼近理论):&lt;/strong&gt; $\sum_{n=1}^\infty \alpha_n(a) = \infty$ 和 $\sum_{n=1}^\infty \alpha_n^2(a) &amp;#x3C; \infty$&lt;/li&gt;
&lt;li&gt;$\alpha_n = 1/n$ 满足条件，常数 $\alpha$ 不满足第二个条件。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;探索与利用策略&lt;/h2&gt;
&lt;p&gt;平衡尝试未知选项（探索）和选择当前最优选项（利用）是 MAB 的核心。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ϵ-贪心 (ϵ-Greedy)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;机制&lt;/strong&gt;: 以 $1-\epsilon$ 概率选择当前估计值 $Q_t(a)$ 最高的动作 (利用)，以 $\epsilon$ 概率从所有动作中随机选择一个 (探索)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优缺&lt;/strong&gt;: 简单，保持持续探索；但是探索是随机的，可能导致长期性能损失 (线性遗憾)。注：设置 $\epsilon = 1/t$ 能保证收敛于0。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;strong&gt;乐观初始值 (Optimistic Initial Values)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;机制&lt;/strong&gt;: 将所有 $Q_1(a)$ 初始化为一个很高的值，然后始终采取纯贪心策略 (选择 $A_t=\arg \max_a Q_t(a)$ ，使用采样平均法 (步长 $1/n$) 更新)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;效果&lt;/strong&gt;: 高初始值鼓励智能体尝试所有动作至少一次，实现早期系统性探索。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优缺&lt;/strong&gt;:  实现简单；但对初始值敏感，随机环境下可能过早锁定次优动作。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;strong&gt;置信度上界 (Upper Confidence Bound, UCB)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;思想&lt;/strong&gt;: “在不确定性面前保持乐观”。选择潜力大的动作，$潜力=高估计值 + 高不确定性$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机制&lt;/strong&gt;: $A_t := \arg \max_{a \in A} [Q_t(a) + c\sqrt{\frac{\ln t}{N_t(a)}}] $，其中 $Q_t(a)$ 是利用项，$c\sqrt{\frac{\ln t}{N_t(a)}}$ 是探索项 ($N_t(a)$ 为动作 $a$ 被选次数，$t$ 为总步数，$c$ 为控制探索的参数)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优缺&lt;/strong&gt;: 基于 Hoeffding 不等式，有较好的理论遗憾界 ($O(\log T)$) 和实践性能。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;算法流程&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;初始化 $Q$，并且将全部臂都拉取一次，获得更新&lt;/li&gt;
&lt;li&gt;每步 $t$，根据当前估计值 $Q_t(a)$ 和探索项 $c\sqrt{\frac{\ln t}{N_t(a)}}$ 选择 $A_t$。&lt;/li&gt;
&lt;li&gt;观测奖励 $R_{t+1}$，更新 $Q_t(a)$ 和 $N_t(a)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;&lt;strong&gt;汤普森采样 (Thompson Sampling / Posterior Sampling)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;思想&lt;/strong&gt;：贝叶斯方法。维护每个动作价值 $Q(a)$ 的后验概率分布 $P(Q(a) \mid \text{History})$。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;算法流程&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;每步 $t$，为每个动作 $a$ 从其后验分布中采样一个价值 $\tilde{q}_a$&lt;/li&gt;
&lt;li&gt;选择采样值最大的动作 $A_t = \arg\max_a \tilde{q}_a$&lt;/li&gt;
&lt;li&gt;观察奖励 $R_{t+1}$&lt;/li&gt;
&lt;li&gt;使用贝叶斯更新规则更新动作 $A_t$ 的后验分布&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;探索机制&lt;/strong&gt;：后验分布越宽（不确定性高），越有可能采样到高值而被选中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;贝叶斯更新与共轭先验&lt;/strong&gt;（以伯努利赌博机为例）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;奖励为 0/1。似然为伯努利分布&lt;/li&gt;
&lt;li&gt;使用 Beta 分布 $\text{Beta}(\alpha, \beta)$ 作为共轭先验&lt;/li&gt;
&lt;li&gt;更新规则：观察到 1 次成功（奖励=1）则 $\alpha \leftarrow \alpha + 1$，观察到 1 次失败（奖励=0）则 $\beta \leftarrow \beta + 1$。后验仍为 Beta 分布&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;优缺&lt;/strong&gt;：实现简单（尤其使用共轭先验时），经验性能通常非常好。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;与 Greedy 对比（伯努利场景）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;| 步骤 | BernGreedy (贪心) | BernThompson (汤普森采样) |
|:---|:---|:---|
| &lt;strong&gt;值计算/采样&lt;/strong&gt; | 计算期望值 $\theta_k = \alpha_k / (\alpha_k + \beta_k)$ | 从 $\text{Beta}(\alpha_k, \beta_k)$ 分布中采样 $\theta_k$ |
| &lt;strong&gt;动作选择&lt;/strong&gt; | 选择使 $\theta$ 最大的臂 $k$ | 选择使采样值 $\theta$ 最大的臂 $k$ |
| &lt;strong&gt;参数更新&lt;/strong&gt; | 根据奖励 $r_t$ 更新 $(\alpha_{a_t}, \beta_{a_t})$ | 根据奖励 $r_t$ 更新 $(\alpha_{a_t}, \beta_{a_t})$ |&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;（循环和应用/观察步骤相同）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;补充: 梯度赌博机算法 (Gradient Bandit Algorithms)&lt;/h2&gt;
&lt;p&gt;这类算法不估计动作价值，而是直接学习动作的偏好 (Preference) $H_t(a)$&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;动作选择 (Softmax Policy)&lt;/strong&gt;: $\pi_t(a) = P(A_t = a) = \frac{e^{H_t(a)}}{\sum^K_{b=1} e^{H_t(b)}}$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;学习规则 (Stochastic Gradient Ascent)&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;更新选中动作&lt;/strong&gt; $A_t$ 的偏好：$H_{t+1}(A_t) = H_t(A_t) + \alpha (R_t - \bar{R}_t)(1 - \pi_t(A_t))$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更新未选中动作&lt;/strong&gt; $a \neq A_t$ 的偏好：$H_{t+1}(a) = H_t(a) - \alpha (R_t - \bar{R}_t)\pi_t(a)$&lt;/li&gt;
&lt;li&gt;其中 $\alpha$ 是学习率，$\bar{R}_t$ 是&lt;strong&gt;奖励基线&lt;/strong&gt;（如历史平均奖励），用于减小方差。$(R_t - \bar{R}_t)$ 衡量当前奖励的好坏。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优缺&lt;/strong&gt;: 可处理非平稳环境; 对学习率和基线敏感。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;本文参考如下:&lt;/p&gt;
&lt;p&gt;[1] &lt;a href=&quot;https://axi404.top/blog/rl-note-2&quot;&gt;Axi&apos;s Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[2] &lt;a href=&quot;https://hana0721.top/blog/rl-note-2&quot;&gt;Hana&apos;s Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[3] &lt;a href=&quot;https://hrl.boyuai.com/chapter/1/%E5%A4%9A%E8%87%82%E8%80%81%E8%99%8E%E6%9C%BA&quot;&gt;动手学强化学习&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[4] &lt;a href=&quot;https://github.com/Lou-uo/Reinforcement-Learning/blob/main/Basic%20knowledge%20literacy/%E7%AC%AC2%E7%AB%A0%20%E5%A4%9A%E8%87%82%E8%80%81%E8%99%8E%E6%9C%BA.pdf&quot;&gt;Lou-uo&apos;s PDF&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[5] Lou-uo&apos;s Code: &lt;a href=&quot;https://github.com/Lou-uo/Reinforcement-Learning/blob/main/Basic%20knowledge%20literacy/%E5%A4%9A%E8%87%82%E8%80%81%E8%99%8E%E6%9C%BA_%CF%B5-%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95.py&quot;&gt;ϵ-贪心&lt;/a&gt;、&lt;a href=&quot;https://github.com/Lou-uo/Reinforcement-Learning/blob/main/Basic%20knowledge%20literacy/%E5%A4%9A%E8%87%82%E8%80%81%E8%99%8E%E6%9C%BA_%E4%B8%8A%E7%BD%AE%E4%BF%A1%E7%95%8C%E7%AE%97%E6%B3%95.py&quot;&gt;UCB&lt;/a&gt;、&lt;a href=&quot;https://github.com/Lou-uo/Reinforcement-Learning/blob/main/Basic%20knowledge%20literacy/%E5%A4%9A%E8%87%82%E8%80%81%E8%99%8E%E6%9C%BA_%E6%B1%A4%E6%99%AE%E6%A3%AE%E9%87%87%E6%A0%B7%E7%AE%97%E6%B3%95.py&quot;&gt;汤普森采样&lt;/a&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/RL-2.BXzeASDD.webp"/><enclosure url="/_astro/RL-2.BXzeASDD.webp"/></item><item><title>RL学习笔记（1）: 强化学习简介</title><link>https://atpoint.top/blog/rl-notes/1</link><guid isPermaLink="true">https://atpoint.top/blog/rl-notes/1</guid><description>强化学习简介</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside } from &apos;@/components/user&apos;
/* - note - 蓝色信息提示&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tip - 紫色技巧提示&lt;/li&gt;
&lt;li&gt;caution - 黄色警告提示&lt;/li&gt;
&lt;li&gt;danger - 红色危险提示 */&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;什么是强化学习？&lt;/h2&gt;
&lt;p&gt;假如你第一次玩一款游戏。
你不知道地图，不知道敌人会出现在哪里，也不知道怎样才能通关。&lt;/p&gt;
&lt;p&gt;于是你开始不断尝试：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;往左走，掉进陷阱；&lt;/li&gt;
&lt;li&gt;往右走，拿到奖励；&lt;/li&gt;
&lt;li&gt;某次操作虽然短期吃亏，却帮助你后面成功通关。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;经过大量“尝试—反馈—调整”之后，你逐渐学会了如何获得更高的分数。&lt;/p&gt;
&lt;p&gt;这个过程，其实就是强化学习（Reinforcement Learning, RL）的核心思想。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;强化学习是一种让 &lt;strong&gt;智能体（Agent）&lt;/strong&gt; 通过与 &lt;strong&gt;动态、开放的环境（Environment）&lt;/strong&gt; 不断交互，并根据 &lt;strong&gt;奖励（Reward）&lt;/strong&gt; 反馈，自主学习 &lt;strong&gt;策略（Policy）&lt;/strong&gt; 的方法。&lt;/p&gt;
&lt;p&gt;与传统机器学习不同，强化学习并没有“标准答案”直接告诉智能体应该怎么做。
智能体只能通过不断 &lt;strong&gt;试错（Trial-and-Error）&lt;/strong&gt; ，从成功和失败中总结经验，最终学会如何在复杂环境中做出更优决策。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;如果说：&lt;/p&gt;
&lt;p&gt;监督学习像“老师带着做题”；
那么强化学习更像“自己在游戏中摸索通关”。&lt;/p&gt;
&lt;p&gt;智能体需要自己探索：&lt;/p&gt;
&lt;p&gt;哪些行为是有效的；
哪些选择会导致失败；
如何在长期过程中获得最大的收益。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;强化学习最核心的目标并不是追求“当前最好的结果”，而是：&lt;/p&gt;
&lt;p&gt;在连续决策过程中，&lt;strong&gt;最大化长期累积奖励（Cumulative Reward）&lt;/strong&gt; 。&lt;/p&gt;
&lt;p&gt;这意味着，智能体有时需要放弃眼前的小收益，去换取未来更大的回报。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;围棋中主动弃子；&lt;/li&gt;
&lt;li&gt;游戏中绕路获取关键装备；&lt;/li&gt;
&lt;li&gt;自动驾驶中提前减速避险；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些行为虽然短期看似“吃亏”，但从长期来看却是更优的决策。&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;强化学习的基本框架：智能体与环境的交互&lt;/h2&gt;
&lt;p&gt;广泛地讲，强化学习是机器通过与环境交互来实现目标的一种计算方法。&lt;/p&gt;
&lt;h3&gt;交互过程 (The Loop)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;感知&lt;/strong&gt;：智能体在某种程度上感知环境的&lt;strong&gt;状态(State)&lt;/strong&gt; $S_t$，从而知道自己所处的现状。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;决策&lt;/strong&gt;：智能体根据当前的状态 $S_t$，计算出达到目标需要采取的&lt;strong&gt;动作(Action)&lt;/strong&gt; $A_t$。
&lt;ul&gt;
&lt;li&gt;环境根据 $S_t$ 和 $A_t$ 转换到新的状态 $S_{t+1}$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反馈&lt;/strong&gt;：环境根据智能体的决策，返回&lt;strong&gt;奖励（Reward）&lt;/strong&gt; $R_{t+1}$ 作为反馈。
&lt;ul&gt;
&lt;li&gt;智能体接收到新的状态 $S_{t+1}$ , 循环继续。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;序贯决策 (Sequential Decision Making)&lt;/h3&gt;
&lt;p&gt;智能体的动作有长远影响。现在的选择决定了未来的状态，进而限制了未来的选择。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;解决思路：需要引入 &lt;strong&gt;马尔可夫决策过程(Markov Decision Process, MDP)&lt;/strong&gt; 来数学化描述这个过程，并通过 &lt;strong&gt;动态规划(Dynamic Programming)&lt;/strong&gt; 或 &lt;strong&gt;时序差分(Temporal Difference, TD)&lt;/strong&gt; 算法来学习最优策略。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;经历 (Experience)与轨迹 (Trajectory)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;一次完整的交互（从开始到结束）称为一个 &lt;strong&gt;回合(Episode)&lt;/strong&gt; 或 &lt;strong&gt;轨迹(Trajectory)&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;交互产生序列数据：$(S_0, A_0, R_0, S_1, A_1, R_1, \ldots, S_{T-1}, A_{T-1}, R_{T-1}, S_T)$ 。RL算法利用这些序列进行学习。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;关联任务 vs 非关联任务&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;非关联任务 (Non-associative)&lt;/strong&gt;：无需区分状态，目标是找到全局最优的单个动作或追踪变化环境中的最优动作。典型例子是&lt;strong&gt;多臂老虎机 (multi-armed bandit)&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关联任务 (Associative)&lt;/strong&gt;：动作选择需与当前&lt;strong&gt;状态 (State)&lt;/strong&gt; 或&lt;strong&gt;情境 (Context)&lt;/strong&gt; 关联。智能体需学习从状态到最优动作的映射。&lt;strong&gt;上下文老虎机 (Contextual Bandit)&lt;/strong&gt; 是简单例子，而完整的 RL 问题（如导航）是典型的关联任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;强化学习的关键要素&lt;/h2&gt;
&lt;h3&gt;历史 (History)与状态 (State)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;历史 (History)&lt;/strong&gt;$H_t$: 从开始到时间t为止的所有&lt;strong&gt;观测 (Observation)&lt;/strong&gt;、动作、奖励序列: $H_t = (O_1, R_1, A_1, \ldots, A_{t-1}, O_t, R_t)$。包括了智能体进行$A_t$前的全部原始信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态 (State)&lt;/strong&gt;$S_t$: 是对历史的总结，包含决定未来所需的所有信息。状态是历史的一种函数 $S_t = f(H_t)$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;环境状态 (Environment State)&lt;/strong&gt;$S^e_t$: 环境内部决定下一状态 / 奖励的完整信息，但是不一定对智能体可见。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;智能体状态 (Agent State)&lt;/strong&gt;$S^a_t$: 智能体内部用于决策的信息，是历史的一种函数 $S^a_t = f(H_t)$。RL算法基于 $S^a_t$ 学习。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;环境的可观测性 (Observability)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;完全可观测环境 (Fully Observable Environment)&lt;/strong&gt;: 智能体可以观察到环境的所有状态信息$O_t=S^e_t$。当前的观测就包含所有决策需要的历史信息。
&lt;ul&gt;
&lt;li&gt;这类问题通常用 &lt;strong&gt;马尔可夫决策过程 (Markov Decision Process, MDP)&lt;/strong&gt; 建模。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;马尔可夫性质 (Markov Property)&lt;/strong&gt;: 未来只依赖当前状态，与历史路径无关，即 $P[S_{t+1} | S_t] = P[S_{t+1} | S_1, \ldots, S_t]$。&lt;/li&gt;
&lt;li&gt;环境状态 $S^e_t$ 通常满足马尔可夫性质。在完全可观测时，智能体状态 $S^a_t = S^e_t$ 也满足。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部分可观测环境 (Partially Observable Environment)&lt;/strong&gt;：智能体只能观察到环境的部分状态信息 ($O_t \neq S^e_t$)。当前观测不足以确定状态，历史信息变得重要。
&lt;ul&gt;
&lt;li&gt;这类问题用 &lt;strong&gt;部分可观测马尔可夫决策过程 (Partially Observable Markov Decision Process, POMDP)&lt;/strong&gt; 建模。&lt;/li&gt;
&lt;li&gt;处理办法: 智能体需要构建状态估计 $S^a_t$。常用方法包括使用历史 $H_t$、循环神经网络 (RNN) 或维护&lt;strong&gt;信念状态 (Belief State)&lt;/strong&gt; $b(s^e) = P(S^e_t = s^e | H_t)$ (即关于真实状态的概率分布)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;奖励信号 (Reward Signal) $R_t$&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;奖励 $R_t$ 是一个标量反馈信号，表明智能体在 t 时刻动作后的即时“好坏”程度。&lt;/li&gt;
&lt;li&gt;目的: 定义 RL 的目标。智能体旨在最大化累积奖励。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;奖励设计 (Reward Shaping)&lt;/strong&gt; 非常关键，直接引导学习方法。例如：
&lt;ul&gt;
&lt;li&gt;游戏胜利：高正奖励。&lt;/li&gt;
&lt;li&gt;游戏失败：高负奖励。&lt;/li&gt;
&lt;li&gt;触发特定事件（如吃金币）：小正奖励。&lt;/li&gt;
&lt;li&gt;无事发生：零奖励或小的负奖励（鼓励效率）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;回报 (Return) 与 折扣 (Discounting)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;回报 (Return)&lt;/strong&gt;$G_t$: 从时间 $t$ 开始的未来奖励累积。它衡量了当前状态或状态-动作对在长期来看的价值。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;分幕式任务 (Episodic Tasks)&lt;/strong&gt;: 有明确终止状态 $T$。$G_t := R_{t+1} + R_{t+2} + \ldots + R_T = \sum_{k=t+1}^T R_k$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;持续式任务 (Continuous Tasks)&lt;/strong&gt;: 无明确终止状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;折扣回报 (Discounted Return)&lt;/strong&gt;$G_t$ (或 $U_t$): 为了处理无限和以及权衡近期与远期奖励，引入&lt;strong&gt;折扣因子 (Discount Factor)&lt;/strong&gt; $γ \in [0, 1)$。$G_t := R_{t+1} + γ R_{t+2} + γ^2 R_{t+3} + \ldots = \sum_{k=0}^∞ γ^k R_k$ 此定义统一适用于分幕式 (令 $R_k = 0$ for $k &gt; T $) 和持续式任务。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;为什么需要折扣因子 $γ$？
&lt;ol&gt;
&lt;li&gt;数学便利：确保回报有界，利于算法收敛。&lt;/li&gt;
&lt;li&gt;模型不确定性：远期奖励预测难度大，折扣降低其影响。&lt;/li&gt;
&lt;li&gt;偏好即时奖励：符合直觉，现在的奖励通常更有价值。&lt;/li&gt;
&lt;li&gt;模拟终止概率：可视为每步有 $1 - γ$ 的概率终止。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;折扣因子的影响&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$γ \approx 0$: 智能体更关注近期奖励，远期奖励被折扣化。&lt;/li&gt;
&lt;li&gt;$γ \approx 1$: 智能体更关注远期奖励，近期奖励被折扣化。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;回报的递归关系&lt;/strong&gt;: 折扣回报满足重要的递归性质：$G_t = R_{t+1} + γ G_{t+1}$
&lt;strong&gt;回报的随机性&lt;/strong&gt;: 由于未来的动作和状态可能随机，未来的奖励也是随机的。因此，$G_t$ 是一个随机变量。算法通常使用实际观测到的回报值来估计其期望。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;环境模型 (Environment Model)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;模型描述环境行为，预测环境对动作的响应。包含：
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;状态转移概率 (State Transition Probability)&lt;/strong&gt; $p(s&apos;|s, a)$: 在状态 $s$ 下，执行动作 $a$ 后，环境状态转移为 $s&apos;$ 的概率。$p(s&apos;|s, a) = \mathbb{P}(S_{t+1} = s&apos; | S_t = s, A_t = a)$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;奖励函数 (Reward Function)&lt;/strong&gt; $r(s, a)$ 或 $R^a_t$: 在状态 $s$ 下，执行动作 $a$ 后，期望获得的立即奖励。$R^a_s = \mathbb{E}[R_{t+1} | S_t = s, A_t = a]$&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;引出两种主要方法类型：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;基于模型 (Model-Based)&lt;/strong&gt;: 尝试学习或利用环境模型。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无模型 (Model-Free)&lt;/strong&gt;: 不依赖显式模型，直接从经验中学习。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;随机性来源 (Randomness)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;RL 中存在多个随机源：
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;动作随机性 (Stochastic Action)&lt;/strong&gt;: 智能体的策略 $\pi(a|s)$输出概率分布，$A_t ∼ \pi(a|s)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态随机性 (Stochastic State)&lt;/strong&gt;: 环境状态本身可能随机，$S_{t+1} ∼ p(\cdot|S_t, A_t) $。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;奖励随机性&lt;/strong&gt;: 奖励 $R_{t+1}$ 也可能依赖于 $(S_t, A_t, S_{t+1})$ 并且是随机的。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;强化学习智能体的核心组成&lt;/h2&gt;
&lt;p&gt;一个典型的 RL 智能体通常包含以下一个或多个组件：&lt;/p&gt;
&lt;h3&gt;策略 (Policy) $\pi$&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;策略是智能体的“大脑”，定义了智能体在给定状态下如何选择动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;确定性策略 (Deterministic Policy)&lt;/strong&gt;: $a = \pi (s)$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;随机性策略 (Stochastic Policy)&lt;/strong&gt;: $\pi (a|s) = P(A_t = a | S_t = s)$，输出动作的概率分布。随机策略在探索和处理不确定性时有优势。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;: 找到最优策略 $\pi^*$，使得期望累计奖励最大化。&lt;/li&gt;
&lt;li&gt;策略的价值可以等价转换成奖励函数在策略的占用度量上的期望，即：&lt;/li&gt;
&lt;li&gt;$最优策略 = \argmax_{策略}\mathbb{E}_{(状态, 动作) ∼ 策略的占用度量} [奖励函数(状态, 动作)]$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;价值函数 (Value Function) $V^{π}(s), Q^{π}(s, a)$&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;价值函数用于评估状态或状态-动作对的“好坏”程度（长期价值），即遵循特定策略 $\pi$ 能获得的期望回报。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态价值函数 (State Value Function)&lt;/strong&gt; $V^{π}(s)$: 策略 $\pi$ 下的状态价值函数，衡量状态 $s$ 在长期来看的价值。$V^{π}(s) = \mathbb{E}[G_t | S_t = s]$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作价值函数 (Action Value Function)&lt;/strong&gt; $Q^{π}(s, a)$: 策略 $\pi$ 下的动作价值函数，衡量状态 $s$ 下执行动作 $a$ 的价值。$Q^{π}(s, a) = \mathbb{E}[G_t | S_t = s, A_t = a]$&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关系&lt;/strong&gt;: $V^{π}(s)$ 是 $Q^{π}(s, a)$ 在策略 $\pi$ 下的期望值：
&lt;ul&gt;
&lt;li&gt;离散动作：$V^{π}(s) = \sum_{a \in A} \pi(a|s) Q^{π}(s, a)$&lt;/li&gt;
&lt;li&gt;连续动作：$V^{π}(s) = \int_{a \in A} \pi(a|s) Q^{π}(s, a) da$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;价值函数帮助评估和改进策略。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;模型 (Model)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;模型是对环境动态的模拟。如果智能体拥有或学习了模型，就可以进行 规划 (Planning)。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;强化学习的关键挑战与权衡&lt;/h2&gt;
&lt;h3&gt;探索 (Exploration) vs 利用 (Exploitation)&lt;/h3&gt;
&lt;p&gt;RL 的核心困境: 是利用当前已知的最好选择，还是探索未知区域以发现更好的策略？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;利用&lt;/strong&gt;: 选择当前估计价值最高的动作，最大化短期收益。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;探索&lt;/strong&gt;: 尝试非最优或未充分尝试的动作，收集信息，可能发现长期更优的策略，但可能牺牲短期收益。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平衡&lt;/strong&gt;: 是关键。过度利用可能陷入局部最优，过度探索则效率低下。常用策略有 $ϵ$-greedy、UCB、乐观初始值等。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;预测 (Prediction) vs 控制 (Control)&lt;/h3&gt;
&lt;p&gt;RL 的两大任务类型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;预测 (Prediction) / 策略评估 (Policy Evaluation)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;问题: 给定策略 $\pi$，评估其价值。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制 (Control) / 策略优化 (Policy Optimization)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;问题: 找到最优策略 $\pi^*$。&lt;/li&gt;
&lt;li&gt;目标: 最大化长期回报，找到最优价值函数 $V^&lt;em&gt;(s)$, $Q^&lt;/em&gt;(s, a)$和最优策略 $\pi^*$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关系&lt;/strong&gt;: 控制问题通常通过迭代地进行预测和改进来解决，这个过程称为 广义策略迭代 (Generalized Policy Iteration, GPI)。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;学习 (Learning) vs 规划 (Planning)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;学习 (Learning)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;环境模型未知。&lt;/li&gt;
&lt;li&gt;通过与&lt;strong&gt;真实环境&lt;/strong&gt;交互，收集经验。&lt;/li&gt;
&lt;li&gt;直接从经验中改进策略或价值函数。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;规划 (Planning)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;环境模型已知或已学习。&lt;/li&gt;
&lt;li&gt;利用模型进行模拟计算（思考/推演），产生&lt;strong&gt;模拟经验&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;基于模拟经验改进策略或价值函数，无需与真实环境交互。&lt;/li&gt;
&lt;li&gt;例子：动态规划 (DP)、蒙特卡洛树搜索 (MCTS)。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结合&lt;/strong&gt;: 许多方法（如 Dyna-Q）结合两者，通过真实交互学习模型，再利用模型进行规划加速学习。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;强化学习方法分类&lt;/h2&gt;
&lt;p&gt;RL 算法课从不同维度分类:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;基于价值 (Value-Based)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;学习价值函数 $V(s)$ 或 $Q(s, a)$。&lt;/li&gt;
&lt;li&gt;策略隐式。&lt;/li&gt;
&lt;li&gt;代表: Q-Learning、SARSA、DQN。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基于策略 (Policy-Based)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;直接学习策略 $\pi (a|s)$。&lt;/li&gt;
&lt;li&gt;可处理连续动作空间，能学习随机策略。&lt;/li&gt;
&lt;li&gt;代表: REINFORCE, Policy Gradients。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;演员-评论家 (Actor-Critic)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;结合前两者。&lt;strong&gt;演员 (Actor)&lt;/strong&gt; 学策略，&lt;strong&gt;评论家 (Critic)&lt;/strong&gt; 学价值函数指导演员。&lt;/li&gt;
&lt;li&gt;代表: A2C、A3C、DDPG、SAC。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无模型 (Model-Free)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;不学习环境模型，直接从经验学习。&lt;/li&gt;
&lt;li&gt;样本效率通常较低。&lt;/li&gt;
&lt;li&gt;包括上述大部分方法。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基于模型 (Model-Based)&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;学习环境模型，并利用模型进行规划或生成模拟数据。&lt;/li&gt;
&lt;li&gt;样本效率通常较高，但受模型精度限制。&lt;/li&gt;
&lt;li&gt;代表：Dyna-Q, MCTS 相关方法。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;强化学习常用符号&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;$S$: 状态空间(State Space)&lt;/li&gt;
&lt;li&gt;$S_t, s$: 当前状态(State at time t, a specific state) - 大写为随机变量，小写为具体值&lt;/li&gt;
&lt;li&gt;$A$: 动作空间(Action Space)&lt;/li&gt;
&lt;li&gt;$A_t, a$: 当前动作 (Action at time t, a specific action) - 大写为随机变量，小写为具体值&lt;/li&gt;
&lt;li&gt;$R_t, r$: 奖励 (Reward at time t, a specific reward value) - 大写为随机变量，小写为具体值&lt;/li&gt;
&lt;li&gt;$\pi$: 策略(Policy)或模型(Model)&lt;/li&gt;
&lt;li&gt;$V^{π}(s)$: 策略 $\pi$ 下的动作价值函数 (Action-value function under policy $\pi$)&lt;/li&gt;
&lt;li&gt;$Q^{π}(s, a)$: 策略 $\pi$ 下的动作价值函数 (Action-value function under policy $\pi$)&lt;/li&gt;
&lt;li&gt;$G_t$: 回报 (Return, cumulative future reward from t) - 随机变量&lt;/li&gt;
&lt;li&gt;$γ$: 折扣因子 (Discount factor)&lt;/li&gt;
&lt;li&gt;$p(s&apos;|s, a)$: 状态转移概率 (State transition probability)&lt;/li&gt;
&lt;li&gt;$\mathbb{E}[\cdot]$: 期望 (Expectation)&lt;/li&gt;
&lt;li&gt;$H_t$: 历史 (History)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;本文参考如下：&lt;/p&gt;
&lt;p&gt;[1] &lt;a href=&quot;https://axi404.top/blog/rl-note-1&quot;&gt;Axi&apos;s Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[2] &lt;a href=&quot;https://hana0721.top/blog/rl-note-1&quot;&gt;Hana&apos;s Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[3] &lt;a href=&quot;https://hrl.boyuai.com/chapter/1/%E5%88%9D%E6%8E%A2%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0&quot;&gt;动手学强化学习&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[4] &lt;a href=&quot;https://github.com/Lou-uo/Reinforcement-Learning/blob/main/Basic%20knowledge%20literacy/%E7%AC%AC1%E7%AB%A0%20%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0.pdf&quot;&gt;Lou-uo&apos;s repo&lt;/a&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/RL-1.5tUG-hxK.webp"/><enclosure url="/_astro/RL-1.5tUG-hxK.webp"/></item><item><title>Paper Reading: Agent Memory 1</title><link>https://atpoint.top/blog/paper-reading/agent-memory-1</link><guid isPermaLink="true">https://atpoint.top/blog/paper-reading/agent-memory-1</guid><description>整理最近 Agent Memory 领域的好文</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;PERMA&lt;/h2&gt;
&lt;h2&gt;PersonaLens&lt;/h2&gt;
&lt;h2&gt;Persona2Web&lt;/h2&gt;
&lt;h2&gt;ATM&lt;/h2&gt;</content:encoded><h:img src="/_astro/Agent-Memory-1.DyliYPId.webp"/><enclosure url="/_astro/Agent-Memory-1.DyliYPId.webp"/></item><item><title>Paper Reading: World Model 1</title><link>https://atpoint.top/blog/paper-reading/world-model-1</link><guid isPermaLink="true">https://atpoint.top/blog/paper-reading/world-model-1</guid><description>探索 World Model 的研究本质</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { ArxivRating } from &apos;@/components/advanced&apos;
import { Aside } from &apos;@/components/user&apos;&lt;/p&gt;
&lt;h2&gt;World Models&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;我应该会有一段比较长的时间不会更新 World Model 的内容了。在写这个 Blog 时，我进行了很多的调研，发现其实现在大多数的世界模型都有种套壳的感觉，学术界似乎并不能划清不同方向与 World Model 的界限。
像 World Models 这篇开山之作，目前只有 DeepMind 的 Dreamer 属于这种潜在空间的强化学习的延伸。其他像 LeCun 支持用稀疏表征建模的 JEPA、李飞飞 主张像素级重建世界的 Marble 还有具身智能中的应用……实在是太多了，不适合一个人进行 Paper Reading 的工作。
我还是需要去选择一个或几个做一些实在的研究或复现，才能理清楚 World Model 的实质。有缘再会！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;本文参考如下：&lt;/p&gt;
&lt;p&gt;[1] &lt;a href=&quot;https://www.bilibili.com/video/BV1Lgcsz2Eou/?spm_id_from=333.337.search-card.all.click&amp;#x26;vd_source=09b548343aff62fd78c442b7fba8f167&quot;&gt;浙江大学-大模型导论&lt;/a&gt;&lt;/p&gt;</content:encoded><h:img src="/_astro/World-Model-1.Fih9SNgJ.webp"/><enclosure url="/_astro/World-Model-1.Fih9SNgJ.webp"/></item><item><title>GitHub + Vercel 部署（推荐）</title><link>https://atpoint.top/blog/deploy-vercel</link><guid isPermaLink="true">https://atpoint.top/blog/deploy-vercel</guid><description>使用 GitHub 管理代码，并用 Vercel 自动构建与部署（含环境变量与常见坑）。</description><pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1. 为什么推荐 GitHub + Vercel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;PR 预览：每个分支/PR 都能拿到可访问的预览链接&lt;/li&gt;
&lt;li&gt;自动构建：push 即部署&lt;/li&gt;
&lt;li&gt;HTTPS / CDN：默认就有&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;详细流程与说明：&lt;a href=&quot;https://axi404.top/blog/website-vercel&quot;&gt;Website on Vercel&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;2. 部署前检查&lt;/h2&gt;
&lt;p&gt;本地先跑通：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pnpm install
pnpm build
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置域名（建议至少填主域名）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;src/site.config.ts&lt;/code&gt; → &lt;code&gt;theme.personal.domains.main&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. Vercel 部署要点&lt;/h2&gt;
&lt;p&gt;主题会读取 &lt;code&gt;DEPLOYMENT_PLATFORM&lt;/code&gt; 来选择适配器与输出：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vercel&lt;/code&gt;（默认）：Vercel adapter，输出通常为 &lt;code&gt;server&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;github&lt;/code&gt;：用于 GitHub Pages，输出为 &lt;code&gt;static&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloudflare&lt;/code&gt;：用于 Cloudflare Pages，输出为 &lt;code&gt;static&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在 Vercel 项目里设置环境变量：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;DEPLOYMENT_PLATFORM=vercel
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;构建命令建议使用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;pnpm build
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输出目录（Output Directory）保持默认即可（Astro 会由适配器处理）。&lt;/p&gt;
&lt;h2&gt;4. 静态站点（可选）&lt;/h2&gt;
&lt;p&gt;如果你希望生成纯静态站点（例如 GitHub Pages），使用：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;DEPLOYMENT_PLATFORM=github
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并确保你的部署平台支持静态产物 &lt;code&gt;dist/&lt;/code&gt;。&lt;/p&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item><item><title>Axi Theme 基础使用与配置</title><link>https://atpoint.top/blog/axi-theme-basics</link><guid isPermaLink="true">https://atpoint.top/blog/axi-theme-basics</guid><description>从本地启动到站点配置：了解内容结构、配置入口与常见改动点。</description><pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1. 前置条件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Node.js 18+（建议 20+）&lt;/li&gt;
&lt;li&gt;包管理器：&lt;code&gt;pnpm&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pnpm install
pnpm dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 目录结构（最常用）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;src/site.config.ts&lt;/code&gt;：主题配置入口（站点信息、导航、集成配置等）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;src/content/blogs/&amp;#x3C;slug&gt;/index.mdx&lt;/code&gt;：中文文章&lt;/li&gt;
&lt;li&gt;&lt;code&gt;src/content/blogs/&amp;#x3C;slug&gt;/index-en.mdx&lt;/code&gt;：英文文章（可选，没有则英文列表会回退到中文）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public/&lt;/code&gt;：静态资源（&lt;code&gt;/images/*&lt;/code&gt;、&lt;code&gt;/avatar/*&lt;/code&gt; 等）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. 配置站点信息（&lt;code&gt;src/site.config.ts&lt;/code&gt;）&lt;/h2&gt;
&lt;p&gt;常改字段：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;theme.title&lt;/code&gt; / &lt;code&gt;theme.description&lt;/code&gt;：站点标题/描述&lt;/li&gt;
&lt;li&gt;&lt;code&gt;theme.personal.domains.main&lt;/code&gt;：主域名（用于生成绝对链接、RSS 等）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;theme.header.menu&lt;/code&gt;：导航菜单&lt;/li&gt;
&lt;li&gt;&lt;code&gt;integ.pagefind&lt;/code&gt;：站内搜索（Pagefind）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;integ.waline&lt;/code&gt;：评论系统（见 Waline 文档）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 写一篇文章（中英双语）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;新建文件夹：&lt;code&gt;src/content/blogs/my-first-post/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;写中文：&lt;code&gt;src/content/blogs/my-first-post/index.mdx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;写英文：&lt;code&gt;src/content/blogs/my-first-post/index-en.mdx&lt;/code&gt;（可选）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最小 Frontmatter（两种语言都要有）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-md&quot;&gt;---
title: My Title
publishDate: 2026-01-11
description: Short summary.
tags: [&apos;docs&apos;]
---
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5. 构建与产物&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pnpm build
pnpm preview
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;构建产物默认在 &lt;code&gt;dist/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;astro.config.mjs&lt;/code&gt; 会根据 &lt;code&gt;DEPLOYMENT_PLATFORM&lt;/code&gt; 选择适配器与输出模式（详见部署文档）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6. 部署推荐（GitHub + Vercel）&lt;/h2&gt;
&lt;p&gt;建议使用 GitHub 托管代码 + Vercel 自动部署（PR 预览、回滚、CDN、HTTPS 都更省心）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;部署思路与注意事项：&lt;a href=&quot;https://axi404.top/blog/website-vercel&quot;&gt;Website on Vercel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item><item><title>Friend Circle（朋友圈）：接入与配置</title><link>https://atpoint.top/blog/friend-circle</link><guid isPermaLink="true">https://atpoint.top/blog/friend-circle</guid><description>使用 Friend-Circle-Lite 生成数据源，并在 Links 页面展示朋友圈动态。</description><pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1. Friend Circle 是什么&lt;/h2&gt;
&lt;p&gt;“朋友圈”页面会展示友链站点的最新文章聚合，适合在 Links 页让访问者快速看到朋友们的新内容。&lt;/p&gt;
&lt;p&gt;本主题的 Links 页集成入口在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;src/pages/links/index.astro&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 先准备数据源（Friend-Circle-Lite）&lt;/h2&gt;
&lt;p&gt;本主题使用 Friend-Circle-Lite 的接口数据（&lt;code&gt;all.json&lt;/code&gt; 等）。搭建与使用方式建议参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.liushen.fun/posts/4dc716ec/&quot;&gt;Friend Circle 参考文档&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;你需要得到一个可访问的域名，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;fc.example.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并确保以下地址可访问：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;https://fc.example.com/all.json
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3. 在主题中启用&lt;/h2&gt;
&lt;p&gt;编辑 &lt;code&gt;src/site.config.ts&lt;/code&gt;，设置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;theme.personal.domains.friendCircle = &apos;fc.example.com&apos;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配置完成后，&lt;code&gt;/links&lt;/code&gt; 页面会自动显示 “Small Circle / 朋友圈” 区块。&lt;/p&gt;
&lt;h2&gt;4. 友链 RSS 建议&lt;/h2&gt;
&lt;p&gt;如果某个站点在友链里但朋友圈里没有内容，通常是该站点未提供 RSS 或 RSS 不可访问。建议为友链站点补全 RSS。&lt;/p&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item><item><title>MDX 组件使用：User &amp; Advanced</title><link>https://atpoint.top/blog/mdx-components</link><guid isPermaLink="true">https://atpoint.top/blog/mdx-components</guid><description>文章内组件（Aside/Tabs 等）与高级组件（LinkPreview/GithubCard 等）的使用方式。</description><pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;import { Aside, Tabs, TabItem, Spoiler } from &apos;@/components/user&apos;
import { GithubCard, LinkPreview, QRCode, ImageGroup, WebVideo } from &apos;@/components/advanced&apos;&lt;/p&gt;
&lt;h2&gt;1. 必须使用 MDX&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.md&lt;/code&gt; 文章无法 &lt;code&gt;import&lt;/code&gt; 组件；请使用 &lt;code&gt;.mdx&lt;/code&gt;（如 &lt;code&gt;src/content/blogs/&amp;#x3C;slug&gt;/index.mdx&lt;/code&gt;）。&lt;/p&gt;
&lt;h2&gt;2. User 组件示例&lt;/h2&gt;
&lt;h2&gt;3. Advanced 组件示例&lt;/h2&gt;
&lt;h3&gt;GitHub 卡片&lt;/h3&gt;
&lt;h3&gt;链接预览&lt;/h3&gt;
&lt;h3&gt;二维码&lt;/h3&gt;
&lt;h3&gt;图片组（等高拼图）&lt;/h3&gt;
&lt;p&gt;&amp;#x3C;ImageGroup
images={[
{ src: &apos;https://picr2.axi404.top/1767811093734_image.webp&apos;, alt: &apos;Image A&apos;, aspectRatio: 16 / 9 },
{ src: &apos;https://picr2.axi404.top/1767811093734_image.webp&apos;, alt: &apos;Image B&apos;, aspectRatio: 1 },
]}
/&gt;&lt;/p&gt;
&lt;h3&gt;内嵌视频&lt;/h3&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item><item><title>Waline 评论系统：部署与接入</title><link>https://atpoint.top/blog/waline</link><guid isPermaLink="true">https://atpoint.top/blog/waline</guid><description>部署 Waline 服务端，并在 Axi Theme 中启用评论与访问量统计。</description><pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1. 部署 Waline 服务端&lt;/h2&gt;
&lt;p&gt;请参考这篇完整教程（包含服务端部署与配置项说明）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://axi404.top/blog/waline-install&quot;&gt;Waline Comments: Deploy &amp;#x26; Integrate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;部署完成后你会得到一个服务端地址，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;https://waline.example.com/
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 在主题中启用 Waline&lt;/h2&gt;
&lt;p&gt;编辑 &lt;code&gt;src/site.config.ts&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;integ.waline.enable&lt;/code&gt;: 设为 &lt;code&gt;true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;integ.waline.server&lt;/code&gt;: 填你的 Waline Server URL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ts&quot;&gt;waline: {
  enable: true,
  server: &apos;https://waline.example.com/&apos;,
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3. 常见说明&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;评论区组件：&lt;code&gt;src/components/advanced/Comment.astro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;页面访问量/评论数：部分页面会加载 Waline 的 &lt;code&gt;pageview&lt;/code&gt; 统计（见 &lt;code&gt;src/pages/*&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;单篇文章是否显示评论：由文章 Frontmatter 的 &lt;code&gt;comment&lt;/code&gt; 控制（默认 &lt;code&gt;true&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item><item><title>写作指南：Markdown / MDX</title><link>https://atpoint.top/blog/writing-markdown-mdx</link><guid isPermaLink="true">https://atpoint.top/blog/writing-markdown-mdx</guid><description>主题内支持的 Markdown 扩展、数学公式、代码高亮与一些写作约定。</description><pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1. Markdown 支持范围&lt;/h2&gt;
&lt;p&gt;主题默认启用了常用扩展：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GFM：表格、删除线、任务列表等&lt;/li&gt;
&lt;li&gt;数学公式：KaTeX（&lt;code&gt;$...$&lt;/code&gt; / &lt;code&gt;$$...$$&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;代码高亮：Shiki（支持标题、差异标注等）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 数学公式（KaTeX）&lt;/h2&gt;
&lt;p&gt;行内：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-md&quot;&gt;欧拉公式：$e^{i\\pi}+1=0$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;块级：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-md&quot;&gt;$$
\\int_0^1 x^2 dx = \\frac{1}{3}
$$
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3. 代码块增强（差异/高亮）&lt;/h2&gt;
&lt;p&gt;你可以在代码中使用注释标记来展示变更（示例来自主题的高亮 transformer）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ts&quot;&gt;const a = 1 // [!code --]
const a = 2 // [!code ++]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也可以做行高亮：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-ts&quot;&gt;const token = &apos;secret&apos; // [!code highlight]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4. 什么时候用 MDX&lt;/h2&gt;
&lt;p&gt;当你需要在文章里使用组件（例如 &lt;code&gt;Aside&lt;/code&gt;、&lt;code&gt;Tabs&lt;/code&gt;、&lt;code&gt;GithubCard&lt;/code&gt; 等）时，请使用 &lt;code&gt;.mdx&lt;/code&gt;，并在文件顶部 &lt;code&gt;import&lt;/code&gt; 组件。&lt;/p&gt;
&lt;p&gt;组件用法示例文档：见 “MDX 组件使用”。&lt;/p&gt;</content:encoded><h:img src="undefined"/><enclosure url="undefined"/></item></channel></rss>