导航:首页 > 网络问题 > 神经网络降噪工具为什么不行

神经网络降噪工具为什么不行

发布时间:2023-09-08 07:25:43

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

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

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

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

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

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

前期的参数设置包括:使用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个迭代,就较好的分离出了有效信号。

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

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

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

❷ 深度置信网络存在哪些问题,如何解决

深度置信网络(Deep Belief Network)

DBNs是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation)。

DBNs由多个限制玻尔兹曼机(Restricted Boltzmann Machines)层组成,一个典型的神经网络类型如图所示。这些网络被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。
DBNs的灵活性使得它的拓展比较容易。一个拓展就是卷积DBNs(Convolutional Deep Belief Networks(CDBNs))。DBNs并没有考虑到图像的2维结构信息,因为输入是简单的从一个图像矩阵一维向量化的。而CDBNs就是考虑到了这个问题,它利用邻域像素的空域关系,通过一个称为卷积RBMs的模型区达到生成模型的变换不变性,而且可以容易得变换到高维图像。DBNs并没有明确地处理对观察变量的时间联系的学习上,虽然目前已经有这方面的研究,例如堆叠时间RBMs,以此为推广,有序列学习的bbed temporalconvolutionmachines,这种序列学习的应用,给语音信号处理问题带来了一个让人激动的未来研究方向。
目前,和DBNs有关的研究包括堆叠自动编码器,它是通过用堆叠自动编码器来替换传统DBNs里面的RBMs。这就使得可以通过同样的规则来训练产生深度多层神经网络架构,但它缺少层的参数化的严格要求。与DBNs不同,自动编码器使用判别模型,这样这个结构就很难采样输入采样空间,这就使得网络更难捕捉它的内部表达。但是,降噪自动编码器却能很好的避免这个问题,并且比传统的DBNs更优。它通过在训练过程添加随机的污染并堆叠产生场泛化性能。训练单一的降噪自动编码器的过程和RBMs训练生成模型的过程一样。

❸ matlab中使用神经网络工具箱最后得到的结果不显示在命令窗口,怎么回事呢

需要显示的结果不要使用分号;
例如
>>b=3+4
ans=7
>>b=3+4;
则不显示。
另外,mat文件是MATLAB用于存储数据的专用文件格式,需要的时候可以采用inport命令导入到MATLAB中。

❹ matlab神经网络工具箱怎么效果好

导入数据:选择合适的数据,一定要选数值矩阵形式
在这里插入图片描述在这里插入图片描述

进行训练
在这里插入图片描述

接下来就点next,选择输入输出,Sample are是选择以行还是列放置矩阵的,注意调整

在这里插入图片描述

接下来一直next,在这儿点train

在这里插入图片描述

查看结果

在这里插入图片描述

导出代码:再点next,直到这个界面,先勾选下面的,再点Simple Script生成代码
在这里插入图片描述

使用训练好的神经网络进行预测
使用下方命令,z是需要预测的输入变量,net就是训练好的模型

在这里插入图片描述

再将结果输出成excel就行啦

在这里插入图片描述

打开CSDN,阅读体验更佳

使用MATLAB加载训练好的caffe模型进行识别分类_IT远征军的博客-CSDN...
在进行下面的实验前,需要先对数据进行训练得到caffemodel,然后再进行分类识别 c_demo.m function [scores, maxlabel] = c_demo(im, use_gpu) % Add caffe/matlab to you Matlab search PATH to use matcaffe if exist('/home/...
继续访问
MATLAB调用训练好的KERAS模型_LzQuarter的博客
下载了链接中的“kerasimporter.mlpkginstall”文件后,在matlab内用左侧的文件管理系统打开会进入一个页面,在该页面的右上角有安装的按钮,如果之前安装一直失败,可以通过这个安装按钮的下拉选项选择仅下载 下载还是有可能要用到VPN,但是相比...
继续访问
最新发布 matlab神经网络预测数据,matlab神经网络工具箱
Matlab语言是MathWorks公司推出的一套高性能计算机编程语言,集数学计算、图形显示、语言设计于一体,其强大的扩展功能为用户提供了广阔的应用空问。它附带有30多个工具箱,神经网络工具箱就是其中之一。谷歌人工智能写作项目:神经网络伪原创。
继续访问
matlab神经网络工具箱系统预测
matlab神经网络工具箱系统预测 有原始数据 根据原始数据预测未来十年内的数据
matlab预测控制工具箱
matlab预测控制工具箱,在学习预测控制的过程中翻译的matlab自带的示例,希望对大家有所帮助 matlab预测控制工具箱,在学习预测控制的过程中翻译的matlab自带的示例,希望对大家有所帮助
用matlab做bp神经网络预测,神经网络预测matlab代码
我觉得一个很大的原因是你预测给的输入范围(2014-)超出了训练数据的输入范围(2006-2013),神经网络好像是具有内插值特性,不能超出,你可以把输入变量-时间换成其他的变量,比如经过理论分析得出的某些影响因素,然后训练数据要包括大范围的情况,这样可以保证预测其他年份的运量的时候,输入变量不超出范围,最后预测的时候给出这几个影响因素的值,效果会好一点。输出层是个purelin,线性组合后的输出层输出当然也全是几乎相同的了。输出层是个purelin,线性组合后的输出层输出当然也全是几乎相同的了。
继续访问

BP神经网络预测实例(matlab代码,神经网络工具箱)
目录辛烷值的预测matlab代码实现工具箱实现 参考学习b站: 数学建模学习交流 bp神经网络预测matlab代码实现过程 辛烷值的预测 【改编】辛烷值是汽油最重要的品质指标,传统的实验室检测方法存在样品用量大,测试周期长和费用高等问题,不适用于生产控制,特别是在线测试。近年发展起来的近红外光谱分析方法(NIR),作为一种快速分析方法,已广泛应用于农业、制药、生物化工、石油产品等领域。其优越性是无损检测、低成本、无污染,能在线分析,更适合于生产和控制的需要。实验采集得到50组汽油样品(辛烷值已通过其他方法测
继续访问

用matlab做bp神经网络预测,matlab人工神经网络预测
ylabel('函数输出','fontsize',12);%画出预测结果误差图figureplot(error,'-*')title('BP网络预测误差','fontsize',12)ylabel('误差','fontsize',12)xlabel('样本','fontsize',12)。三、训练函数与学习函数的区别函数的输出是权值和阈值的增量,训练函数的输出是训练好的网络和训练记录,在训练过程中训练函数不断调用学习函数修正权值和阈值,通过检测设定的训练步数或性能函数计算出的误差小于设定误差,来结束训练。.
继续访问
matlab训练神经网络模型并导入simulink详细步骤
之前的神经网络相关文章: Matlab-RBF神经网络拟合数据 Matlab RBF神经网络及其实例 4.深度学习(1) --神经网络编程入门 本文介绍一下怎么把训练好的神经网络导入到simulink并使用,假定有两个变量,一个输出变量,随机生成一点数据 x1 = rand(1000,1);x2 = rand(1000,1);x = [x1 x2];y = rand(1000,1); 在App里面找到神经网络工具箱 点击Next 选择对应的数据,注意选择好对应的输入和输出,还
继续访问

用matlab做bp神经网络预测,matlab神经网络怎么预测
它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。Network可以看出,你的网络结构是两个隐含层,2-3-1-1结构的网络,算法是traindm,显示出来的误差变化为均方误差值mse。达到设定的网络精度0.001的时候,误差下降梯度为0.0046,远大于默认的1e-5,说明此时的网络误差仍在快速下降,所以可以把训练精度目标再提高一些,比如设为0.0001或者1e-5。如果你所选用的激活函数是线性函数,那么就可以先把输出的表达式写出来,即权向量和输入的矩阵乘积。
继续访问

matlab训练模型、导出模型及VC调用模型过程详解
MATLAB是美国MathWorks公司出品的商业数学软件,为算法开发、数据可视化、数据分析以及数值计算等提供了高级计算语言和交互式环境。随着人工智能的崛起,MATLAB也添加了自己的机器学习工具包,只需要很少的代码或命令就能完成模型训练和测试的过程,训练好的模型也能方便的导出,供VC等调用。本文主要介绍模型训练、导出和调用的整个过程。 软件版本: VC2015,matlab2018a ...
继续访问

matlab神经网络预测模型,matlab人工神经网络预测
谷歌人工智能写作项目:小发猫matlab带有神经网络工具箱,可直接调用,建议找本书看看,或者MATLAB论坛找例子常见的神经网络结构。核心调用语句如下:%数据输入%选连样本输入输出数据归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%%BP网络训练%%初始化网络结构net=newff(inputn,outputn,[88]);net.trainParam.epochs=100;=0.0
继续访问

在Matlab中调用pytorch上训练好的网络模型
在Matlab中调用pytorch上训练好的网络模型
继续访问

MATLAB_第二篇神经网络学习_BP神经网络
BP神经网络代码实现1. BP神经网络的简介和结构参数1.1 BP神经网络的结构组成1.2 BP神经网络训练界面的参数解读 非常感谢博主wishes61的分享. 1. BP神经网络的简介和结构参数 一种按照误差逆向传播算法训练的多层前馈神经网络用于预测BP神经网络的计算过程:由正向计算过程和反向计算过程组成。 正向传播过程,输入模式从输入层经隐单元层逐层处理,并转向输出层,每一层神经元的状态只影响下一层神经元的状态。 如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各
继续访问

MATLAB神经网络拟合回归工具箱Neural Net Fitting的使用方法
本文介绍MATLAB软件中神经网络拟合(Neural Net Fitting)工具箱的具体使用方法~
继续访问

灰色预测工具箱matlab,Matlab灰色预测工具箱——走过数模
2009-07-02 23:05灰色预测几乎是每年数模培训必不可少的内容,相对来说也是比较简单,这里写了四个函数,方便在Matlab里面调用,分别是GM(1,1),残差GM(1,1),新陈代谢GM(1,1),Verhust自己写得难免有所疏忽,需要的朋友自己找本书本来试验一下。。Gm(1,1)function [px0,ab,rel]=gm11(x0,number)%[px0,ab,rel]=gm...
继续访问
matlab利用训练好的BP神经网络来预测新数据(先保存网络,再使用网络)
1,保存网络。save ('net') % net为已训练好的网络,这里把他从workspace保存到工作目录,显示为net.mat文档。 2,使用网络。load ('net') % net为上面保存的网络,这里把他下载到workspace。y_predict = sim(...
继续访问
数学建模学习(79):Matlab神经网络工具箱使用,实现多输入多输出预测
Matlab神经网络工具箱实现,实现多输入多输出预测
继续访问

热门推荐 如何利用matlab做BP神经网络分析(包括利用matlab神经网络工具箱)
利用MATLAB 进行BP神经网络的预测(含有神经网络工具箱) 最近一段时间在研究如何利用预测其销量个数,在网上搜索了一下,发现了很多模型来预测,比如利用回归模型、时间序列模型,GM(1,1)模型,可是自己在结合实际的工作内容,发现这几种模型预测的精度不是很高,于是再在网上进行搜索,发现神经网络模型可以来预测,并且有很多是结合时间序列或者SVM(支持向量机)等组合模型来进...
继续访问
bp神经网络预测案例python_详细BP神经网络预测算法及实现过程实例
1.具体应用实例。根据表2,预测序号15的跳高成绩。表2国内男子跳高运动员各项素质指标序号跳高成绩()30行进跑(s)立定三级跳远()助跑摸高()助跑4—6步跳高()负重深蹲杠铃()杠铃半蹲系数100(s)抓举()12.243.29.63.452.151402.811.05022.333.210.33.752.21203.410.97032.243.09.03.52.21403.511.4504...
继续访问
如何调用MATLAB训练神经网络生成的网络进行预测
如何调用MATLAB训练神经网络生成的网络问题引出知识准备代码注解 问题引出 如何存储和调用已经训练好的神经网络。 本人前几天在智能控制学习的过程中也遇到了这样的问题,在论坛中看了大家的回复,虽然都提到了关键的两个函数“save”和“load”,但或多或少都简洁了些,让人摸不着头脑(呵呵,当然也可能是本人太菜)。通过不断调试,大致弄明白这两个函数对神经网络的存储。下面附上实例给大家做个说明,希望对跟我有一样问题的朋友有所帮助。 知识准备 如果只是需要在工作目录下保到当前训练好的网络,可以在命令窗口 输入:s
继续访问
matlab训练好的模型怎么用
神经网络

阅读全文

与神经网络降噪工具为什么不行相关的资料

热点内容
安远全网网络营销参考价 浏览:950
苹果6splus无线网络连不上 浏览:723
绥化市龙江网络投诉电话多少 浏览:658
网络模式切换软件下载 浏览:166
学生网络安全常识ppt 浏览:243
网络贷款公司怎么追债 浏览:540
网络异常怎么删除 浏览:510
最好网络电视免费影视软件 浏览:266
网络被人言语攻击怎么办 浏览:430
路由器有手机连接电脑没有网络 浏览:611
无网络看cctv电视的软件 浏览:942
保险理财网络营销策划 浏览:902
网络安全的重要任务是 浏览:399
路由器查询网络日志 浏览:711
桐庐移动网络卡 浏览:914
网络连接丢失堡垒之夜 浏览:40
用cmd打开无线网络连接wifi 浏览:636
怎么区分自己手机的网络制式 浏览:650
路由器是运行在网络层的协议 浏览:562
小新电脑怎么连接无线网络 浏览:831

友情链接