高颜值的神经网络可视化工具:3D、彩色、可定制,还能可视化参数重要性

举报
王博Kings 发表于 2022/02/23 23:11:02 2022/02/23
【摘要】 点上方人工智能算法与Python大数据获取更多干货 在右上方 ··· 设为星标 ★,第一时间获取资源 仅做学术分享,如有侵权,联系删除 转载于 :量子位 最近,一款神经网络可视化工具火了。 这款工具叫做「nn_vis」,它采用了新的3D可视化技术,可以呈现这样的效果: 其作者表示,之所...

点上方人工智能算法与Python大数据获取更多干货

在右上方 ··· 设为星标 ★,第一时间获取资源

仅做学术分享,如有侵权,联系删除

转载于 :量子位

最近,一款神经网络可视化工具火了。

这款工具叫做「nn_vis」,它采用了新的3D可视化技术,可以呈现这样的效果:

ad0e2c16e6992aad4c9e6ddf44f4b47a.gif

其作者表示,之所以创建这个工具,是由于神经网络内部缺乏透明度,很难为不同任务选择有效的架构。

nn_vis究竟有什么与众不同?一起来了解一下。

它能够创建神经网络模型,还可以通过参数设置,得到不同的呈现形式;

c5dea2dba91c3330ce1c70cbe2a64436.png

88b1bd93a9d52ed697c76785a5bc3a87.png

并且,根据参数重要性的评估结果,对神经网络进行剪枝,从而简化模型;

同时,还可以对神经网络绑定过程实现可视化。

76338f52d09a5154324fd1400e8e4bc5.png

那么,这些功能是怎样实现的呢?

nn_vis利用神经网络优化领域的已有方法,采用批标准化、微调以及特征提取,评估训练后的神经网络不同部分的重要性。

再结合边绑定、光线跟踪、3D impostor和特殊的透明技术等,得到神经网络的3D模型,证明了评估结果的有效性。

具体来看看~

50857ee6562672955436d2ce9d17b34c.png

参数准备

首先通过 configs/processing.json ,进行神经网络处理的参数准备,就像这样:


   
  1. {
  2. "edge_bandwidth_reduction": 0.9,
  3. "edge_importance_type": 0,
  4. "layer_distance": 0.5,
  5. "layer_width": 1.0,
  6. "node_bandwidth_reduction": 0.95,
  7. "prune_percentage": 0.0,
  8. "sampling_rate": 15.0,
  9. "smoothing": true,
  10. "smoothing_iterations": 8
  11. }

也可以在图形用户界面进行设置:

8f0fbaa641e04091f0e88da19d5c4e68.png

f1b1d592f10ae3cd15ae07ee750f450d.png

创建神经网络模型

使用可视化工具start_tool.py,并选择神经网络Load Processed Network。

除了现有的网络,还可以生成随机网络,以及处理各种大小的网络。

与最常用的参数相比,可视化可以使训练参数更为结构化。

经过不同的训练,通过旋转、切换相机位置、截屏,可以得到类似这样的效果:

e9a4edec04da19622318556babe2b6d1.png

边越靠近,神经网络这些部分的泛化程度就越大,即更容易适应新的数据样本。

•  左侧的神经网络没有经过随机分配的值的训练:节点和边距离中心分布的更远;

•  中间的则经过一些基本训练,达到90%以上的准确性。

•  右侧的神经网络以相同方式训练,并且采用L1正则化防止过拟合,得到了具有相似准确性的最窄的模型。

100fb2b7b196d745914f26bea0d4c271.png

评估各节点的重要性

根据节点和边的重要性进行着色,不同的颜色表示神经网络的每一部分,用来预测它们的关联性。

02152fefeff7ce4eee463f9ff5f53c38.png

通过左图可以看出,修剪不重要的参数,不会像重要参数那样影响模型的预测准确性。

右图则显示出,根据类别的重要性修剪神经网络时,重要类别能够保留准确性。与整体准确性相比,重要类别的准确性始终更高。

通过对神经网络进行剪枝,即剪掉不重要的冗余参数,降低了模型的复杂度和过拟合风险,提升了泛化程度,得到更高效、训练成本更低的神经网络。

由此证明了重要性评估的有效性。

b0db58952749af00d28805d83bbf08cf.png

绑定过程可视化

通过不断迭代实现神经网络的绑定,大致过程是这样的:

bd0cc9605b751e8bcc604b47e4a9305d.png

可视化的神经网络绑定过程:

d744c4575655f1594e63c308223363ad.png

需要注意的是,处理每层的神经网络需要一定时间,计算并不是实时的。

966012d77ec327da684687a636e095ea.png

不同的可视化效果

在图形用户界面或者通过configs/rendering.json,修改着色器参数,包括:

尺寸、对象的基本不透明度、即重要性对不透明度的影响比率、相机的距离对不透明度的影响比率、物体上不同点的密度对不透明度的影响比率、根据对象的重要性定义渲染对象的阈值。

即可得到不同的可视化效果:

c32ad73b5ff746e81eeed221d40616d6.png

对这款工具感兴趣的朋友,可以通过文末链接获取~

GitHub项目地址:
https://github.com/julrog/nn_vis

---------♥---------

声明:本内容来源网络,版权属于原作者

图片来源网络,不代表本公众号立场。如有侵权,联系删除

AI博士私人微信,还有少量空位

fc1490a198fd469949f94d408148f0d2.png

78d2594e427154aa34f211b521b09de3.gif

如何画出漂亮的深度学习模型图?

如何画出漂亮的神经网络图?

一文读懂深度学习中的各种卷积

点个在看支持一下吧742fbfc030f30f62877174c234ea6817.png7785cda194ed77c417d9dfc2bc565c61.png

文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。

原文链接:kings.blog.csdn.net/article/details/123081382

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。