AI 教学改革实践研究计划AI 教改实践研究计划 全国高等院校计算机基础教育研究会 ×实战云


AI 课件库 › 深度学习 › 训练与优化

反向传播可视化讲解

Backprop Explainer · 俄勒冈州立大学 URSA Engage 本科生科研计划,2021

从手动拧一个神经元的权重偏置起步,讲到链式法则与梯度下降,最后逐帧看完整网络一个训练轮次的前向、反向、更新三段动画。

适用
深度学习、神经网络原理、机器学习基础(进阶)
概念
反向传播、梯度下降、链式法则、偏导数、损失函数、学习率
课时
进阶 · 建议 40 分钟
网络
离线可用(不依赖外网,需能打开本站)

全屏打开实验 ↗ 原作源代码 ↗

交互实验(可直接投屏)

原作是一个完整的网页应用,下面直接嵌入;屏幕小或要投影时,点「全屏打开实验」更清楚。

动手三步

  1. 从「动手先玩一玩」开始:先不碰公式,拖动权重、偏置两个滑块,把损失降到 0
  2. 往下读「什么是反向传播」,鼠标停在正文里带颜色的词上(损失、梯度、链式法则、偏导数),会弹出带公式的解释
  3. 到「看它跑起来」点播放:拟合直线一点点贴上数据,约 1500 轮后损失降到 0.000
  4. 继续到「训练过程」的深网络,训练几十轮后暂停,点「播放这一轮的动画」,跟着「前向 → 反向 → 更新」走一遍
  5. 用右侧面板换数据集、改学习率、加减层数,重跑对比

课堂怎么用

  • 先让学生纯手工拖滑块把损失降到 0,再说「反向传播就是让机器自动做这件事」,比直接上链式法则好接受
  • 单轮动画的三段正好对应教材的三步,可以逐段暂停讲解,配合网络上的箭头讲「梯度指的是往哪推」
  • 学习率对照:0.0001 与 0.005 各跑 60 轮,看损失曲线的下降速度与抖动
  • 接 B-06 神经网络游乐场:那件让学生调参数看结果,这件解释结果是怎么被算出来的

思考题

  1. 为什么必须先做一次前向传播,才能做反向传播?
  2. 梯度指的是「最陡上升方向」,那更新参数时为什么要取它的反方向?
  3. 网络变深以后要算的导数变多了,但文中说「逻辑一点没变」,指的是哪一点没变?

已知限制

  • 顶部横幅、网络图例以及正文里十余张插图,是原作导出的图形且文字已转成矢量轮廓,无法翻译,仍是英文
  • 单轮动画控制台里四个标签保留英文:它们与实时数字混排,翻译会让数字停在翻译那一刻
  • 式子里嵌着当前权重的算式按数学式保留原样
  • 打开浏览器控制台时会看到一条原作自带的告警(关掉中文层照样出现),不影响功能
  • 站点 22.6 MB,含一段较大的演示动图,首次打开偏慢,建议课前在教师机预热一次
  • 正文很长,通读约 40 分钟,课堂上建议按目录挑节讲

原作 Backprop Explainer(Donald Bertucci、Minsuk Kahng(俄勒冈州立大学),俄勒冈州立大学 URSA Engage 本科生科研计划,2021),MIT 许可(原文),界面已中文化。

← 神经网络游乐场 卷积:卷积核怎么扫一张图 →

使用与数据说明 · 来源与许可