Bagaimana dan mengapa kerja normalisasi dan penskalaan fitur berfungsi?

61

Saya melihat bahwa banyak algoritma pembelajaran mesin bekerja lebih baik dengan pembatalan rata-rata dan penyamaan kovarian. Sebagai contoh, Neural Networks cenderung lebih cepat konvergen, dan K-Means umumnya memberikan pengelompokan yang lebih baik dengan fitur-fitur yang sudah diproses sebelumnya. Saya tidak melihat intuisi di balik langkah-langkah pra-pemrosesan ini mengarah pada peningkatan kinerja. Bisakah seseorang menjelaskan ini padaku?

erogol
sumber

Jawaban:

25

Ini hanya kasus mendapatkan semua data Anda pada skala yang sama: jika skala untuk fitur yang berbeda sangat berbeda, ini dapat memiliki efek knock-on pada kemampuan Anda untuk belajar (tergantung pada metode apa yang Anda gunakan untuk melakukannya) . Memastikan nilai fitur standar secara implisit menimbang semua fitur secara setara dalam representasi mereka.

Ben Allison
sumber
3
apa yang Anda maksud dengan "ini dapat memiliki efek pada kemampuan Anda untuk belajar", mungkin Anda bisa mengembangkan ini?
Charlie Parker
14
Ini sebenarnya bukan penjelasan yang bagus. Untuk mencapai pemahaman sejati, Anda harus melangkah setidaknya satu tingkat lebih dalam dalam penjelasan.
Zelphir Kaltstahl
saya perlu referensi apa pun untuk tesis saya
x-rw
40

Memang benar bahwa preprocessing dalam pembelajaran mesin agak merupakan seni yang sangat hitam. Tidak banyak ditulis di kertas mengapa beberapa langkah preprocessing sangat penting untuk membuatnya bekerja. Saya juga tidak yakin apakah itu dipahami dalam setiap kasus. Untuk membuat segalanya lebih rumit, itu sangat tergantung pada metode yang Anda gunakan dan juga pada domain masalah.

Beberapa metode misalnya adalah transformasi affine invarian. Jika Anda memiliki jaringan saraf dan hanya menerapkan transformasi affine ke data Anda, jaringan tidak kehilangan atau mendapatkan apa pun dalam teori. Namun dalam praktiknya, jaringan saraf bekerja paling baik jika inputnya terpusat dan putih. Itu berarti bahwa kovarians mereka adalah diagonal dan rata-rata adalah vektor nol. Mengapa ini meningkatkan banyak hal? Itu hanya karena optimalisasi jaringan syaraf bekerja lebih anggun, karena fungsi aktivasi tersembunyi tidak menjenuhkan secepat itu dan dengan demikian tidak memberi Anda gradien mendekati nol pada awal pembelajaran.

Metode lain, misalnya K-Means, mungkin memberi Anda solusi yang sama sekali berbeda tergantung pada preprocessing. Ini karena transformasi affine menyiratkan perubahan dalam ruang metrik: jarak Euclidean dengan dua sampel akan berbeda setelah transformasi itu.

Pada akhirnya, Anda ingin memahami apa yang Anda lakukan terhadap data. Misalnya memutihkan dalam visi komputer dan sampel normalisasi bijak adalah sesuatu yang otak manusia juga dalam pipa visinya.

bayerj
sumber
17

Beberapa ide, referensi, dan plot tentang mengapa normalisasi input dapat berguna untuk JST dan k-means:

K-means :

K-means clustering adalah "isotropik" di semua arah ruang dan karenanya cenderung menghasilkan lebih banyak atau lebih sedikit (bukan memanjang) cluster. Dalam situasi ini, meninggalkan varian tidak sama dengan menempatkan bobot lebih besar pada variabel dengan varian lebih kecil.

Contoh di Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

(FYI: Bagaimana saya bisa mendeteksi jika dataset saya berkerumun atau tidak terputus (yaitu membentuk satu cluster tunggal )

Cluster terdistribusi :

Analisis komparatif menunjukkan bahwa hasil clustering terdistribusi tergantung pada jenis prosedur normalisasi.

Jaringan saraf tiruan (input) :

Jika variabel input digabungkan secara linier, seperti dalam MLP, maka jarang diperlukan standar untuk input, setidaknya secara teori. Alasannya adalah bahwa setiap skala ulang vektor input dapat dibatalkan secara efektif dengan mengubah bobot dan bias yang sesuai, membuat Anda dengan output yang sama persis seperti yang Anda miliki sebelumnya. Namun, ada berbagai alasan praktis mengapa standardisasi input dapat membuat pelatihan lebih cepat dan mengurangi kemungkinan terjebak dalam optima lokal. Juga, pembusukan berat dan estimasi Bayesian dapat dilakukan dengan lebih mudah dengan input standar.

Jaringan saraf tiruan (input / output)

Haruskah Anda melakukan hal-hal ini pada data Anda? Jawabannya adalah, tergantung.

Menstandarisasi baik input atau variabel target cenderung membuat proses pelatihan berperilaku lebih baik dengan meningkatkan kondisi numerik (lihat ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) dari masalah optimasi dan memastikan bahwa berbagai standar nilai-nilai yang terlibat dalam inisialisasi dan terminasi adalah tepat. Menstandarkan target juga dapat memengaruhi fungsi objektif.

Standarisasi kasus harus didekati dengan hati-hati karena membuang informasi. Jika informasi itu tidak relevan, maka standarisasi kasus dapat sangat membantu. Jika informasi itu penting, maka standarisasi kasus dapat menjadi bencana.


Menariknya, mengubah unit pengukuran bahkan dapat menyebabkan orang melihat struktur pengelompokan yang sangat berbeda: Kaufman, Leonard, dan Peter J. Rousseeuw .. "Menemukan grup dalam data: Pengantar analisis klaster." (2005).

Dalam beberapa aplikasi, mengubah unit pengukuran bahkan dapat menyebabkan orang melihat struktur pengelompokan yang sangat berbeda. Misalnya, usia (dalam tahun) dan tinggi (dalam sentimeter) dari empat orang imajiner diberikan pada Tabel 3 dan diplot pada Gambar 3. Tampaknya {A, B) dan {C, 0) adalah dua kelompok yang terpisah dengan baik. . Di sisi lain, ketika tinggi dinyatakan dalam kaki satu memperoleh Tabel 4 dan Gambar 4, di mana cluster yang jelas sekarang {A, C} dan {B, D}. Partisi ini benar-benar berbeda dari yang pertama karena setiap subjek telah menerima pendamping lain. (Gambar 4 akan lebih rata jika usia diukur dalam beberapa hari.)

Untuk menghindari ketergantungan ini pada pilihan unit pengukuran, seseorang memiliki pilihan untuk menstandarisasi data. Ini mengubah pengukuran asli ke variabel tanpa unit.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Kaufman et al. berlanjut dengan beberapa pertimbangan menarik (halaman 11):

Dari sudut pandang filosofis, standardisasi tidak benar-benar menyelesaikan masalah. Memang, pilihan unit pengukuran menimbulkan bobot relatif dari variabel. Mengekspresikan variabel dalam unit yang lebih kecil akan mengarah ke rentang yang lebih besar untuk variabel itu, yang kemudian akan memiliki efek besar pada struktur yang dihasilkan. Di sisi lain, dengan menstandarisasi satu upaya untuk memberikan semua variabel bobot yang sama, dengan harapan mencapai objektivitas. Dengan demikian, dapat digunakan oleh seorang praktisi yang tidak memiliki pengetahuan sebelumnya. Namun, mungkin bahwa beberapa variabel secara intrinsik lebih penting daripada yang lain dalam aplikasi tertentu, dan kemudian penugasan bobot harus didasarkan pada pengetahuan materi pelajaran (lihat, misalnya, Abrahamowicz, 1985). Di samping itu, telah ada upaya untuk merancang teknik pengelompokan yang independen dari skala variabel (Friedman dan Rubin, 1967). Usulan Hardy dan Rasson (1982) adalah untuk mencari partisi yang meminimalkan volume total cembung lambung cluster. Pada prinsipnya metode semacam itu invarian sehubungan dengan transformasi linear dari data, tetapi sayangnya tidak ada algoritma untuk implementasinya (kecuali untuk perkiraan yang terbatas pada dua dimensi). Oleh karena itu, dilema standardisasi tampaknya tidak dapat dihindari saat ini dan program-program yang dijelaskan dalam buku ini menyerahkan pilihan kepada pengguna. Usulan Hardy dan Rasson (1982) adalah untuk mencari partisi yang meminimalkan volume total cembung lambung cluster. Pada prinsipnya metode semacam itu invarian sehubungan dengan transformasi linear dari data, tetapi sayangnya tidak ada algoritma untuk implementasinya (kecuali untuk perkiraan yang terbatas pada dua dimensi). Oleh karena itu, dilema standardisasi tampaknya tidak dapat dihindari saat ini dan program-program yang dijelaskan dalam buku ini menyerahkan pilihan kepada pengguna. Usulan Hardy dan Rasson (1982) adalah untuk mencari partisi yang meminimalkan volume total cembung lambung cluster. Pada prinsipnya metode semacam itu invarian sehubungan dengan transformasi linear dari data, tetapi sayangnya tidak ada algoritma untuk implementasinya (kecuali untuk perkiraan yang terbatas pada dua dimensi). Oleh karena itu, dilema standardisasi tampaknya tidak dapat dihindari saat ini dan program-program yang dijelaskan dalam buku ini menyerahkan pilihan kepada pengguna.

Franck Dernoncourt
sumber
6

Mengapa penskalaan fitur berfungsi? Saya bisa memberi Anda sebuah contoh (dari Quora )

Biarkan saya menjawab ini dari perspektif ML umum dan bukan hanya jaringan saraf. Saat Anda mengumpulkan data dan mengekstrak fitur, seringkali data dikumpulkan pada skala yang berbeda. Misalnya, usia karyawan di sebuah perusahaan mungkin antara 21-70 tahun, ukuran rumah mereka hidup adalah 500-5.000 kaki Sq dan gaji mereka dapat berkisar dari 80000. Dalam situasi ini jika Anda menggunakan Euclidean sederhana metrik, fitur usia tidak akan memainkan peran apa pun karena beberapa urutan lebih kecil daripada fitur lainnya. Namun, ini mungkin berisi beberapa informasi penting yang mungkin berguna untuk tugas tersebut. Di sini, Anda mungkin ingin menormalkan fitur secara independen pada skala yang sama, katakan [0,1], sehingga mereka berkontribusi sama saat menghitung jarak.30000

Vijay PR
sumber
4
Jika Anda mengutip sebuah pos dari Quora, Anda benar-benar perlu menautkan ke sumbernya.
Matthew Drury
5

Ada dua masalah terpisah:

a) mempelajari fungsi yang tepat misalnya k-means: skala input pada dasarnya menentukan kesamaan, sehingga kluster yang ditemukan bergantung pada penskalaan. regularisasi - mis. l2 regularisasi bobot - Anda menganggap setiap bobot harus "sama kecil" - jika data Anda tidak diskalakan "dengan tepat" ini tidak akan menjadi kasus

b) optimisasi, yaitu dengan gradient descent (mis. sebagian besar jaringan saraf). Untuk penurunan gradien, Anda harus memilih tingkat pembelajaran ... tetapi tingkat pembelajaran yang baik (setidaknya pada lapisan tersembunyi 1) tergantung pada penskalaan input: input kecil [relevan] biasanya akan membutuhkan bobot yang lebih besar, sehingga Anda ingin pembelajaran yang lebih besar nilai untuk bobot tersebut (untuk sampai di sana lebih cepat), dan vv untuk input besar ... karena Anda hanya ingin menggunakan tingkat pembelajaran tunggal, Anda mengubah skala input Anda. (dan memutihkan yaitu menghias juga penting karena alasan yang sama)

seanv507
sumber
1

Makalah ini hanya membahas tentang k-means, tetapi menjelaskan dan membuktikan persyaratan pemrosesan data dengan cukup baik.

Standardisasi adalah langkah preprocessing sentral dalam penambangan data, untuk membakukan nilai fitur atau atribut dari rentang dinamis yang berbeda ke dalam rentang tertentu. Dalam tulisan ini, kami telah menganalisis kinerja tiga metode standardisasi pada algoritma K-means konvensional. Dengan membandingkan hasil pada dataset penyakit menular, ditemukan bahwa hasil yang diperoleh dengan metode standardisasi z-skor lebih efektif dan efisien daripada metode standardisasi penskalaan minimal dan desimal.

.

... jika ada beberapa fitur, dengan ukuran besar atau variabilitas besar, fitur semacam ini akan sangat mempengaruhi hasil pengelompokan. Dalam hal ini, standardisasi data akan menjadi tugas preprocessing penting untuk skala atau mengontrol variabilitas dataset.

.

... fitur harus tidak berdimensi karena nilai numerik rentang fitur dimensional bergantung pada unit pengukuran dan, karenanya, pemilihan unit pengukuran dapat secara signifikan mengubah hasil pengelompokan. Oleh karena itu, seseorang tidak boleh menggunakan langkah-langkah jarak seperti jarak Euclidean tanpa memiliki normalisasi set data

Sumber: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf

Leo
sumber
1

Pra-pemrosesan sering berhasil karena tidak menghapus fitur data yang tidak terkait dengan masalah klasifikasi yang Anda coba pecahkan. Pikirkan misalnya tentang mengklasifikasikan data suara dari speaker yang berbeda. Fluktuasi dalam kenyaringan (amplitudo) mungkin tidak relevan, sedangkan spektrum frekuensi adalah aspek yang sangat relevan. Jadi dalam kasus ini, normalisasi amplitudo akan sangat membantu untuk sebagian besar algoritma ML, karena menghilangkan aspek data yang tidak relevan dan akan menyebabkan jaringan saraf overfit untuk pola palsu.

Nicolas Schuck
sumber
1

Saya pikir ini dilakukan hanya agar fitur dengan nilai yang lebih besar tidak menaungi efek fitur dengan nilai yang lebih kecil ketika mempelajari classifier. Ini menjadi sangat penting jika fitur dengan nilai yang lebih kecil benar-benar berkontribusi terhadap pemisahan kelas. Pengklasifikasi seperti regresi logistik akan mengalami kesulitan mempelajari batas keputusan, misalnya jika ada di tingkat mikro dari fitur dan kami memiliki fitur lain dari urutan jutaan . Juga membantu algoritma untuk lebih baik. Karenanya, kami tidak mengambil risiko apa pun saat mengodekannya ke dalam algoritme kami. Jauh lebih mudah bagi penggolong, untuk mempelajari kontribusi (bobot) fitur dengan cara ini. Juga berlaku untuk K berarti ketika menggunakan norma-norma euclidean (kebingungan karena skala). Beberapa algoritma dapat bekerja tanpa normalisasi juga.

Vaibhav Arora
sumber