Batch Norm常用方法
在運用一些機器學習算法的時候不可避免地要對數據進行特征縮放(feature scaling),比如:在隨機梯度下降(stochastic gradient descent)算法中,特征縮放有時能提高算法的收斂速度。
特征縮放的目標就是數據規(guī)范化,使得特征的范圍具有可比性。它是數據處理的預處理,對后面的使用數據具有關鍵作用。
機器算法為什么要特征縮放?
- 特征縮放還可以使機器學習算法工作的更好。比如在K近鄰算法中,分類器主要是計算兩點之間的歐幾里得距離,如果一個特征比其它的特征有更大的范圍值,那么距離將會被這個特征值所主導。因此每個特征應該被歸一化,比如將取值范圍處理為0到1之間。
- 第二個原因則是,特征縮放也可以加快梯度收斂的速度。
"標準化"和"歸一化"這兩個中文詞要指代四種Feature scaling(特征縮放)方法。
數據的歸一化和縮放非常重要,會影響到特征選擇和對真實業(yè)務問題的判定。
特征縮放的方法
調節(jié)比例(Rescaling)(不免疫outlier)
這種方法是將數據的特征縮放到[0,1]或[-1,1]之間,使得完整向量具有長度1。縮放到什么范圍取決于數據的性質。對于這種方法的公式如下:
x′=x?min(x)max(x)?min(x)x^\prime = \frac{x-min(x)}{max(x)-min(x)} x′=max(x)?min(x)x?min(x)?
xxx是最初的特征值,x′x^\primex′是縮放后的值。
適用場景:
- 如果對輸出結果范圍有要求,用歸一化
- 如果數據較為穩(wěn)定,不存在極端的最大最小值,用歸一化
缺點:這種方法有個缺陷就是當有新數據加入時,可能導致max和min的變化,需要重新定義。
from sklearn.preprocessing import MinMaxScaler#初始化一個scaler對象 scaler = MinMaxScaler()#調用scaler的fit_transform方法,把我們要處理的列作為參數傳進去 data['標準化后的A列數據'] = scaler.fit_transform(data['A列數據'])平均值規(guī)范化(Mean normalization)(不免疫outlier)
x′=x?mean(x)max(x)?min(x)x^\prime = \frac{x-mean(x)}{max(x)-min(x)} x′=max(x)?min(x)x?mean(x)?
適用場景:矩陣分解
標準化(Standardization)(不免疫outlier)
特征標準化使每個特征的值有零均值(zero-mean)和單位方差(unit-variance)。這個方法在機器學習地算法中被廣泛地使用。例如:SVM,邏輯回歸和神經網絡。這個方法的公式如下:
x′=x?mean(x)std(x)x^\prime=\frac{x-mean(x)}{std(x)} x′=std(x)x?mean(x)?
標準差的定義為:
std(x)=∑(x?mean(x))2nstd(x)=\sqrt{\frac{\sum(x-mean(x))^2}{n}} std(x)=n∑(x?mean(x))2??
適用場景:
- SVM、LR、神經網絡
- 如果數據存在異常值和較多噪音,用標準化,可以間接通過中心化避免異常值和極端值的影響
縮放到單位長度(Scaling to unit length)(不免疫outlier)
x′=x∥x∥x^\prime = \frac{x}{\left \| x \right \|} x′=∥x∥x?
就是除以向量的歐拉長度( the Euclidean length of the vector),二維范數。相當于每個組件除以向量的歐幾里德(也就是歐拉)長度。
這種方式在TansE中比較常見。
絕對值標準化(不免疫outlier)
專為稀疏數據而生。將每個要素縮放到[-1,1]范圍,它不會移動/居中數據,因此不會破壞任何稀疏性。該估計器單獨地縮放每個特征,使得訓練集中的每個特征的最大絕對值將是1.0。該縮放器也可以應用于稀疏CSR或CSC矩陣
魯棒性標準化(免疫outlier)
專為異常值而生。標準差標準化(第一種,最常用的那種)對數據中出現的異常值處理能力不佳,因此誕生了robust_scale,這種不怕異常值擾動的數據縮放法。此Scaler根據分位數范圍(默認為IQR:Interquartile Range)刪除中位數并縮放數據。 IQR是第1四分位數(第25個分位數)和第3個四分位數(第75個分位數)之間的范圍。
總結
以上是生活随笔為你收集整理的Batch Norm常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小娘惹演员(小娘惹陈盛谁演的)
- 下一篇: 拔牙大概要多少钱一颗