Sejauh yang saya tahu, kedua autoencoder dan t-SNE digunakan untuk pengurangan dimensi nonlinier. Apa perbedaan di antara mereka dan mengapa saya harus menggunakan satu versus yang lain?
Sejauh yang saya tahu, kedua autoencoder dan t-SNE digunakan untuk pengurangan dimensi nonlinier. Apa perbedaan di antara mereka dan mengapa saya harus menggunakan satu versus yang lain?
Jawaban:
Keduanya mencoba menemukan penyematan dimensi data Anda yang lebih rendah. Namun, ada berbagai masalah minimisasi. Lebih khusus lagi, autoencoder mencoba untuk meminimalkan kesalahan rekonstruksi, sementara t-SNE mencoba untuk menemukan ruang dimensi yang lebih rendah dan pada saat yang sama mencoba untuk melestarikan jarak lingkungan. Sebagai hasil dari atribut ini, t-SNE biasanya lebih disukai untuk plot dan visualisasi.
[Autoencoder] terutama fokus pada memaksimalkan varians data di ruang laten, sebagai akibatnya autencoder kurang berhasil dalam mempertahankan struktur lokal data di ruang laten daripada banyak siswa ...
Dari "Mempelajari Penanaman Parametrik dengan Melestarikan Struktur Lokal", Laurens van der Maaten ( https://lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf )
Autoencoder dan t-SNE dapat digunakan bersama untuk visualisasi yang lebih baik dalam data dimensi tinggi, seperti yang dijelaskan dalam [1]:
Khusus untuk visualisasi 2D, t-SNE mungkin adalah algoritma terbaik, tetapi biasanya membutuhkan data dimensi yang relatif rendah. Jadi strategi yang baik untuk memvisualisasikan hubungan kesamaan dalam data dimensi tinggi adalah mulai dengan menggunakan autoencoder untuk memampatkan data Anda ke ruang dimensi rendah (misalnya 32 dimensi), kemudian gunakan t-SNE untuk memetakan data yang dikompresi ke bidang 2D .
[1] https://blog.keras.io/building-autoencoders-in-keras.html
Autoencoder dirancang untuk menyimpan data sebelumnya dalam arti 2-norma, yang dapat dianggap sebagai melestarikan energi kinetik data, jika data kecepatan.
Sementara t-SNE, menggunakan KL divergence yang tidak simetris, itu akan menyebabkan t-SNE lebih fokus pada struktur lokal, sementara autoencoder cenderung menjaga kesalahan L2 keseluruhan kecil, yang dalam arti global.