神经网络可视化
这组课程把神经网络的学习过程拆开:数值逐层向前形成预测,梯度向后传递,权重更新让损失变化。每课的动画与代码同步,使用计算得到的数值。
神经网络是带参数的函数,权重决定输入如何映射到预测。训练反复执行预测、衡量误差、计算各参数的梯度、更新参数。先理解每个环节,再观察它们如何配合。
神经网络如何学习
- 前向传播:输入经过各层,得到预测。训练好的网络处理新输入时也执行这一步。
- 损失计算:把预测与目标的差异汇成一个数。在同一评估条件下,较小损失表示更符合所选目标;训练更新使用的是损失的梯度,因此损失函数会影响学习速度。
- 反向传播:从输出向输入应用链式法则,计算每个权重对损失的影响。
- 参数更新:梯度下降沿负梯度方向走一步。学习率控制步长,过大可能发散。
训练重复这个循环,尝试降低所选损失。是否收敛、能否正确处理新数据,还取决于模型、数据和设置。
围绕训练循环的课程
| 课程 | 观察内容 |
|---|---|
| 感知机 | 单个神经元画直线边界,以及 XOR 上的失败 |
| 前向传播 | 输入如何逐层形成预测 |
| 损失函数 | 同一个错误被两种损失衡量,梯度却相差很大 |
| Softmax 与交叉熵 | 十个原始分数变成分布,梯度为何简化为一次相减 |
| 梯度下降 | 参数向极小值移动,以及步长过大时发散 |
| 反向传播 | 梯度向后传递,链式法则计算各权重的影响 |
| 训练循环 | 预测、损失、梯度、更新按轮次连续执行 |
| MNIST 手写数字分类器 | 训练好的网络识别你画的数字 |
| CNN | 卷积滤波器扫描图像,形成特征图 |
| RNN/LSTM | 逐词读取句子,以及沿时间反传的学习信号衰减 |
| 梯度消失 | sigmoid 层的导数连乘缩小信号,激活的 ReLU 路径保留信号 |
| Dropout | 对比同一带噪标签网络有无随机训练掩码,观察记忆减少与过度丢弃的代价 |
| 批量归一化 | 在统计组内对一个特征通道居中、标准化,再固定优化器更新次数,对比深层网络及仅两个值的统计边界 |
| 优化器:SGD、动量、Adam | 三种更新规则使用相同种子的批次,在圆形、狭长和带噪损失曲面上走出不同路径 |
建议学习顺序
先学感知机,观察一个神经元如何学习直线边界,以及为什么不能解决 XOR。再学前向传播,把神经元组合成多层,先弄清整个网络计算什么。
接着学损失函数。在本课的同一单元、错误和学习率下,均方误差的学习速度约比交叉熵慢九十倍。随后用 Softmax 与交叉熵观察多分类的常见组合:一个 MNIST 数字被网络以 99.86% 的置信度分错,在相同概率下,交叉熵对分数的梯度推动是均方误差的 361 倍。
再学梯度下降,在简单曲面上观察步长,以及过大步长造成的越过与发散。反向传播用逆向链式法则在层间复用计算,求整个梯度的成本与一次前向传播同阶。理解各部分后,进入训练循环,逐轮观察损失变化。
最后看七项扩展。MNIST 手写数字分类器用训练好的网络推理;CNN通过卷积利用相邻像素的结构;梯度消失展示多个看似无害的局部导数如何把信号缩小数百万倍;RNN/LSTM把同一权重沿词序重复应用,用隐藏状态传递记忆;Dropout检验随机掩码是否减少记忆噪声;批量归一化先观察单个隐藏通道,再比较条件匹配的六层网络;优化器回到更新规则,展示速度记忆和逐坐标缩放如何改变相同批次下的路径。
全部神经网络可视化课程
选择课程,修改输入,逐步执行,观察代码高亮与动画同步变化。
感知机单层神经网络基础前向传播神经网络如何把像素变成预测损失函数预测错得有多离谱——梯度下降沿之而下的曲面。Softmax 与 Cross-Entropy把 logits 变成概率,再对照正确类别打分。梯度下降沿损失曲面逐步下降反向传播梯度下降与权重更新MNIST 数字分类器手写数字或加载真实 MNIST 样本,实时看训练好的 MLP 如何分类卷积神经网络卷积、池化、特征图训练循环在浏览器里实时训练一个小网络——亲眼看边界学会、震荡、欠拟合与过拟合。RNN / LSTM序列模型与隐状态梯度消失看链式法则的乘积穿过 sigmoid 后逐层消失,再对照活跃 ReLU 如何衰减、保持或爆炸。Dropout训练时随机遮住隐藏单元,直观看清正则化的取舍。批归一化逐通道标准化隐藏激活,并隔离观察统计分组大小如何改变深层训练。优化器——SGD、动量、Adam让三种更新规则在同一个损失面上赛跑。