几何深度学习 (Geometric Deep Learning)
Introduction (课程介绍)
本课程一周三次课,安排紧凑。课程内容主要分为两大部分:
1. 基础知识(~40学时): 结合《动手学深度学习》进行讲解。
2. 几何深度学习(~40学时):
聚焦非欧数据建模,涵盖点云、体素与八叉树、图结构(Graph)、网格,参数化表示、隐式函数等几何表征方法,解析如何将深度学习推广至三维视觉、材料设计等场景。
课程目标: 熟悉AI的基础知识与常见的几何表达;熟悉常见的几何表达下的AI算法与应用;熟悉AI相关代码的撰写,能够利用AI来完成指定任务。
课程考核: 本课程没有考试,全凭代码作业进行考核。总成绩由9次小作业(9*8 =
72分)和1次大作业(28分)构成。请通过QQ群接收和提交作业。课程鼓励大家直接用AI完成作业(甚至不写一行与作业相关的代码),但不管采用什么形式,核心要求是把作业写对。
Resources (学习资源)
1. 核心教材:《动手学深度学习》第二版 (中文版)
2. 备用链接:D2L 课程主页
Assignments (暂定作业安排)
第1周:深度学习基础与PyTorch入门
学习内容:神经网络前向/反向传播、损失函数、优化器。
代码作业:配置Python、PyTorch、CUDA环境,跑通demo程序。
作业文档:作业文档下载 (.md)
第2周:MLP介绍
代码作业:用PyTorch在MNIST数据集上训练一个全连接网络。
作业文档:作业文档下载 (.md)
第3周:CNN介绍
代码作业:在Kaggle Dogs vs Cats上做猫狗分类。
作业文档:作业文档下载 (.md)
第4周:Transformer介绍
代码作业:使用Hugging
Face的Seq2SeqTrainer和Seq2SeqTrainingArguments,在WMT14的small版本上微调Helsinki-NLP开源的英德翻译模型(Helsinki-NLP/opus-mt-en-de),并评估模型在测试集上的表现(如使用BLEU分数)。
第5周:GNN
代码作业:利用GNN做Cora数据集的节点分类任务。
第6周:点云相关处理
代码作业:复现PointNet的核心模块,在ModelNet10数据集上进行点云分类。
第7周:体素相关处理
代码作业:使用3DCNN卷积做特征提取或分类。
第8周:SDF相关处理
代码作业:复现DeepSDF网络,学习一个形状类别的符号距离函数(SDF)。
第9周:BRep相关处理
代码作业:使用图神经网络对BRep表示的数据进行简单分类(例如,区分不同的基本几何体,如立方体、圆柱、球体等)。
第10-13周:课程大作业 (5选1)
• 选项A:在已有PointNet++代码中,加入一个简单的注意力层,并评估效果。
• 选项B:在BRep的GNN网络中加入MASK,通过自监督学习后迁移到分类任务。
• 选项C:考虑在DeepSDF学到的latent space里做diffusion来生成新的SDF。
• 选项D:将三角网格与Transformer结合作网格分割。
• 选项E:将体素中的3DCNN替换为其他结构实现更好的分类或者分割。