1 简介
胶囊网络(CapsNet)由 Hinton 于2017年10月在《Dynamic Routing Between Capsules》中提出,目的在于解决 CNN 只能提取特征,而不能提取特征的状态、方向、位置等信息,导致模型的泛化(举一反三)能力较差。
而胶囊神经网络构建一组神经元,从而进一步挖掘了原始数据的信息,从而凭借着远低于卷积神经的所需的样本数目、较好的泛化性的优点,被众多学者研究。
部分内容引用来源基于keras的胶囊网络(CapsNet)_little_fat_sheep的博客-优快云博客_capsnet
2 基本原理
本人肯定只能讲基本原理,建议看看这位大神的理解思路。
揭开迷雾,来一顿美味的Capsule盛宴 - 科学空间|Scientific Spaces
3 实验
3.1实验数据
数据集:凯斯西储大学(CWRU)滚动轴承数据中心
采用美国凯斯西储大学(CWRU) 的开放轴承数据库的样本进行实验分析,轴承故障产生的实验台如下图所示。使用电火花加工技术分别在轴承的内圈、外圈和滚动体上引入单点缺陷,故障尺寸分别为 7、14和21英尺,以48kHz采样频率采集不同负载下的故障轴承振动数据用于实验分析。
如下图,为CWRU 滚动轴承数据采集系统:
3.2数据集划分
本文实验样本选取1HP下10种故障状态振动信号,经过傅里叶变换后构建数据集,每类样本长度为1024,其中具体实验样本信息如下表所示。另外每种轴承状态随机选择50%的样本用于模型训练和25%的样本用于模型的验证,25%的样本用于模型测试。
3.2 实验代码
实验环境(基于Tensorflow2.2 进行操作,win10)
3.2.1网络结构
简单的两层卷积加胶囊层的胶囊神经网络。
3.2.2 训练精度
3.2.3 loss
3.3评估预测结果
3.3.1代码
predict = model.evaluate(x_test, y_test, batch_size=4, verbose=1)
3.3.2精度
效果还不错