為什麼要進行資料歸一化 ?
為什麼要進行資料歸一化
加快訓練速度的。基本上所有的機器學習演算法進行訓練前都要進行歸一化,除非你確定所有特徵的範圍一致,不然最好歸一化下,這樣可以加快收斂速度
什麼是歸一化?matlab程式設計中為什麼要進行歸一化處理?
百度百科:歸一化是一種簡化計算的方式,即將有量綱的表示式,經過變換,化為無量綱的表示式,成為純量。 在多種計算中都經常用到這種方法。
並不是說matlab要進行歸一化處理,
而是矗你演算法本身需要
矩陣為什麼需要進行歸一化處理
b=sqrt(sum(a.*a));
c = a./repmat(b,size(a,1),1);
c就是a經過歸一化的矩陣
當然也可以寫成一句話
a = a./repmat(sqrt(sum(a.*a)),size(a,1),1);
數字訊號處理當中,為什麼會有歸一化
頻率的歸一化與幅度的歸一化有不同的出發點,主要是在數字訊號處理中,針對取樣頻率進行歸一化,歸一化後就可以在數字角頻率0-2pi下進行分析和討論,這樣做的原因有兩點:一是類似於最大值的歸一化(此時的2pi對應取樣率),二是取樣後的頻譜是以2pi為週期的。
如果歸一化的正確英文翻譯是normalization, 那就是說在處理的時候把訊號的強度拉到 1 的絕對值之間(語音訊號). 對訊號進行處理的時候, 訊號的絕對強度是沒有意義的, 我們關注的只是相對的訊號強度. 就像你說一句話,只要對方聽清了,對方都會知道你在說什麼, 聲音大小對你是否明白他在說什麼一點關係都沒有(前提是你聽到了對方說什麼)
神經網路為什麼要歸一化
首先,歸一化不能提高精度,他只是減少了較大值對輸出的影響。做歸一主要目的是能找一個同一的標準,雖然在結果上(指數字上)有了提高,但是實際結果沒有大的變化。精度提高,那得用好的演算法。
訓練輸入資料為什麼可以歸一化?
為什麼要歸一化。主要原因是消除不同維度資料之間的差異,還以加快訓練演算法的收斂速度。包括去除量綱不一致的缺陷,時間序列不平穩。 檢視原帖>>
神經網路輸入引數為什麼要歸一化
歸一化是方便神經網路快速的學習,掌握資料之間的邏輯關係。不歸一化也可以。
matlab神經 網路為什麼要進行歸一化 處理
可以,這個只是根據資料的大小來的,太大的差異會導致程式丟棄小資料,歸一化不會丟失資料,同樣不會讓資料失去原來的意義
不理解為什麼物理模型就要做歸一化呢?
我不大明白你是做了什麼歸一化,不過速度快的時候要進入相對論力學體系,所以速度不可能變得非常快的。至少不會超過真空光速。
matlab影象處理為什麼要歸一化和如
一、為什麼歸一化
1.
基本上歸一化思想是利用影象的不變矩尋找一組引數使其能夠消除其他變換函式對圖
像變換的影響。也就是轉換成唯一的標準形式以抵抗仿射變換
影象歸一化使得影象可以抵抗幾何變換的攻擊,
它能夠找出影象中的那些不變數,
從而
得知這些影象原本就是一樣的或者一個系列的。
因為我們這次的圖片有好多都是一個系列的,所以老師把這個也作為我研究的一個方
向。
我們主要要通過歸一化減小醫學圖片由於光線不均勻造成的干擾。
2.matlab
裡影象資料有時候必須是浮點型才能處理,而影象資料本身是
0-255
的
UNIT
型數
據所以需要歸一化,轉換到
0-1
之間。
3.
歸一化是一種簡化計算的方式,即將有量綱的表示式,經過變換,化為無量綱的表示式,
成為純量。
目的是為了:
(1).
避免具有不同物理意義和量綱的輸入變數不能平等使用
(2).bp
中常採用
sigmoid
函式作為轉移函式,歸一化能夠防止淨輸入絕對值過大引起的神經
元輸出飽和現象
(3).
保證輸出資料中數值小的不被吞食
3.
神經網路中歸一化的原因
歸一化是為了加快訓練網路的收斂性,可以不進行歸一化處理
歸一化的具體作用是歸納統一樣本的統計分佈性。
歸一化在
0-1
之間是統計的概率
分佈,歸一化在
-1--+1
之間是統計的座標分佈。歸一化有同一、統一和合一的意思。無論是
為了建模還是為了計算,
首先基本度量單位要同一,
神經網路是以樣本在事件中的統計分別
機率來進行訓練(概率計算)和預測的,歸一化是同一在
0-1
之間的統計概率分佈;
當所
有樣本的輸入訊號都為正值時,
與第一隱含層神經元相連的權值只能同時增加或減小,
從而
導致學習速度很慢。
為了避免出現這種情況,
加快網路學習速度,
可以對輸入訊號進行歸一
化,使得所有樣本的輸入訊號其均值接近於
0
或與其均方差相比很小。
歸一化是因為
sigmoid
函式的取值是
0
到
1
之間的,
網路最後一個節點的輸出也是
如此,
所以經常要對樣本的輸出歸一化處理。
所以這樣做分類的問題時用
[0.9 0.1 0.1]
就要比
用
[1 0 0]
要好。
但是歸一化處理並不總是合適的,
根據輸出值的分佈情況,
標準化等其它統計變換方法有時
可能更好。
二、如何歸一化
matlab
中的歸一化處理有三種方法
1. premnmx
、
postmnmx
、
tramnmx
2. restd
、
poststd
、
trastd
3.
自己程式設計
(1)
線性函式轉換,表示式如下:
y=(x-MinValue)/(MaxValue-MinValue)
說明:
x
、
y
分別為轉換前、後的值,
MaxValue
、
MinValue
分別為樣本的最大值和最小值。
(2)
對數函式轉換,表示式如下:
y=log10(x)
說明:以
10
為底的對數函式轉換。
(3)
反餘切函式轉換,表示式如下:
y=atan(x)*2/PI
(4)
一個歸一化程式碼
.
I=double(I);
maxvalue=max(max(I)');%max
在把矩陣每列的最大值找到,
並組成一個單行的陣列,
轉置一
下就會行轉換為列,再
max
就求一個......