可微编程与深度学习

作者

刘思喆

发布于

2026年3月29日

课程计划

中国人民大学本科生的短期编程课。分四次课程:

注记第一节课:从经典统计到可微编程
  • 核心目标:打破统计学“解析解”思维,建立“数值最优化”与“计算图”直觉。
  • 教学内容设计:
    • R 和 torch 环境,简述基本概念。
    • 写出 OLS 的闭式解公式,对比梯度下降的迭代过程,理解深度学习的底层机制。
    • 讲解 Autograd 的机制,利用 torch 三部曲演示求解过程
    • 引入 tidymodelsrecipes。讲解为什么要将归一化、哑变量等操作打包成流水线,避免数据穿越。
    • 将线性模型升级为非线性的多层感知机(MLP)。
    • 展示如何将流水线处理后的数据喂给 MLP 完成预测。
  • 时间:2026 年 3 月 29 日下午 3 点。
  • 地点:立德楼。
  • 内容:对应本手册的第 1、2 章。
注记第二节课:数据的极速处理与推荐召回初步
  • 核心目标:建立处理海量工业数据的能力,理解推荐系统“大海捞针”的业务逻辑。
  • 教学内容设计:
    • 针对亿级数据,对比 data.frame 的性能瓶颈,速成 data.table 的 i, j, by 核心语法。
    • 利用 Movielens 1M 数据集,实操数据处理的全过程。包括训练数据集和验证数据集。
    • 利用 R 的矩阵/纯向量化操作,实现 Item-based 协同过滤。
    • 演示 torch 如何将数据从 CPU 迁移到 GPU 环境。
    • 演示该算法在 GPU 环境下性能几十倍的提升。
    • 解释隐式反馈(Implicit Feedback)的痛点。为什么不能只用均方误差(MSE),引出交叉熵损失与负采样策略的必要性。
  • 时间:待定
  • 地点:待定
  • 内容:对应本手册的第 3、4 章
注记第三节课:推荐召回的深度架构与工程服务化
  • 核心目标:掌握模型模块化训练方法,打通从模型产出到线上毫秒级调用的全链路。
  • 教学设计:
    • 从 One-hot 稀疏灾难讲起,解释 Embedding 的本质。
    • 介绍高度模块化的 luz 包。
    • 用 torch 实现经典矩阵分解(MF),展示如何以更优雅的方式完成训练。
    • 讲解双塔结构的业务意义,用户侧特征与物品侧特征分离,并实现该算法。
    • 引入用户和商品特征,重构双塔模型,观察模型效果变化。
    • 演示如何提取训练好的 Embedding 向量,并讨论使用向量数据库实现毫秒级的线上检索召回。
  • 时间:待定
  • 地点:待定
  • 内容:对应本手册的第 5、6 章
注记第四节课:利用关系拓扑的图神经网络
  • 核心目标:跨越非欧几里得数据壁垒,理解结构信息带来的降维打击。
  • 教学设计:
    • 以奇异值分解(SVD)为跳板,引入邻接矩阵。
    • 讲解图神经网络的核心:消息传递(Message Passing)与邻居聚合。
    • 演示如何用 GNN 构建网络分群。
    • 对比仅使用图拓扑结构,与引入节点属性特征矩阵(Feature Matrix)在效果上的显著差异。
    • 将 Movielens 转为“用户-物品”二分图。实现 LightGCN 算法,感受高阶图卷积在推荐中的效果。
    • 对比 MF、双塔与 LightGCN 在测试集上的召回率差异。为整个短期课程做全局梳理。
  • 时间:待定
  • 地点:待定
  • 内容:对应本手册的第 7、8 章

本书(及本课程全套讲义)由 Quarto 引擎强力驱动。

作为统计学院的学生,你们已经拥有了极佳的数据直觉。而这套基于 R 语言构建的教学体系,正是为了打破“R 只能用来做假设检验和跑线性回归”的传统刻板印象而设计的。在这门短期课程中,我们将彻底释放 R 生态在教学与实战中的优势:

  • 无需痛苦地切换语言底座。我们将直接在你们最熟悉的 R 环境中,将古典统计学解析解的旧地图,平滑拓展到张量计算、自动微分与复杂图神经网络的新大陆。
  • 借助 tidymodels 优雅的声明式流水线、data.table 极速处理能力,以及高度模块化的 luz 框架,本讲义呈现的不是“玩具代码”,而是能直接应对海量数据的真实工程实践。
  • 得益于 Quarto 卓越的科学计算出版能力,讲义中的严谨数学推导与每一次前向传播的代码实现了完美映射。在这里,“复制即用”。网页上的每一段代码,丢进你们的 RStudio 即可瞬间复现。

欢迎可微编程的世界。现在,让我们开始运行第一行张量代码。