论文的工作属于深度学习在工业界的应用,借鉴计算机视觉的解决方法,针对机器故障检测的场景提出自适应的APReLU,对故障检测的准确率有很大的提升。论文整体思想应该也可以应用于计算机视觉,代码也开源了,大家可以尝试下



来源:晓飞的算法工程笔记 公众号

论文: Deep Residual Networks with Adaptively Parametric Rectifier Linear Units for Fault Diagnosis

Introduction


  论文讨论的场景是电子设备的错误检测,由于在苛刻环境下长期运行,电子设备经常会不可避免地出现故障,进而造成意外和损失。而振动信号(vibration signal)通常包含由于机器故障引起脉冲和波动,可用来检测设备故障。近期,深度学习方法也被用于电子设备的错误检测中,将振动信号作为输入,输出当前设备是否正常。

  主流的分类神经网络使用一组完全相同的非线性变换来处理不同的输入,如图a所示,F、G和H代表非线性变化,\(=\)代表非线性变换是否相同。对于振动信号场景而言,相同健康状态的机器,由于当前操作不同,反馈的振动信号的差异可能较大,很难将不同波形的归为同一健康状态。相反的,不同健康状态的机器偶然会产生相同的振动信号,神经网络会将其映射到相近的区域,难以区分。综上,固定的非线性变换在振动信号场景中可能会对特征学习能力带来负面的影响,能够自动学习并根据输入信号使用不同的非线性变换是十分有意义的。

  论文基于ResNet提出了改进版ResNet-APReLU,如图b所示,根据输入信号赋予不同的非线性变换,具体是通过插入一个类似SE(squeeze-and-excitation)模块的子网来调整激活函数的斜率,能够大幅提升故障检测的准确率。由于论文的场景比较特殊,所以主要学习论文提出的方法,至于应用场景相关的部分和实验部分,就简单地带过就好了。

Fundamentals of classical ResNets


  论文以ResNet为基础,ResNet的核心结构如图2a所示,相信各位都很清楚,就不再介绍了。将ResNet应用到机器错误识别中,如图2b所示,输入振动信号,经过网络的特征提取后进行状态识别,判断机器是健康还是处于其它错误状态中。论文的核心是通过改进ReLU进行自适应的非线性变换,原版ReLU可公式化为:

Design of the developed ResNet-APReLU


Design of the fundamental architecture for APReLU

  APReLU集成了一个特别设计的子网,有点类似于SE模块,根据输入自适应地预测用于非线性变换的乘法因子,结构如图3a所示,输出channel-wise的ReLU参数,包含以下步骤:

  1. 用ReLU和GAP将输入特征映射到1D向量,获取正面特征(positive feature)的全局信息。用min(x, 0)和GAP将输入特征映射到另一个1D向量,获取负面特征(negative feature)的全局信息,负面信息可能包含某些有用的故障信息。GAP能够处理信号的偏移问题,将输入特征图信息压缩为两个1D向量,分别代表正面和负面信息。
  2. 将两个1D向量Concate到一起,进行FC-BN-ReLU-FC-BN-Sigmoid计算,两个FC的输出与输入特征的维度一致,最后sigmoid输出用于公式10的\(\alpha \in (0, 1)\)因子:

Architecture of the developed ResNet-APReLU for vibration-based gearbox fault diagnosis

  基于APEeLU构建新的ResBlock,如图b所示,与原版的ResBlock基本一致,只是将ReLU替换为APReLU进行自适应非线性激活。APReLU的输出大小跟输入大小一样,可以简单地嵌入到各种网络中。完整的网络结构如图c所示,最后输出多个机器状态的预测,计算交叉熵损失,进行梯度下降学习。

Experimental Results


  从结果来看,针对机器故障的场景,论文提出的方法是十分有效的。

Conclustion


  论文的工作属于深度学习在工业界的应用,借鉴计算机视觉的解决方法,针对机器故障检测的场景提出自适应的APReLU,对故障检测的准确率有很大的提升。论文整体思想应该也可以应用于计算机视觉,代码也开源了,大家可以尝试下。





如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

APReLU:跨界应用,用于机器故障检测的自适应ReLU | IEEE TIE 2020的更多相关文章

  1. XMOS发布集单片机,AI,FPGA,DSP于一身的跨界处理器完全体xcore.ai,致力于AIOT,售价1美元起步

    说明:XMOS这次致力于打造全新的,颠覆性的嵌入式平台,简化开发人员要学一堆东西才能开发一款高性能AIOT产品的痛点. XCORE.AI集单片机,AI,FPGA,DSP于一身,嵌入式软件开发人员可以灵 ...

  2. 跨界玩AR,迪奥、Hugo Boss等知名奢侈品牌将制造AR眼镜

    Snapchat因为阅后即焚消息应用而被人所熟知,前段时间这家公司拓展主要业务,未来将不再只有消息应用,还有款名为"Spectacles"的AR太阳镜.内置了一个摄像头,戴上之后即 ...

  3. JJ Ying:越来越跨界的界面设计

    2013年6月29号  星期六  小雨  @大众点评 利用非界面设计的专业知识来提升界面设计 向平面设计跨界 向工业设计的跨界 向摄影跨界 向动向的的跨界 向程序跨界 讲师介绍: JJ Ying /  ...

  4. 跨界!Omi 发布多端统一框架 Omip 打通小程序与 Web 腾讯开源 2月28日

    https://mp.weixin.qq.com/s/z5qm-2bHk_BCJAwaodrMIg 跨界!Omi 发布多端统一框架 Omip 打通小程序与 Web 腾讯开源 2月28日

  5. 2016年终总结--一个Python程序猿的跨界之旅

    时间过得真快.感觉15年年终总结刚写完,16年就结束了.看了blog,16年就写了可怜的8篇,对我来说16年还算顺风顺水. 真正可能出乎意料的是年底我离开了呆了2年半的龙图游戏,临时放弃了用了3年半的 ...

  6. java web框架发展的新趋势--跨界轻型App

    “跨界(cross over)在汽车界已然成风,将轿车.SUV.跑车和MPV等多种不同元素融为一体的混搭跨界车型,正在成为汽车设计领域的新趋势.从个人而言,当包容.多元的审美要求和物质要求越来越强烈时 ...

  7. 在路上:安全公司“跨界”SD-WAN

    编者按:本文是SDNLAB“企业+”特别报道之一.“企业+”是SDNLAB重点打造的栏目,汇聚信息行业运营商.设备商.互联网公司.软件公司.集成公司.融创投资公司.科研院所等企业,重新定义IT行业撮合 ...

  8. 记View跨界平局

    <?xml version="1.0" encoding="utf-8"? > <RelativeLayout xmlns:android=& ...

  9. 跨界 - Omi 发布多端统一框架 Omip 打通小程序与 Web

    Omip 今天,Omi 不仅仅可以开发桌面 Web.移动 H5,还可以直接开发小程序!直接开发小程序!直接开发小程序! Github Omi 简介 Omi 框架是微信支付线研发部研发的下一代前端框架, ...

  10. 伪类+js实现CSS3 media queries跨界准确判断

    @media screen and (min-width: 45em) { body:after{ content:"宽屏" } } var content = window.ge ...

随机推荐

  1. GCC项目的文件组织和编译步骤分解

    C项目的文件组织和编译 C项目的代码, 由头文件(.h后缀)和C文件(.c后缀)组成 C语言的函数和变量, 分声明和定义两个阶段 头文件和C文件是等价的, 相当于C文件的一部分, 其功能由人为划分, ...

  2. 如何避免FOUC

    如何避免FOUC FOUC即无样式内容闪烁也可以称为文档样式短暂失效,主要就是指HTML已加载而样式表并未加载,此后样式表再加载而产生的闪烁现象. 样式表前置 根据浏览器渲染的顺序,将CSS在< ...

  3. 统信UOS系统开发笔记(一):国产统信UOS系统搭建开发环境之虚拟机安装

    前言   开发国产应用,需要使用到统信UOS系统,之前已经开发过国产银河麒麟V4.V7和V10版本了,本次新项目使用到统信UOS,记录UOS虚拟机安装流程,方便快捷进行相关开发工作.   提前准备 V ...

  4. Hi3516开发笔记(九):在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面

    前言   之前启动Qt界面程序失败了,是因为需要引入HiSDK的BSP中的HiMPP,并对HiMPP进行初始化设置.   在sdk中查询海思SDK头文件和库       在Qt中调用海思BSP   在 ...

  5. contextmanager装饰器

    虽然上下文管理器很好用,但定义一个符合协议的管理器对象其实挺麻烦的 得首先创建一个类,然后实现好几个魔法方法.为了简化这部分工作,python 提供了一个非常好用的工具:@contextmanager ...

  6. linux下MariaDB安装

    一条命令安装Mariadb 首先在/etc/yum.repos.d下创建一个MariaDB.repo文件 vim /etc/yum.repos.d/MariaDB.repo 添加以下配置 [maria ...

  7. vue upload 图片转base64、转二进制数组,保存编码数据到文件

    功能需求 1.图片转base64 2.base 64 转二进制数组 3.保存二进制数据到文件下载到本地 解决方法 问题1: 参考资料 vue element upload图片 转换成base64 具体 ...

  8. [逆向] FS寄存器

    偏移 说明 00 指向SEH链表指针 04 线程堆栈顶部(地址最小) 08 线程堆栈底部(地址最大) 0c SubSystemTib 10 FiberData 14 ArbitraryUserPoin ...

  9. C++ 多线程笔记1 线程的创建

    C++ 多线程笔记1 线程的创建 里面代码会用到的头文件 #include <iostream> #include <string> #include <memory&g ...

  10. Java与sql中的字符串表示

    在 Java 中,双引号 "" 用于表示字符串字面量,而单引号 '' 用于表示字符字面量.这意味着在 Java 中,您可以使用双引号来包围包含任意数量字符的字符串,包括零个字符(空 ...