Normalisasi dan standardisasi data dalam jaringan saraf

40

Saya mencoba untuk memprediksi hasil dari sistem yang kompleks menggunakan jaringan saraf (JST). Nilai hasil (tergantung) berkisar antara 0 dan 10.000. Variabel input yang berbeda memiliki rentang yang berbeda. Semua variabel memiliki distribusi normal.

Saya mempertimbangkan berbagai opsi untuk mengukur data sebelum pelatihan. Salah satu opsi adalah menskalakan variabel input (independen) dan output (dependen) menjadi [0, 1] dengan menghitung fungsi distribusi kumulatif menggunakan nilai rata-rata dan standar deviasi masing-masing variabel, secara independen. Masalah dengan metode ini adalah bahwa jika saya menggunakan fungsi aktivasi sigmoid pada output, saya kemungkinan besar akan kehilangan data ekstrem, terutama yang tidak terlihat dalam set pelatihan.

Pilihan lain adalah menggunakan skor-z. Dalam hal ini saya tidak memiliki masalah data ekstrem; Namun, saya terbatas pada fungsi aktivasi linier di output.

Apa teknik normalisasi lain yang diterima yang digunakan dengan JST? Saya mencoba mencari ulasan tentang topik ini, tetapi gagal menemukan sesuatu yang bermanfaat.

Boris Gorelik
sumber
Z-skor normalisasi kadang-kadang digunakan tetapi saya memiliki perasaan lucu itu mungkin nama lain untuk jawaban bayer ??
osknows
Itu sama kecuali untuk bagian pemutih.
bayerj
1
Jika Anda memprediksi nilai (seperti Anda) daripada probabilitas (yaitu regresi daripada klasifikasi), Anda harus selalu menggunakan fungsi output linier.
seanv507
Rank-Gauss oleh Michael Jahrer . Itu peringkat kemudian membuatnya gaussian.
user3226167

Jawaban:

32

Pendekatan standar adalah skala input untuk memiliki rata-rata 0 dan varian dari 1. Juga linear dekorasirelation / whitening / pca banyak membantu.

Jika Anda tertarik dengan trik perdagangan, saya dapat merekomendasikan kertas backprop LeCun yang efisien.

bayerj
sumber
1
Tentu saja seseorang tidak boleh mencoba untuk menormalkan data secara membabi buta jika data tidak mengikuti distribusi (tunggal) normal. stats.stackexchange.com/a/816/4581
user4581
24
Dengan jaringan saraf Anda harus melakukannya. Jika tidak, Anda akan segera menjenuhkan unit tersembunyi, maka gradiennya akan mendekati nol dan pembelajaran tidak mungkin dilakukan. Ini bukan tentang pemodelan (jaringan saraf tidak menganggap distribusi apapun dalam data input), tetapi tentang masalah numerik.
bayerj
Saya cukup bingung. Tautan ini ( machinelearningmastery.com/... ) mengatakan bahwa Standardisasi berguna ketika algoritma yang Anda gunakan membuat asumsi tentang data Anda yang memiliki distribusi Gaussian (Bukan NN). Kalau tidak, dikatakan bahwa Anda harus menggunakan Normalisasi. Bisakah seseorang mencerahkan saya?
ihebiheb
21

1- Normalisasi Min-max mempertahankan distribusi skor asli kecuali untuk faktor penskalaan dan mengubah semua skor menjadi rentang umum [0, 1]. Namun, metode ini tidak kuat (yaitu, metode ini sangat sensitif terhadap pencilan.

2- Standardisasi (normalisasi Z-score) Teknik yang paling umum digunakan, yang dihitung menggunakan rata-rata aritmatika dan standar deviasi dari data yang diberikan. Namun, baik mean dan standar deviasi peka terhadap outlier, dan teknik ini tidak menjamin rentang numerik umum untuk skor yang dinormalisasi. Selain itu, jika skor input tidak terdistribusi Gaussian, teknik ini tidak mempertahankan distribusi input pada output.

3- Median dan MAD: Median dan median deviasi absolut (MAD) tidak sensitif terhadap outlier dan titik-titik dalam ekor ekstrim dari distribusi. oleh karena itu kuat. Namun, teknik ini tidak mempertahankan distribusi input dan tidak mengubah skor menjadi rentang numerik yang umum.

4- tanh-estimators: The tanh-estimators diperkenalkan oleh Hampel et al. kuat dan sangat efisien. Normalisasi diberikan oleh

penduga tanh di mana μGH dan σGH adalah estimasi rata-rata dan standar deviasi, masing-masing, dari distribusi skor asli seperti yang diberikan oleh estimator Hampel.

Karena itu saya merekomendasikan tanh-estimators.

referensi https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt

Ahmad Hassanat
sumber
Saya kesulitan menemukan informasi tentang estimator tanh ini. Adakah yang bisa menjelaskan ini?
Ben Ogorek
Akhirnya menemukan sebuah makalah yang melakukan pekerjaan dengan baik menggambarkan penduga tanh untuk normalisasi: wjscheirer.com/papers/wjs_eccv2010_fusion.pdf . Mereka tidak terdengar layak sebagai opsi normalisasi tujuan umum. "[Estimasi Tanh] jauh lebih rumit untuk dihitung, dibandingkan dengan skor-z adaptif ... Titik-titik ekor untuk tiga interval berbeda dari skor median distribusi harus ditentukan secara ad hoc. Parameter ini bisa sulit untuk menentukan secara eksperimental, dan jika dipilih secara salah, batasi efektivitas penaksir tanh. "
Ben Ogorek
8

Saya memberikan jawaban yang sama di sini Ketika melakukan beberapa regresi, kapan Anda harus memusatkan variabel prediktor Anda & kapan Anda harus membakukannya? tetapi mengira itu konteks yang cukup berbeda sehingga jawaban bisa masuk ke sini.

Ada sumber daya usenet yang hebat http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html

Secara sederhana ini memberikan beberapa masalah dan pertimbangan ketika seseorang ingin menormalkan / menstandardisasi / mengubah skala data. Karena itu memperlakukan subjek dari perspektif pembelajaran mesin, dan karena pertanyaan Anda adalah ML, itu bisa memiliki beberapa relevansi.

Paul
sumber
Anda harus menulis poin utama dari setiap tautan di sini, sehingga tidak ada "navigasi" tambahan yang diperlukan
leoschet
2

Anda bisa melakukannya

  • min-max normalisasi (Normalisasi input / target untuk jatuh dalam kisaran [−1,1]), atau
  • normalisasi standar deviasi rata-rata (Normalisasi input / target untuk memiliki rata-rata nol dan varians kesatuan / standar deviasi)
prashanth
sumber
1

Jika Anda bekerja python, sklearnmemiliki metode untuk melakukan ini menggunakan teknik yang berbeda dalam preprocessingmodul mereka (ditambah fitur pipa bagus, dengan contoh dalam dokumen mereka):

import sklearn

# Normalize X, shape (n_samples, n_features)
X_norm = sklearn.preprocessing.normalize(X)
ryanjdillon
sumber
0

Ya, [0,1] adalah pendekatan standar. Untuk Neural Networks, bekerja paling baik di kisaran 0-1. Penskalaan Min-Max (atau Normalisasi) adalah pendekatan yang harus diikuti.

Sekarang pada outlier, dalam sebagian besar skenario kita harus memotong itu, karena outlier tidak umum, Anda tidak ingin outlier mempengaruhi model Anda (kecuali deteksi Anomali adalah masalah yang Anda pecahkan). Anda dapat memotongnya berdasarkan aturan Empiris 68-95-99.7 atau membuat plot kotak, amati, dan kemudian potong itu.

Formula MinMax - (xi - min(x)) / (max(x) - min(x)) atau bisa digunakansklearn.preprocessing.MinMaxScaler

D Tidak tersentuh
sumber
-1

"Diterima" adalah yang terbaik untuk Anda - lalu Anda menerimanya.

Dalam pengalaman saya, pas distribusi dari keluarga Johnson distribusi untuk masing-masing fitur kontinu bekerja dengan baik karena distribusi sangat fleksibel dan dapat mengubah sebagian besar fitur uni-modal menjadi distribusi normal standar. Ini akan membantu dengan fitur multi-modal juga, tetapi intinya adalah itu biasanya menempatkan fitur ke dalam bentuk yang paling diinginkan (data standar yang didistribusikan Gaussian ideal untuk bekerja dengan - itu kompatibel dengan, dan kadang-kadang optimal untuk, hampir setiap metode statistik / ML tersedia).

http://qualityamerica.com/LSS-Knowledge-Center/statributioninference/johnson_distributions.php

JPJ
sumber