高颜值神经网络可视化:3D彩色、可定制,还能可视化参数重要性
子豪 发自 凹非寺量子位 报道 | 公众号 QbitAI
最近,一款神经网络可视化工具火了。
这款工具叫做「nn_vis」,它采用了新的3D可视化技术,可以呈现这样的效果:
其作者表示,之所以创建这个工具,是由于神经网络内部缺乏透明度,很难为不同任务选择有效的架构。
nn_vis究竟有什么与众不同?一起来了解一下。
它能够创建神经网络模型,还可以通过参数设置,得到不同的呈现形式;
并且,根据参数重要性的评估结果,对神经网络进行剪枝,从而简化模型;
同时,还可以对神经网络绑定过程实现可视化。
那么,这些功能是怎样实现的呢?
nn_vis利用神经网络优化领域的已有方法,采用批标准化、微调以及特征提取,评估训练后的神经网络不同部分的重要性。
再结合边绑定、光线跟踪、3D impostor和特殊的透明技术等,得到神经网络的3D模型,证明了评估结果的有效性。
具体来看看~
参数准备
首先通过 configs/processing.json ,进行神经网络处理的参数准备,就像这样:
也可以在图形用户界面进行设置:
创建神经网络模型
使用可视化工具start_tool.py,并选择神经网络Load Processed Network。
除了现有的网络,还可以生成随机网络,以及处理各种大小的网络。
与最常用的参数相比,可视化可以使训练参数更为结构化。
经过不同的训练,通过旋转、切换相机位置、截屏,可以得到类似这样的效果:
边越靠近,神经网络这些部分的泛化程度就越大,即更容易适应新的数据样本。
左侧的神经网络没有经过随机分配的值的训练:节点和边距离中心分布的更远;
中间的则经过一些基本训练,达到90%以上的准确性。
右侧的神经网络以相同方式训练,并且采用L1正则化防止过拟合,得到了具有相似准确性的最窄的模型。
评估各节点的重要性
根据节点和边的重要性进行着色,不同的颜色表示神经网络的每一部分,用来预测它们的关联性。
通过左图可以看出,修剪不重要的参数,不会像重要参数那样影响模型的预测准确性。
右图则显示出,根据类别的重要性修剪神经网络时,重要类别能够保留准确性。与整体准确性相比,重要类别的准确性始终更高。
通过对神经网络进行剪枝,即剪掉不重要的冗余参数,降低了模型的复杂度和过拟合风险,提升了泛化程度,得到更高效、训练成本更低的神经网络。
由此证明了重要性评估的有效性。
绑定过程可视化
通过不断迭代实现神经网络的绑定,大致过程是这样的:
可视化的神经网络绑定过程:
需要注意的是,处理每层的神经网络需要一定时间,计算并不是实时的。
不同的可视化效果
在图形用户界面或者通过configs/rendering.json,修改着色器参数,包括:
尺寸、对象的基本不透明度、即重要性对不透明度的影响比率、相机的距离对不透明度的影响比率、物体上不同点的密度对不透明度的影响比率、根据对象的重要性定义渲染对象的阈值。
即可得到不同的可视化效果:
- 免责声明
- 本文所包含的观点仅代表作者个人看法,不代表新火种的观点。在新火种上获取的所有信息均不应被视为投资建议。新火种对本文可能提及或链接的任何项目不表示认可。 交易和投资涉及高风险,读者在采取与本文内容相关的任何行动之前,请务必进行充分的尽职调查。最终的决策应该基于您自己的独立判断。新火种不对因依赖本文观点而产生的任何金钱损失负任何责任。