全部课

课程

高一人工智能:深度学习和多模态人工智能

用 PyTorch 搭建并训练神经网络,处理图像、文字和声音。

按顺序学习各课。学完后,你能计算神经元的输出,比较 ReLU、sigmoid 和 softmax 激活,并用 NumPy 写小网络的前向传播。你能选择损失,讲清梯度下降和反向传播,并用 PyTorch 写带完整训练和测试循环的脚本。你能用 CNN 训练图像分类器,训练情感分类器分辨正面和负面评论,讲清注意力怎样给其他词元加权,并能给短声音片段分类。你能减少过拟合,在新类别上微调预训练模型,把错误分组并找出原因,还能展示在没见过的图像上测试过的智能野生动物监测。

这些课怎么用

  • 从标着做这个的课开始。标题下面那一行你自己会了,再往下。
  • 先玩游戏。再做测验。10题里对8题就通过。练习纸在纸上。答案在最下面。
  • 每一课都接在前一课后面。每次训练都记下:设置、损失曲线和测试分数。
  • 写代码的课用 Python 和 PyTorch,在免费的在线笔记本里,带 GPU。小模型和小数据集就够。只用你可以用的开放数据集。没有本人允许,绝不用人的照片来训练。

每一课都有游戏、测验和练习纸。

0/36

神经网络基础

  1. 1神经元用输入、权重和偏置计算神经元的输出。
    • 写出加权和加偏置。
    • 用手算三个输入。
    • 在代码里用点积来算。
  2. 2激活比较 ReLU、sigmoid 和 softmax 激活。
    • 画出每种激活。
    • 说明网络为什么需要非线性激活。
    • 用 softmax 把分数变成概率。
  3. 3层和网络把层叠成网络。
    • 把一层写成矩阵乘法。
    • 跟踪每一层数据的形状。
    • 数出网络的参数。
  4. 4小网络用 NumPy 写小网络的前向传播。
    • 在 NumPy 里搭一个两层网络。
    • 把一批输入送进去。
    • 检查输出的形状。

训练神经网络

  1. 5损失为一项任务选择损失并计算它。
    • 回归用均方误差。
    • 分类用交叉熵。
    • 说出损失下降是什么意思。
  2. 6梯度下降讲清梯度下降怎样让权重往下走。
    • 找出损失曲线的斜率。
    • 按学习率迈步。
    • 看看学习率太大或太小会怎样。
  3. 7反向传播顺着反向传播,看误差怎样传回网络。
    • 在一个很小的网络上用链式法则。
    • 用手算一个梯度。
    • 用自动微分核对。
  4. 8训练网络训练一个小网络,并画出损失。
    • 用小批量来训练。
    • 画出训练损失和验证损失。
    • 验证损失不再变好就停。

深度学习框架

  1. 9张量创建 PyTorch 张量并改变形状。
    • 创建张量,检查形状和类型。
    • 改变形状、堆叠并切片。
    • 把张量移到 GPU。
  2. 10模块用 torch.nn 的模块搭建模型。
    • 做 nn.Module 的子类。
    • 使用 Linear 层和激活层。
    • 打印模型及其参数个数。
  3. 11优化器用 SGD 和 Adam 优化器来训练。
    • 使用 zero_grad、backward 和 step。
    • 在同一项任务上比较 SGD 和 Adam。
    • 使用学习率日程。
  4. 12训练脚本写一个带完整训练和测试循环的训练脚本。
    • 用 DataLoader 加载数据。
    • 训练、验证并测试。
    • 保存最好的模型。

计算机视觉

  1. 13图像作为张量把图像加载成张量并归一化。
    • 把图像加载成通道、高度和宽度。
    • 调整大小并归一化。
    • 把一批显示成网格。
  2. 14卷积说明卷积滤波器怎样找到边缘。
    • 用手把 3×3 滤波器滑过一张图像。
    • 在代码里用边缘滤波器。
    • 说明 stride、padding 和 pooling。
  3. 15CNN搭建卷积神经网络,也就是 CNN。
    • 叠上卷积层、激活层和 pooling 层。
    • 展平,再加一个分类头。
    • 跟踪形状穿过整个网络。
  4. 16图像分类器用 CNN 训练图像分类器。
    • 在一个小图像数据集上训练。
    • 报告测试准确率。
    • 展示它分错的图像。

自然语言处理

  1. 17分词做分词:把文字变成词元和 ID。
    • 比较词和子词的词元。
    • 建立词表。
    • 把序列补到同样长度。
  2. 18嵌入说明嵌入怎样把相近的词放在一起。
    • 使用嵌入层。
    • 找出离一个词最近的词。
    • 在两个维度上画出嵌入。
  3. 19文本模型搭建一个能读词元序列的文本模型。
    • 把嵌入平均成一个向量。
    • 使用一个简单的循环层。
    • 比较这两种做法。
  4. 20情感分类器训练情感分类器,分辨正面和负面评论。
    • 在评论数据集上训练。
    • 报告准确率、精确率和召回率。
    • 找出骗过它的评论,比如讽刺。

Transformer

  1. 21注意力讲清注意力怎样给其他词元加权。
    • 说明查询、键和值。
    • 计算一个短句的注意力权重。
    • 说出注意力为什么能帮助远处的意思。
  2. 22Transformer 块说出 Transformer 块的各个部分。
    • 说出多头注意力、feed-forward 层和归一化层。
    • 说明残差连接。
    • 说明位置编码。
  3. 23预训练模型用预训练的 Transformer 模型做一项任务。
    • 加载预训练模型和分词器。
    • 用它给文字分类。
    • 和你自己的情感模型比一比。
  4. 24注意力图读懂一张注意力图。
    • 把注意力权重画成热力图。
    • 找出一个词元注意哪些词。
    • 说出注意力为什么不是完整解释。

声音和多模态人工智能

  1. 25声音作为数据把声音数据变成波形和频谱图。
    • 加载声音并画出波形。
    • 说明采样率。
    • 做出频谱图。
  2. 26音频分类器用音频分类器给短声音片段分类。
    • 把频谱图当成图像。
    • 在上面训练 CNN。
    • 用背景噪声来测试。
  3. 27多模态输入说明模型怎样把图像和文字的多模态输入合在一起。
    • 说明每种输入有各自的编码器。
    • 说明共享的嵌入空间。
    • 说出三个多模态应用。
  4. 28图像和文字把图像和文字配上:用预训练模型把图像和说明对上。
    • 取出图像和说明的嵌入。
    • 为每张图像给说明排序。
    • 用一句文字搜索图像。

改进模型

  1. 29正则化用正则化减少过拟合:dropout 和权重衰减。
    • 加上 dropout。
    • 加上权重衰减。
    • 比较验证曲线。
  2. 30数据增强做数据增强:把翻转和裁剪过的图像加进训练集。
    • 使用翻转、裁剪和颜色变化。
    • 只增强训练集。
    • 量一量测试准确率的变化。
  3. 31迁移学习用迁移学习在新类别上微调预训练模型。
    • 冻结预训练的层。
    • 换掉分类头并训练它。
    • 解冻,再用小学习率微调。
  4. 32误差分析做误差分析:把错误分组并找出原因。
    • 读懂多类别的混淆矩阵。
    • 把错误分成组。
    • 给最大的那一组选一个改法。

深度学习项目

  1. 33野生动物数据挑选并划分一个开放的野生动物图像数据集。
    • 选一个开放的红外相机或野生动物数据集。
    • 选出 5 到 10 个物种。
    • 按地点划分,让测试公平。
  2. 34微调模型把图像分类模型微调到野生动物类别上。
    • 微调一个预训练模型。
    • 跟踪验证准确率。
    • 保存最好的检查点。
  3. 35演示页面做一个演示页面,显示上传图像的预测。
    • 接收一张上传的图像。
    • 显示前三个物种和它们的分数。
    • 信心低时显示“不确定”。
  4. 36智能野生动物监测展示智能野生动物监测:没见过的图像上的准确率,以及主要错误。
    • 报告没见过的图像上的准确率。
    • 展示主要错误和原因。
    • 说出下一步要改什么。
高一人工智能:深度学习和多模态人工智能