matlab归一化_第1页
matlab归一化_第2页
matlab归一化_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关于神经网络归一化方法的整理由于采集的各数据单位不一致,因而须对数据进行-1,1归一化处理,归一化方法主要有如下几种,供大家参考:(byjames)1、线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue)说明:x、y 分别为转换前、后的值,MaxValue、MinValue 分别为样本的最大值和最小值。pm=max(abs(p(i,:);p(i,:)=p(i,:)/pm;和fo 门=1:27p(i,:)=(p(i,:)-min(p(i,:)/(max(p(i,:)-min(p(i,:);end 可以归一到 01 之间0.1+(x-min)/(max-m

2、in)*(0.9-0.1)其中 max 和 min 分别表示样本最大值和最小值。这个可以归一到 0.1-0.92、对数函数转换,表达式如下:y=log10(x)说明:以 10 为底的对数函数转换。3、反余切函数转换,表达式如下:y=atan(x)*2/PImatlab 中的归一化处理有三种方法1. premnmx、postmnmx、tramnmx关于用 premnmx 语句进行归一化:premnmx 语句的语法格式是:Pn,minp,maxp,Tn,mint,maxt=premnmx(P,T)其中 P,T 分别为原始输入和输出数据,minp 和 maxp 分别为 P 中的最小值和最大值。min

3、t和 maxt 分别为 T 的最小值和最大值。premnmx 函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在-1,1区间内。我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到 tramnmx。下面介绍 tramnmx 函数:Pn=tramnmx(P,minp,maxp)其中 P 和 Pn 分别为变换前、后的输入数据,maxp 和 minp 分别为 premnmx 函数找到的最大值和最小值。2. prestd、poststd、trastd3. 自己编程具体用那种方法就和你的具体问题有关了(byhapp

4、y)在最新版的 matlab 里面共有两个归一化函数:mapminmax(和 mapstd(),其中第一个函数是归一化到01范围,后一个的原理我也不太懂,但归一后的数据较规整,比第一个好用.各自的归一化格式如下:pn,ps=mapminmax(P)=mapstd(P)%P 是输入向量tn,ts=mapminmax(t)或=mapstd(t)%t 是目标向量在训练完后,对测试样本归一化格式为:pnt=mapminmax(apply,pt,ps)或=mapstd(apply,pt,ps)仿真后反归一化格式则为:out=mapminmax(reverse,An,ts)M=mapstd(reverse

5、,An,ts);其中 An 为sim 函数的输归一化化定义:我是这样认为的,归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。在 matlab 里面,用于归一化的方法共有三中,(1)premnmx、postmnmx、tramnmx(2)prestd、poststd、trastd(3)是用 matlab 语言自己编程。premnmx 指的是归一至 U11,prestd 归一至 U 单位方差和零均值。(3)关于自己编程一般是归一到0.10.9为什么要用归一化呢?首先先说一个概念,叫做奇异样本数据,所

6、谓奇异样本数据数据指的是相对于其他输入样本特别大或特别小的样本矢量。下面举例:m=0.110.150.320.4530;0.130.240.270.2545;其中的第五列数据相对于其他 4 列数据就可以成为奇异样本数据(下面所说的网络均值 bp)。奇异样本数据存在所引起的网络训练时间增加,并可能引起网络无法收敛,所以对于训练样本存在奇异样本数据的数据集在训练之前,最好先进形归一化,若不存在奇异样本数据,则不需要事先归一化您好origin=ifft2(fftI);origin=uint8(origin);figure;imshow(origin);答案补充相信你在我写的这几句代码之前加的是这句:

7、fftI=imread(2.jpg);这样当然恢复不了了,因为 2.jpg 里面存储的是原图像 1.jpg 的二维傅里叶变换后的频谱幅值,它相当于把 1.jpg 的二维傅里叶变换求出来后对实部和虚部进行平方和再开方,这个过程显然丢失了一半的信息,想从丢失信息后的图片里恢复原来的当然不行了。我这段代码里的变量 fftI 实际上是你的程序第三行刚刚经过二维傅立叶变换后的未损失信息的既有实部又有虚部的频谱。因此我这段代码应该接着你那段继续运行,而不是从 2.jpg 里读取数据到 fftI来运行,这样得到一片黑是正常的。答案补充可以告诉你,你的想法很难实现,原因如下:就算你把图像进行傅立叶变换后的实部

8、、虚部(或幅度、相位)分别存储在两个矩阵里,从而有了完整的数据,可是但你试图把这两组数据所在的矩阵分别以图像的形式存储时,就会发生问题了。这是因为 RGB 图像或灰度图像的数值是有范围的(0255),而傅立叶变换的结果(实部、虚部或幅度、相位)的值是任意无限制的,这就要求在把两个矩阵写入图像时要把数据变成图像所要求的数据,一般是采用映射的方式,即原矩阵中的最小值映射为存储图像中的 0,最大值映射为 255,中间数据则均匀映射。这里实际上是对原矩阵进行了一个线性变换,可是问题就在于一旦把矩阵映射为响应值存储在图像里,再次读取图像时读到的就是图像的正常灰度值了,而非原来的数值,并且之前进行的线性变换是未知的(因为现在你的手头上有的只是傅立叶变换后映射的图像)。所以在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论