打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
超赞!!3D可视化工具透视神经网络内部
userphoto

2022.09.17 江苏

关注

原创 渡码 渡码 2022-09-17 08:36 发表于北京

收录于合集

#神经网络1
#人工智能14
#计算机视觉16

哈喽,大家好。

你有没有想过,我们编写的神经网络,内部究竟是什么样子的?

加拿大蒙特利尔一家公司开发一个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对应的是裤子,所以模型的预测结果是正确的。

大家可以下载下来学习一下,也可以加载更复杂的模型研究。

本文涉及的模型、代码、数据和使用方法我都已整理好了,需要的朋友在评论区留言即可。

如果大家觉得本文对你有用就点个 在看 鼓励一下吧,后续我会持续分享优秀的 Python+AI 项目。

渡码

持续分享Python+AI实战与原理

166篇原创内容

公众号

确定

  • 不看此公众号

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
CNN模型之SqueezeNet
基于OpenCV的焊件缺陷检测
搭建和部署手语AI识别系统
人工智能|备战Tensorflow技能认证之两种快速构建模型的常用方式
【连载16】GoogLeNet Inception V1
Fast-SCNN的解释以及使用Tensorflow 2.0的实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服