IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【论文精读】时序逻辑推理之时序神经网络 Interpretable Fault Diagnosis of Rolling Element Bearings with TLNN -> 正文阅读

[人工智能]【论文精读】时序逻辑推理之时序神经网络 Interpretable Fault Diagnosis of Rolling Element Bearings with TLNN

前言:师兄组会上的一篇文章, 给结构学习提供了新思路, 自己仔细读一读记点笔记.

主要参考文献:
Chen, G., Lu, Y., Su, R., & Kong, Z. (2022). Interpretable Fault Diagnosis of Rolling Element Bearings with Temporal Logic Neural Network. ArXiv. https://doi.org/10.48550/arXiv.2204.07579

概览

本文亮点:

  1. 用神经网络的反向传播特性来学习公式结构
  2. 通过结构学习解决的是数据的拟合而非分类问题
  3. wSTL的引入

流水账笔记

1 Introduction

本文的中心论点其实有点奇怪, 全片放在故障诊断的框架下谈, 但我感觉STL的结构学习算法才是这篇论文的核心.

故障诊断通常是用DL来做的, 但是传统的DL神经网络通常是黑箱一般的存在, 究竟是根据怎样的依据进行分类的不得而知。

因此本文的研究意义是为了给DL提供形式化解释——时序逻辑的可解释性便为DL可解释性的研究提供了一条新思路.

TLNN的主要思想: 用神经网络编码STL的公式结构


2 Preliminaries

STL

之前介绍过很多次了, 这里不再赘述。

wSTL

wSTL的定义是使用神经网络的基础. 这里重点要搞清楚wSTL和STL有什么样的区别. 顾名思义, wSTL多了一个权重的概念, 那么这个权重是加在哪里呢?

φ : = μ ∣ ? φ ∣ ∧ i = 1 : N w φ i ∣ ∨ i = 1 : N w φ i ∣ ? [ τ 1 , τ 2 ) w φ ∣ □ [ τ 1 , τ 2 ) w φ \varphi:=\mu|\neg \varphi| \wedge_{i=1: N}^{w} \varphi_{i}\left|\vee_{i=1: N}^{w} \varphi_{i}\right| \nabla_{\left[\tau_{1}, \tau_{2}\right)}^{w} \varphi \mid \square_{\left[\tau_{1}, \tau_{2}\right)}^{w} \varphi φ:=μ?φi=1:Nw?φi?i=1:Nw?φi??[τ1?,τ2?)w?φ[τ1?,τ2?)w?φ

  • 对于布尔操作子, 权重加在子公式上
  • 对于时序操作子, 权重加在不同的时间点上.

Weighted robustness degree

定义:

ρ w ( x , f ( x ) ≥ c , t ) : = w 2 ( f ( x ( t ) ) ? c ) ρ w ( x , f ( x ) < c , t ) : = w 2 ( c ? f ( x ( t ) ) ) ρ w ( x , ? φ , t ) : = ? ρ w ( x , φ , t ) ρ w ( x , ∧ i = 1 : N w φ i , t ) : = g ∧ ( w , [ ρ w ( x , φ i , t ) ] i = 1 : N ) ρ w ( x , ∨ i = 1 : N w φ i , t ) : = g ∨ ( w , [ ρ w ( x , φ i , t ) ] i = 1 : N ) ρ w ( x , □ [ τ 1 , τ 2 ] w φ , t ) : = g □ ( w , [ ρ w ( x , φ , t ) ] t ′ ∈ [ t + τ 1 , t + τ 2 ] ) ρ w ( x , ? [ τ 1 , τ 2 ] φ , t ) : = g ? ( w , [ ρ w ( x , φ , t ) ] t ′ ∈ [ t + τ 1 , t + τ 2 ] ) \begin{array}{ll}\rho^{w}(x, f(x) \geq c, t) & :=\frac{w}{2}(f(x(t))-c) \\ \rho^{w}(x, f(x)<c, t) & :=\frac{w}{2}(c-f(x(t))) \\ \rho^{w}(x, \neg \varphi, t) & :=-\rho^{w}(x, \varphi, t) \\ \rho^{w}\left(x, \wedge_{i=1: N}^{w} \varphi_{i}, t\right) & :=g^{\wedge}\left(w,\left[\rho^{w}\left(x, \varphi_{i}, t\right)\right]_{i=1: N}\right) \\ \rho^{w}\left(x, \vee_{i=1: N}^{w} \varphi_{i}, t\right) & :=g^{\vee}\left(w,\left[\rho^{w}\left(x, \varphi_{i}, t\right)\right]_{i=1: N}\right) \\ \rho^{w}\left(x, \square_{\left[\tau_{1}, \tau_{2}\right]}^{w} \varphi, t\right) & :=g^{\square}\left(w,\left[\rho^{w}(x, \varphi, t)\right]_{t^{\prime} \in\left[t+\tau_{1}, t+\tau_{2}\right]}\right) \\ \rho^{w}\left(x, \diamond_{\left[\tau_{1}, \tau_{2}\right]} \varphi, t\right) & :=g^{\diamond}\left(w,\left[\rho^{w}(x, \varphi, t)\right]_{t^{\prime} \in\left[t+\tau_{1}, t+\tau_{2}\right]}\right)\end{array} ρw(x,f(x)c,t)ρw(x,f(x)<c,t)ρw(x,?φ,t)ρw(x,i=1:Nw?φi?,t)ρw(x,i=1:Nw?φi?,t)ρw(x,[τ1?,τ2?]w?φ,t)ρw(x,?[τ1?,τ2?]?φ,t)?:=2w?(f(x(t))?c):=2w?(c?f(x(t))):=?ρw(x,φ,t):=g(w,[ρw(x,φi?,t)]i=1:N?):=g(w,[ρw(x,φi?,t)]i=1:N?):=g(w,[ρw(x,φ,t)]t[t+τ1?,t+τ2?]?):=g?(w,[ρw(x,φ,t)]t[t+τ1?,t+τ2?]?)?

  • 对于形如 f ( x ) > c f(x)>c f(x)>c f ( x ) < c f(x)<c f(x)<c的一阶命题, 加权鲁棒度的权重是给定权值 w w w的一半(咱也不知道为什么这么定义).
  • 对于逻辑操作子, 针对不同的原子命题的权重进行激活
  • 对于时序操作子, 针对不同时刻的权重进行激活

Activation function

Υ = ( g ∧ , g ∨ , g □ , g ? ) \Upsilon=\left(g^{\wedge}, g^{\vee}, g^{\square}, g^{\diamond}\right) Υ=(g,g,g,g?)根据权重激活STL式子中的子公式, 具体函数在后面进行定义。


3 Temporal Logic Neural Network

作者用下面这个神经网络 (TLNN) 完成了信号鲁棒度的计算. 输入的是一个多维信号, 输出是wSTL的鲁棒度.
在这里插入图片描述
接下来介绍每一层干了什么:

前情提要: M = d i m ( x ) × 4 M=dim(x)\times 4 M=dim(x)×4, 代表每条通道的4条一阶、二阶公式组合

L1L2L3L4L5
神经元个数信号采样点的个数 n n n n × M n \times M n×M模板数 M M M2: and和or1个and神经元
单神经元输入 t t t时刻信号值某时刻信号值 μ i ( t ) \mu_i(t) μi?(t) M M M个候选公式的鲁棒度and和or组合的鲁棒度 ρ 4 \rho^4 ρ4
单神经元输出M个值, o i ( t ) , . . . , o M ( t ) o_i(t),..., o_M(t) oi?(t),...,oM?(t), o i ( t ) o_i(t) oi?(t)表示第 t t t时刻对应的神经元的第 i i i个输出, 分别对应M个候选公式 (不包含任何操作子的最简形式, 因此可以推测 M = d i m ( x ) × 4 M=dim(x)\times 4 M=dim(x)×4)零阶命题的鲁棒度 μ i ( t ) \mu_i(t) μi?(t),即 ρ i 2 , 1 = 1 : n \rho_i^2,1=1:n ρi2?,1=1:n简单公式的鲁棒度 ρ i 3 , i = 1 : M \rho_i^3,i=1:M ρi3?,i=1:Mand或or组合后的鲁棒度 ρ 4 \rho^4 ρ4and组合后的鲁棒度
待学习参数无参数向量 W 1 = [ W 1 1 , W 2 1 , . . . , W M 1 ] W^1=[W^1_1, W^1_2,...,W^1_M] W1=[W11?,W21?,...,WM1?] (STL尺度参数) θ e , θ d , [ τ 1 , τ 2 ] , W 2 \theta_e,\theta_d,[\tau_1,\tau_2],W^2 θe?,θd?,[τ1?,τ2?],W2 W 3 W^3 W3各模板的组合权重 W 4 W^4 W4组合权重

Layer 1 (Input layer)

这一层可以看作一个数据分发器. 把 t t t时刻的信号复制 M M M份分发给不同的代选公式中.

Layer 2 (Predicate layer)

第二层计算最简公式(零阶命题)的加权鲁棒度.
每个神经元代表一个命题, 调用 ρ i 2 = μ i ( t ) = f ( x ( t ) ) ? W i 1 \rho^2_i=\mu_i(t)=f(x(t))-W^1_i ρi2?=μi?(t)=f(x(t))?Wi1?计算鲁棒度序列, 由此式可以看出,这一层神经元的待学习参数 W 1 = [ W 1 1 , W 2 1 , . . . , W M 1 ] W^1=[W^1_1,W^1_2,...,W^1_M] W1=[W11?,W21?,...,WM1?]分别为 M M M个公式模板中的STL的尺度参数。

Layer 3 (Atomic formula layer)

在这一层计算一阶、二阶的鲁棒度,通过时序操作子将 M M M个零阶公式的鲁棒度序列组合起来。

在这里插入图片描述

此层的神经元结构如上图所示.

Auto-Encoder

为什么要这样先编码再解码呢?是不是多此一举?这里这个结构叫做自编码器(Auto-Encoder)。

Encoder的作用是把输入的高维鲁棒度序列 ρ i 2 \rho^2_i ρi2?先转化为隐变量 h h h, decoder的作用是把 h h h还原到原始的维度, 传统的AE希望输出能够与输入近似。

这是在干什么呢?可以想象这个神经网络通过自己的消化理解后,找到输入的内在规律后,将输入的序列背诵了出来。根据正常数据训练出来的Autoencoder,能够将正常样本重建还原,但是却无法将异常分布的数据点较好地还原,导致还原误差较大。在时间序列异常检测场景下,如果自编码器无法还原正确还原输入,则说明输入的时间序列存在异常。

但是这篇文章中AE的作用比较牵强,并不是向上面一样进行异常检测,而是强行训练出信号点的权重时间序列。强行把自编码器的隐变量解释为时间参数 [ τ 1 , τ 2 ] [\tau_1,\tau_2] [τ1?,τ2?]

在解码之前,AE还对隐变量 h h h进行了进一步操作, 将其转换为我们想要得到的时间参数 τ 1 , τ 2 \tau_1,\tau_2 τ1?,τ2?。文中称这个过程为量化,方便最后能够直接读出时间参数。其过程如下:

h 1 , h 2 h_1,h_2 h1?,h2?进行量化 (转化成整数序号),其中 △ \triangle 是量化阶梯的长度。
Q ( x ) = { l x < l u x > u l + Δ ( i + κ ( x ) + 1 2 ) x ∈ P i Q(x)=\left\{ \begin{array}{cl} l & x<l \\ u & x>u \\ l+\Delta(i+\frac{\kappa(x)+1}{2}) & x\in\mathcal{P_i} \\ \end{array} \right. Q(x)=????lul+Δ(i+2κ(x)+1?)?x<lx>uxPi??

当然需要保证计算过程可导, 其中 k k k是一个超参数, 决定阶梯的平滑程度.

κ ( x ) = 1 t a n h ( 0.5 k △ ) t a n h ( k ( x ? l ? ( i + 0.5 ) △ ) ) \kappa(x)=\frac{1}{tanh(0.5k\triangle)tanh(k(x-l-(i+0.5)\triangle))} κ(x)=tanh(0.5k)tanh(k(x?l?(i+0.5)))1?

Activation Function

说完了自编码器的作用,接下来将 g ( μ i , W i ) g(\mu_i,W_i) g(μi?,Wi?)函数的作用。这个函数被称为激活函数(Activation Function)。四种公式模板对应4种神经元,需要分别编写激活函数。

论文中将自编码器的输出作为时序权重来计算鲁棒度序列 μ i \mu_i μi? ρ i 2 \rho^2_i ρi2?相对于简单公式模板的鲁棒度。

怎么理解这一步激活呢?文中的写法有点问题,这里应该就是求第一步中得到的鲁棒度序列的最大最小值了。更正后如下:

1. always
g □ ( ρ 2 , W 2 ) = ρ ω ( x , □ [ τ 1 , τ 2 ] W 2 φ i , t ) g^\square(\rho^2,W^2)=\rho^\omega(x,\square^{W^2}_{[\tau_1,\tau_2]}\varphi_i,t) g(ρ2,W2)=ρω(x,[τ1?,τ2?]W2?φi?,t)
2. eventually
g ? ( ρ 2 , W 2 ) = ρ ω ( x , ? [ τ 1 , τ 2 ] W 2 φ i , t ) g^\diamond(\rho^2,W^2)=\rho^\omega(x,\diamond^{W^2}_{[\tau_1,\tau_2]}\varphi_i,t) g?(ρ2,W2)=ρω(x,?[τ1?,τ2?]W2?φi?,t)
3. eventually always
对于含有两个时序算子的,激活函数复杂一些,但是这里依然只要有两个时间参数 τ 1 , τ 2 \tau_1,\tau_2 τ1?,τ2? τ 0 \tau_0 τ0?是写死的。
g □ ? ( ρ i 2 , W 2 ) = ρ ω ( x , ∧ j = 0 : τ 0 ? [ τ 1 + j , τ 2 + j ] W 2 φ i , t ) g^{\square\diamond}(\rho^2_i,W^2)=\rho^{\omega}(x,\land_{j=0:\tau_0}\diamond^{W^2}_{[\tau_1+j,\tau_2+j]}\varphi_i,t) g?(ρi2?,W2)=ρω(x,j=0:τ0???[τ1?+j,τ2?+j]W2?φi?,t)
4. always eventually
g ? □ ( ρ i 2 , W 2 ) = ρ ω ( x , ∨ j = 0 : τ 0 □ [ τ 1 + j , τ 2 + j ] W 2 φ i , t ) g^{\diamond\square}(\rho^2_i,W^2)=\rho^{\omega}(x,\lor_{j=0:\tau_0}\square^{W^2}_{[\tau_1+j,\tau_2+j]}\varphi_i,t) g?(ρi2?,W2)=ρω(x,j=0:τ0??[τ1?+j,τ2?+j]W2?φi?,t)

为了保证每一步可导,这里当然也需要平滑化处理,文章用的平滑方法为arithmetric-geometric integral mean

min ? ~ { [ x 1 , x 2 , . . . , x N ] } = { [ Π i = 1 : N ( 1 + x i ) ] 1 N ? 1 ? x i > 0 , i = 1 , . . . , n 1 N ∑ i = 1 : N [ x i ] ? o t h e r w i s e \tilde{\min}\{[x_1,x_2,...,x_N]\}=\left\{ \begin{array}{cl} [\Pi_{i=1:N}(1+x_i)]^{\frac{1}{N}}-1 & \forall x_i>0,i=1,...,n \\ \frac{1}{N} \sum_{i=1:N}[x_i]_- & otherwise\\ \end{array} \right. min~{[x1?,x2?,...,xN?]}={[Πi=1:N?(1+xi?)]N1??1N1?i=1:N?[xi?]????xi?>0,i=1,...,notherwise?

其中otherwise部分表示:如果存在负值,那最小值肯定是负值,则把正值清零,计算平均值

max ? ~ { [ x 1 , x 2 , . . . , x N ] } = { 1 ? [ Π i = 1 : N ( 1 ? x i ) ] 1 N ? x i < 0 , i = 1 , . . . , n 1 N ∑ i = 1 : N [ x i ] + o t h e r w i s e \tilde{\max}\{[x_1,x_2,...,x_N]\}=\left\{ \begin{array}{cl} 1-[\Pi_{i=1:N}(1-x_i)]^{\frac{1}{N}} & \forall x_i<0,i=1,...,n \\ \frac{1}{N} \sum_{i=1:N}[x_i]_+ & otherwise\\ \end{array} \right. max~{[x1?,x2?,...,xN?]}={1?[Πi=1:N?(1?xi?)]N1?N1?i=1:N?[xi?]+???xi?<0,i=1,...,notherwise?

其中otherwise部分表示:如果存在正值,那最大值肯定是负值,则把负值清零,计算平均值。

Layer 4 (Formula reduction layer)

第4层通过布尔操作子将上面的四种子公式组合起来。

这一层只有两个神经元,一个是and神经元,一个是or神经元
分别把L3中的M个结果加权求最大最小。

Layer 5 (Output layer)

第五层输出最终and加权组合下的公式。


4 TLNN Learning

A. Structure learning

这里补充说明到, M M M的数量并不是事先指定的,而是动态增加的。但是在论文这个框架下是大可不必啊,因为最多也就4种模板。

Neuron reduction

如果某个模板公式的权重太低了,就将其置零。

这一步并不可导,所以推测是最后读取的时候才进行。

Neuron increase

如果最终的鲁棒度输出太离谱了,就在L3增加一个神经元(即增加一种模板),神经元类型为上面4种中随机一种。

这一步就黑人问号??:

  1. 这一步判断实在什么时候进行?如果每次BP都进行一次,那么初期网络岂不是会疯狂生长??如果有模板数量有上限的话,网络会瞬间增长到最大。这样还不如直接固定好模板数,毕竟不多。
  2. 结果不满意继续训练权重就好了,为什么要增加一个一样的神经元重新训练??

B. Parameter Learning

神经网络优化的是输出鲁棒度于理想鲁棒度的差异

L = 1 2 ( y ? y d ) 2 L=\frac{1}{2}(y-y_d)^2 L=21?(y?yd?)2

接下来讲的是反向传播是如何进行链式求导的,没什么创新点,这里就不展开。

最后又发现一个矛盾点:

前面的模板中并没有零阶公式为 x < W i x<W^i x<Wi这个选项,但是这里说 ? ρ i 2 , j ? W j 1 \frac{\partial \rho_i^{2,j}}{\partial W^1_j} ?Wj1??ρi2,j??能够取 ± 1 \pm1 ±1,应该是原作者欠考虑了。


5 Case Studies

背景介绍

实验基于轴承的异常诊断场景,异常数据通过在轴承特定部位上刻蚀一条小缝产生。原始数据还进行了小波变换等一系列处理。
在这里插入图片描述

结果

结果并没有反映出学习出来的权重,wSTL到STL之间怎么进行转换的不得而知。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后还和其他的方法做了对比,结果如下。
在这里插入图片描述


6 Conclusions

创新点:

  • 结合了神经网络
  • 用真实数据集进行了实验

心得与记录

  • 这篇文章比较很多,写得比较乱,请读者谅解
  • 论文没有交代清楚自编码器的作用,也没有交代清楚wSTL到STL的转换关系
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:23:46  更:2022-07-17 16:28:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:47:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码