Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
* [离散数学(专业基础)](pei-yang-fang-an-jie-xi/da-er-qiu-ji-xue-qi/li-san-shu-xue-zhuan-ye-ji-chu.md)
* [数据结构(专业基础)](pei-yang-fang-an-jie-xi/da-er-qiu-ji-xue-qi/shu-ju-jie-gou-zhuan-ye-ji-chu.md)
* [几何学基础(专业选修)](pei-yang-fang-an-jie-xi/da-er-qiu-ji-xue-qi/ji-he-xue-ji-chu-zhuan-ye-xuan-xiu.md)
* [人工智能与机器学习基础](pei-yang-fang-an-jie-xi/da-er-qiu-ji-xue-qi/ren-gong-zhi-neng-yu-ji-qi-xue-xi-ji-chu.md)
* [大二春季学期](pei-yang-fang-an-jie-xi/da-er-chun-ji-xue-qi/README.md)
* [人工智能基础(专业选修)](pei-yang-fang-an-jie-xi/da-er-chun-ji-xue-qi/ren-gong-zhi-neng-ji-chu-zhuan-ye-xuan-xiu.md)
* [人工智能原理与技术(专业选修)](pei-yang-fang-an-jie-xi/da-er-chun-ji-xue-qi/ren-gong-zhi-neng-ji-chu-zhuan-ye-xuan-xiu-1.md)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
---
description: 学分4.0
---

# 人工智能与机器学习基础

Represent 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](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 解释报错、生成样板代码或总结论文要点,但保持主动学习:亲自写出关键函数、手算简单梯度、独立绘制损失曲线。这样既能借助工具加快进度,又不会因过度依赖而架空自身技能。

### 六、焚诀

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