From Experience to Understanding
-
编程语言二三事
本文的写作动机:作为一般程序员而非专门的编程语言研究者,收集对于 PL 的一些基础概念,作此草稿。本文较为琐碎,章节标题并列不代表这两个话题一定是并列的关系。 更新策略:直接修改本文内容 作用域、名称绑定和闭包 自由变量 (Free) 和约束 (Bound) 变量 在数理逻辑中 在表达式 Sigma_{k=1}^10 f(n,…
-
包管理工具的使用技巧
从编程语言特定的 pip, conda,到操作系统级的 apt, pacman,我们在构建工程时离不开包管理工具为我们处理依赖。本文旨在总结这些工具的使用技巧。 如果你也经常用包管理工具,可能能从本文中获得启发。然而,本文不保证全面性(不保证这是认识它们的最佳视角/使用它们的最佳实践)和准确性(以工具的文档为准)…
-
使用 Electron 开发”聊天记录管理器”桌面应用
代码仓库见 github.com/wangziao9/directory-of-dialogues,不定期维护。 动机:聊天会话的笔记管理 线性倒序列表的普遍性 多数 AI 聊天助手,不论是网页还是桌面应用,对聊天会话的管理功能大体都遵循 ChatGPT 的惯例,提供一个线性、时间倒序的会话列表。这相当于一个 LRU …
-
点查找、区间树和线段树
计算几何中的正交范围查询(Orthogonal Range Search),旨在快速响应与坐标轴对齐的“长方形/立方体”范围的对象查找。 对象为点的查找 思路:范围树 一维查找 有序向量可以解决这个问题,但它不能扩展到高维。为此,我们使用建立平衡二叉树的预处理方法,叶子节点是对象本身,内部节点存储左子树包含的对象的最大值。若已经对象已经排好序,则预处理是…
-
采样技巧和 ReSTIR 渲染算法
本文是 ReSTIR DI 算法的一些前置知识和论文阅读笔记 更新策略:直接修改本文内容 关于采样技巧 蒙特卡洛积分和重要性采样 蒙特卡洛积分是通过采样来估算积分的方法: \int_x f(x)dx = 1/N \Sigma_{i=1}^N f(x_i)/p(x_i), x_i~p(x_i) 一个性质是,当样本的分布 p 接近 f 的形状时,估计值的方差就小;当…
-
alg: 图论相关算法
重申一下,alg 系列博文(本文在内)中的伪代码部分复制或改动自清华大学数据结构课程(邓俊辉课堂的)讲义,它可以从这个链接获取。 关键词:最小支撑树 Minimum Spanning Tree:Prim 算法,Kruskal 算法,其中 Kruskal 算法用到了并查集单源最短路径树 Shortest Path Tree / …
-
alg: 单调队列和滑动窗口算法
单调队列 给定一个长度为 n 的数组,需要输出每连续 k 个数(A[i, i+k-1])中的最大值,可以在 O(n) 时间内做完吗? 一个思路就是动态地维护一个队列,在任何时刻 i 都满足 队列中的元素来自 A[i, i+k-1] A[s] 在队列中,当且仅当 A(s, i+k-1] 中的元素都小于 A[s]。特别地,A[i+k-1] 一定在队尾。…
-
alg: 字符串匹配算法
这是以 alg 作为标题前缀的数据结构与算法系列。本系列的更新策略:直接更新内容,不标出更新的年月日。 本系列的写作参考了诸多来源,一个重要来源是清华大学数据结构课程(邓俊辉课堂的)讲义和《数据结构(C++语言版)》的内容,有些段落可能 文字复制比 / 伪代码复制比 较高,但不保证相关部分与上述来源完全一致。如果你想要系统性地初学数据结构与算法,推荐从上述两个材料入手,它们可以从…
-
强化学习中的若干概念
这是学习我阅读若干在线 RL 教程所作的笔记,比较杂乱无章,不适合作为你的第一个 RL 教程阅读,如果想要找一个入门的 RL 教程推荐从头到尾阅读 OpenAI 的 Spinning Up 再贴一个叶哥的同类博文作为参照,叶哥的博文详尽全面。 Model-free 和 Model-based RL Model-free 的方法不会对环境进行建模。当然,为了训练,代码中至少是要某种程度上建模环境和回报的,但除了定义…
-
paper: 不借助平行语料可以进行机器翻译吗?
这是以 “paper:” 作为标题前缀的论文速读系列。我如何写作本系列:在接触到令人尤其感兴趣的论文后,总结论文的部分内容,探讨论文之外的相关思想,不作为论文的概括,亦不保证信息或推理全部准确。本系列的更新策略:直接修改博文内容,而不标注”X月X日更新“ UNSUPERVISED MACHINE…
-
关于部署一个Mastodon站点
我是如何写作本文的:在应用部署平台和 VPS 上各自建立了一个测试用的 Mastodon 站点后,作技术笔记。自评可靠程度:可靠性中等,全面性中等。 本文适合谁看/怎么看:了解 Mastodon 的设计和使用,并对建立自己的 Mastodon 站点感兴趣的读者。单纯想看关于 Mastodon 的小介绍、VPS 评测、或 Nginx…
-
机器怎样学习:使用概率统计的视角
视角的转换:预测取值还是预测分布 泛泛而论,机器学习就是给定一个输入 x,预测一个输出值 y,或者说,逼近目标函数 y = f(x)。回归模型接受输入 x,线性地预测一个输出 y。图像分类器将每个输入的图像分到一个类别中。 如果说上面的论述你全盘接受了的话,那么你本应该提出若干补充和质疑的。卷积神经网络的图像分类器,如果有…
AlphaGo apt Arch Linux async bias-variance-tradeoff CA Chat Agent closure cross-entropy dijkstra diskpartition DNS docker-compose DQN electron firmware floyd Graphics HTTPS importance-resampling Intermediate Language js kl divergence KMP kruskal Mastodon MCTS monotonous-queue name binding object semantics OpenAI pacman pip prim Q learning REINFORCE reservior-sampling ReSTIR RL RLHF RSA sliding-window TLS topsort value semantics
Any Thoughts or Suggestions?