> For the complete documentation index, see [llms.txt](https://advancedguideforsds.gitbook.io/advancedguide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://advancedguideforsds.gitbook.io/advancedguide/pei-yang-fang-an-jie-xi/da-er-qiu-ji-xue-qi/ren-gong-zhi-neng-yu-ji-qi-xue-xi-ji-chu.md).

# 人工智能与机器学习基础（专业核心）

Presented by Wanglulu：<wanglulu114514@mail.ustc.edu.cn>

### 一、课程定位

AIML 是为大二学生开设的专业基础课，主要讲授经典机器学习算法及其数学原理。2025秋的课程不设期末考试，所有成绩均来源于实验（Lab）、大作业（Final Project）和书面作业（HW）（当然后续有没有考试我也不知道）。课程可高替机器学习A，但是以后机器学习A应该不开了所以大家就上这门课就行。由于是AI专业的第一门专业核心课以及很多外院同学修读，班级会同时有大二与大三学生，竞争非常激烈，对自驱力和工程实践能力要求较高。课程目标是通过课堂理论学习与课外编程实践，使学生掌握从数据预处理、模型实现到结果分析的全流程。课程讲授内容包括但不限于：线性回归、逻辑回归、正则化、神经网络基础、聚类、EM算法、PCA降维、决策树、集成学习、SVM、强化学习。

据小道消息，2026年秋季本门课程将由王翔老师、张岸老师、王杰老师和冯文杰老师各自开设一个课堂并组成课程组，统一作业、实验和考核标准。

***

### 二、教学内容

课程由**课堂讲授**与**课外实验**两部分并行组成。

#### 1. 课堂讲授

主要讲解机器学习算法的数学推导，内容覆盖：

* 线性模型（线性回归、逻辑回归）与梯度下降优化；
* 高斯混合模型（GMM）与期望最大化（EM）算法；
* 决策树及其分裂准则（信息增益、基尼系数）；
* 支持向量机（SVM）、核函数与对偶问题；
* 搜索与博弈问题中简单的优化思想。

神经网络相关内容在课堂上涉及较少，但实验和大作业中会大量用到，需自行补充学习。

#### 2. 实验任务

全部实验需用 Python 完成，代码部分要求在给定框架下补全，并撰写实验报告。实验主题将与课堂强相关并弱相关。强相关是指内容强相关，弱相关是指在课堂上好好学并不能保证能写出来代码。同时，实验可能会涉及大量需要自学的部分，请同学们做好投入大量时间的准备，尤其是对python不熟悉的同学。

2025秋季学期的实验组成如下：

* **Lab1：线性回归与分类器**\
  数据预处理、回归模型的前向与反向传播、解析解推导、手写 sigmoid 函数、逻辑回归分类。选做内容包括特征工程与正则化。
* **Lab2：PCA 降维与 GMM 聚类**\
  对 MNIST 数据集进行主成分分析与 GMM 聚类，需实现主成分提取、责任矩阵计算与 EM 更新步骤，并设计聚类评估指标。
* **Lab3：决策树、集成学习与 SVM**\
  分为三个子实验：
  * 决策树：信息熵计算、结点分裂逻辑与树的构建；
  * 集成学习：实现 voting、bagging（Bootstrap 采样）和 AdaBoost（SAMME 算法），选做 GBDT 与 Stacking；
  * SVM：手写核函数、编写网格搜索代码以调参。
* **Final Project：强化学习五子棋**
  * WarmUp：强化学习路径搜索和策略搜索，实现Q-learning和ε-greedy策略等<br>
  * 基于 Actor-Critic 等强化学习方法训练一个五子棋智能体，需要完成神经网络搭建、奖励设计、自我博弈训练，最终与官方 baseline 模型对弈评估胜率。

#### 3. 书面作业（HW1\~HW3）

作业以数学证明和代数推导为主，例如反向传播中的跨层梯度计算。题目往往需要自学课上未讲到的内容，计算量较大。做作业的时候你可能会遇到大量的概统、随机过程证明和人肉计算机题目，这是机器学习理论中不得不品的一环，请同学们做好心理准备。同时，单纯使用大模型做题并不能让你获得一个好的分数，这点还请同学们注意。

***

### 三、所需的前置知识

请在开课前或课程早期完成以下准备，以降低实验完成难度。

1. **Python 编程**
   * 基本语法：变量、控制流、函数、类；
   * 数据处理库：numpy（矩阵运算、广播）、pandas、matplotlib；
   * 建议熟悉 Jupyter Notebook 或 VS Code 的开发环境。
2. **数学基础**
   * 线性代数：矩阵乘法、特征值与特征向量、**矩阵微分**；
   * **概率论与数理统计：条件概率、高斯分布、期望最大化思想**；
   * 数学分析：偏导数、**梯度**、**链式法则**。
   * 如有可能的话，提前学习一些随机过程知识。
3. **神经网络基础知识（自学为主）**
   * 前馈神经网络（FNN）结构及反向传播机制；
   * 卷积神经网络（CNN）原理；
   * 残差连接（ResNet）的结构与作用；
   * 深度学习框架：推荐 PyTorch，掌握张量操作、模型定义、训练循环等基本用法。
4. **工具与环境**
   * 建议配备支持 CUDA 的独立显卡，可大幅缩短模型训练时间；
   * 若本地无 GPU，可提前注册并熟悉云端算力平台（如 正在开发的107：<https://107.ustc.edu.cn/dashboard>），注意先在本地验证代码再上传运行，并及时下载训练输出与模型参数；
   * 建议配置可访问国际互联网的网络环境（科学上网），便于查阅技术文档和使用部分 AI 工具。

***

### 四、如何获取更高的分数

本课程所有分数均来源于实验报告、大作业效果以及作业完成情况，以下建议直接关联评分要点。

1. **完成消融实验并体现在报告中**\
   消融实验即控制变量法：固定其他条件，每次只改动一个超参数（如学习率、正则化系数、网络层数），记录并对比实验结果。报告中需包含清晰的对比图表与分析说明，这是评估“思考量”的关键依据。仅列出最终结果而不展示调参过程和中间输出，会被视为分析不充分，导致大量失分。
2. **保证模型效果，不要低估效果分占比**\
   虽然老师和助教可能会（一定会）表示“结果指标仅占小部分，大家要把重心放在报告和思考上”，但实际评分中对效果有硬性要求。例如 Final Project 中，若模型对弈胜率未能超过 baseline，会直接扣除可观的总评分数（2025秋为6.25分）。因此，在完成实验时，应将提升客观指标（准确率、胜率、聚类评分等）作为首要目标，再以此为基础撰写分析报告。当然这并不意味着报告不重要，相反，**报告很重要**。一定要认真写报告。
3. **合理使用 AI 工具，以理解代码为导向**\
   AI 辅助编程在本课程中普遍且必要，但应避免直接将生成代码作为最终提交内容。建议按以下流程操作：
   * 阅读实验要求与框架代码；
   * 使用 AI 生成基线解决方案；
   * 逐段分析代码，理解每一部分对数据和模型的操作；
   * 根据分析结果自行调整模型、超参数或特征；
   * 对优化后的结果进行归因分析，撰写报告。\
     切勿直接复制 AI 的分析文本，报告内容需体现自己的实验决策与推理过程。
4. **认真准备实验验收环节**\
   不同实验的验收形式可能不同（如现场问答、限时选择题），可能考查实验细节、公式含义和算法实现原理。每完成一个实验，应确保能脱离代码解释以下内容：所用模型的数学表达、关键步骤的算法流程、超参数的作用以及实验设计的理由。
5. **加强神经网络与框架自学**\
   课堂对神经网络涉及有限，而 Lab 和 Final Project 几乎全部依赖神经网络与 PyTorch/TensorFlow。最晚在 Lab3 结束前，需掌握如何搭建并训练一个完整的网络模型，包括数据加载、损失函数选择、优化器配置与训练循环。遇到未知领域时，直接查阅官方文档、技术博客或学术论文，不要等待课堂教学。
6. **时间管理与硬件准备**
   * 单个实验从上手到完成报告可能耗费数十小时，务必在 DDL 前预留充足时间。
   * 书面作业证明题计算量大，不要与实验截止时间重叠规划。
   * 若使用云 GPU，提前测试环境连通性和数据存储流程，避免训练中断导致数据丢失。
7. **考试**
   * 如果有考试，建议至少提前两周开始复习。根据25秋的作业题以及机器学习A的风评来看，本门课程如果组织考试考试将会是腥风血雨。
   * 如果明确有考试，意味着实验分数的比重会相应降低。

***

### 五、如何更有效地学习

1. **从数学原理出发，通过实现加以验证**\
   每学习一个模型，先理清其目标函数、优化方法和更新公式，再用代码复现。对照推导检查代码的输出，例如验证 GMM 的 E 步与 M 步更新后似然是否上升，可加深对算法本质的理解。
2. **建立经典方法与深度学习的关联**\
   课程覆盖大量传统机器学习算法，它们所体现的偏差-方差权衡、集成思想、核方法等在深度学习中仍然有效。在学完 SVM 后思考其与感知机的联系，或对比 GBDT 与残差网络中的残差学习，有助于构建完整的知识体系。
3. **以研究性思维对待实验**\
   不仅完成必做任务，还可**自主提出扩展问题**，如“更换正则化方法后模型性能如何变化”、“假设是否会在特定分布下失效”。在报告中展示这些探索，既能提高分数，也能训练发现与解决问题的能力。
4. **将 AI 定位为效率工具而非替代品**\
   用 AI 解释报错、生成样板代码或总结论文要点，但保持主动学习：亲自写出关键函数、手算简单梯度、独立绘制损失曲线。这样既能借助工具加快进度，又不会因过度依赖而架空自身技能。

### 六、焚诀

* 如果想要更加充实的报告，建议尽量做附加实验，这能让你的报告内容比别人多一大截。有些时候我们会发现没有附加实验，这个时候，**走不通的路就用拳头来打开**。如果你做了附加实验，那么你的报告应当体现如下内容：为什么会想到这样做？这样做有没有可供支撑的数学原理？这样做以后结果如何？为什么？有什么启示？
* 如果想要更好的实验效果，建议咨询大模型。大模型的世界知识一定是比现阶段绝大多数同学要丰富的，问大模型如何提高效果虽然不一定能保证提高效果，但一定能打开思路。机器学习是一个非常广的领域，通过大模型你可以接触到比课堂上多得多的东西。当然，大模型生成的信息并不完全准确，这个时候可能需要使用常规途径检索信息。
* 要体谅助教，要和助教保持良好的关系。助教同学需要承担巨大的压力并完成实验从设计、评估、验收、讲解和总结的全流程，而且经常由于经验不足和神秘的优秀率限制而身败名裂。可以对得分产生不满的情绪，但是**不要和助教大打出手或者随便把助教挂在评课社区**。
* 这门课的优秀率绝对满足不了同学们的需求。2025秋的优秀率有55%+，但依然满足不了同学们的需要。据不完全统计，修读这门课的同学包括但不限于大二AI、大三DS、大三数院部分同学、大二大三CS部分同学等。请同学们做好心理准备。拿不到高分≠不行，来上这门课的同学可以说都很优秀，不要因为这一门课的成绩产生自我怀疑。
* 有兴趣可以看看评课社区，你会发现很多有用的资料。这是25秋的课程仓库，有时间的同学可以参考：<https://github.com/ChangshuoShen/USTC-AI3002-25fall>
