From Experience to Understanding

  • 使用 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。图像分类器将每个输入的图像分到一个类别中。 如果说上面的论述你全盘接受了的话,那么你本应该提出若干补充和质疑的。卷积神经网络的图像分类器,如果有…

  • LLM + RLHF = Chat Agent

    Large-Scale Language Model + Reinforcement learning from human feedback = Helpful Chat Agent 回顾 OpenAI GPT 的规模升级之路 在对话智能体应用大火的今天,回顾第一个杀手级应用 ChatGPT 被研发出来之前经历的事情格外有趣。从其创造者…

  • 棋盘游戏智能体:从蒙特卡洛树搜索到AlphaGo

    棋盘游戏 vs 街机游戏 智能体行动的环境,很多都可以归入如下两类: 一类是两方博弈的棋盘游戏,不包含随机性,胜负可以由棋盘上的状态一眼看出,比如围棋、象棋; 另一类是智能体适应/对抗环境的“街机游戏”,可能包含随机性,得分可能不是最终状态的函数,而是每一步行动奖励的过程积累,例子包括典型的强化学习测试环境,包括…

AlphaGo Arch Linux async bias-variance-tradeoff CA Chat Agent cross-entropy dijkstra diskpartition DNS Docker docker-compose DQN electron firmware floyd Graphics HTTPS importance-resampling js kernel density estimation kl divergence KMP kruskal Mastodon maximum likelihood estimation MCTS misspecified model monotonous-queue OpenAI parametric model prim Q learning REINFORCE reservior-sampling ReSTIR RL RLHF RSA sliding-window TLS topsort WordPress