Apa perbedaan antara PCA dan autoencoder?

56

Baik PCA dan autoencoder dapat melakukan pengurangan demensi, jadi apa perbedaan di antara mereka? Dalam situasi apa saya harus menggunakan satu sama lain?

RockTheStar
sumber

Jawaban:

52

PCA terbatas pada peta linier, sedangkan enkoder otomatis dapat memiliki enoder / dekoder nonlinear.

Encoder otomatis lapisan tunggal dengan fungsi transfer linier hampir setara dengan PCA, di mana hampir berarti bahwa ditemukan oleh AE dan PCA tidak akan sama - tetapi subruang yang direntang oleh masing-masing akan.WWW

bayerj
sumber
Saya melihat! Jadi saya perlu memiliki dua lapisan untuk transformasi non-linear. Jadi banyak lapisan berarti non-linear yang sangat kompleks?
RockTheStar
7
@RockTheStar: ini bukan jumlah lapisan yang penting, tetapi fungsi aktivasi [fungsi transfer]. Dengan fungsi transfer linier, tidak ada jumlah lapisan yang akan mengarah ke autoencoder non-linear.
Amuba mengatakan Reinstate Monica
Jadi, dengan transformasi non-linear, bahkan hanya ada 1 lapisan unit tersembunyi. Solusinya masih non-linear?
RockTheStar
Iya. (Juga mungkin masih linier dalam beberapa kasus, misalnya ketika unit tersembunyi diaktifkan di daerah linier dekat.)
bayerj
"ketika unit tersembunyi diaktifkan di daerah linier dekat", maksud Anda bagian linier dalam fungsi sigmoid, kan?
RockTheStar
17

Seperti yang ditunjukkan bayerj, PCA adalah metode yang mengasumsikan sistem linear sedangkan Autoencoder (AE) tidak. Jika tidak ada fungsi non-linear yang digunakan dalam AE dan jumlah neuron dalam lapisan tersembunyi adalah lebih kecil dari dimensi maka input maka PCA dan AE dapat menghasilkan hasil yang sama. Kalau tidak, AE dapat menemukan subruang yang berbeda.

Satu hal yang perlu diperhatikan adalah bahwa lapisan tersembunyi dalam AE dapat memiliki dimensi yang lebih besar daripada input. Dalam kasus seperti itu, AE mungkin tidak melakukan pengurangan dimensionalitas. Dalam hal ini kami menganggap mereka melakukan transformasi dari satu ruang fitur ke yang lain di mana data dalam ruang fitur baru menguraikan faktor variasi.

Mengenai pertanyaan Anda tentang apakah beberapa lapisan berarti sangat kompleks non-linear dalam respons Anda terhadap bayerj. Tergantung pada apa yang Anda maksud dengan "non-linear yang sangat kompleks" ini bisa benar. Namun kedalaman benar-benar menawarkan generalisasi yang lebih baik. Banyak metode yang membutuhkan jumlah sampel yang sama dengan jumlah wilayah. Namun ternyata "sejumlah besar daerah, misalnya , dapat didefinisikan dengan contoh " menurut Bengio et al . Ini adalah hasil dari kerumitan dalam representasi yang muncul dari penyusunan fitur yang lebih rendah dari lapisan bawah dalam jaringan.O ( N )O(2N)O(N)

DaemonMaker
sumber
2
Terima kasih untuk ans Anda!
RockTheStar
6

Ini lebih cocok sebagai komentar tetapi karena saya kurang reputasi untuk itu akan diberikan sebagai jawaban.

Saya agak bingung dengan anggapan hampir dalam jawaban bayerj: s. Membaca Neural Networks dan Analisis Komponen Utama: Belajar dari Contoh Tanpa Minima Lokal di mana buktinya diberikan.

'' Dalam kasus auto-asosiatif ... dan karena itu peta unik lokal dan global optimal W adalah proyeksi ortogonal ke ruang yang direntang oleh vektor eigen pertama Σ X X '' pΣXX

Apakah ini bukan ruang koresponden yang direntang oleh PCA?

Johnblund
sumber
1
Kertas yang Anda kutip menggunakan autoencoder linier, yaitu, tidak ada fungsi aktivasi non-linear. Itulah sebabnya bobotnya mencakup subruang yang sama yang direntang oleh PCA dengan tepat.
elliotp
6

{xiRn}i=1NN nXx1,,xN

h1=W1x+b1x^=W2h1+b2

x^W1Rn×mW2Rm×nm<n

mW2mX

W2mXXn×NW2m×nW2O(m2n)XO(n2N)m<n

DeltaIV
sumber