单元五

第16课 一层层认出整幅图——多层变换粗知

任务场景:一层层滤镜,理解多层特征粗知
任务场景:一层层滤镜,理解多层特征粗知

一、任务目标

用两层数字变换,体会“一层层加工”。

二、知识点短列表

  • 层:一次变换;多层=多次加工。
  • 特征:每层抽出的有用信息(本课用数字模拟)。
  • 前向:按顺序从输入算到输出。
  • 「forward」。
  • 深度常与有监督等一起用,不是互斥标签。
  • 层的次序属于模型结构:先×2 再-1,与先-1 再×2 结果不同。
  • 列表推导 「[表达式 for x in xs]」 或 「遍历循环」 + 「追加到列表」 对每个元素做同一种变换,适合模拟一层。

三、机器学习在说什么

深度学习名字里的“深”,指网络层数多,能从原始输入逐步得到更抽象的表示。小学不必推公式,但要建立图像:不是一次魔法,而是一层层。

本课 layer1 把每个数×2,layer2 再减1,对 [1,2,3] 得到 [1,3,5]。检查题锁定这个计算,保证你真的串联而不是只写一层。

把滤镜比喻记进笔记:输入→层1→层2→输出;认图时想象边→部件→整体。

深度不等于神秘:它仍然要数据、要检验、要人负责。本课用列表推导模拟层,是为了让你看见“输出接着当输入”的管道,而不是背诵“神经网络”五个字。算力与层数变多时,管道思想不变。

与有监督的关系:许多深度认图系统仍用带标签图片训练——深度描述的是模型结构,有监督描述的是有没有标签。两者可以叠在同一任务上,五问诊里“复杂感知”只是提醒你可能需要更深的结构。

四、相关积木怎么用

  • 一层变换:「for x in xs: out」(与列表推导同义)。
  • 「return layer2」 串联。
  • 迷你例子:「向前」 → 「[1,3,5]」。

走查:输入 「向前」 → 先 layer1 得 [2,4,6],再 layer2 得 [1,3,5],所以最终输出 [1,3,5]。若只调用 layer1,会得到 [2,4,6],不等于检查期望。

列表推导一句顶一层:对 xs 里每个 x 做同一变换。两层就是两次推导再嵌套调用。认图时想象滤镜叠滤镜;没有管道图像,就不要空谈“很深”。

检查锚点:forward([1,2,3])→[1,3,5];中间量 [2,4,6] 会手算。

想一想:若调换两层顺序变成先-1 再×2,[1,2,3] 的结果是什么?与原来的 [1,3,5] 相同吗?

答案应先算出 [0,2,4](先各减 1 再×2),与 [1,3,5] 不同。把两组结果并排写,作为“结构=层+次序”的证据。forward 检查只认串联后的 [1,3,5],中间量也要会手算,防止只会抄最终列表。

管道检查:草稿纸写输入→层1中间量→层2输出三列。认图对应像素→边→部件→整脸,层数可变但串联不变。交换两层后必须写出具体新列表,不能只说“会不一样”。

要点串讲:深=层数多、层层提特征;前向按序计算;forward 串联 layer1 与 layer2;深度常与有监督数据结合;玩具版只为建立管道图像。本课过关标准:能说明为何必须两层都走,并完成 [1,2,3]→[1,3,5]。加练:交换两层顺序会得到不同结果,说明层的次序是模型结构的一部分,不能随便调换。

五、操作步骤

步骤1
写 layer1每个元素乘 2。
步骤2
写 layer2每个元素减 1。
步骤3
写 forward按顺序调用两层。
步骤4
口述比喻用滤镜/认脸说明层层提特征。

六、解题思路

任务:用两层数字变换,体会“一层层加工”。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

本课主要用到:屏幕输出。

  1. 1明确任务「用两层数字变换,体会“一层层加工”。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用「打印」积木把结果说出来,确认屏幕上出现预期内容。
  3. 3找出重复动作,用「计数循环/遍历」积木写成循环,少抄几遍。
  4. 4把可复用的一段动作做成函数,主程序里调用它。
  5. 5对照参考积木(或代码)跑通后,只改一个参数,观察结果如何变化。

流程示意(可对照左侧文字)

任务:用两层数字变换…用「打印」积木把结果说出来,…找出重复动作,用循环积…把可复用的一段动作做成函数…对照参考积木(或代码)跑通后,只改一…

七、图形块功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

即时验算:[1,2,3]→层1[2,4,6]→层2[1,3,5]。只跑层1得[2,4,6]不等于期望。交换两层后写出新结果列表,证明次序属于结构。列表推导模拟一层。缺少中间量不算真懂。滤镜比喻要能讲给同桌听。

深度与有监督关系句:深度说结构多层,有监督说有没有标签——可以叠用。本课玩具 forward 不训练权重,只练串联。认图滤镜比喻与三列手算表一起交,才算理解“层层提特征”。

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:以为深度学习与有监督从不一起用;或只调用一层却声称 forward。

  2. 判断:理解多层串联;知道深度常配有监督数据;本课 forward 必须经过两层。

  3. 判断:深度学习常用于认图、识音。

  4. 判断:深度学习与有监督从不一起用。

  5. 判断:前向是按顺序从输入算到输出。

  6. 判断:层数多为‘深’的直观含义之一。

  7. 选择:人脸识别常见技术背景 →

九、知识点讲解

神经网络用多层变换把输入特征一步步变成预测。前向就是数据从输入层传到输出层;本课抓住「层在做什么」,不必先背完整训练公式。

先弄清本课输入与输出,再进编程练习对照现象。

十、编程练习

用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码自动判题。

参考代码(对照抄写到下方 Mixly)
def layer1(xs):
    out = []
    for x in xs:
        out.append(x * 2)
    return out

def layer2(xs):
    out = []
    for x in xs:
        out.append(x - 1)
    return out

def forward(xs):
    return layer2(layer1(xs))

print(forward([1, 2, 3]))

十一、本节小结

你现在能实现 「向前」:按序串联 layer1 与 layer2,对 [1,2,3] 得到 [1,3,5],并理解层序是结构的一部分;交换层序会得到不同列表;中间量[2,4,6]会手算;深度与有监督可叠用;管道三列手算要交。need_big_model 判断小任务是否不必上大模型。