当前位置: 编码机 >> 编码机发展 >> 自编码深度全连接网络实战送你两个案例
上一节课,我们带领大家了解自编码网络结构和程序,实战运行了简单网络模型。今天,我们通过两个案例讲解自编码深度学习的效果。
一、自编码Mnist图片深度学习
1.网络结构
这里我们给大家构建了一个深度学习网络,共包括了六层全连接层,构成了深度自编码学习网络。
2.程序讲解
与上节课讲解的简单自编码网络不同,这个网络是通过堆叠全连接网络实现了深度学习图片特征的能力。
最后处理完的效果是这样的。上图是原图,下图是处理结果图,效果还不错吧。
下面我们再来通过对比图,看看与简单自编码程序处理效果谁更好。上图是深度学习处理结果,下图是简单学习处理结果。可以看到对于某些数字的细节部分,还原效果确实是更好了。
二、自编码地震剖面深度学习
好了,自编码学习除了处理图片,还可以在地震信号方面大显身手。下面我们来举一个地震信号处理的案例,讲解一些更复杂的数据处理方法。
1.地震剖面仿真数据
我们准备了一个地震剖面仿真数据。主要参数包括:道,采样点,采样率4毫秒。数据的尺寸是×。
2.程序讲解
(1)训练数据集准备
在Mnist程序中,训练集和测试集是自带软件包准备好的,其中包括了训练集为张28×28的图片和测试集张28×28的图片。其中二维图片在一维进行展开,就成了大小为的数据。
现在为了训练地震数据,我们就需要自己来准备训练集。
这里我们自己写了一个getPath的程序,用来生成训练集。这个程序比较复杂就不细讲了,最后结果就是生成了个64×64的地震训练数据。
读取到数据后,我们将二维图片在一维空间展开。
(2)深度全连接网络构建和训练
这里的网络结构与前面的Mnist结果类似,但有四点不同。
一是数据的尺寸变为了,就是大小为64×64的图片在一维空间的展开就是。
二是中间的网络结构增多,这是因为输入图片尺寸较大,需要更多网络来学习特征。
三是最后一层的激活函数为tanh,而不是前面的sigmoid。因为地震数据远比Mnist图片数据复杂,使用逻辑激活函数不能满足要求。
四是损失函数使用绝对均方差,也是为了复杂的深度学习需要。
这次我们训练了个周期,是为了尽量多的学习信号的特征。
(3)结果检验
首先,我们找到了训练集之外的另外一个工区的仿真数据。把数据进行归一化,并在一维进行展开。
然后,我们把测试数据放入到训练好的模型进行预测处理。并把处理结果还原到二维空间。
最后我们使用matplotlib来画出地震数据处理的效果图。
左图是测试原图,右图是模型处理的结果。
从图上来看,模型处理后的信号基本还原了原来特征,但效果不算好。
这里主要原因包括:一是训练样本的数量较少,还不到个。二是训练图片的尺寸较大,一般是32左右较好。这些问题都不利于神经网络有效的学习到信号的特征。
以上就是今天的全部内容,如果你想获取代码,或有问题讨论,都欢迎联系我交流。下一节,我们将讲解深度卷积自编码网络,下节课再见。
如果喜欢请点赞,或
转载请注明:http://www.aideyishus.com/lktp/3960.html