神经网络可视化

这组课程把神经网络的学习过程拆开:数值逐层向前形成预测,梯度向后传递,权重更新让损失变化。每课的动画与代码同步,使用计算得到的数值。

神经网络是带参数的函数,权重决定输入如何映射到预测。训练反复执行预测、衡量误差、计算各参数的梯度、更新参数。先理解每个环节,再观察它们如何配合。

神经网络如何学习

  • 前向传播:输入经过各层,得到预测。训练好的网络处理新输入时也执行这一步。
  • 损失计算:把预测与目标的差异汇成一个数。在同一评估条件下,较小损失表示更符合所选目标;训练更新使用的是损失的梯度,因此损失函数会影响学习速度。
  • 反向传播:从输出向输入应用链式法则,计算每个权重对损失的影响。
  • 参数更新:梯度下降沿负梯度方向走一步。学习率控制步长,过大可能发散。

训练重复这个循环,尝试降低所选损失。是否收敛、能否正确处理新数据,还取决于模型、数据和设置。

围绕训练循环的课程

课程观察内容
感知机单个神经元画直线边界,以及 XOR 上的失败
前向传播输入如何逐层形成预测
损失函数同一个错误被两种损失衡量,梯度却相差很大
Softmax 与交叉熵十个原始分数变成分布,梯度为何简化为一次相减
梯度下降参数向极小值移动,以及步长过大时发散
反向传播梯度向后传递,链式法则计算各权重的影响
训练循环预测、损失、梯度、更新按轮次连续执行
MNIST 手写数字分类器训练好的网络识别你画的数字
CNN卷积滤波器扫描图像,形成特征图
RNN/LSTM逐词读取句子,以及沿时间反传的学习信号衰减
梯度消失sigmoid 层的导数连乘缩小信号,激活的 ReLU 路径保留信号
Dropout对比同一带噪标签网络有无随机训练掩码,观察记忆减少与过度丢弃的代价
批量归一化在统计组内对一个特征通道居中、标准化,再固定优化器更新次数,对比深层网络及仅两个值的统计边界
优化器:SGD、动量、Adam三种更新规则使用相同种子的批次,在圆形、狭长和带噪损失曲面上走出不同路径

建议学习顺序

先学感知机,观察一个神经元如何学习直线边界,以及为什么不能解决 XOR。再学前向传播,把神经元组合成多层,先弄清整个网络计算什么。

接着学损失函数。在本课的同一单元、错误和学习率下,均方误差的学习速度约比交叉熵慢九十倍。随后用 Softmax 与交叉熵观察多分类的常见组合:一个 MNIST 数字被网络以 99.86% 的置信度分错,在相同概率下,交叉熵对分数的梯度推动是均方误差的 361 倍。

再学梯度下降,在简单曲面上观察步长,以及过大步长造成的越过与发散。反向传播用逆向链式法则在层间复用计算,求整个梯度的成本与一次前向传播同阶。理解各部分后,进入训练循环,逐轮观察损失变化。

最后看七项扩展。MNIST 手写数字分类器用训练好的网络推理;CNN通过卷积利用相邻像素的结构;梯度消失展示多个看似无害的局部导数如何把信号缩小数百万倍;RNN/LSTM把同一权重沿词序重复应用,用隐藏状态传递记忆;Dropout检验随机掩码是否减少记忆噪声;批量归一化先观察单个隐藏通道,再比较条件匹配的六层网络;优化器回到更新规则,展示速度记忆和逐坐标缩放如何改变相同批次下的路径。

全部神经网络可视化课程

选择课程,修改输入,逐步执行,观察代码高亮与动画同步变化。