归一化处理的目的和意义及其MATLAB方法
生活随笔
收集整理的這篇文章主要介紹了
归一化处理的目的和意义及其MATLAB方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.歸一化處理的目的和意義
? ? ?歸一化的具體作用是歸納統(tǒng)一樣本的統(tǒng)計分布性。歸一化在0-1之間是統(tǒng)計的概率分布,歸一化在-1--+1之間是統(tǒng)計的坐標(biāo)分布。歸一化有同一、統(tǒng)一和合一的意思。無論是為了建模還是為了計算,首先基本度量單位要同一,神經(jīng)網(wǎng)絡(luò)是以樣本在事件中的統(tǒng)計分別幾率來進(jìn)行訓(xùn)練(概率計算)和預(yù)測的,且sigmoid函數(shù)的取值是0到1之間的,網(wǎng)絡(luò)最后一個節(jié)點的輸出也是如此,所以經(jīng)常要對樣本的輸出歸一化處理。歸一化是統(tǒng)一在0-1之間的統(tǒng)計概率分布,當(dāng)所有樣本的輸入信號都為正值時,與第一隱含層神經(jīng)元相連的權(quán)值只能同時增加或減小,從而導(dǎo)致學(xué)習(xí)速度很慢。另外在數(shù)據(jù)中常存在奇異樣本數(shù)據(jù),奇異樣本數(shù)據(jù)存在所引起的網(wǎng)絡(luò)訓(xùn)練時間增加,并可能引起網(wǎng)絡(luò)無法收斂。為了避免出現(xiàn)這種情況及后面數(shù)據(jù)處理的方便,加快網(wǎng)絡(luò)學(xué)習(xí)速度,可以對輸入信號進(jìn)行歸一化,使得所有樣本的輸入信號其均值接近于0或與其均方差相比很小。
2.matlab里常見歸一化的方法
第一種:在matlab里面,用于歸一化的方法共有三種:
(1)線性函數(shù)的轉(zhuǎn)換,表達(dá)式如下:
? ?y=(x-MinValue)/(MaxValue-MinValue) (歸一到0 1 之間)
? ?y=0.1+(x-min)/(max-min)*(0.9-0.1)(歸一到0.1-0.9之間)
? ?說明:x、y分別為轉(zhuǎn)換前、后的值,MaxValue、MinValue分別為樣本的最大值和最小值。
(2)對數(shù)函數(shù)轉(zhuǎn)換,表達(dá)式如下:
? ?y=log10(x)
? ?說明:以10為底的對數(shù)函數(shù)轉(zhuǎn)換。
(3)反余切函數(shù)轉(zhuǎn)換,表達(dá)式如下:
? ?y=atan(x)*2/PI
第二種:premnmx、tramnmx、postmnmx、mapminmax
? ? premnmx函數(shù)用于將網(wǎng)絡(luò)的輸入數(shù)據(jù)或輸出數(shù)據(jù)進(jìn)行歸一化,歸一化后的數(shù)據(jù)將分布在[-1,1]區(qū)間內(nèi)。
? ? premnmx語句的語法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T),其中P,T分別為原始輸入和輸出數(shù)據(jù)。
? ? 在訓(xùn)練網(wǎng)絡(luò)時如果所用的是經(jīng)過歸一化的樣本數(shù)據(jù),那么以后使用網(wǎng)絡(luò)時所用的新數(shù)據(jù)也應(yīng)該和樣本數(shù)據(jù)接受相同的預(yù)處理,這就要用到tramnmx函數(shù):
? ? tramnmx語句的語法格式是:[PN]=tramnmx(P,minp,maxp)
? ? 其中P和PN分別為變換前、后的輸入數(shù)據(jù),maxp和minp分別為premnmx函數(shù)找到的最大值和最小值。
? ? 網(wǎng)絡(luò)輸出結(jié)果需要進(jìn)行反歸一化還原成原始的數(shù)據(jù),常用的函數(shù)是:postmnmx ??
? ? postmnmx語句的語法格式是:[PN] = postmnmx(P,minp,maxp)
? ? 其中P和PN分別為變換前、后的輸入數(shù)據(jù),maxp和minp分別為premnmx函數(shù)找到的最大值和最小值。
? ? 還有一個函數(shù)是mapminmax,該函數(shù)可以把矩陣的每一行歸一到[-1 1]mapminmax語句的語法格式是:[y1,PS] = mapminmax(x1)
? ? 其中x1 是需要歸一的矩陣 y1是結(jié)果。
? ? 當(dāng)需要對另外一組數(shù)據(jù)做歸一時,就可以用下面的方法做相同的歸一了。
? ? y2 = mapminmax('apply',x2,PS)
? ? 當(dāng)需要把歸一的數(shù)據(jù)還原時,可以用以下命令:
? ? x1_again = mapminmax('reverse',y1,PS)
第三種:prestd、poststd、trastd
? ? prestd歸一到單位方差和零均值。
? ? pminp和maxp分別為P中的最小值和最大值。mint和maxt分別為T的最小值和最大值
? ? ?歸一化的具體作用是歸納統(tǒng)一樣本的統(tǒng)計分布性。歸一化在0-1之間是統(tǒng)計的概率分布,歸一化在-1--+1之間是統(tǒng)計的坐標(biāo)分布。歸一化有同一、統(tǒng)一和合一的意思。無論是為了建模還是為了計算,首先基本度量單位要同一,神經(jīng)網(wǎng)絡(luò)是以樣本在事件中的統(tǒng)計分別幾率來進(jìn)行訓(xùn)練(概率計算)和預(yù)測的,且sigmoid函數(shù)的取值是0到1之間的,網(wǎng)絡(luò)最后一個節(jié)點的輸出也是如此,所以經(jīng)常要對樣本的輸出歸一化處理。歸一化是統(tǒng)一在0-1之間的統(tǒng)計概率分布,當(dāng)所有樣本的輸入信號都為正值時,與第一隱含層神經(jīng)元相連的權(quán)值只能同時增加或減小,從而導(dǎo)致學(xué)習(xí)速度很慢。另外在數(shù)據(jù)中常存在奇異樣本數(shù)據(jù),奇異樣本數(shù)據(jù)存在所引起的網(wǎng)絡(luò)訓(xùn)練時間增加,并可能引起網(wǎng)絡(luò)無法收斂。為了避免出現(xiàn)這種情況及后面數(shù)據(jù)處理的方便,加快網(wǎng)絡(luò)學(xué)習(xí)速度,可以對輸入信號進(jìn)行歸一化,使得所有樣本的輸入信號其均值接近于0或與其均方差相比很小。
2.matlab里常見歸一化的方法
第一種:在matlab里面,用于歸一化的方法共有三種:
(1)線性函數(shù)的轉(zhuǎn)換,表達(dá)式如下:
? ?y=(x-MinValue)/(MaxValue-MinValue) (歸一到0 1 之間)
? ?y=0.1+(x-min)/(max-min)*(0.9-0.1)(歸一到0.1-0.9之間)
? ?說明:x、y分別為轉(zhuǎn)換前、后的值,MaxValue、MinValue分別為樣本的最大值和最小值。
(2)對數(shù)函數(shù)轉(zhuǎn)換,表達(dá)式如下:
? ?y=log10(x)
? ?說明:以10為底的對數(shù)函數(shù)轉(zhuǎn)換。
(3)反余切函數(shù)轉(zhuǎn)換,表達(dá)式如下:
? ?y=atan(x)*2/PI
第二種:premnmx、tramnmx、postmnmx、mapminmax
? ? premnmx函數(shù)用于將網(wǎng)絡(luò)的輸入數(shù)據(jù)或輸出數(shù)據(jù)進(jìn)行歸一化,歸一化后的數(shù)據(jù)將分布在[-1,1]區(qū)間內(nèi)。
? ? premnmx語句的語法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T),其中P,T分別為原始輸入和輸出數(shù)據(jù)。
? ? 在訓(xùn)練網(wǎng)絡(luò)時如果所用的是經(jīng)過歸一化的樣本數(shù)據(jù),那么以后使用網(wǎng)絡(luò)時所用的新數(shù)據(jù)也應(yīng)該和樣本數(shù)據(jù)接受相同的預(yù)處理,這就要用到tramnmx函數(shù):
? ? tramnmx語句的語法格式是:[PN]=tramnmx(P,minp,maxp)
? ? 其中P和PN分別為變換前、后的輸入數(shù)據(jù),maxp和minp分別為premnmx函數(shù)找到的最大值和最小值。
? ? 網(wǎng)絡(luò)輸出結(jié)果需要進(jìn)行反歸一化還原成原始的數(shù)據(jù),常用的函數(shù)是:postmnmx ??
? ? postmnmx語句的語法格式是:[PN] = postmnmx(P,minp,maxp)
? ? 其中P和PN分別為變換前、后的輸入數(shù)據(jù),maxp和minp分別為premnmx函數(shù)找到的最大值和最小值。
? ? 還有一個函數(shù)是mapminmax,該函數(shù)可以把矩陣的每一行歸一到[-1 1]mapminmax語句的語法格式是:[y1,PS] = mapminmax(x1)
? ? 其中x1 是需要歸一的矩陣 y1是結(jié)果。
? ? 當(dāng)需要對另外一組數(shù)據(jù)做歸一時,就可以用下面的方法做相同的歸一了。
? ? y2 = mapminmax('apply',x2,PS)
? ? 當(dāng)需要把歸一的數(shù)據(jù)還原時,可以用以下命令:
? ? x1_again = mapminmax('reverse',y1,PS)
第三種:prestd、poststd、trastd
? ? prestd歸一到單位方差和零均值。
? ? pminp和maxp分別為P中的最小值和最大值。mint和maxt分別為T的最小值和最大值
總結(jié)
以上是生活随笔為你收集整理的归一化处理的目的和意义及其MATLAB方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于友善之臂出的Nanopi R2S盒子
- 下一篇: 频率归一化的定义