Cara Kerja PCA - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Cara Kerja PCA

Principal Component Analysis (PCA) adalah algoritma pembelajaran yang mengurangi dimensi (jumlah fitur) dalam kumpulan data sambil tetap mempertahankan informasi sebanyak mungkin.

PCAmengurangi dimensi dengan menemukan serangkaian fitur baru yang disebut komponen, yang merupakan komposit dari fitur asli, tetapi tidak berkorelasi satu sama lain. Komponen pertama menyumbang variabilitas terbesar yang mungkin dalam data, komponen kedua adalah variabilitas terbanyak kedua, dan seterusnya.

Ini adalah algoritma pengurangan dimensi tanpa pengawasan. Dalam pembelajaran tanpa pengawasan, label yang mungkin terkait dengan objek dalam kumpulan data pelatihan tidak digunakan.

Mengingat masukan matriks dengan baris x_1,…,x_n masing-masing dimensi1 * d, data dipartisi menjadi mini-batch baris dan didistribusikan di antara node pelatihan (pekerja). Setiap pekerja kemudian menghitung ringkasan datanya. Ringkasan dari pekerja yang berbeda kemudian disatukan menjadi satu solusi pada akhir perhitungan.

Modus

SageMaker PCAAlgoritma Amazon menggunakan salah satu dari dua mode untuk menghitung ringkasan ini, tergantung pada situasinya:

  • reguler: untuk kumpulan data dengan data yang jarang dan jumlah pengamatan dan fitur yang moderat.

  • acak: untuk kumpulan data dengan sejumlah besar pengamatan dan fitur. Mode ini menggunakan algoritma aproksimasi.

Sebagai langkah terakhir algoritma, ia melakukan dekomposisi nilai tunggal pada solusi terpadu, dari mana komponen utama kemudian diturunkan.

Mode 1: Reguler

Para pekerja bersama-sama menghitung keduanya Equation in text-form: \sum x_i^T x_i dan. Equation in text-form: \sum x_i

catatan

Karena Equation in text-form: x_i adalah vektor 1 * d baris, Equation in text-form: x_i^T x_i adalah matriks (bukan skalar). Menggunakan vektor baris dalam kode memungkinkan kita untuk mendapatkan caching yang efisien.

Matriks kovarians dihitung sebagai Equation in text-form: \sum x_i^T x_i - (1/n) (\sum x_i)^T \sum x_i , dan vektor num_components tunggal atasnya membentuk model.

catatan

Jika subtract_mean yaFalse, kami menghindari komputasi dan pengurangan Equation in text-form: \sum x_i .

Gunakan algoritma ini ketika d dimensi vektor cukup kecil sehingga Equation in text-form: d^2 dapat masuk ke dalam memori.

Mode 2: Acak

Ketika jumlah fitur dalam kumpulan data input besar, kami menggunakan metode untuk memperkirakan metrik kovarians. Untuk setiap mini-batch Equation in text-form: X_t dimensib * d, kami secara acak menginisialisasi (num_components + extra_components) * b matriks yang kami kalikan dengan setiap mini-batch, untuk membuat matriks. (num_components + extra_components) * d Jumlah matriks ini dihitung oleh pekerja, dan server bekerja SVD pada matriks akhir. (num_components + extra_components) * d Vektor num_components tunggal kanan atasnya adalah perkiraan vektor tunggal atas dari matriks input.

Biarkan Equation in text-form: \ell = num_components + extra_components. Diberikan kumpulan Equation in text-form: X_t dimensi minib * d, pekerja menggambar matriks Equation in text-form: H_t dimensi Equation in text-form: \ell * b acak. Tergantung pada apakah lingkungan menggunakan GPU atau CPU dan ukuran dimensi, matriks adalah matriks tanda acak di mana setiap entri adalah +-1 atau a FJLT(transformasi cepat Johnson Lindenstrauss; untuk informasi, lihat FJLTTransformasi dan makalah tindak lanjut). Pekerja kemudian menghitung Equation in text-form: H_t X_t dan memelihara Equation in text-form: B = \sum H_t X_t . Pekerja juga mempertahankan Equation in text-form: h^T , jumlah kolom Equation in text-form: H_1,..,H_T (Tmenjadi jumlah total mini-batch), dans, jumlah semua baris input. Setelah memproses seluruh pecahan data, pekerja mengirimkan serverB,, hs, dan n (jumlah baris input).

Menunjukkan input yang berbeda ke server sebagai Server Equation in text-form: B^1, h^1, s^1, n^1,… menghitungB,, hs, n jumlah input masing-masing. Kemudian menghitung Equation in text-form: C = B – (1/n) h^T s , dan menemukan dekomposisi nilai tunggalnya. Vektor tunggal kanan atas dan nilai tunggal C digunakan sebagai solusi perkiraan untuk masalah tersebut.