超赞!!3D可视化工具透视神经网络内部
哈喽,大家好。
你有没有想过,我们编写的神经网络,内部究竟是什么样子的?
加拿大蒙特利尔一家公司开发一个3D可视化工具 —— Zetane Engine,帮助我们解决了这个问题。
只要在Zetane Engine打开一个深度学习模型,便可以看到网络中任何一层,并显示特征图。
为了演示Zetane Engine的用户,我搭建了AlexNet网络,在Fashion-MNIST数据集上训练了一个 10 个类别的分类器。
网络架构如下:
tf.keras.layers.Conv2D(filters=96, kernel_size=11, strides=4, input_shape=(224,224,3), activation='relu'),
tf.keras.layers.MaxPool2D(pool_size=3, strides=2),
tf.keras.layers.Conv2D(filters=256, kernel_size=5, padding='same', activation='relu'),
tf.keras.layers.MaxPool2D(pool_size=3, strides=2),
tf.keras.layers.Conv2D(filters=384, kernel_size=3, padding='same',activation='relu'),
tf.keras.layers.Conv2D(filters=384, kernel_size=3, padding='same',activation='relu'),
tf.keras.layers.Conv2D(filters=256, kernel_size=3, padding='same',activation='relu'),
tf.keras.layers.MaxPool2D(pool_size=3, strides=2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(4096, activation='relu'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(4096, activation='relu'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(10)
网络使用Keras搭建,AlexNet模型非常简单,包含5个卷积层和3个全连接层。
训练样本如下:
样本对应的 10 类别如下:
训练 50 个 epoch,模型的准确度是 92%,将模型保存为alexnet.h5,用Zetane Engine打开
可以看到AlexNet的网络结构。
我们输入一张裤子图片,查看第一个卷积层输出的特征图
第一个卷积层
图片经过第一个卷积层后,输出的特征图肉眼能明显辨识出是裤子。
我们再看下经过更深层的卷积网络之后,会是什么样子
深度卷积
中间第2、3层明显可以看出是在提取边缘特征,不用类别的物体的边缘特征是不同的,并且边缘特征相比原图表达能力更强,相当于是原图更抽象一级的特征,不过这里还是可以看出来是裤子。
但到了第4、5层,特征更抽象了,肉眼已经看不出是裤子了,当然也说明模型学习能力更强了。
简单总结下,神经网络从浅层到深层,学习的特征越来越抽象,学习能力也越来越强。
AlexNet网络除了有卷积层,还有池化层,我们也可以看下特征经过池化层的效果
颜色越明亮,代表权重越高。从上图可以看到最大池化层能强化重要特征,发挥去噪、降维的作用。
另外,你可能会主要到网络上每个节点的前后都有一些白色圆点组成的方块。
左边代表该节点输入特征和权重,右边代表输出的特征。点击它们可以看到不同视角的特征图
三维视角
二维视角
标注卷积结果的平面图
卷积结果的平面图
尤其对于网络的最后一个节点,它的输出是预测结果
它输出了长度为 10 的特征向量,即:预测图片属于哪个类别的权重。可以看到权重最大的是类别1,类别1对应的是裤子,所以模型的预测结果是正确的。
相关文章
- 如何使用 ST05 事物码,快速找到访问指定数据库表的 ABAP 代码试读版
- 大数据NiFi(七):NiFi集群页面管理节点操作
- 开源:一款方便实用的数据库文档管理工具 - SmartSQL
- 准确率可达100%!谷歌全新方法解决ML模型「走捷径」问题
- 每周云安全资讯-2023年第1周
- 谷歌RT-1模型让一个机器人干几份活,700条指令成功率达97%
- 将数据中心代理和Oxylabs住宅代理与MultiLogin集成的操作保姆级流程
- 离谱!女生在自家厕所遭偷拍,照片全网泄露,罪魁祸首竟是萌萌的TA
- 【愚公系列】2023年01月 Dapr分布式应用运行时-Dapr的基本运行
- 位图bitmap的改进版:Roaring Bitmap
- MySQL常用基础 - 小白必看
- 以太网交换机中的网络延迟是什么呢?
- 百度研究院发布2023年十大科技趋势,锚定「AI向实」:行业大模型生态初现,自动驾驶、AIGC、量子科技等智能化创新更加务实
- 官方mysqld_exporter支持抓取多MySQL实例
- 使用 ggplot2 绘制比较各省份及其区县的详细数据
- 如何解决MySQL5升级为MySQL8遇到的问题my.ini(mysql5.6升级mysql8.0)
- 你知道微服务架构中的“发件箱模式”吗
- 软件测试|Postman做 接口自动化测试
- 软件开发入门教程网之MySQL 连接的使用
- 软件测试|Junit5 实现参数化和数据驱动