导航:首页 > 无线网络 > 神经网络一维信号去噪

神经网络一维信号去噪

发布时间:2023-04-04 00:23:06

Ⅰ 利用小波如何去噪

1、 降噪步骤:
(1) 一维信号的小波分解。选择一个小波并确定分解的层次,然后进行分解运算。
(2) 小波分镇锋解高频系数的阈值量化。对各个分解尺度下得高频系数选择阈值进行软阈值量化处理。
(3) 一维小波重构核旅码。根据小波分解的最底层低频系数和各高频系数进行一维小波重构。
matlab里面有关于去噪改哪的函数,你可以找一下~~
这说的只是基本原理,希望有所帮助

Ⅱ 局部干扰的消除

(一)多点线性圆滑

当放射性数据的幅度变化较大时,用圆滑公式处理能较好地减弱背景场的干扰,使背景值的起伏更清晰,异常更突出。这种圆滑可进行一维处理,也可进行二维处理。

1.一维多点线性圆滑

一维圆滑法是从观测序列中分离出趋势部分的一种方法。圆滑结果y(n)用下式计算:

放射性勘探方法

式中,

,N为滑动区间长度,也就是用于求圆滑值的测点数。N为奇数时圆滑值y(n)就是2k+1个测点的平均值,若N为偶数时y(n)置于区间(-k,k)两点之间。

应指出,用(6-72)式计算时,测线两端将各损失k个观测值,N越长,损失越多。对第n点的计算式为

放射性勘探方法

很明显,圆滑后减小了原始数据序列的波动,使得原来的高值变小,低值变大,使曲线变得圆滑了。

这种圆滑过程也是一种简单滤波。还可进行5点、7点、9点、13点、17点公式圆滑,如图6-21是通过多点圆滑后的曲线。从图中可看出,圆滑前、后的曲线很相似,而且圆滑后的曲线突出了长周期波、压低了短周期的波(即高频波),因此也称为“低通滤波”。

图6-21 经5点、9点、13点、17点圆滑后的仿亮曲线

五点谢帕德公式:

放射性勘探方法

七点公式:

放射性勘探方法

一般来说,圆滑点数越多,方次(阶数)越高时,圆滑效果越好,而且最小二乘意义上的谢帕德公式中权系数的总和等于1。也就是说,圆滑后的结果其低频成分很少畸变。

2.二维滑动窗口法

当数据变化比较大时,其中隐含的信息不能被直观地看出来,用二维滑动窗口法处理后,可以压低干扰,突出数据的趋势性变化,揭示数据中隐含的信息,反映不同地质体(包括矿体)引起的场晕特征。该方法的基本步骤:①按比例尺准确绘制原始数据分布图;②选择滑动“窗口”,并求所需要的统计量值。

“窗口”大小取决于数据点分布情况和统计分析目的。若数据点稀疏,“窗口”可大些,密集时可选得小些,以便反映某些细化。若以反映趋势性变化为主时,应选得大些,反之则小些。“窗口”的形状以正方形为宜,有时为了突出某方向的变化,压低另一方向的“干扰”,也可以选择长方形窗口。“窗口”滑动方向首先按步长沿垂直或斜交测量基线方向滑动,例如由西向东滑动,滑到图边,“窗口”向北(或向南)移动一个步长再由此向东滑动,直到图上所有数据统计处理完毕为止。每次滑动后,按落入“窗口”内的数据计算所需要的统计量备此宽,这些统计量可以是平均值、均方差、变异系数、各阶矩、偏度系数、峰度系数等;并把它们分别置于“窗口”的中央,得到相应的统计量数据,据此绘制等值图。滑动步长可选1、1/2或1/3个“窗口”边长。

(二)熵平均法

其基本原理是:在剖面上的n个观测点中,若出现少数几个观测值特高的测点时,为了压掉这些特高异常而不致使所分离的异常(或区域背景)畸变太大,则利用熵平均法的效果要比滑动平均法好。

熵平均法应用了等概率事件具有最大的熵这一基本原理。其计算方法如下:

设在某一剖面上有几个点(下称窗内n个点),则计算这些点的“熵”平均AH的公式如下:

放射性勘探方法

式中:A0为Ai中某一点的值;hi为差值Ai-A0的权系数。

计算权系数hi的公式为

放射性勘探方法

式中:

放射性勘探方法

K值使用此系数是为了使hi成为与对数为底无关的相对值。算法流程:

1)取剖面内n个点,其值相应为A1,A2,…,An

2)从值为A1,A2,…,An的各测点中,选取能使H

=极大的测点;称Ai=A0

从信息论的原理知道,等概事件具有最大的熵,故要使上式极大,必须使与剖面上其余n-1个点的A值的间隔相比扒扰,是最为“等距”的。这样,落在“窗”内变化剧烈的点之值愈大,其对“熵”平均的影响就愈小。

3)计算(6-76)式,即为窗内n个观测点的熵平均值,并作为窗中心点的值。

4)将窗沿测线依次移动一个点,重复上述计算步骤,完成整条剖面。

从图6-22可以看出,熵平均法对于数据中异常尖峰的压制比滑动平均法压得更低,对于数据中异常较宽峰的压制则很少,而对于背景值的拟合,熵平均法比滑动平均法更接近于真实曲线。因此,对于曲线局部干扰的修正来说,熵平均法比滑动平均法效果要好。

图6-22 某一剖面钾元素经熵平均法和滑动平均法处理对比曲线

窗口宽度为3

(三)小波滤波

1.小波去噪的基本思想

一个噪声的一维信号的模型可以表示为如下的形式:

放射性勘探方法

其中:f(n)为真实信号;e(n)为噪声;s(n)为含噪声的信号。

在这里以一个最简单的噪声模型加以说明。即认为e(n)为高斯白噪声N(0,1),噪声级为1,实际工程中,有用信号通常表现为低频信号或是一些比较平稳的信号,而噪声信号则通常表现为高频信号。所以去噪过程可以按如下方法进行处理:首先对信号s(n)进行小波分解,如进行二层分解,则噪声部分通常包含在d1(n)、d2(n)中,因而可以以门限等形式对小波系数进行处理,然后对信号进行重构即可达到去噪的目的。对信号s(n)去噪的目的就是要抑制信号中的噪声部分,从而在s中恢复出真实的信号f(n)。

我们处理的能谱数据是一维离散数据,它包含了正常的区域异常和局部干扰带来的局部异常,而后者就相当于探测信号中的瞬态部分,即时间或空间范围里存在的小范围极高或极低部分,属于高频成分。高频与低频成分的共存使得小波滤波方法可以应用到γ能谱数据处理中,消除统计涨落和局部干扰带来的局部异常而且在保持γ能谱的形状方面避免了以往最小二乘平滑时造成的γ能谱形状畸变的情况。

对于一维信号的小波去噪步骤:

(1)一维信号的小波分解。选择一个小波并确定分解层次N,然后对信号s进行N层小波分解。

(2)对小波分解后的系数进行处理。可以对高频系数进行阀值量化,对第一道第N层的每一层的高频系数,选择一个阀值进行量化处理。

(3)一维小波的重构。根据小波分解的第N层的低频和经过量化处理后的第一到第K层的高频系数,进行一维小波重构。

在这三个步骤之中,第二步是重点。从某种程度上讲,如何选取阀值和如何进行阀值的量化,它直接关系到信号的去噪的质量。

目前,小波去噪的基本方法有:①利用小波变换模极大去噪;②基于各尺度下小波系数相关性去噪;③采用非线性小波变换阀值去噪。

2.小波阀值去噪法的实现

(1)滤波函数

滤波函数有很多,恰当的选择或构造小波函数至关重要。如果我们能正确的选取小波函数,那么进行小波变换时,对于区域异常在时间-尺度域中将集中于某个闭子空间,而局部干扰和统计涨落等因与小波函数差别较大,它们在时间-尺度域中,能量就比较分散。利用这种差别,就可以完成对局部干扰等因素的压制。

γ能谱数据使用较多是Sym小波函数和db6小波函数。Sym小波函数在连续性、支集长度、滤波器长度等方面,它类似于db小波函数,而且没有解析表达式,但其具有更好的对称性,更适合图像处理,减小小波重构时造成的相移。

(2)滤波阈值的选择

小波滤波中,最核心的部分就是对系数作用阈值,因此阈值的选取至关重要。阈值的选取直接影响降噪的质量,所以人们提出了各种理论的和经验的模型。但是,每种模型都有自己的作用范围,不能完全解决所有问题。因此,变换中,各层系数降噪所需要的阈值一般是根据原信号的信号噪声比(这里是随机干扰)来取的。而这个量一般用噪声强度σ来表示。提取σ的方法很多,一般用原信号的小波分解各层系数的标准差来衡量。Matlab中提供了wnoisest来实现这个功能。

STDC=wnoisest(C,L,S)

其中:STDC为标准差;[C,L]为原始信号wavedec命令处理后结果;S为小波层数。

在得到噪声强度后,我们就可以根据噪声强度σ来确定各层的阈值,对噪声强度为σ的信号,常用下面几个阈值模型:

a.缺省阈值模型

阈值求取:

放射性勘探方法

式中:n为信号长度;thr为阈值。

b.Birge-Massart策略确定的阈值

阈值求取:

制订分解层数j,对j+1以及更高层的所有系数保留。

对第i层(1≤i≤j),保留绝对值最大的ni个系数,ni由下式确定:

ni=M(j+2-i)α

式中:M和α为经验系数,缺省情况下取M=L(1),也就是第一层分节后系数的长度,一般情况下,M满足L(1)≤M≤2L(1),α的取值因用途不同而不同。

c.小波包变换中的penalty阈值

令t*为使得函数

放射性勘探方法

取得最小值的t,其中ck为小波包分解系数排序后第k大的系数。n为系数的总数,那么阈值thr=|ct*|,其中σ为信号噪声强度,α为大于1的经验系数。

阈值的选择具有对信号的自适应性,实际应用中,可以根据不同信号的形式,不同的噪声强度,在不同的分解层次,根据不同的规则或经验知识选取。

(3)滤波过程

(a)对离散数据进行小波分解。选定一种小波对信号进行一定层数的分解。可选3次、5次、7次等。

(b)选取合适的阈值。对分解得到的各层系数选择一个合适的阈值,对近似系数和细节系数进行分别处理。

(c)小波重建。将处理后近似系数与细节系数按分解时的分解次数进行重构,得到滤波后数据。

3.实例

在良渚古城墙的探测中,采用小波滤波的方法对地面γ能谱数据进行了处理,使能谱测量的局部干扰噪声得到较好的压制。如图6-23是选取外城墙处γ能谱测量的钾含量原始测量与小波滤波后的对比,可以看出经过滤波后,局部干扰压制,异常边界清晰了。对城墙位置的确定发挥了重要的作用。

Ⅲ Keras快速构建神经网络模型

用Keras搭建神经网络的步骤:

深度学习框架Keras——像搭积木般构建神经网络,主要分为7个部分,每个部分只需要几个keras API函数就能实现,用户即可像搭积木般一层层构建神经网络模型。

1. 创建模型 Create model

2. 添加层级 Add Layer

3. 模型编译 Compile

4. 数据填充 Fit

5. 模型评估 Evaluate

6. 模型预测 Predict

7. 模型保存 Save model

下面章节会对每一部分具体来介绍。。。


Keras 中主要有三类模型:Sequential model, Functional model, Subclass model

在开始创建模型之前,首先需要引入tensorflow和keras模块,然后再创建一个Sequential model

Sequential API定义如下:

layers参数可以为空, 然后通过add method向模型中添加layer,相对应的通过pop method移除模型中layer。


创建Function API模型,可以调用Keras.Model来指定多输入多数出。

Keras.Model定义:



Layers是神经网络基本构建块。一个Layer包含了tensor-in/tensor-out的计算方法和一些状态,并保存在TensorFlow变量中(即layers的权重weights)。
Layers主要分为6个类别,基础层,核心层,卷基层,池化层,循环层,融合层。

对派生类的实现可以用以下方法:
** init (): 定义layer的属性,创建layer的静态变量。
** build(self, input_shape): 创建依赖于输入的变量,可以调用add_weight()。
** call(self, *args, **kwargs): 在确保已调用build()之后,在 call 中调用。
** get_config(self): 返回包含用于初始化此层的配置的字典类型。

创建SimpleDense派生类,在build()函数里添加trainable weights。实现y=input*w +b

结果输出:


创建ComputeSum派生类,在 init 函数里添加 non-trainable weights。实现输入矩阵沿轴0元素相加后,x=x+self.total

结果输出:


核心层是最常用的层,涉及到数据的转换和处理的时候都会用到这些层。

Dense层就是所谓的全连接神经网络层,简称全连接层。全连接层中的每个神经元与其前一层的所有神经元进行全连接。

Dense 实现以下操作: output = activation(dot(input, kernel) + bias) 其中 activation 是按逐个元素计算的激活函数,kernel 是由网络层创建的权值矩阵,以及 bias 是其创建的偏置向量 (只在 use_bias 为 True 时才有用)。


将激活函数应用于输出。输入信号进入神经元后进行的运算处理。

sigmoid、tanh、ReLU、softplus的对比曲线如下图所示:

激活函数可以通过设置单独的激活层Activation实现,也可以在构造层对象时通过传递 activation 参数实现:


Dropout在训练中每次更新时,将输入单元的按比率随机设置为0,这有助于防止过拟合。未设置为0的输入将按1 /(1-rate)放大,以使所有输入的总和不变。

请注意,仅当训练设置为True时才应用Dropout层,以便在推理过程中不会丢弃任何值。 使用model.fit时,训练将自动适当地设置为True。


将输入展平。不影响批量大小。注意:如果输入的形状是(batch,)没有特征轴,则展平会增加通道尺寸,而输出的形状是(batch, 1)。


将输入重新调整为特定的尺寸


将任意表达式封装为Layer对象。在Lambda层,以便在构造模型时可以使用任意TensorFlow函数。 Lambda层最适合简单操作或快速实验。 Lambda层是通过序列化Python字节码来保存的。


使用覆盖值覆盖序列,以跳过时间步。

对于输入张量的每一个时间步(张量的第一个维度),如果所有时间步中输入张量的值与mask_value相等,则将在所有下游层中屏蔽(跳过)该时间步。如果任何下游层不支持覆盖但仍然收到此类输入覆盖信息,会引发异常。

举例说明:


Embedding 是一个将离散变量转为连续向量表示的一个方式。该层只能用作模型中的第一层。

Embedding 有以下3个主要目的: 在 embedding 空间中查找最近邻,这可以很好的用于根据用户的兴趣来进行推荐。 作为监督性学习任务的输入。 用于可视化不同离散变量之间的关系.

举例说明:

输出结果:


由维基网络的介绍我们可以得知,卷积是一种定义在两个函数(𝑓跟𝑔)上的数学操作,旨在产生一个新的函数。那么𝑓和𝑔的卷积就可以写成𝑓∗𝑔,数学定义如下:

对应到不同方面,卷积可以有不同的解释:𝑔 既可以看作我们在深度学习里常说的核(Kernel),也可以对应到信号处理中的滤波器(Filter)。而 𝑓 可以是我们所说的机器学习中的特征(Feature),也可以是信号处理中的信号(Signal)。f和g的卷积 (𝑓∗𝑔)就可以看作是对𝑓的加权求和。

一维时域卷积操作:

二维图像卷积操作:

卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。

一维卷积层(即时域卷积),用以在一维输入信号上进行邻域滤波。

举例说明:

结果输出:


2D 卷积层 (例如对图像的空间卷积)。

举例说明:

结果输出:


3D卷积层(例如体积上的空间卷积)

举例说明:

结果输出:


深度可分离1D卷积。该层执行分别作用在通道上的深度卷积,然后是混合通道的逐点卷积。 如果use_bias为True并提供了一个偏差初始值设定项,则它将偏差向量添加到输出中。 然后,它可选地应用激活函数以产生最终输出。


深度可分离的2D卷积。可分离的卷积包括首先执行深度空间卷积(它分别作用于每个输入通道),然后是点向卷积,它将混合所得的输出通道。 depth_multiplier参数控制在深度步骤中每个输入通道生成多少个输出通道。

直观上,可分离的卷积可以理解为将卷积内核分解为两个较小内核的一种方式,或者是Inception块的一种极端版本。


转置卷积层 (有时被成为反卷积)。对转置卷积的需求一般来自希望使用 与正常卷积相反方向的变换,将具有卷积输出尺寸的东西 转换为具有卷积输入尺寸的东西, 同时保持与所述卷积相容的连通性模式。



池化层是模仿人的视觉系统对数据进行降维,用更高层次的特征表示图像。实施池化的目的:降低信息冗余;提升模型的尺度不变性、旋转不变性。 防止过拟合。

通常有最大池化层,平均池化层。

池化层有三种形态:1D 用于一维数据,2D 一般用于二维图像数据,3D 带时间序列数据的图像数据



循环神经网络(Recurrent Neural Network, 简称 RNN),循环神经网络的提出便是基于记忆模型的想法,期望网络能够记住前面出现的特征,并依据特征推断后面的结果,而且整体的网络结构不断循环,因此得名为循环神经网络。

长短期记忆网络(Long-Short Term Memory, LSTM )论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。

举例说明:

结果输出:


GRU 门控循环单元- Cho et al. 2014.

在LSTM中引入了三个门函数:输入门、遗忘门和输出门来控制输入值、记忆值和输出值。而在GRU模型中只有两个门:分别是更新门和重置门。与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的GRU。

举例说明:

结果输出:


循环神经网络层基类。

关于指定 RNN 初始状态的说明
您可以通过使用关键字参数 initial_state 调用它们来符号化地指定 RNN 层的初始状态。 initial_state 的值应该是表示 RNN 层初始状态的张量或张量列表。
可以通过调用带有关键字参数 states 的 reset_states 方法来数字化地指定 RNN 层的初始状态。 states 的值应该是一个代表 RNN 层初始状态的 Numpy 数组或者 Numpy 数组列表。

关于给 RNN 传递外部常量的说明
可以使用 RNN. call (以及 RNN.call)的 constants 关键字参数将“外部”常量传递给单元。 这要求 cell.call 方法接受相同的关键字参数 constants。 这些常数可用于调节附加静态输入(不随时间变化)上的单元转换,也可用于注意力机制。

举例说明:



在训练模型之前,我们需要配置学习过程,这是通过compile方法完成的。

他接收三个参数:优化器 opt

Ⅳ 求 一维信号 的傅里叶变换 去噪程序 matlab 写的

什么样的信号,频率范围是多少?是要用FFT滤波,还是用其他的方式?灶毕补充一下,如果是用FFT滤波的话:
对于给定的序列x(n),和采样频率fs等信息,先求其FFT频谱
y=abs(fft(x));
plot((1:length(x))*fs/length(x),y);title('信号的频谱');xlabel('频率');
然后你大概确定一下,你需要滤除的频带,上面的图形中可以看出噪声的频带。
比如说,你想要滤除从f1~f2的噪声,最简单隐春芹的方法就是在频域将这一段置零,
y(200:300)=0; %这里我假设的是200到300这一段就是频率f1~f2的。这森棚就是频率域滤波了,然后再反变换回去就行了
x=ifft(y); % 信号滤波后重建
具体的如果设置参数,就要看你的信号的特征了。

Ⅳ 关于卷积神经网络对一维信号的特征提取问题

你好,对信号的特征提取在数学上看其实就是做一个滤波的运算,实际上都是通过卷积来实现的。下面是一个matlab的实现:

function r= my_conv(a, b)
m=length(a);
n=length(b);
r=zeros(1, m+n-1);
for k = 1:m
c = a(k)*b;
d = r(1, k:k+n-1);
d = d+c;
r(1, k:k+n-1) = d;
end

Ⅵ 一维信号分类需要用复杂的深度学习神经网络吗

一维信号分类需要用复杂的深度学习神经网络。
一维信号分类需要用复杂的深度学习神经网络来进行分类,同时深度学习算法(包括CNN)也肯定可以直接处理一维信号。举个例子,深度残差收缩网络,就是用于处理一维振动信号的一种深度学习方法,可以作为参考。深度残差收缩网络其实是深度残差网络(ResNet)的新型改进,将软阈值化作为非线性层引入ResNet的网络结构之中,其目的是提高深度学习方法在含噪声数据或复杂数据上的特征学习效果。
直接把多通道的一维信号合并成二维图像,然后直接按图像卷积的方法去做~~当然,如果像ECG这种只有单通道一维信号,也可以直接一维卷积,效果一般~~可以看看语音处理的相关Net,其中比较推荐的是用 dilated conv 来做

Ⅶ 卷积神经网络

关于花书中卷积网络的笔记记录于 https://www.jianshu.com/p/5a3c90ea0807 。

卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种具有 局部连接、权重共享 等特性的深层前馈神经网络。卷积神经网络是受生物学上感受野的机制而提出。 感受野(Receptive Field) 主要是指听觉、视觉等神经系统中一些神经元的特性,即 神经元只接受其所支配的刺激区域内的信号

卷积神经网络最早是主要用来处理图像信息。如果用全连接前馈网络来处理图像时,会存在以下两个问题:

目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络,使用反向传播算法进行训练。 卷积神经网络有三个结构上的特性:局部连接,权重共享以及汇聚 。这些特性使卷积神经网络具有一定程度上的平移、缩放和旋转不变性。

卷积(Convolution)是分析数学中一种重要的运算。在信号处理或图像处理中,经常使用一维或二维卷积。

一维卷积经常用在信号处理中,用于计算信号的延迟累积。假设一个信号发生器每个时刻t 产生一个信号 ,其信息的衰减率为 ,即在 个时间步长后,信息为原来的 倍。假设 ,那么在时刻t收到的信号 为当前时刻产生的信息和以前时刻延迟信息的叠加:

我们把 称为 滤波器(Filter)或卷积核(Convolution Kernel) 。假设滤波器长度为 ,它和一个信号序列 的卷积为:

信号序列 和滤波器 的卷积定义为:

一般情况下滤波器的长度 远小于信号序列长度 ,下图给出一个一维卷积示例,滤波器为 :

二维卷积经常用在图像处理中。因为图像为一个两维结构,所以需要将一维卷积进行扩展。给定一个图像 和滤波器 ,其卷积为:

下图给出一个二维卷积示例:

注意这里的卷积运算并不是在图像中框定卷积核大小的方框并将各像素值与卷积核各个元素相乘并加和,而是先把卷积核旋转180度,再做上述运算。

在图像处理中,卷积经常作为特征提取的有效方法。一幅图像在经过卷积操作后得到结果称为 特征映射(Feature Map)

最上面的滤波器是常用的高斯滤波器,可以用来对图像进行 平滑去噪 ;中间和最下面的过滤器可以用来 提取边缘特征

在机器学习和图像处理领域,卷积的主要功能是在一个图像(或某种特征)上滑动一个卷积核(即滤波器),通过卷积操作得到一组新的特征。在计算卷积的过程中,需要进行卷积核翻转(即上文提到的旋转180度)。 在具体实现上,一般会以互相关操作来代替卷积,从而会减少一些不必要的操作或开销。

互相关(Cross-Correlation)是一个衡量两个序列相关性的函数,通常是用滑动窗口的点积计算来实现 。给定一个图像 和卷积核 ,它们的互相关为:

互相关和卷积的区别仅在于卷积核是否进行翻转。因此互相关也可以称为不翻转卷积 。当卷积核是可学习的参数时,卷积和互相关是等价的。因此,为了实现上(或描述上)的方便起见,我们用互相关来代替卷积。事实上,很多深度学习工具中卷积操作其实都是互相关操作。

在卷积的标准定义基础上,还可以引入滤波器的 滑动步长 零填充 来增加卷积多样性,更灵活地进行特征抽取。

滤波器的步长(Stride)是指滤波器在滑动时的时间间隔。

零填充(Zero Padding)是在输入向量两端进行补零。

假设卷积层的输入神经元个数为 ,卷积大小为 ,步长为 ,神经元两端各填补 个零,那么该卷积层的神经元数量为 。

一般常用的卷积有以下三类:

因为卷积网络的训练也是基于反向传播算法,因此我们重点关注卷积的导数性质:

假设 。

, , 。函数 为一个标量函数。

则由 有:

可以看出, 关于 的偏导数为 和 的卷积

同理得到:

当 或 时, ,即相当于对 进行 的零填充。从而 关于 的偏导数为 和 的宽卷积

用互相关的“卷积”表示,即为(注意 宽卷积运算具有交换性性质 ):

在全连接前馈神经网络中,如果第 层有 个神经元,第 层有 个神经元,连接边有 个,也就是权重矩阵有 个参数。当 和 都很大时,权重矩阵的参数非常多,训练的效率会非常低。

如果采用卷积来代替全连接,第 层的净输入 为第 层活性值 和滤波器 的卷积,即:

根据卷积的定义,卷积层有两个很重要的性质:

由于局部连接和权重共享,卷积层的参数只有一个m维的权重 和1维的偏置 ,共 个参数。参数个数和神经元的数量无关。此外,第 层的神经元个数不是任意选择的,而是满足 。

卷积层的作用是提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器。

特征映射(Feature Map)为一幅图像(或其它特征映射)在经过卷积提取到的特征,每个特征映射可以作为一类抽取的图像特征。 为了提高卷积网络的表示能力,可以在每一层使用多个不同的特征映射,以更好地表示图像的特征。

在输入层,特征映射就是图像本身。如果是灰度图像,就是有一个特征映射,深度 ;如果是彩色图像,分别有RGB三个颜色通道的特征映射,深度 。

不失一般性,假设一个卷积层的结构如下:

为了计算输出特征映射 ,用卷积核 分别对输入特征映射 进行卷积,然后将卷积结果相加,并加上一个标量偏置 得到卷积层的净输入 再经过非线性激活函数后得到输出特征映射 。

在输入为 ,输出为 的卷积层中,每个输出特征映射都需要 个滤波器以及一个偏置。假设每个滤波器的大小为 ,那么共需要 个参数。

汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进行特征选择,降低特征数量,并从而减少参数数量。

常用的汇聚函数有两种:

其中 为区域 内每个神经元的激活值。

可以看出,汇聚层不但可以有效地减少神经元的数量,还可以使得网络对一些小的局部形态改变保持不变性,并拥有更大的感受野。

典型的汇聚层是将每个特征映射划分为 大小的不重叠区域,然后使用最大汇聚的方式进行下采样。汇聚层也可以看做是一个特殊的卷积层,卷积核大小为 ,步长为 ,卷积核为 函数或 函数。过大的采样区域会急剧减少神经元的数量,会造成过多的信息损失。

一个典型的卷积网络是由卷积层、汇聚层、全连接层交叉堆叠而成。

目前常用卷积网络结构如图所示,一个卷积块为连续 个卷积层和 个汇聚层( 通常设置为 , 为 或 )。一个卷积网络中可以堆叠 个连续的卷积块,然后在后面接着 个全连接层( 的取值区间比较大,比如 或者更大; 一般为 )。

目前,整个网络结构 趋向于使用更小的卷积核(比如 和 )以及更深的结构(比如层数大于50) 。此外,由于卷积的操作性越来越灵活(比如不同的步长),汇聚层的作用变得也越来越小,因此目前比较流行的卷积网络中, 汇聚层的比例也逐渐降低,趋向于全卷积网络

在全连接前馈神经网络中,梯度主要通过每一层的误差项 进行反向传播,并进一步计算每层参数的梯度。在卷积神经网络中,主要有两种不同功能的神经层:卷积层和汇聚层。而参数为卷积核以及偏置,因此 只需要计算卷积层中参数的梯度。

不失一般性,第 层为卷积层,第 层的输入特征映射为 ,通过卷积计算得到第 层的特征映射净输入 ,第 层的第 个特征映射净输入

由 得:

同理可得,损失函数关于第 层的第 个偏置 的偏导数为:

在卷积网络中,每层参数的梯度依赖其所在层的误差项 。

卷积层和汇聚层中,误差项的计算有所不同,因此我们分别计算其误差项。

第 层的第 个特征映射的误差项 的具体推导过程如下:

其中 为第 层使用的激活函数导数, 为上采样函数(upsampling),与汇聚层中使用的下采样操作刚好相反。如果下采样是最大汇聚(max pooling),误差项 中每个值会直接传递到上一层对应区域中的最大值所对应的神经元,该区域中其它神经元的误差项的都设为0。如果下采样是平均汇聚(meanpooling),误差项 中每个值会被平均分配到上一层对应区域中的所有神经元上。

第 层的第 个特征映射的误差项 的具体推导过程如下:

其中 为宽卷积。

LeNet-5虽然提出的时间比较早,但是是一个非常成功的神经网络模型。基于LeNet-5 的手写数字识别系统在90年代被美国很多银行使用,用来识别支票上面的手写数字。LeNet-5 的网络结构如图:

不计输入层,LeNet-5共有7层,每一层的结构为:

AlexNet是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的一些技术方法,比如采用了ReLU作为非线性激活函数,使用Dropout防止过拟合,使用数据增强来提高模型准确率等。AlexNet 赢得了2012 年ImageNet 图像分类竞赛的冠军。

AlexNet的结构如图,包括5个卷积层、3个全连接层和1个softmax层。因为网络规模超出了当时的单个GPU的内存限制,AlexNet 将网络拆为两半,分别放在两个GPU上,GPU间只在某些层(比如第3层)进行通讯。

AlexNet的具体结构如下:

在卷积网络中,如何设置卷积层的卷积核大小是一个十分关键的问题。 在Inception网络中,一个卷积层包含多个不同大小的卷积操作,称为Inception模块。Inception网络是由有多个inception模块和少量的汇聚层堆叠而成

v1版本的Inception模块,采用了4组平行的特征抽取方式,分别为1×1、3× 3、5×5的卷积和3×3的最大汇聚。同时,为了提高计算效率,减少参数数量,Inception模块在进行3×3、5×5的卷积之前、3×3的最大汇聚之后,进行一次1×1的卷积来减少特征映射的深度。如果输入特征映射之间存在冗余信息, 1×1的卷积相当于先进行一次特征抽取

Ⅷ 地震去噪新探索(二)——无监督卷积神经网络调优实战

“心中有歌,到处都是舞台”。

自从投入了自编码的深度学习研究后,一路走来就是磕磕碰碰。

上一篇将地震信号用在了自编码卷积神经网络降噪(见《地震去噪新探索——无监督卷积神经网络实战》),结果那叫一个惨。如下面的图示,上边是噪声图,下边是去噪图:

从去噪效果来看,仅能获取到一些支离破碎的有效信号,这是一张完全拿不出手的效果图。

卷积神经网络不是更能学习到特征细节,性能更好吗?为啥我做出来的效果如此之惨?

前期的参数设置包括:使用10000个28*28的训练小块,训练epoch:5,学习率:0.001,优化器:tf.train.AdamOptimizer(learn).minimize(cost),LOSS函数:tf.nn.sigmoid_cross_entropy_with_logits(labels=targets_, logits=logits_),cost = tf.rece_mean(loss)

网络结构图为:

训练损失曲线:

1.归一化的优化

惨不忍睹的LOSS训练结果引起了我的注意。将收敛失败这个问题拿到网上去寻找答案,有大神说这是归一化没做好。

那就先进行2项优化:

一是控制训练样本的取值范围到(-1,1),使用方法是原值除以最大值的方法,就像这样:

noisy_imgs=noisy_imgs/abs(noisy_imgs).max()

二是在训练网络的每个卷积后增加BN,就像这样:

conv1 = tf.layers.conv2d(inputs_, 64, (3,3), padding='same', activation=tf.nn.relu)

conv1 = tf.layers.batch_normalization(conv1, training=True)

再进行训练,效果不明显,还是没有收敛。

另外,很多归一化的方法是将取值范围集中在(0,1),使用这样的算法:

imgs= (imgs-imgs.min())/(imgs.max()-imgs.min())#归一化到[0,1]

结果证明对于地震数据完全没法训练,曲线是这样的:

2.学习函数的调整

“一计不成,再生一计”。

我想到了对优化器和LOSS函数进行改动。

在神经网络学习中,损失函数的作用是度量神经网络的输出的预测值,计算与实际值之间的差距,可以说是实现学习的关键函数。常见的损失函数包括:最小二乘损失函数、交叉熵损失函数、回归中使用的smooth L1损失函数等。

而优化函数的原理是:把损失值从神经网络的最外层传递到最前面,实现反向传播学习,这是神经网络实现持续学习达到收敛的关键。如最基础的梯度下降算法包括:随机梯度下降算法,批量梯度下降算法,带动量的梯度下降算法,Adagrad,Adadelta,Adam等。

那我就先从优化器函数入手吧。

既然学习率为0.001无法收敛,那试试0.0001呢。结果还真收敛了,如下图:

那预测效果如何呢?结果是一塌糊涂,连基本特征都学习不到,如下图:

这是怎么回事呢?我的理解是学习率太高,就会让神经网络学习到更细粒度的特征,而失去了我们想要的特征。就相当于研究一个人的特征,我们通常是从五官、体型等方面来看,但如果从细胞的角度的去学习,那就无法还原人的外貌特征了。

另外,设置为0.0005也好不了多少。

那改动LOSS函数能不能起作用呢?

比如改为softmax_cross_entropy_with_logits,像这样:

loss = tf.nn.softmax_cross_entropy_with_logits(labels=targets_, logits=logits_)

结果是无法学习,如下图:

3.其它的尝试

两板斧过去,还没有看到变好的迹象。我没有放弃,我开始思考为啥原程序训练Mnist效果都如此好,换到地震数据训练就不行了呢?

我想到了训练样本数据是不是有问题。我又进行了以下尝试:

一是调整训练样本数据的尺寸:有128*128,40*40,32*32,28*28等。

二是对样本数据进行截断:地震数据不是异常值多,偏离度大吗。我就筛选数据集中的90%区间,区间外面的进行截断,再进行归一化。这样数据分布就均匀多了。

三是扩充采样数据来源,从不同的数据源采样。是不是数据更丰富,训练效果就会改观呢?

……

你可以想象做这些实验有多么琐碎和繁杂,然而现实却是如此的无情。最后结局都是一个——失败,根本拿不出一个像样的效果,连一个较为清晰的结果都没有。

“山穷水复疑无路,柳暗花明又一村”。

在持续N天被现实按在地上摩擦后,我痛定思痛:到底解决的方向在哪里

在现有这个无可救药的神经网络中,提高学习率可以收敛,但是无法学习到有效特征。降低学习率可以学习到有效特征但是无法收敛,也就是说无法持续优化的学习。整个成了一个悖论。

面对这张丑陋的预测结果图,我意识到可能是网络结构本身出了问题。很有可能是网络对图片数据学习有效,对地震数据学习就是不行。

在翻阅了其它研究者的论文后,我逐步聚焦到了一个结构——解码。我的程序在这部分是使用卷积核上采样的结构。像这样:

conv4 = tf.image.resize_nearest_neighbor(conv3, (8,8))

conv4 = tf.layers.conv2d(conv4, 32, (3,3), padding='same', activation=tf.nn.relu)

而其它地震论文结构却包含了一个我没有的结构——反卷积。

如果我也使用反卷积,甚至就只有卷积和反卷积这种最简单的自编码结构,效果如何呢?像这样的结构:

x = Conv2D(32, (3, 3), activation='relu', padding='same')(input_img)

x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)

x = Conv2DTranspose(32, (3,3), padding='same', activation='relu', kernel_initializer='glorot_normal')(x)#反卷积

x = Conv2DTranspose(32, (3,3), padding='same', activation='relu', kernel_initializer='glorot_normal')(x)

decoded = Conv2DTranspose(1, (1,1), padding='same', activation='tanh', kernel_initializer='glorot_normal')(x)

结果是令人惊艳的。下图是收敛的效果,很快就能够收敛:

训练的效果更好。以下分别是原图,噪声图和去噪效果图:

可以看到,上面噪声几乎淹没了有效信号。然后通过训练,仅仅5个迭代,就较好的分离出了有效信号。

“既然选择了远方 便只顾风雨兼程”。

看来反卷积是是解决地震学习的一把钥匙。下一步我将研究反卷积能适应地震处理的原因,然后继续进行优化和创新,并使用其它算法做对比实验,争取做出更好的效果。

如果喜欢请点“赞”,如果小伙伴对程序感兴趣,可以联系我获取。

Ⅸ MATLAB 求用小波去噪处理一维信号代码

第一个蚂迟拆问题,这个我只用过一维的信号,用来小波分解,这个给不了你什么建议,但是小波的选择不同的问题需要选取不同的小旦掘波,不是一概而论的。
第二个问题,分解后重构不是必须的,至少在一维信号处理中不是必须的闷枣。
分解后会有很多尺度的小波系数,加权的意思和一般的加权是一样,就是给不同的小波系数予以不同的权值,比如在尺度2这个小波系数占有了绝大多数信号的频率段,那么我们可以给他一个大的权值。

Ⅹ 信号处理的神经网络方法

信号处理的神经网络方法如下:

1、原数据可能数据量很大,维数很,计算机处理起来时间复杂度很高,预处理可以降低数据维度写作猫。数据的很多特性非常影响神经网络等分类模型的效果。

2、比如数据值得分布不在一个尺度上,当地气温值与当地月工资显然不在一个数量级上,这时,需要数据规范化,把这两个特征的数据都规范到0到1,这样使得它们对卖弊模型的影响具有同样的尺度。

我们挑选BP、RBF、SOFM、LVQ、Hopfield这5种已成功应用于解决实际信号处理问题的网络结构进行详细介绍,并对如何利用它们解决信号处理问题进行分析。另外还介绍了量子比特神经网络这种新兴网络结构。

阅读全文

与神经网络一维信号去噪相关的资料

热点内容
沧州无线网络覆盖 浏览:200
路由器网络质量好还打不开网页 浏览:322
网络5g的流量是多少兆 浏览:270
开机时显示网络异常 浏览:876
手机网络依赖怎么回事 浏览:590
网络流传谣言有哪些 浏览:618
微信怎么显示无线网络 浏览:403
小米wifi放大器pro连接公共网络 浏览:250
小米路由器怎么设置网络速度 浏览:106
幼儿教师如何做好网络媒体管理 浏览:366
web30与网络营销 浏览:514
为什么网络信号满格却缓存不了 浏览:914
开封移动网络报修电话 浏览:368
手机怎么加网络信号 浏览:644
什么app可以用国外的网络 浏览:888
letv怎么打开无线网络 浏览:174
hpprobook无线网络开关 浏览:350
自己安装的wifi怎么没有网络 浏览:554
从哪设置网络4g 浏览:179
下载无线wifi网络国家 浏览:223

友情链接