Python环境下基于深度学习的旋转机械故障诊断及其权重可视化

随着神经网络所要完成的任务越来越智能化,其内部的结构也变得越来越复杂,神经网络学到的解题方法也越来越难以被人类所理解。神经网络的内部单元就好比一个"黑箱",虽然这种处理方法能够在某种程度上达到非常不错的效果,但其原因却非常模糊不清,例如卷积核在学习提取特征的过程中,究竟学习到的是什么?在卷积神经网络的架构设计中应该设计多少层网络、每层又该包含多少的卷积核数,以及如何选择激活函数,且为什么某些选择会优于另一些选择?这些问题的答案不仅有利于提升我们对CNN的科学理解,而且还能提升它们的实用性。随着神经网络越来越多地参与解决现实世界中的问题,解决这个"黑箱"问题也变得越发重要。

然而人们对这些网络工作原理的理解仍然滞后于其发展,至今没有人能够从数学原理上对该模型予以解释。研究者们都是通过不断的试错和反复的调参过程才得到较为满意的结果。这对理论研究者,尤其是数学家来说当然是不可接受的。此外,目前实现CNN的方法需要大量训练数据,而且不同的模型设计对结果有着很大的影响。从理论上更深入地理解卷积神经网络能够减轻对数据驱动设计的依赖。尽管已有实证研究调查了所实现的网络的运行方式,但到目前为止,这些结果很大程度上还局限在内部处理过程的可视化上,即理解CNN中不同层中发生的情况。

神经网络的特征层可视化是一个新兴的科学研究领域,虽然无法完全"打开"这个"黑箱",但是仍然出现了很多探索这个"黑箱"的尝试工作。神经网络的可视化研究,具体来说是对神经网络所提取的特征的可视化研究,不仅有助于理解网络内部结构的工作机制,而且对神经网络在其他应用上的研究也具有指导意义,避免了盲目的调参或试错。神经网络的训练涉及大量的反复试错,直到找到合适的参数为止,这个过程既耗时又容易出错。另外一个训练好的神经网络相当于含百万参数的复杂非线性函数,很难指出其优缺点。神经网络用在其他领域如工业、政府机构及医疗机构等同样会因为其内部的"黑盒"特性而很难让人们理解。试想一名医生若用深度神经网络的方法来诊断一位病人,除非该医生能够理解神经网络的工作原理他才有可能相信这种自动诊断方法。更好地理解这些网络能够帮助研究者们找到新的指导训练网络的方法,对常用网络中的缺陷进行检测并对其进行改善,使得训练的网络层数更深、提取的特征更加有效。

鉴于此,本项目采用卷积神经网络对滚动轴承进行故障诊断并进行特征可视化,采用的数据集为西储大学轴承数据集,Python版本为3.9.0,所用部分模块如下:

复制代码
import numpy as np
import tensorflow as tf
from tensorflow.keras.applications.vgg19 import VGG19
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.vgg19 import preprocess_input
from tensorflow.keras.models import Model, load_model

重要模块版本如下:

复制代码
tensorflow=2.8.0
keras=2.8.0
sklearn=1.0.2

部分出图如下:

完整代码可由知乎学术咨询获得:

Python环境下基于深度学习的旋转机械故障诊断及其权重可视化

工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任《中国电机工程学报》优秀审稿专家,《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》,《宇航学报》等EI期刊审稿专家。

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
花间相见16 小时前
【大模型微调与部署01】—— ms-swift-3.12入门:安装、快速上手
开发语言·ios·swift
weixin_4585801216 小时前
CSS如何通过Emotion管理样式加载顺序_处理组件优先级问题
jvm·数据库·python
qq_3345635516 小时前
golang如何优化GORM查询性能_golang GORM查询性能优化方法
jvm·数据库·python
weixin_4249993616 小时前
CSS如何处理移动端弹窗背景滚动_使用JS控制配合CSS样式锁定
jvm·数据库·python
xcbrand16 小时前
地产建筑品牌策划公司哪家强
大数据·人工智能·python
刘~浪地球16 小时前
当AI开始“授课“:教育AI是解放老师还是取代老师?
人工智能
m0_5150984216 小时前
golang如何实现日志按级别过滤_golang日志按级别过滤实现教程
jvm·数据库·python
wen__xvn16 小时前
天梯赛L2刷题(也就写写水题骗骗自己了)
算法
chaofan98016 小时前
Claude 4.7 Opus 深度测评:智能体编码跑分暴涨 10%,开发者要失业了?
人工智能·自动化·api
m0_6742946416 小时前
怎么为MongoDB事务调优:将读操作尽量移到事务外面执行
jvm·数据库·python