ปัญหาของ t-SNE คือมันไม่ได้รักษาระยะห่างหรือความหนาแน่น มีเพียงบางส่วนเท่านั้นที่สงวนเพื่อนบ้านที่ใกล้ที่สุด ความแตกต่างนั้นบอบบาง แต่มีผลต่ออัลกอริธึมที่ใช้ความหนาแน่นหรือระยะทางใด ๆ
หากต้องการดูเอฟเฟกต์นี้เพียงแค่สร้างการแจกแจงแบบเกาส์หลายตัวแปร หากคุณมองเห็นสิ่งนี้คุณจะมีลูกบอลที่หนาแน่นและมีความหนาแน่นน้อยกว่ามากโดยมีค่าผิดปกติบางอย่างที่อยู่ไกลออกไป
ตอนนี้รัน t-SNE กับข้อมูลนี้ โดยปกติคุณจะได้วงกลมที่มีความหนาแน่นค่อนข้างสม่ำเสมอ หากคุณใช้ความงุนงงต่ำอาจมีลวดลายแปลก ๆ อยู่ในนั้น แต่คุณไม่สามารถแยกความผิดได้อีก
ตอนนี้ให้ทำสิ่งที่ซับซ้อนมากขึ้น ลองใช้ 250 คะแนนในการแจกแจงแบบปกติที่ (-2,0) และ 750 คะแนนในการกระจายแบบปกติที่ (+2,0)
นี่ควรจะเป็นชุดข้อมูลที่ง่ายเช่นกับ EM:
ถ้าเรารัน t-SNE ด้วยความงุนงงเป็นค่าเริ่มต้นที่ 40 เราจะได้รูปแบบที่แปลกประหลาด:
ไม่เลว แต่ก็ไม่ง่ายที่จะจัดกลุ่มมันคืออะไร? คุณจะมีเวลาในการค้นหาอัลกอริทึมการจัดกลุ่มที่ทำงานตรงตามที่ต้องการ และแม้ว่าคุณจะขอให้มนุษย์จัดกลุ่มข้อมูลนี้เป็นไปได้ว่าพวกเขาจะพบกลุ่มมากกว่า 2 กลุ่มที่นี่
ถ้าเรารัน t-SNE ด้วยความงุนงงที่น้อยเกินไปเช่น 20 เราจะได้รูปแบบเหล่านี้มากขึ้นซึ่งไม่มีอยู่จริง:
สิ่งนี้จะจัดกลุ่มเช่นกับ DBSCAN แต่จะให้ผลสี่กลุ่ม ดังนั้นระวัง t-SNE สามารถสร้างรูปแบบ "ปลอม"!
ความสับสนที่เหมาะสมดูเหมือนจะอยู่ที่ประมาณ 80 สำหรับชุดข้อมูลนี้ แต่ฉันไม่คิดว่าพารามิเตอร์นี้ควรใช้ได้กับชุดข้อมูลอื่น ๆ
ตอนนี้เป็นที่ชื่นชอบสายตา แต่ไม่ดีกว่าสำหรับการวิเคราะห์ คำอธิบายประกอบมนุษย์อาจเลือกตัดและรับผลลัพธ์ที่เหมาะสม k-หมายความว่าจะล้มเหลวแม้ในสถานการณ์ที่ง่ายมากนี้ ! คุณสามารถเห็นได้ว่าข้อมูลความหนาแน่นหายไปแล้วข้อมูลทั้งหมดดูเหมือนจะอยู่ในพื้นที่ที่มีความหนาแน่นเท่ากันเกือบทั้งหมด ถ้าเราจะเพิ่มความสับสนให้มากขึ้นความสม่ำเสมอจะเพิ่มขึ้นและการแยกจะลดลงอีกครั้ง
ในบทสรุปใช้ t-SNE สำหรับการสร้างภาพ (และลองใช้พารามิเตอร์ที่แตกต่างกันเพื่อให้ได้สิ่งที่น่าพึงพอใจทางสายตา!) แต่อย่าใช้การจัดกลุ่มในภายหลังโดยเฉพาะอย่าใช้อัลกอริธึมตามระยะทางหรือความหนาแน่นตามข้อมูลนี้ สูญหาย. วิธีตามกราฟของย่านนั้นอาจใช้ได้ แต่คุณไม่จำเป็นต้องเรียกใช้ t-SNE ก่อนล่วงหน้าเพียงใช้เพื่อนบ้านทันที (เนื่องจาก t-SNE พยายามเก็บ nn-graph นี้ส่วนใหญ่ไว้เหมือนเดิม)
ตัวอย่างเพิ่มเติม
ตัวอย่างเหล่านี้ถูกเตรียมไว้สำหรับการนำเสนอบทความ (แต่ยังไม่พบในกระดาษเหมือนที่ฉันทำการทดลองนี้ในภายหลัง)
Erich Schubert และ Michael Gertz
Intrinsic t-Stochastic Neighbor การฝังสำหรับการสร้างภาพและการตรวจหาค่าผิดเพี้ยน - การเยียวยาต่อคำสาปของมิติ?
ใน: การดำเนินการประชุมนานาชาติครั้งที่ 10 ว่าด้วยการค้นหาและแอพพลิเคชั่นที่คล้ายคลึงกัน (SISAP) มิวนิคเยอรมนี 2017
อันดับแรกเรามีข้อมูลอินพุตนี้:
อย่างที่คุณอาจเดาได้ว่านี่มาจากภาพ "color me" สำหรับเด็ก ๆ
ถ้าเราเรียกใช้ผ่าน SNE ( ไม่ใช่ t-SNEแต่เป็นรุ่นก่อน):
ว้าวปลาของเรากลายเป็นสัตว์ประหลาดในทะเล! เนื่องจากขนาดเคอร์เนลถูกเลือกในเครื่องเราจึงสูญเสียข้อมูลความหนาแน่นไปมาก
แต่คุณจะประหลาดใจกับผลลัพธ์ของ t-SNE:
ฉันได้ลองใช้งานสองแบบ (ELKI และการใช้งาน sklearn) และทั้งคู่ก็สร้างผลลัพธ์เช่นนั้น บางส่วนถูกตัดการเชื่อมต่อ แต่มีลักษณะที่สอดคล้องกับข้อมูลต้นฉบับบ้าง
จุดสำคัญสองข้อที่จะอธิบายสิ่งนี้:
SGD ใช้กระบวนการปรับแต่งซ้ำและอาจติดอยู่ใน Optima ท้องถิ่น โดยเฉพาะอย่างยิ่งสิ่งนี้ทำให้เป็นเรื่องยากสำหรับอัลกอริทึมในการ "พลิก" ส่วนหนึ่งของข้อมูลที่มีการทำมิเรอร์เนื่องจากจะต้องมีจุดเคลื่อนที่ผ่านส่วนอื่น ๆ ที่ควรแยกจากกัน ดังนั้นหากบางส่วนของปลาถูกมิร์เรอร์และส่วนอื่น ๆ ไม่ได้ถูกมิเรอร์ก็อาจไม่สามารถแก้ไขได้
t-SNE ใช้การแจกแจงแบบ t ในพื้นที่ฉาย ตรงกันข้ามกับการแจกแจงแบบเกาส์ที่ใช้โดย SNE ปกติซึ่งหมายความว่าคะแนนส่วนใหญ่จะผลักกันเพราะพวกเขามี 0 affinity ในโดเมนอินพุต (Gaussian ได้รับศูนย์อย่างรวดเร็ว) แต่> 0 affinity ในโดเมนเอาต์พุต บางครั้ง (เช่นเดียวกับใน MNIST) สิ่งนี้ทำให้การสร้างภาพข้อมูลดีขึ้น โดยเฉพาะอย่างยิ่งมันสามารถช่วย "แยก" ชุดข้อมูลได้มากกว่าในโดเมนอินพุต แรงผลักเพิ่มเติมนี้มักทำให้เกิดจุดที่ใช้พื้นที่อย่างสม่ำเสมอซึ่งอาจเป็นที่ต้องการ แต่ที่นี่ในตัวอย่างนี้ผลกระทบการขับไล่จริงทำให้ชิ้นส่วนของปลาแยกจากกัน
เราสามารถช่วย (ในชุดข้อมูลของเล่นนี้) ฉบับที่หนึ่งโดยใช้พิกัดดั้งเดิมเป็นตำแหน่งเริ่มต้นแทนที่จะเป็นพิกัดสุ่ม (ตามปกติจะใช้กับ t-SNE) เวลานี้ภาพดังกล่าวเป็น sklearn แทนที่จะเป็น ELKI เนื่องจากรุ่น sklearn มีพารามิเตอร์ที่จะผ่านพิกัดเริ่มต้นแล้ว:
อย่างที่คุณเห็นแม้กับตำแหน่งเริ่มต้นที่ "สมบูรณ์แบบ" t-SNE จะ "ทำลาย" ปลาในสถานที่ต่าง ๆ ที่เชื่อมต่อกันมาตั้งแต่นักเรียน -tulsion ในโดเมนเอาท์พุทมีความแข็งแกร่งกว่า Gaussian affinity ในอินพุต ช่องว่าง
อย่างที่คุณเห็น t-SNE (และ SNE เช่นกัน!) เป็นเทคนิคการสร้างภาพข้อมูลที่น่าสนใจแต่พวกเขาจำเป็นต้องจัดการอย่างระมัดระวัง ฉันอยากจะไม่ใช้ k-mean กับผลลัพธ์! เพราะผลลัพธ์จะบิดเบี้ยวอย่างหนักและไม่มีระยะทางหรือความหนาแน่นถูกเก็บรักษาไว้อย่างดี ให้ใช้สำหรับการสร้างภาพข้อมูลแทน