算法研究
未读
算法研究记录
算法研究记录1 [{"url":"https://github.moeyy.xyz/https://github.com/FrWalkerCn/images/blob/master/post-assets/2025-02-28-%E6%9F%94%E6%80%A7%E7%94%B5%E8%B7%AF%E6%9D%BFFPC%E5%B8%83%E7%BA%BF/0.webp","alt":""},{"url":"https://github.moeyy.xyz/https://github.com/FrWalkerCn/images/blob/master/post-assets/2025-02-28-%E6%9F%94%E6%80%A7%E7%94%B5%E8%B7%AF%E6%9D%BFFPC%E5%B8%83%E7%BA%BF/5.webp","alt":""},{"url":"https://github.moeyy.xyz/https://github.com/FrWalkerCn/ima ...
打印机到手后,顺手记录一下打印的小物件和使用体验。
买的时候感觉无限可能,但感觉不久就要吃灰了,不知道干些什么!一共送了三卷耗材,绿色、橙色的PLA,还有个支撑耗材不会用,女朋友又支持了一卷透明色的耗材,这个耗材价格70/kg有些小贵,打印了下面这些小玩意基本送的耗材就用光了。
试水打印了个双色的的电路风格杯垫
确实不漏水的花瓶,薄薄一层
商城找的哪吒模型,不会上色
赠品环游火车,组装时不小心把502灌进了赠送的开关,彻底不能使用了。用电烙铁焊了个摇臂开关上去,螺丝只能外露在盖子上了。这个模型用到耗材是最多的,盖子反复打印了两次,因为新开关增加了高度,默认底座还得想办法垫高小火车才能跑起来
总的来说确实开箱即用了,之前diy大鱼的打印机只能说算是玩机了,这次玩上了3D打印。
hexo-cdn-jsdelivr是一款hexo博客的cdn加速插件,它可以帮助你快速的将博客相对和指定路径下的资源提取出来,并进行资源路径前缀的更改,从而实现博客的指定cdn资源加速。但随着hexo的版本更新,原插件的一些功能已经无法使用,所以本文二次开发了hexo-cdn-jsdelivr-plus插件,并将其发布到npm上,欢迎大家使用。
改进说明
1.去掉指定前缀的自动修改
原插件在指定前缀cdn_url_prefix后,会默认加上latest等标识,导致不支持相关格式的cdn访问失败,所以去掉了自动修改的功能,完全遵循用户指定的前缀。
2.支持博客图片的语法更为简洁
原插件长时间未更新,只支持hexo博客的早期语法:
12345678910111213141516171819<!-- You can use cdn_css(path) to replace css(path) in hexo --><%- cdn_css(path) %><!-- This is used to replace js(path) --><%- cdn_ ...
问题描述
在Hexo博客中,使用默认的MathJax或者Katex渲染数学公式时,会出现渲染错误,导致公式无法正常显示。
解决方法
这里不考虑更换hexo渲染器的解决方案,容易导致各种样式问题和兼容性问题,主要采纳一些简单的语法技巧来解决。
1. 必要的情况下使用\进行转义
上图的公式在hexo无法正常显示,但在_前面加上\后可以正常显示:
原因不明,来源参考EasyHexo:
2. 使用<span>包裹公式,注意标签独占一行
很多公式直接写渲染异常,但用或者标签将LaTeX公式包裹起来,这样公式内容就不会被markdown渲染器识别为转义字符,就会显示正常,典型的比如换行字符\\.
不使用<span>标签的公式渲染效果如下:
123456789$$\begin{aligned}V(s)& =\mathbb{E}[G_t|S_t=s] \\&=\mathbb{E}[R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+\ldots|S_t=s] \\&=\mathbb{E}[R_t+\gamma(R_{ ...
hexo-blog-encrypt 3.1.9是一个用于给博客文章加密的插件,它可以让你在发布文章之前对文章内容进行加密,只有加密后的文章才可以被阅读。但官方的有部分问题,这里提供一些解决方法,希望能帮助到大家。
1. 移动端输入法无法输入enter
由于输入法无法输入enter,导致在手机端无法输入密码解锁博客:
这里增加一个confirm按钮,用户点击确认按钮后,和enter一样也能触发解锁逻辑,分别修改三个文件:
node_modules/hexo-blog-encrypt/lib/hbe.blink.html
12345678910111213<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="{{hbeWrongPassMessage}}" data-whm="{{hbeWrongHashMessage}}"> <sc ...
强化学习
未读强化学习的笔记、理解、感悟及代码实现,仅按个人思维进行精华总结和记录,使用的教程:动手学强化学习
.indent {
text-indent: 2em;
/* 设置首行缩进为2个字符宽度 */
}
.image {
display: block;
margin-left: auto;
margin-right: auto;
margin-top: auto;
margin-bottom: auto;
width: 90%;
height: auto;
}
12import numpy as npimport matplotlib.pyplot as plt
问题描述
在多臂老虎机(multi-armed bandit,MAB)问题中,K根拉杆均对应一个奖励概率**R**,从而获得对应的奖励r.目标是在在各根拉杆的奖励概率分布未知的情况下,操作T次拉杆后获得尽可能高的累积奖励。
这是一种无状态的强化学习,只存在动作和奖励。
1234567891011121314class BernoulliBandit: ...
强化学习的笔记、理解、感悟及代码实现,仅按个人思维进行精华总结和记录,使用的教程:动手学强化学习
.indent {
text-indent: 2em;
/* 设置首行缩进为2个字符宽度 */
}
.image {
display: block;
margin-left: auto;
margin-right: auto;
margin-top: auto;
margin-bottom: auto;
width: 90%;
height: auto;
}
马尔可夫奖励过程(Markov Reward Process, MRP)
不考虑动作策略,一个马尔可夫奖励过程由一个状态空间S、一个转移概率矩阵P、一个奖励函数R、一个折扣因子γ和一个初始状态s0组成。
状态空间S表示马尔可夫过程的状态集合。
转移概率矩阵P是一个S*S的矩阵,其中P(s,s’)表示在状态s下执行动作a后转移到状态s’的概率。
奖励函数R(s)表示转移到状态s可以获得的奖励
折扣因子γ取值在0~1之间,用于衡量短期奖励与长期奖励的折扣系数
...
强化学习
未读强化学习的笔记、理解、感悟及代码实现,仅按个人思维进行精华总结和记录,使用的教程:动手学强化学习
.indent {
text-indent: 2em;
/* 设置首行缩进为2个字符宽度 */
}
.image {
display: block;
margin-left: auto;
margin-right: auto;
margin-top: auto;
margin-bottom: auto;
width: 90%;
height: auto;
}
动态规划依赖于子问题分解和递归方程,基于动态规划的强化学习算法主要有策略迭代和价值迭代两种,分别使用贝尔曼期望方程和贝尔曼最优方程,需要事先知道环境的状态转移和奖励函数,适用于有限的状态和动作空间。
策略迭代
策略迭代分策略评估和策略提升两部分,策略评估计算出每个状态的价值函数,策略提升根据价值函数改进策略,不断迭代直到收敛。
策略评估
贝尔曼期望方程为状态价值函数提供了一个递归关系。假设在某个状态s下,策略π(a|s)的价值函数为v(s,π),则贝尔曼期望方 ...
强化学习
未读强化学习的笔记、理解、感悟及代码实现,仅按个人思维进行精华总结和记录,使用的教程:动手学强化学习
.indent {
text-indent: 2em;
/* 设置首行缩进为2个字符宽度 */
}
.image {
display: block;
margin-left: auto;
margin-right: auto;
margin-top: auto;
margin-bottom: auto;
width: 90%;
height: auto;
}
动态规划里的策略迭代和价值迭代都是需要事先知道环境的奖励函数和状态转移函数,可以直接递归迭代出最优价值或策略。但在大部分场景,无法写出状态转移概率和进行动态规划。在这种情况下,智能体只能和环境进行交互,通过采样到的数据来学习,这类学习方法统称为无模型的强化学习。
时序差分
单步时序差分
时序差分是一种估计策略价值函数的方法,结合了蒙特卡洛(从样本数据中学习,不需要事先知道环境)和动态规划(根据贝尔曼方程利用后续状态的价值估计来更新当前状态的价值估计)的思想。
...