อะไรคือความแตกต่างระหว่าง autoencoders และ t-SNE


12

เท่าที่ฉันรู้ทั้งตัวเข้ารหัสอัตโนมัติและ t-SNE นั้นใช้สำหรับการลดขนาดแบบไม่เชิงเส้น อะไรคือความแตกต่างระหว่างพวกเขาและทำไมฉันถึงควรใช้อันหนึ่งกับอีกอัน?

คำตอบ:


8

ทั้งคู่พยายามหามิติข้อมูลที่ฝังอยู่ใต้ข้อมูลของคุณ อย่างไรก็ตามมีปัญหาการย่อเล็กสุดแตกต่างกัน โดยเฉพาะอย่างยิ่ง autoencoder พยายามที่จะลดข้อผิดพลาดในการสร้างใหม่ในขณะที่ t-SNE พยายามที่จะหาพื้นที่มิติที่ต่ำกว่าและในเวลาเดียวกันก็พยายามที่จะรักษาระยะทางที่ใกล้เคียง เป็นผลมาจากคุณลักษณะนี้มักจะต้องการ t-SNE สำหรับแปลงและการสร้างภาพ


ดังนั้นในแง่นี้มันหมายถึง autoencoder ดีกว่าที่จะหามิติที่ต่ำกว่าเมื่อมิติด้านล่างมากกว่า 3D (เพราะฉันสมมติว่ามิติที่ต่ำกว่ามีขนาดใหญ่ t-SNE อาจทำงานได้ไม่ดีใช่ไหม)
RockTheStar

2
มีระบบเข้ารหัสอัตโนมัติหลายประเภท (เบาบางแปรปรวนซ้อนกันสลับซับซ้อน ฯลฯ ) ขึ้นอยู่กับงานของคุณ พวกมันมีประสิทธิภาพมากในการค้นหางานแต่งงานที่มีมิติต่ำกว่า ดังนั้นหากงานของคุณคือการหาพื้นที่มิติต่ำสุดที่เหมาะสม (แม้กระทั่ง 2D) ฉันขอแนะนำให้คุณเลือก autoencoder ที่เหมาะสมสำหรับงานของคุณ ถ้าคุณต้องทำ visualisations t-SNE น่าจะเป็นตัวเลือกของคุณ เนื่องจากการอนุรักษ์ระยะทางใกล้เคียงสามารถทำให้มองเห็นได้ดีขึ้น
Yannis Assael

2

[Autoencoders] มุ่งเน้นไปที่การเพิ่มความแปรปรวนของข้อมูลในพื้นที่ที่ซ่อนเร้นซึ่งเป็นผลมาจากการที่ autoencoders ประสบความสำเร็จน้อยกว่าในการรักษาโครงสร้างของข้อมูลในพื้นที่แฝงมากกว่าผู้เรียนที่หลากหลาย ...

จาก "การเรียนรู้การฝังพารามิเตอร์โดยการรักษาโครงสร้างของท้องถิ่น", Laurens van der Maaten ( https://lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf )


นี่ไม่ใช่ "กระดาษ t-SNE" t-SNE มาตรฐานนั้นไม่ใช่แบบพารามิเตอร์
อะมีบา

1
ขอบคุณ @amoeba สำหรับความคิดเห็นของคุณเกี่ยวกับเรื่องนี้ ฉันแก้ไขโพสต์
128525

1

Autoencoder และ t-SNE สามารถใช้ร่วมกันเพื่อการสร้างภาพที่ดีขึ้นในข้อมูลมิติสูงดังที่อธิบายไว้ใน [1]:

สำหรับการสร้างภาพ 2D โดยเฉพาะ t-SNE น่าจะเป็นอัลกอริธึมที่ดีที่สุด แต่โดยทั่วไปแล้วมันต้องการข้อมูลที่มีขนาดค่อนข้างต่ำ ดังนั้นกลยุทธ์ที่ดีสำหรับการแสดงภาพความสัมพันธ์ที่คล้ายคลึงกันในข้อมูลมิติสูงคือการเริ่มต้นโดยใช้ autoencoder เพื่อบีบอัดข้อมูลของคุณลงในพื้นที่มิติต่ำ (เช่น 32 มิติ) จากนั้นใช้ t-SNE สำหรับทำแผนที่ข้อมูลบีบอัดไปยังระนาบ 2D .


[1] https://blog.keras.io/building-autoencoders-in-keras.html


0

Autoencoder ถูกออกแบบมาเพื่อรักษาข้อมูลก่อนหน้านี้ในความหมาย 2 บรรทัดซึ่งสามารถคิดได้ว่าเป็นการรักษาพลังงานจลน์ของข้อมูลหากข้อมูลเป็นความเร็ว

ในขณะที่ t-SNE ใช้ KL divergence ซึ่งไม่สมมาตร แต่จะนำไปสู่การโฟกัส t-SNE มากขึ้นกับโครงสร้างท้องถิ่นในขณะที่ autoencoder มีแนวโน้มที่จะทำให้เกิดข้อผิดพลาด L2 โดยรวมซึ่งอยู่ในระดับโลก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.