Yapay sinir ağlarında veri normalleşmesi ve standardizasyon


39

Sinir ağlarını (YSA) kullanarak karmaşık bir sistemin sonucunu tahmin etmeye çalışıyorum. Sonuç (bağımlı) değerler 0 ile 10,000 arasındadır. Farklı giriş değişkenlerinin farklı aralıkları vardır. Tüm değişkenler kabaca normal dağılımlara sahiptir.

Antrenmandan önce verileri ölçeklendirmek için farklı seçenekler düşünüyorum. Bir seçenek, her değişkenin ortalama ve standart sapma değerlerini bağımsız olarak kullanarak kümülatif dağılım fonksiyonunu hesaplayarak giriş (bağımsız) ve çıkış (bağımlı) değişkenlerini [0, 1] olarak ölçeklendirmektir . Bu yöntemle ilgili sorun, çıkışta sigmoid aktivasyon işlevini kullanırsam, özellikle eğitim setinde görülmeyenler gibi aşırı verileri çok özleyeceğim.

Diğer bir seçenek ise z-puanı kullanmaktır. Bu durumda aşırı veri problemim yok; ancak, çıktıdaki doğrusal bir etkinleştirme işleviyle sınırlıdır.

YSA'larla birlikte kullanılan diğer kabul edilmiş normalleştirme teknikleri nelerdir? Bu konuyla ilgili yorumları aramaya çalıştım, ancak yararlı bir şey bulamadım.


Z-puanları normalleştirme bazen kullanılır, ancak bayer's cevabı için başka bir isim olabilir komik bir his var?
saat

Beyazlatma kısmı hariç aynı.
bayerj

1
Bir olasılıktan ziyade bir değeri (olduğu gibi) tahmin ediyorsanız (yani sınıflandırma yerine regresyon) daima doğrusal bir çıkış fonksiyonu kullanmalısınız.
seanv507

Yanıtlar:


32

Standart bir yaklaşım, girdilerin ortalama 0 ve 1'in bir varyansı olacak şekilde ölçeklendirilmesidir. Ayrıca doğrusal dekor korelasyonu / beyazlatma / pca çok yardımcı olur.

Ticaretin püf noktaları ile ilgileniyorsanız, LeCun’un verimli arka kağıtlarını tavsiye edebilirim .


1
Elbette, veriler bir (tek) normal dağılım izlemiyorsa, verileri asla normal şekilde normalleştirmeye çalışmamalısınız. stats.stackexchange.com/a/816/4581
user4581

24
Sinir ağları ile zorundasın. Aksi takdirde, gizli birimleri hemen doygun hale getireceksiniz, sonra gradyanları sıfıra yakın olacak ve öğrenme mümkün olmayacak. Modelleme ile ilgili değil (sinir ağları girdi verilerinde herhangi bir dağılım varsaymıyor), ancak sayısal konularla ilgili.
bayerj,

Kafam oldukça karıştı. Bu bağlantı ( machinelearningmastery.com/… ), kullandığınız algoritma Gauss dağılımına sahip verilerinizle ilgili varsayımlarda bulunduğunda Standardizasyon'un faydalı olduğunu söylüyor ( NN'de değil). Aksi takdirde, Normalizasyon kullanmanız gerektiğini söylüyor. Biri beni aydınlatabilir mi?
ihebiheb

20

1- Min-max normalizasyonu, ölçeklendirme faktörü dışındaki orijinal skor dağılımını korur ve tüm skorları ortak bir aralığa dönüştürür [0, 1]. Bununla birlikte, bu yöntem sağlam değildir (yani, yöntem aykırı değerlere karşı oldukça hassastır.

2- Standardizasyon (Z-puan normalizasyonu) Verilen verinin aritmetik ortalaması ve standart sapması kullanılarak hesaplanan en yaygın kullanılan tekniktir. Bununla birlikte, hem ortalama hem de standart sapma aykırı değerlere duyarlıdır ve bu teknik normalleştirilmiş puanlar için ortak bir sayısal aralığı garanti etmemektedir. Dahası, eğer girdi puanları Gauss dağınık değilse, bu teknik çıktıdaki girdi dağılımını korumaz.

3- Medyan ve MAD: Medyan ve medyan mutlak sapma (MAD) aykırı değerlere ve dağılımın aşırı uçlarındaki noktalara duyarsızdır. bu nedenle sağlam. Bununla birlikte, bu teknik giriş dağılımını korumaz ve puanları ortak bir sayısal aralığa dönüştürmez.

4-tanh-tahmin ediciler: Hampel ve ark. sağlam ve yüksek verimlidir. Normalleştirme tarafından verilir

tanh tahmin edicileri μGH ve σGH, Hampel tahmin edicileri tarafından verilen orijinal puan dağılımının sırasıyla ortalama ve standart sapma tahminleridir.

Bu nedenle tanim-tahmincilerini öneririm.

başvuru https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt


Bu tanim tahmincisi hakkında bilgi bulmakta zorlanıyorum. Birisi buna biraz ışık tutabilir mi?
Ben Ogorek

Sonunda normalizasyon için tanh tahmin edicilerinin tanımlandığı iyi bir iş çıkaran bir makale bulundu: wjscheirer.com/papers/wjs_eccv2010_fusion.pdf . Genel amaçlı normalleştirme seçeneği olarak uygun görünmüyorlar. "[Tanh tahmin edicileri], uyarlanabilir z-skorlarına kıyasla, hesaplamak için çok daha karmaşıktır ... Dağılımın ortanca puanından üç farklı aralık için kuyruk noktaları özel bir şekilde tanımlanmalıdır. Bu parametreler zor olabilir. deneysel olarak belirlemek ve yanlış seçilmesi durumunda,
tanin

8

Burada da benzer bir cevap verdim Çoklu regresyon yaparken, ne zaman tahminde bulunabildiğiniz değişkenleri ne zaman ortalamalı ve ne zaman standartlaştırmalısınız? ancak bir cevabın buraya gelmesinin yeterince farklı bir bağlam olduğunu düşündüm.

Harika bir usenet kaynağı var: http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html

Verileri normalleştirmek / standartlaştırmak / yeniden ölçeklendirmek istediğinde, bazı terimler basit ve basit olarak verilmektedir. Konuya bir makine öğrenme bakış açısıyla yaklaşırken ve sorunuz ML olduğu için bir miktar ilgisi olabilir.


Her bağlantının ana noktalarını buraya yazmalısınız, bu nedenle ek "gezinme" gerekmez
leoschet

2

Yapabilirsin

  • min-max normalleştirme (Girişleri / hedefleri [−1,1] aralığında olacak şekilde normalize edin) veya
  • ortalama-standart sapma normalizasyonu (Normalize girişleri / hedefleri sıfır ortalama ve birlik sapması / standart sapma)

1

Eğer çalışıyorsanız python, sklearnsahip Bunu yapmanın bir yöntemi kendi içinde kullanılarak farklı teknikler preprocessing(kendi docs içinde bir örnekle artı şık boru hattı özelliğini,) modülü:

import sklearn

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

0

Eh, [0,1] standart yaklaşımdır. Yapay Sinir Ağları için en iyi 0-1 aralığında çalışır. Min-Max ölçeklendirme (veya Normalizasyon) izlenecek yaklaşımdır.

Şimdi aykırı değerler üzerinde, çoğu senaryoda bunları aykırmamız gerekir, aykırı değerler yaygın olmadığından, aykırılıkların modelinizi etkilemesini istemezsiniz (Anomali tespiti çözmekte olduğunuz sorun değilse). 68-95-99.7'deki Empirical kuralına göre klip atabilir veya bir kutu arsa oluşturabilir, gözlemleyebilir ve buna göre atabilirsiniz.

MinMax formülü - (xi - min(x)) / (max(x) - min(x)) veya kullanabilirsinizsklearn.preprocessing.MinMaxScaler


-1

“Kabul” sizin için en iyi olan şeydir - o zaman kabul edersiniz.

Tecrübelerime göre Johnson dağıtım ailesinden bir dağılımın sürekli özelliklerin her birine uyması iyi çalışır çünkü dağılımlar oldukça esnektir ve çoğu tek yönlü özelliği standart normal dağılımlara dönüştürebilir. Çok modlu özelliklere de yardımcı olacaktır, ancak nokta genel olarak özellikleri mümkün olan en arzu edilen forma sokmasıdır (standart Gauss dağınık verilerle çalışmak için idealdir - uyumludur ve çoğu kişi için en uygun olanıdır) İstatistiksel / ML yöntemi mevcuttur).

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.