卷积网络三维可视化
An Interactive Node-Link Visualization of Convolutional Neural Networks · ISVC 2015
在画板上手写一个数字,立刻看到它在三维卷积网络里逐层被算成什么样,点开任意一个方块能看到这一层这个单元的加权输入与计算过程。
交互实验(可直接投屏)
原作是一个完整的网页应用,下面直接嵌入;屏幕小或要投影时,点「全屏打开实验」更清楚。
动手三步
- 首页选「卷积网络三维可视化」,在左上角画板上手写一个数字,下方立刻给出第一猜测与第二猜测
- 鼠标拖动旋转、滚轮缩放,从最下面的输入层一路看到最上面的输出层
- 点任意一个方块,弹出信息框:它属于哪一层、第几个卷积核、第几号单元,以及加权输入、计算过程、输出
- 用右侧面板逐层开关,把中间层藏掉,单独看某一层的激活图
- 回首页换「全连接网络三维可视化」对比同一个数字在全连接网络里的样子
课堂怎么用
- 把「特征图」讲成学生看得见的东西:写一个 7,逐层看它怎样从像素变成一堆抽象响应
- 让学生故意写歪、写小、写到角落,看第一猜测怎么出错,引出训练数据对模型的影响
- 点开一个下采样层的方块,信息框里写着「计算过程:最大池化」,配着具体数值讲最大池化到底做了什么
- 接 B-02 卷积与 B-01 手写数字识别:那两件讲一个卷积核怎么算,这件讲十几层叠起来是什么样
思考题
- 卷积层 1 和全连接层的激活图,哪个还看得出你写的数字?为什么?
- 为什么把数字写到角落容易认错?这说明训练数据对模型有什么影响?
- 点开一个卷积层的方块,信息框里「卷积核」那一小格图代表什么?
已知限制
- 三维视图用 WebGL 绘制,老旧投影机可能掉帧,卡就改用二维版
- 信息框「计算过程」一栏是数学式,按数学记号保留原样
- 首页的论文引用与参考文献条目按学术惯例保留英文
- 网络是 2015 年训练好的固定模型,只认手写数字,不能换数据、不能重新训练
- 原作右上角的性能计数器已隐藏,避免课堂上分散注意力
原作 An Interactive Node-Link Visualization of Convolutional Neural Networks(Adam W. Harley,ISVC 2015),MIT 许可(原文),界面已中文化。