資料預處理與Batch Normalization

2021-09-26 19:51:25 字數 915 閱讀 2530

在構建模型的時候,對資料進行預處理和批標準化特別重要,因此模型訓練並不容易,特別是一些非常複雜的模型,並不能很好的訓練得到收斂結果,所以對資料增加預處理,同時使用批標準化能夠得到非常好的收斂結果,這也是卷積神經網路能夠訓練到非常深的層的乙個重要原因。

1. 資料預處理

目前資料預處理最常見的方法是中心話和標準化(歸一化),中心化相當於修正資料的中心位置,實現方法非常簡單,就是在每個特徵維度上減去對應的均值,最後得到0均值的特徵。標準化也非常簡單,在資料變成0均值後,為了使得不同的特徵維度有著相同的規模,可以除以標準差近似為乙個標準正態分佈,也可以依據最大值和最小值將其轉換為(-1, 1)之間,也就是歸一化,下面是乙個簡單的圖示:

另外,還有一些方法比如pca等。

2. batch normalization

前面在資料預處理的時候,我們盡量輸入特徵不相關且滿足乙個標準的正態分佈,這樣模型的表現一般也較好。但是對於很深的網路結構,網路的非線性層會使得輸出的結果變得相關,且不再滿足乙個標準的n(0, 1)的分布,甚至輸出的中心也發生了偏移,這對於模型的訓練,特別是深層的模型訓練非常困難。所以在2023年一篇**提出了這個方法,批標準化,簡而言之,就是對於每一層網路的輸出,對其做乙個歸一化,使其服從標準的正態分佈,這樣後一層網路的輸入也是乙個標準的正態分佈,所以能夠較好的進行訓練,加快收斂速度。

batch normalization的實現非常簡單,對於給定的乙個batch資料b = 演算法的公式如下:

公式(1)、(2)計算出乙個batch中資料的均值和方差,接著使用公式(3)對batch中的每乙個資料做標準化,

ML 資料與資料預處理

在做機器學習的一些相關工作過程中,很多任務作涉及資料的處理,資料處理的好壞也直接影響實驗的最終結果,這裡將資料處理過程中的一些方法總結一下。機器學習裡有一句名言 資料和特徵決定了機器學習的上限,而模型和演算法的應用只是讓我們逼近這個上限。樣本資料集的數量和質量是否滿足模型構建的要求?有沒有出現從未設...

資料預處理

現實世界中資料大體上都是不完整,不一致的髒資料,無法直接進行資料探勘,或挖掘結果差強人意。為了提前資料探勘的質量產生了資料預處理技術。資料預處理有多種方法 資料清理,資料整合,資料變換,資料歸約等。這些資料處理技術在資料探勘之前使用,大大提高了資料探勘模式的質量,降低實際挖掘所需要的時間。一 資料清...

資料預處理

常見的資料預處理方法,以下通過sklearn的preprocessing模組來介紹 變換後各維特徵有0均值,單位方差。也叫z score規範化 零均值規範化 計算方式是將特徵值減去均值,除以標準差。sklearn.preprocessing scale x 一般會把train和test集放在一起做標...