通俗易懂理解小波池化/WaveCNet

重要说明:本文从网上资料整理而来,仅记录博主学习相关知识点的过程,侵删。

一、参考资料

github代码:WaveCNet

通俗易懂理解小波变换(Wavelet Transform)

二、相关介绍

关于小波变换的详细介绍,请参考另一篇博客:通俗易懂理解小波变换(Wavelet Transform)

1. DWT和IDWT原理

小波变换是可逆的,小波变换可以通过小波分解和重构,恢复原始图像详细。

在这里插入图片描述

对于输入图像 I I I,进行两级小波变换,可以得到:
L L 2 , ( L H 2 , H L 2 , H H 2 ) , ( L H 1 , H L 1 , H H 1 ) = D W T ( D W T ( I ) ) LL2, (LH2, HL2, HH2), (LH1, HL1, HH1) = DWT(DWT(I)) LL2,(LH2,HL2,HH2),(LH1,HL1,HH1)=DWT(DWT(I))
舍弃最高频的子带LH1, HL1和HH1,保留相对低频的LL2, (LH2, HL2, HH2)。最后对保留的二级小波系数进行逆变换,重构图像:
I ′ = I D W T ( L L 2 , L H 2 , H L 2 , H H 2 ) I^{\prime}= IDWT(LL2, LH2, HL2, HH2) I=IDWT(LL2,LH2,HL2,HH2)

三、小波池化

Wavelet Pooling小波池化的思考
小波变换和曲波变换用于池化层

以文献[1]为例,详细介绍小波池化。

1. 引言

池化是舍弃信息来实现正则化的效果。传统的 Max PoolingAverage Pooling都有一些局限性。Max pooling 是一个有效的池化方法,但可能过于简单;Average Pooling会产生模糊。当主要的特征幅度值低于不重要的特征时,重要的特征在max pooling中就丢失了。而Average Pooling接收了幅值大的特征和幅值小的特征,会稀释幅值大的特征。具体如下图所示:

在这里插入图片描述

并且,Average Pooling或Max Pooling是不可逆的。一旦进行平均池化或者最大池化,新的特征空间无法保留原先特征空间的所有信息。而小波池化是可逆的,能恢复所有的原始特征。

2. DWT与IDWT网络层

设计DWT和IDWT网络层的关键问题在于数据的前向(forward propagations)和后向传播(backward propagations)。本章节以1D正交小波和1D信号为例,分析DWT和IDWT。同理,可以推广到其他小波和2D/3D信号,只有细微的变化。

2.1 前向传播(Forward propagation)

对于1D信号 s = { s j } j ∈ Z \mathbf{s}=\{s_{j}\}_{j\in\mathbb{Z}} s={sj}jZ,通过DWT的低通滤波(low-pass filters)分解为低频成分 s 1 = { s 1 k } k ∈ Z \mathbf{s}_{1}=\{s_{1k}\}_{k\in\mathbb{Z}} s1={s1k}kZ,通过DWT的高通滤波(high-pass filters)分解为高频成分 d 1 = { d 1 k } k ∈ Z \mathbf{d}_{1}=\{d_{1k}\}_{k\in\mathbb{Z}} d1={d1k}kZ
{ s 1 k = ∑ j l j − 2 k s j , d 1 k = ∑ j h j − 2 k s j , ( 1 ) \left.\left\{\begin{array}{c}s_{1k}=\sum_jl_{j-2k}s_j,\\d_{1k}=\sum_jh_{j-2k}s_j,\end{array}\right.\right. \quad (1) {s1k=jlj2ksj,d1k=jhj2ksj,(1)
其中, l = { l k } k ∈ Z \mathbf{l}=\{l_{k}\}_{k\in\mathbb{Z}} l={lk}kZ h = { h k } k ∈ Z \mathbf{h}=\{h_{k}\}_{k\in\mathbb{Z}} h={hk}kZ 分别表示正交小波(orthogonal wavelet)的低通滤波(low-pass filters)和高通滤波(high-pass filters)。由 公式 ( 1 ) 公式(1) 公式(1) 可知,DWT包含两个过程:滤波和下采样。

使用IDWT,可以从 s 1 , d 1 s_1,d_1 s1,d1 重构 s s s
s j = ∑ k ( l j − 2 k s 1 k + h j − 2 k d 1 k ) . ( 2 ) s_j=\sum_k\left(l_{j-2k}s_{1k}+h_{j-2k}d_{1k}\right). \quad (2) sj=k(lj2ks1k+hj2kd1k).(2)
用矩阵和向量表示, 公式 ( 1 ) 公式(1) 公式(1) 公式 ( 2 ) 公式(2) 公式(2) 可以重写为:
s 1 = L s , d 1 = H s , ( 3 ) s = L T s 1 + H T d 1 , ( 4 ) \begin{aligned}\mathbf{s}_1&=\mathbf{L}\mathbf{s},\quad\mathbf{d}_1=\mathbf{H}\mathbf{s},\quad&(3)\\\mathbf{s}&=\mathbf{L}^T\mathbf{s}_1+\mathbf{H}^T\mathbf{d}_1,\quad&(4)\end{aligned} s1s=Ls,d1=Hs,=LTs1+HTd1,(3)(4)
其中
L = ( ⋯ ⋯ ⋯ ⋯ l − 1 l 0 l 1 ⋯ ⋯ l − 1 l 0 l 1 ⋯ ⋯ ⋯ ) , ( 5 ) \left.\mathbf{L}=\left(\begin{array}{ccccccc}\cdots&\cdots&\cdots&&&&\\\cdots&l_{-1}&l_0&l_1&\cdots&&\\&\cdots&l_{-1}&l_0&l_1&\cdots\\&&&&\cdots&\cdots\end{array}\right.\right),\quad(5) L= l1l0l1l1l0l1 ,(5)

H = ( ⋯ ⋯ ⋯ ⋯ h − 1 h 0 h 1 ⋯ ⋯ h − 1 h 0 h 1 ⋯ ⋯ ⋯ ) . ( 6 ) \left.\mathbf{H}=\left(\begin{array}{ccccccc}\cdots&\cdots&\cdots&&&\\\cdots&h_{-1}&h_0&h_1&\cdots&\\&&\cdots&h_{-1}&h_0&h_1&\cdots\\&&&&\cdots&\cdots\end{array}\right.\right).(6) H= h1h0h1h1h0h1 .(6)

对于2D信号 X \mathbf{X} X,DWT通常对每行(row) 和每列(column)进行1D DWT操作,也就是:
X l l = L X L T , ( 7 ) X l h = H X L T , ( 8 ) X h l = L X H T , ( 9 ) X h h = H X H T , ( 10 ) \begin{gathered} \mathbf{X}_{ll} =\mathbf{L}\mathbf{X}\mathbf{L}^{T}, \left(7\right) \\ \mathbf{X}_{lh} =\mathbf{HXL}^{T}, \left(8\right) \\ \mathbf{X}_{hl} =\mathbf{LXH}^{T}, \left(9\right) \\ \mathbf{X}_{hh} =\mathbf{HXH}^{T}, \left(10\right) \end{gathered} Xll=LXLT,(7)Xlh=HXLT,(8)Xhl=LXHT,(9)Xhh=HXHT,(10)
对应的IDWT可以表示为:
X = L T X l l L + H T X l h L + L T X h l H + H T X h h H . ( 11 ) \mathbf{X}=\mathbf{L}^T\mathbf{X}_{ll}\mathbf{L}+\mathbf{H}^T\mathbf{X}_{lh}\mathbf{L}+\mathbf{L}^T\mathbf{X}_{hl}\mathbf{H}+\mathbf{H}^T\mathbf{X}_{hh}\mathbf{H}.\quad(11) X=LTXllL+HTXlhL+LTXhlH+HTXhhH.(11)

2.2 反向传播(Backward propagation)

对于DWT的反向传播,首先对 公式 ( 3 ) 公式(3) 公式(3) 进行微分操作:
∂ s 1 ∂ s = L T , ∂ d 1 ∂ s = H T . ( 12 ) \frac{\partial\mathbf{s}_1}{\partial\mathbf{s}}=\mathbf{L}^T,\quad\frac{\partial\mathbf{d}_1}{\partial\mathbf{s}}=\mathbf{H}^T.\quad(12) ss1=LT,sd1=HT.(12)
类似的,对于1D IDWT的反向传播,微分操作可以表示为:
∂ s ∂ s 1 = L , ∂ s ∂ d 1 = H . ( 13 ) \frac{\partial\mathbf{s}}{\partial\mathbf{s}_1}=\mathbf{L},\quad\frac{\partial\mathbf{s}}{\partial\mathbf{d}_1}=\mathbf{H}.\quad(13) s1s=L,d1s=H.(13)
2D/3D DWT和IDWT的反向传播过程稍微复杂一点,但与1D DWT和IDWT类似。本文使用有限滤波器,例如Haar小波,它的低通滤波和高通滤波可以表示为: l = 1 2 { 1 , 1 } \mathbf{l}=\frac{1}{\sqrt{2}}\{1,1\} l=2 1{1,1} h = 1 2 { 1 , − 1 } \mathbf{h}=\frac{1}{\sqrt{2}}\{1,-1\} h=2 1{1,1}

在网络层中,对于多通道数据进行逐通道的DWT和IDWT操作。

3. WaveCNets网络模型

3.1 基于小波的通用去噪方法

给定一个2D的噪声数据 X \mathbf{X} X,随机噪声主要表现在其高频成分中。如下图所示,基于小波的通用去噪方法包括三个步骤:

  1. 利用DWT将噪声数据 X \mathbf{X} X 分解为低频成分 X l l \mathbf{X}_{ll} Xll 和高频成分 X l h , X h l , X h h \mathbf{X}_{lh},\mathbf{X}_{hl},\mathbf{X}_{hh} Xlh,Xhl,Xhh
  2. 过滤掉高频成分;
  3. 利用IDWT对处理后的成分进行重构数据。

在这里插入图片描述

3.2 最简单的基于去噪方法的小波

本文选择最简单的基于去噪方法的小波,也就是丢弃高频成分,如下图所示:

在这里插入图片描述

其中, D W T l l \mathrm{DWT}_{ll} DWTll 表示将特征图映射到低频成分的转换。

3.3 基于小波的下采样方法

本文通过用 D W T l l \mathrm{DWT}_{ll} DWTll 替换传统的下采样,设计出WaveCNets网络模型。如下图所示,(a) 表示传统的下采样方法,(b) 表示基于小波的下采样方法。

在这里插入图片描述

在WaveCNets网络中,将max-poolingaverage-pooling 直接替换为 D W T l l \mathrm{DWT}_{ll} DWTll 。同时,将 strided-convolution卷积替换为步长为1的卷积,也就是:
MaxPool s = 2 → DWT l l , ( 14 ) Conv s = 2 → DWT l l ∘ Conv s = 1 , ( 15 ) AvgPool s = 2 → DWT l l , ( 16 ) \begin{aligned}\text{MaxPool}_{s=2}&\to\text{DWT}_{ll},\quad&(14)\\\text{Conv}_{s=2}&\to\text{DWT}_{ll}\circ\text{Conv}_{s=1},\quad&(15)\\\text{AvgPool}_{s=2}&\to\text{DWT}_{ll},\quad&(16)\end{aligned} MaxPools=2Convs=2AvgPools=2DWTll,DWTllConvs=1,DWTll,(14)(15)(16)
其中 M a x p o o l s \mathrm {Maxpool_s} Maxpools C o n v s \mathrm {Conv_s} Convs A v g P o o l s \mathrm {AvgPool_s} AvgPools 分别表示 max-poolingstrided-convolutionaverage-poolings表示步长(stride)。

3.4 WaveCNets模型的优势

D W T l l \mathrm{DWT}_{ll} DWTll 对特征图进行去噪,移除高频成分,特征图尺寸减半。 D W T l l \mathrm{DWT}_{ll} DWTll 输出的低频成分,保存了特征图的主要信息,并提取出可识别的特征。在WaveCNets下采样过程中, D W T l l \mathrm{DWT}_{ll} DWTll 可以抵抗噪声的传播,有利于维持特征图中目标的基本结构。因此, D W T l l \mathrm{DWT}_{ll} DWTll 可以加快深度网络的训练,有利于更好的噪声鲁棒性提高分类模型的精度

4. (TensorFlow)代码实现

Tensorflow实现小波池化层

四、参考文献

[1] Li Q, Shen L, Guo S, et al. Wavelet integrated CNNs for noise-robust image classification[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 7245-7254.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/339722.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型学习之书生·浦语大模型6——基于OpenCompass大模型评测

基于OpenCompass大模型评测 关于评测的三个问题Why/What/How Why What 有许多任务评测,包括垂直领域 How 包含客观评测和主观评测,其中主观评测分人工和模型来评估。 提示词工程 主流评测框架 OpenCompass 能力框架 模型层能力层方法层工具层 支持丰富…

使用Go发送HTTP GET请求

在Go语言中,我们可以使用net/http包来发送HTTP GET请求。以下是一个简单的示例,展示了如何使用Go发送HTTP GET请求并获取响应。 go复制代码 package main import ( "fmt" "io/ioutil" "net/http" …

用BK7251播放音乐

单片机的第一道难关无疑是烧录,如果烧录解决了,那么就有资格挑战各种坑了。 BK7251播放MP3 一、折腾材料 1、软件SDK: bk7251_audio_release_20190826_0701(BK7251 rtt sdk),可以从github,gite…

HCIP网络的类型

一.网络类型: 点到点 BMA:广播型多路访问 -- 在一个MA网络中同时存在广播(泛洪)机制 NBMA:非广播型多路访问 -- 在一个MA网络中,没有泛洪机制-----不怎么使用了 MA:多路访问 -- 在一个…

基于光口的以太网 udp 回环实验

文章目录 前言一、系统框架整体设计二、系统工程及 IP 创建三、UDP回环模块修改说明四、接口讲解五、顶层模块设计六、下载验证前言 本章实验我们通过网络调试助手发送数据给 FPGA,FPGA通过光口接收数据并将数据使用 UDP 协议发送给电脑。 提示:任何文章不要过度深思!万事万…

电工技术实验-电路元件伏安特性测绘

一、 实验目的 1、学会识别常用电路元件的方法 2、验证线性电阻、非线性电阻元件的伏安特性 3、熟悉实验台上直流电工仪表和设备的使用方法 二、实验器材 可调直流稳压电源、直流数字毫安表、直流数字电压表、万用表 二极管、稳压管、白炽灯、线性电阻 三、实验原理 任…

低压防雷箱综合选型应用方案

低压防雷箱是一种用于保护低压配电系统免受雷电过电压的影响的装置,它主要由防雷箱模块、浪涌保护器SPD、接地线等组成。本文将介绍低压防雷箱的作用原理和行业应用解决方案,以及低压防雷箱的选型方法。 低压防雷箱的作用原理 低压防雷箱的作用原理是利…

革新区块链:代理合约与智能合约升级的未来

作者 张群(赛联区块链教育首席讲师,工信部赛迪特聘资深专家,CSDN认证业界专家,微软认证专家,多家企业区块链产品顾问)关注张群,为您提供一站式区块链技术和方案咨询。 代理合约(Prox…

职业规划,软件开发工程师的岗位任职资格

软件工程师是指从事软件开发的人,主要的工作涉及到项目培训和项目设计两个方面。在实际工作中,软件工程师是一个广义的概念,包括了很多与软件相关的人员。除开最基础的编程语言,还有数据库语言等等。从事这份工作,需要…

多标签节点分类

Multi-Label Node Classification on Graph-Structured Data,TMLR’23 Code 学习笔记 图结构数据的多标签分类 节点表示或嵌入方法 通常会生成查找表,以便将相似的节点嵌入的更近。学习到的表示用作各种下游预测模块的输入特征。 表现突出的方法是基于随机游走(ran…

【Spring 篇】MyBatis注解开发:编写你的数据乐章

欢迎来到MyBatis的音乐殿堂!在这个充满节奏和韵律的舞台上,注解是我们编写数据乐章的得力助手。无需繁琐的XML配置,通过简单而强大的注解,你将能够轻松地与数据库交互。在这篇博客中,我们将深入探讨MyBatis注解开发的精…

MySQL数据库 | 事务中的一些问题(重点)

文章目录 什么是事务?事务的几个特性(ACID) -重点原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability) Mysql中事务操作隐式事务显式事务 savepoint关键字只读事务事务中的一些问题(重点)隔离级别脏读解决办法 幻读解决…

C语言实战系列一:经典贪食蛇

C语言学习必须实战&#xff0c;并且学完语法后就必须立即用实战来巩固。一般需要10来个比较复杂的程序才能掌握C语言。今天就教大家第一个小程序&#xff0c;贪食蛇。 首先上代码 一、代码 #include <stdio.h> #include <stdlib.h> #include <curses.h> #…

Leetcode的AC指南 —— 栈与队列:20. 有效的括号

摘要&#xff1a; **Leetcode的AC指南 —— 栈与队列&#xff1a;20. 有效的括号 **。题目介绍&#xff1a;给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字…

Linux系统中内核音频驱动实现

本文以I2S接口为例介绍Linux内核音频相关知识。 一、名词介绍 下面是音频调试中常见的名词缩略语。 1、AEC&#xff08;Acoustic Echo Cancellor&#xff09;&#xff1a;回声消除。 2、AGC&#xff08;Automatic Gain Control&#xff09;&#xff1a;自动增益补偿&#xf…

ZEM20台式扫描电子显微镜在三元材料锂电池中的应用

在当今环保能源需求日益增长的背景下&#xff0c;新型储能材料特别是锂离子电池在新能源汽车和移动互联网设备中的应用越来越广泛。其中&#xff0c;以镍钴锰三元素为基础的分层材质因具有体系能量密度高、原材料来源广、合成过程相对简单等优势&#xff0c;被公认为最有应用前…

字符串展开(Python)

展开字符串中用-压缩的连续小写字母或者数字&#xff0c;不是压缩形式的-不用理会&#xff0c;-没有压缩字符的去除-。 (笔记模板由python脚本于2024年01月21日 18:18:19创建&#xff0c;本篇笔记适合熟悉 p y t h o n python python字符串和列表的coder翻阅) 【学习的细节是欢…

Java线程池七大参数详解和配置(面试重点)

一、corePoolSize核心线程数 二、maximunPoolSize最大线程数 三、keepAliveTime空闲线程存活时间 四、unit空闲线程存活时间的单位 五、workQueue线程工作队列 1、ArrayBlockingQueue FIFO有界阻塞队列 2、LinkedBlockingQueue FIFO无限队列 3、PriorityBlockingQueue V…

2023年度环境电器行业数据分析(洗地机、扫地机器人、吸尘器等)

在家电行业整体消费不振的环境下&#xff0c;环境电器市场也受到影响&#xff0c;2023年度市场大盘销售呈下滑趋势。根据鲸参谋平台的数据显示&#xff0c;2023年京东平台环境电器市场的销量累计约7100万&#xff0c;同比下滑约12%&#xff1b;销售额约360亿&#xff0c;同比下…

二.用户和权限管理(一)

用户和管理权限 1.用户管理1.1登录MySQL服务器1.2创建用户1.3修改用户1.4删除用户1.5设置当前用户密码1.6 修改其它用户密码 2.权限管理2.1权限列表2.2授予权限的原则2.3授予权限2.4产看权限2.5收回权限 3.权限表3.1user表3.2db表3.3tables_priv表和columns_priv表3.4procs_pri…