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