關於神經網路(matlab)歸一化的整理

2022-09-10 19:24:15 字數 1690 閱讀 5482

關於神經網路歸一化方法的整理

由於採集的各資料單位不一致,因而須對資料進行[-1,1]歸一化處理,歸一化方法主要有如下幾種,供大家參

考:(by james)

1、線性函式轉換,表示式如下:

y=(x-minvalue)/(maxvalue-minvalue)

說明:x、y分別為轉換前、後的值,maxvalue、minvalue分別為樣本的最大值和最小值。

2、對數函式轉換,表示式如下:

y=log10(x)

說明:以10為底的對數函式轉換。

3、反餘切函式轉換,表示式如下:

y=atan(x)*2/pi

歸一化是為了加快訓練網路的收斂性,可以不進行歸一化處理

歸一化的具體作用是歸納統一樣本的統計分布性。歸一化在0-1之間是統計的概率分布,歸一化在-1--+1之間是

統計的座標分布。歸一化有同

一、統一和合一的意思。無論是為了建模還是為了計算,首先基本度量單位要同

一,神經網路是以樣本在事件中的統計分別機率來進行訓練(概率計算)和**的,歸一化是同一在0-1之間的

統計概率分布;

當所有樣本的輸入訊號都為正值時,與第一隱含層神經元相連的權值只能同時增加或減小,從而導致學習速度

很慢。為了避免出現這種情況,加快網路學習速度,可以對輸入訊號進行歸一化,使得所有樣本的輸入訊號其

均值接近於0或與其均方差相比很小。

歸一化是因為sigmoid函式的取值是0到1之間的,網路最後乙個節點的輸出也是如此,所以經常要對樣本的輸出

歸一化處理。所以這樣做分類的問題時用[0.9 0.1 0.1]就要比用[1 0 0]要好。

但是歸一化處理並不總是合適的,根據輸出值的分布情況,標準化等其它統計變換方法有時可能更好。

關於用premnmx語句進行歸一化:

premnmx語句的語法格式是:[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t)

其中p,t分別為原始輸入和輸出資料,minp和maxp分別為p中的最小值和最大值。mint和maxt分別為t的最小值

和最大值。

premnmx函式用於將網路的輸入資料或輸出資料進行歸一化,歸一化後的資料將分布在[-1,1]區間內。

我們在訓練網路時如果所用的是經過歸一化的樣本資料,那麼以後使用網路時所用的新資料也應該和樣本資料

接受相同的預處理,這就要用到tramnmx。

下面介紹tramnmx函式:

[pn]=tramnmx(p,minp,maxp)

其中p和pn分別為變換前、後的輸入資料,maxp和minp分別為premnmx函式找到的最大值和最小值。

(by terry2008)

matlab中的歸一化處理有三種方法

1. premnmx、postmnmx、tramnmx

2. restd、poststd、trastd

3. 自己程式設計

具體用那種方法就和你的具體問題有關了

pm=max(abs(p(i,:))); p(i,:)=p(i,:)/pm;

和for i=1:27

p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));

end 可以歸一到0 1 之間

0.1+(x-min)/(max-min)*(0.9-0.1)其中max和min分別表示樣本最大值和最小值。

這個可以歸一到0.1-0.9

關於神經網路歸一化方法的整理

標籤 matlab 神經網路 歸一化 2014 04 26 10 33 1205人閱讀收藏 舉報 問題 如何在matlab中用簡單點的方法實現矩陣歸一化,並落在0 1之間?歸一化方法很多,乙個比較簡單的 x min x max x min x 表示式如下 y x minvalue maxvalue ...

神經網路為什麼要歸一化

神經網路為什麼要歸一化 1.數值問題。無容置疑,歸一化的確可以避免一些不必要的數值問題。輸入變數的數量級未致於會引起數值問題吧,但其實要引起也並不是那麼困難。因為tansig的非線性區間大約在 1.7,1.7 意味著要使神經元有效,tansig w1 x1 w2 x2 b 裡的 w1 x1 w2 x...

神經網路要做歸一化的原因

見到乙個有意思的討論,在此複述。無容置疑,歸一化的確可以避免一些不必要的數值問題。輸入變數的數量級未致於會引起數值問題,因為tansig的非線性區間大約在 1.7,1.7 意味著要使神經元有效,tansig w1x1 w2x2 b 裡的 w1x1 w2x2 b 數量級應該在 1 1.7所在的數量級 ...