การทำคลัสเตอร์บนเอาต์พุตของ t-SNE


78

ฉันมีแอปพลิเคชั่นที่จะสะดวกในการจัดกลุ่มชุดข้อมูลที่มีเสียงดังก่อนที่จะมองหาเอฟเฟกต์กลุ่มย่อยภายในกลุ่ม ครั้งแรกที่ฉันดู PCA แต่ต้องใช้ส่วนประกอบประมาณ 30 ชิ้นเพื่อรับความแปรปรวนได้ถึง 90% ดังนั้นการรวมกลุ่มกับพีซีเพียงไม่กี่เครื่องจะทำให้ข้อมูลจำนวนมากหมด

จากนั้นฉันก็ลอง t-SNE (เป็นครั้งแรก) ซึ่งทำให้ฉันมีรูปร่างแปลก ๆ ในสองมิติที่คล้อยตามการจัดกลุ่มผ่าน k-mean ยิ่งไปกว่านั้นการรันฟอเรสต์แบบสุ่มบนข้อมูลด้วยการกำหนดคลัสเตอร์เนื่องจากผลลัพธ์แสดงว่ากลุ่มมีการตีความที่สมเหตุสมผลพอสมควรตามบริบทของปัญหาในแง่ของตัวแปรที่ประกอบขึ้นเป็นข้อมูลดิบ

แต่ถ้าฉันจะรายงานเกี่ยวกับกลุ่มเหล่านี้ฉันจะอธิบายพวกเขาได้อย่างไร K-หมายถึงกลุ่มบนส่วนประกอบหลักเปิดเผยบุคคลที่อยู่ใกล้กันในแง่ของตัวแปรที่ได้รับซึ่งประกอบด้วย X% ของความแปรปรวนในชุดข้อมูล คำสั่งที่เทียบเท่าสามารถทำอะไรได้บ้างเกี่ยวกับกลุ่ม t-SNE

บางทีสิ่งที่จะเป็นผลของ:

t-SNE แสดงให้เห็นถึงความใกล้เคียงกันโดยประมาณในนานามิติมิติพื้นฐานดังนั้นกลุ่มที่มีมิติต่ำของพื้นที่มิติสูงจะเพิ่ม "โอกาส" ที่บุคคลที่อยู่ติดกันจะไม่อยู่ในกลุ่มเดียวกัน

ทุกคนสามารถเสนอการแจ้งเตือนที่ดีกว่านั้นได้หรือไม่?


1
ฉันคิดว่ากลอุบายคือการอธิบายกลุ่มตามตัวแปรดั้งเดิมแทนที่จะเป็นตัวแปรในพื้นที่ที่ลดลง
ทิม

1
ใช่ แต่ไม่มีคำอธิบายที่กระชับและเข้าใจง่ายของอัลกอริธึมการกำหนดกลุ่มเป้าหมายที่ย่อเล็กสุดฉันอาจเปิดให้คิดค่าใช้จ่ายในการเลือกอัลกอริทึมการจัดกลุ่มที่ช่วยให้ได้ผลลัพธ์ที่ต้องการ
generic_user

1
สำหรับคำเตือนและการมองเห็นที่ดีของ t-SNE ดูที่distill.pub/2016/misread-tsne
Tom Wenseleers

คำตอบ:


95

ปัญหาของ t-SNE คือมันไม่ได้รักษาระยะห่างหรือความหนาแน่น มีเพียงบางส่วนเท่านั้นที่สงวนเพื่อนบ้านที่ใกล้ที่สุด ความแตกต่างนั้นบอบบาง แต่มีผลต่ออัลกอริธึมที่ใช้ความหนาแน่นหรือระยะทางใด ๆ

หากต้องการดูเอฟเฟกต์นี้เพียงแค่สร้างการแจกแจงแบบเกาส์หลายตัวแปร หากคุณมองเห็นสิ่งนี้คุณจะมีลูกบอลที่หนาแน่นและมีความหนาแน่นน้อยกว่ามากโดยมีค่าผิดปกติบางอย่างที่อยู่ไกลออกไป

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

ตอนนี้ให้ทำสิ่งที่ซับซ้อนมากขึ้น ลองใช้ 250 คะแนนในการแจกแจงแบบปกติที่ (-2,0) และ 750 คะแนนในการกระจายแบบปกติที่ (+2,0)

ป้อนข้อมูล

นี่ควรจะเป็นชุดข้อมูลที่ง่ายเช่นกับ EM:

การจัดกลุ่ม EM

ถ้าเรารัน t-SNE ด้วยความงุนงงเป็นค่าเริ่มต้นที่ 40 เราจะได้รูปแบบที่แปลกประหลาด:

t-SNE p = 40

ไม่เลว แต่ก็ไม่ง่ายที่จะจัดกลุ่มมันคืออะไร? คุณจะมีเวลาในการค้นหาอัลกอริทึมการจัดกลุ่มที่ทำงานตรงตามที่ต้องการ และแม้ว่าคุณจะขอให้มนุษย์จัดกลุ่มข้อมูลนี้เป็นไปได้ว่าพวกเขาจะพบกลุ่มมากกว่า 2 กลุ่มที่นี่

ถ้าเรารัน t-SNE ด้วยความงุนงงที่น้อยเกินไปเช่น 20 เราจะได้รูปแบบเหล่านี้มากขึ้นซึ่งไม่มีอยู่จริง:

t-SNE p = 20

สิ่งนี้จะจัดกลุ่มเช่นกับ DBSCAN แต่จะให้ผลสี่กลุ่ม ดังนั้นระวัง t-SNE สามารถสร้างรูปแบบ "ปลอม"!

ความสับสนที่เหมาะสมดูเหมือนจะอยู่ที่ประมาณ 80 สำหรับชุดข้อมูลนี้ แต่ฉันไม่คิดว่าพารามิเตอร์นี้ควรใช้ได้กับชุดข้อมูลอื่น ๆ

t-SNE p = 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แต่เป็นรุ่นก่อน):

ปลา SNE

ว้าวปลาของเรากลายเป็นสัตว์ประหลาดในทะเล! เนื่องจากขนาดเคอร์เนลถูกเลือกในเครื่องเราจึงสูญเสียข้อมูลความหนาแน่นไปมาก

แต่คุณจะประหลาดใจกับผลลัพธ์ของ t-SNE:

ปลา t-SNE

ฉันได้ลองใช้งานสองแบบ (ELKI และการใช้งาน sklearn) และทั้งคู่ก็สร้างผลลัพธ์เช่นนั้น บางส่วนถูกตัดการเชื่อมต่อ แต่มีลักษณะที่สอดคล้องกับข้อมูลต้นฉบับบ้าง

จุดสำคัญสองข้อที่จะอธิบายสิ่งนี้:

  1. SGD ใช้กระบวนการปรับแต่งซ้ำและอาจติดอยู่ใน Optima ท้องถิ่น โดยเฉพาะอย่างยิ่งสิ่งนี้ทำให้เป็นเรื่องยากสำหรับอัลกอริทึมในการ "พลิก" ส่วนหนึ่งของข้อมูลที่มีการทำมิเรอร์เนื่องจากจะต้องมีจุดเคลื่อนที่ผ่านส่วนอื่น ๆ ที่ควรแยกจากกัน ดังนั้นหากบางส่วนของปลาถูกมิร์เรอร์และส่วนอื่น ๆ ไม่ได้ถูกมิเรอร์ก็อาจไม่สามารถแก้ไขได้

  2. t-SNE ใช้การแจกแจงแบบ t ในพื้นที่ฉาย ตรงกันข้ามกับการแจกแจงแบบเกาส์ที่ใช้โดย SNE ปกติซึ่งหมายความว่าคะแนนส่วนใหญ่จะผลักกันเพราะพวกเขามี 0 affinity ในโดเมนอินพุต (Gaussian ได้รับศูนย์อย่างรวดเร็ว) แต่> 0 affinity ในโดเมนเอาต์พุต บางครั้ง (เช่นเดียวกับใน MNIST) สิ่งนี้ทำให้การสร้างภาพข้อมูลดีขึ้น โดยเฉพาะอย่างยิ่งมันสามารถช่วย "แยก" ชุดข้อมูลได้มากกว่าในโดเมนอินพุต แรงผลักเพิ่มเติมนี้มักทำให้เกิดจุดที่ใช้พื้นที่อย่างสม่ำเสมอซึ่งอาจเป็นที่ต้องการ แต่ที่นี่ในตัวอย่างนี้ผลกระทบการขับไล่จริงทำให้ชิ้นส่วนของปลาแยกจากกัน

เราสามารถช่วย (ในชุดข้อมูลของเล่นนี้) ฉบับที่หนึ่งโดยใช้พิกัดดั้งเดิมเป็นตำแหน่งเริ่มต้นแทนที่จะเป็นพิกัดสุ่ม (ตามปกติจะใช้กับ t-SNE) เวลานี้ภาพดังกล่าวเป็น sklearn แทนที่จะเป็น ELKI เนื่องจากรุ่น sklearn มีพารามิเตอร์ที่จะผ่านพิกัดเริ่มต้นแล้ว:

ปลา, t-SNE พร้อมพิกัดดั้งเดิมเป็นการเริ่มต้น

อย่างที่คุณเห็นแม้กับตำแหน่งเริ่มต้นที่ "สมบูรณ์แบบ" t-SNE จะ "ทำลาย" ปลาในสถานที่ต่าง ๆ ที่เชื่อมต่อกันมาตั้งแต่นักเรียน -tulsion ในโดเมนเอาท์พุทมีความแข็งแกร่งกว่า Gaussian affinity ในอินพุต ช่องว่าง

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


1
ขอบคุณสำหรับคำตอบ. ฉันสามารถจินตนาการวิธีการจัดกลุ่มแบบปรับตัวตามพื้นที่ใกล้เคียง แต่มีวิธีการพัฒนาที่เฉพาะเจาะจงที่คุณสามารถแนะนำได้หรือไม่?
generic_user

1
CHAMAELEON น่าจะถูกอ้างถึงมากที่สุด แต่ดูเหมือนว่าจะมีเพียงไบนารีสำหรับขั้นตอนหลัก ความคิดฟังดูดี แต่คุณจะได้สัมผัสกับเอฟเฟกต์เดียวกับที่ t-SNE มองเห็นได้อย่างรวดเร็ว เช่นแนวโน้มที่จะ "ฝูง" เท่าที่เห็นด้วย p = 20, ปัญหากับฮับและต่อต้านฮับ ฯลฯ
Erich Schubert

2
@AlexR: Perplexity ใช้ในการคำนวณความคล้ายคลึงกันในพื้นที่มิติสูงที่ t-sne พยายามจับคู่ในแบบ 2D การเปลี่ยนความสับสนหมายถึงการเปลี่ยนความคล้ายคลึงกันดังนั้นฉันจึงไม่เห็นว่าการเปรียบเทียบความแตกต่างระหว่าง KL กับผลลัพธ์นั้นมีความหมายอย่างไร
อะมีบา

1
@AlexR "มีเพียงความน่าจะเป็นแบบมีเงื่อนไขของพื้นที่มิติด้านล่างขึ้นอยู่กับความน่างง" - คำสั่งนี้ผิด ความฉงนสนเท่ห์ถูกใช้เพื่อเลือก sigmas ที่จำเป็นสำหรับ eq (1) ดังนั้นมันจึงมีผลต่อการกำหนด probs ในพื้นที่เต็ม
อะมีบา

1
สำหรับคำเตือนและการมองเห็นที่ดีของ t-SNE ดูที่distill.pub/2016/misread-tsne
Tom Wenseleers

34

ฉันต้องการแสดงความเห็นที่ไม่เห็นด้วยกับข้อโต้แย้งที่ดี (+1) และคำตอบที่ถูกคัดค้านอย่างสูงโดย @ErichSchubert Erich ไม่แนะนำให้ทำคลัสเตอร์กับเอาต์พุต t-SNE และแสดงตัวอย่างของเล่นบางอย่างที่ทำให้เข้าใจผิดได้ ข้อเสนอแนะของเขาคือการใช้การจัดกลุ่มกับข้อมูลต้นฉบับแทน

ใช้ t-SNE สำหรับการสร้างภาพ (และลองใช้พารามิเตอร์ที่แตกต่างกันเพื่อให้ได้สิ่งที่น่าพึงพอใจทางสายตา!) แต่อย่ารันการรวมกลุ่มในภายหลังโดยเฉพาะอย่าใช้อัลกอริธึมที่อิงตามระยะทางหรือความหนาแน่น

ฉันตระหนักดีถึงวิธีการที่เอาต์พุต t-SNE อาจทำให้เข้าใจผิด (ดูhttps://distill.pub/2016/misread-tsne/ ) และฉันยอมรับว่ามันสามารถให้ผลลัพธ์ที่แปลกในบางสถานการณ์

แต่ให้เราพิจารณาข้อมูลมิติสูงจริง ๆ

ใช้ข้อมูล MNIST : 70000 ภาพตัวเลขหลักเดียว เรารู้ว่ามี 10 คลาสในข้อมูล คลาสเหล่านี้ดูแยกจากกันเป็นผู้สังเกตการณ์มนุษย์ อย่างไรก็ตามการจัดกลุ่มข้อมูล MNIST เป็น 10 กลุ่มเป็นปัญหาที่ยากมาก ฉันไม่ได้ตระหนักถึงอัลกอริทึมการจัดกลุ่มใด ๆที่จะจัดกลุ่มข้อมูลให้ถูกต้องเป็น 10 กลุ่ม; ที่สำคัญกว่านั้นฉันไม่ได้ตระหนักถึงการจัดกลุ่มการแก้ปัญหาที่จะบ่งชี้ว่ามีกลุ่ม 10 (ไม่มากและไม่น้อย) ในข้อมูล ฉันมั่นใจว่าวิธีการทั่วไปส่วนใหญ่จะไม่สามารถระบุได้ว่า

แต่ลองทำ t-SNE แทน (เราสามารถหาตัวเลขจำนวนมากของ t-SNE ที่นำไปใช้กับ MNIST ออนไลน์ แต่พวกเขามักจะไม่ดีในประสบการณ์ของฉันจำเป็นต้องเรียกใช้การพูดเกินจริงเร็วเพื่อให้ได้ผลลัพธ์ที่ดีด้านล่างฉันใช้perplexity=50, max_iter=2000, early_exag_coeff=12, stop_lying_iter=1000) นี่คือสิ่งที่ฉันได้รับไม่มีป้ายกำกับด้านซ้ายและสีที่ถูกต้องตามความจริงพื้นดิน:

MNIST t-SNE

ฉันจะยืนยันว่าการเป็นตัวแทน t-SNE แบบไม่มีป้ายกำกับนั้นจะแนะนำ 10 คลัสเตอร์ การใช้อัลกอริทึมการจัดกลุ่มตามความหนาแน่นที่ดีเช่น HDBSCAN กับพารามิเตอร์ที่เลือกอย่างระมัดระวังจะช่วยให้สามารถจัดกลุ่มข้อมูล 2D เหล่านี้เป็น 10 กลุ่ม

ในกรณีที่ใครสักคนจะสงสัยว่าพล็อตซ้ายข้างต้นแสดงให้เห็นแน่นอน 10 กลุ่มนี่คือสิ่งที่ฉันได้รับกับ "ปลายพูดเกินจริง" เคล็ดลับที่ผมทำงานนอกจากนี้max_iter=200ซ้ำกับexaggeration=4(เคล็ดลับนี้เป็นข้อเสนอแนะในกระดาษที่ยิ่งใหญ่นี้: https://arxiv.org /abs/1712.09005 ):

MNIST t-SNE ด้วยการพูดเกินจริงในช่วงปลาย

ตอนนี้มันควรจะเป็นมากเห็นได้ชัดว่ามี 10 กลุ่ม

ฉันขอแนะนำให้ทุกคนที่คิดว่าการรวมกลุ่มหลังจาก t-SNE เป็นความคิดที่ไม่ดีในการแสดงอัลกอริทึมการจัดกลุ่มที่จะได้ผลลัพธ์ที่ดีกว่า

และตอนนี้ข้อมูลจริงมากขึ้น

ในกรณี MNIST เรารู้ความจริงพื้นฐาน พิจารณาข้อมูลบางอย่างที่มีความจริงที่ไม่รู้จัก การทำคลัสเตอร์และ t-SNE มีการใช้เป็นประจำเพื่ออธิบายความแปรปรวนของเซลล์ในข้อมูล RNA-seq ของเซลล์เดียว เช่นShekhar และคณะ 2016พยายามระบุกลุ่มของเซลล์ม่านตา 27,000 (มีประมาณ 20k ยีนในจีโนมเมาส์ดังนั้นมิติของข้อมูลอยู่ในหลักการประมาณ 20k แต่หนึ่งมักจะเริ่มต้นด้วยการลดมิติด้วย PCA ลงไป 50 หรือดังนั้น) พวกเขาทำ t-SNE และแยกการทำคลัสเตอร์ (ไปป์ไลน์การจัดกลุ่มที่ซับซ้อนตามด้วยการรวมกลุ่มบางอย่างเป็นต้น) ผลลัพธ์สุดท้ายนั้นน่าพึงพอใจ:

ป้อนคำอธิบายรูปภาพที่นี่

เหตุผลที่ดูน่ายินดีก็คือ t-SNE สร้างคลัสเตอร์ที่แตกต่างกันอย่างชัดเจนและอัลกอริทึมการจัดกลุ่มทำให้ได้ผลลัพธ์ที่เหมือนกันทุกประการ ดี

อย่างไรก็ตามถ้าคุณดูในส่วนเสริมคุณจะเห็นว่าผู้เขียนได้ลองวิธีการจัดกลุ่มที่แตกต่างกัน หลายคนดูน่ากลัวบนพล็อต t-SNE เพราะเช่นกลุ่มกลางขนาดใหญ่แบ่งออกเป็นหลายกลุ่มย่อย:

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นสิ่งที่คุณเชื่อ: ผลลัพธ์ของอัลกอริทึมการจัดกลุ่มที่คุณชื่นชอบพร้อมกับฮิวริสติกที่คุณชื่นชอบเพื่อระบุจำนวนกลุ่มหรือสิ่งที่คุณเห็นบนพล็อต t-SNE ความซื่อสัตย์แม้จะมีข้อบกพร่องทั้งหมดของ t-SNE แต่ฉันก็เชื่อว่า t-SNE จะมากขึ้น หรือในกรณีใด ๆ ผมไม่เห็นเหตุผลที่ฉันควรจะเชื่อว่ามันน้อย


2
และสำหรับตัวอย่างสุดท้ายนั่นไม่ใช่สิ่งที่ @ErichSchubert สังเกตเห็นข้างต้น: คุณสามารถเห็นผลลัพธ์ที่ "น่าพอใจ" ได้ - ซึ่งผิดอย่างเห็นได้ชัด เช่นเดียวกับความงุนงง 20 tSNE นั้นชอบแยกชิ้นส่วน (เหมือนในปลา) ที่ไม่แยกออกจากกัน? คุณรู้หรือไม่ว่ากลุ่มที่คุณเห็นนั้นเป็นกลุ่มที่แยกจากกันจริงๆ? ฉันไม่ชอบกล่องดำนี้ ใช่เรามีแนวโน้มที่จะเชื่อแปลงดังกล่าวมากขึ้น แต่ถ้าพวกเขาผิด
Anony-Mousse

1
tSNE ขึ้นอยู่กับ NN ข้อตกลงกับสิ่งนี้คาดว่าจะเกิดขึ้น tSNE เป็นตัวเลือกที่ดีในการมองเห็น NN มันไม่ได้รักษาความคล้ายคลึงกันไว้อย่างดีดังนั้นจึงต้องตีความด้วยความระมัดระวังดังที่ฉันเข้าใจ ช่องว่างใน tSNE ไม่ได้หมายถึงระยะทางที่ไกล
Anony-Mousse

1
+1 อยากรู้ว่าUMAPทำงานอย่างไรเมื่อเปรียบเทียบกับ t-SNE
พอล

1
@Paul: ผู้เขียนอ้างว่าเหนือกว่าของ UMAP ในแง่ของเวลาในการคำนวณก็คือ บนชุดข้อมูล MNIST ฉันพบว่า UMAP สร้างการฝังได้ดีกว่า t-SNE แต่ไม่แน่ใจในชุดข้อมูลอื่น เท่าที่ฉันทราบมี t-SNE รุ่น CUDA เมื่อเร็ว ๆ นี้ซึ่งเร็วกว่า t-SNE ที่เร็วที่สุดก่อนหน้านี้มาก แต่ฉันไม่สามารถติดตั้งและทดสอบได้
SiXUlm

1
@SiXUlm github.com/KlugerLab/FIt-SNEทำงานได้เร็วกว่า Barnes-Hut t-SNE และเร็วกว่า UMAP นอกจากนี้ในหลายกรณีเราสามารถฝัง t-SNE โดยใช้ tweaks เพิ่มเติมบางอย่างเช่น MNIST t-SNE ที่มีการพูดเกินจริงขนาดเล็กให้ผลคล้ายกับ UMAP ดูตัวอย่าง Python notebook ในที่เก็บ FIt-SNE
อะมีบา

6

ผมคิดว่ามีความฉงนสนเท่ห์ขนาดใหญ่เสื้อ SNE สามารถสร้างโครงสร้างทั่วโลกตามที่ระบุไว้ในhttps://distill.pub/2016/misread-tsne/

จากรูปปลาฉันสุ่มตัวอย่าง 4000 คะแนนสำหรับ t-SNE ด้วยความฉงนสนเท่ห์ขนาดใหญ่ (2000) ภาพปลานั้นถูกสร้างขึ้นใหม่อย่างแท้จริง

นี่คือภาพต้นฉบับ ภาพต้นฉบับ

นี่คือภาพที่สร้างขึ้นใหม่โดย t-SNE ด้วย perplexity = 2000 t-SNE สร้างภาพใหม่ (perplexity = 2000)


8
หากคุณเลือกความฉงนสนเท่ห์ที่สูงเช่นนี้ก็จะไม่เกิดขึ้นอีกต่อไป ทุกจุดเป็นเพื่อนบ้านโดยประมาณทุกวัน มันไม่มีในท้องที่แล้ว ใช่แล้วภาพ 2d นั้นสามารถสร้างใหม่ได้ประมาณเพราะมันเป็น 2d แต่การไม่ทำสิ่งทั้งหมดนั้นง่ายกว่า
Anony-Mousse

1
ความคิดเห็นของฉันคือ tSNE ที่มีความสับสนมากสามารถสร้างโทโพโลยีระดับโลกขึ้นมาใหม่ได้ ภาพ 2d เป็นตัวอย่างเนื่องจากขนาดที่แท้จริงของมันคือ 2 การใช้งานจริงของ tSNE ควรเลือกความสับสนที่เหมาะสมตามวัตถุประสงค์ในการจับภาพลักษณะท้องถิ่นหรือระดับโลก
renxwise

1
ความฉงนสนเท่ห์สูงนี้หมายความว่าคุณใช้เคอร์เนล "ใหญ่เกินไป" และใช้ระยะทาง จากนั้นมีแนวโน้มว่าจะทำให้ MDS โดยประมาณและมีราคาแพงมาก เพียงใช้ MDS แล้ว SNE / tSNE จริงๆควรจะใช้กับขนาดเล็ก perplexities และท้องถิ่นละแวกใกล้เคียง
Erich Schubert

3
เผง เมื่อความสับสนมีขนาดใหญ่พอ tSNE นั้นใกล้เคียงกับ MDS ซึ่งแสดงให้เห็นว่า tSNE สามารถจับโครงสร้างของโลกได้เช่นกัน ดังนั้นคำสั่งที่ tSNE สามารถจับโครงสร้างเฉพาะที่ไม่ถูกต้อง แตกต่างจาก MDS, tSNE สามารถสร้างความสมดุลระหว่างโครงสร้างในท้องถิ่นและระดับโลกผ่านการเลือกความสับสน เห็นได้ชัดว่าการเลือกความฉงนสนเท่ห์ขึ้นอยู่กับชุดข้อมูล
renxwise

มีกฎของหัวแม่มือสำหรับการเลือกความน่าเชื่อถือที่เป็นไปได้หรือไม่?
Catbuilts

5

จากหลักฐานทางคณิตศาสตร์ที่เรามีวิธีนี้สามารถรักษาระยะทางเทคนิค! ทำไมคุณถึงเพิกเฉยต่อฟีเจอร์นี้! t -SNE กำลังแปลงระยะทางแบบยุคลิดมิติสูงระหว่างตัวอย่างเป็นความน่าจะเป็นแบบมีเงื่อนไขซึ่งเป็นตัวแทนของความคล้ายคลึงกัน ฉันได้ลองt -NE กับตัวอย่างมากกว่า 11,000 ตัวอย่าง (ในบริบทของจีโนม) พร้อมกับอัลกอริทึมการจัดกลุ่มฉันทามติที่แตกต่างกันรวมถึงการจัดกลุ่ม Spectral, Affinity และที่สำคัญกับการจัดกลุ่ม GMM (ซึ่งเป็นอัลกอริทึม เป็นผลให้ฉันพบผลลัพธ์ที่สอดคล้องกันมากระหว่างสองวิธี ( t-SNE กับอัลกอริทึมการจัดกลุ่มฉันทามติ) ฉันเชื่อว่าการรวม t-SNE เข้ากับอัลกอริทึมการจัดกลุ่มฉันทามติสามารถให้หลักฐานที่ดีที่สุดของโครงสร้างข้อมูลในท้องถิ่นและทั่วโลกที่มีอยู่


มีพารามิเตอร์ที่จะส่งผลต่อโอกาสในการรักษาระยะทางของ t-SNE หรือไม่?
Keith Hughitt

สิ่งเหล่านี้ไม่ใช่อัลกอริธึมการจัดกลุ่มฉันทามติ การจัดกลุ่มความสอดคล้องเป็นประเภทของการเรียนรู้แบบตระการตาที่รวมผลลัพธ์ของการทำซ้ำขั้นตอนวิธีการจัดกลุ่มด้วยการเปลี่ยนแปลงบางอย่างในพารามิเตอร์หรือข้อมูลอินพุตเพื่อให้ได้ผลลัพธ์การจัดกลุ่มสุดท้าย คุณสามารถใช้วิธีการจัดกลุ่มฉันทามติที่มีการจัดกลุ่มสเปกตรัมหรือจีเอ็มเอ็หรืออันที่จริงขั้นตอนวิธีการจัดกลุ่มใด ๆ แต่จุดของฉันในคำศัพท์ของคุณออกเล็กน้อยนั่นคือทั้งหมดที่ :)
คริสจอห์น

1

คุณสามารถลองใช้อัลกอริทึมการจัดกลุ่ม DBSCAN นอกจากนี้ความน่าสะพรึงกลัวของ tsne ควรมีขนาดใกล้เคียงกับคลัสเตอร์ที่เล็กที่สุดที่คาดไว้


0

โดยส่วนตัวฉันมีประสบการณ์ครั้งนี้ แต่ไม่ใช่กับ t-SNE หรือ PCA ข้อมูลต้นฉบับของฉันอยู่ในพื้นที่ 15 มิติ การใช้ UMAP เพื่อลดการใส่ลงในงานแต่งงานแบบ 2D และ 3D ฉันได้รับ 2 กลุ่มที่แยกได้อย่างสมบูรณ์แบบและสามารถมองเห็นได้ทั้งในแปลง 2D และ 3D ดีเกินจริง แต่เมื่อฉัน "ดู" ที่ข้อมูลเดิมจากแผนภาพการคงอยู่ฉันรู้ว่ามีกลุ่ม "สำคัญ" มากกว่านั้นไม่ใช่แค่ 2

การจัดกลุ่มผลลัพธ์ของเทคนิคการลดขนาดจะต้องทำด้วยความระมัดระวังเป็นอย่างมากมิฉะนั้นการตีความใด ๆ ที่อาจทำให้เข้าใจผิดหรือผิดมากเพราะการลดมิติจะส่งผลให้เกิดการสูญเสียคุณสมบัติ (อาจจะมีเสียงดังหรือคุณสมบัติจริง) ไม่รู้ว่าอันไหน). ในความคิดของฉันคุณสามารถเชื่อถือ / ตีความกลุ่มถ้า:

  • กลุ่มในข้อมูลที่คาดการณ์นั้นสอดคล้อง / ยืนยันกับการจำแนกบางประเภทที่กำหนดมาก่อน (คิดว่าชุดข้อมูล MNIST ซึ่งกลุ่มของข้อมูลที่คาดการณ์นั้นตรงกับการจำแนกประเภทของตัวเลขอย่างมาก) และ / หรือ,

  • คุณสามารถยืนยันการมีอยู่ของกลุ่มเหล่านี้ในข้อมูลต้นฉบับโดยใช้วิธีอื่นเช่นแผนภาพการคงอยู่ การนับจำนวนเฉพาะชิ้นส่วนที่เชื่อมต่อสามารถทำได้ในเวลาที่เหมาะสม


ทำไมคุณถึงเชื่อถือ "แผนภาพการคงอยู่" มากกว่า UMAP ฉันไม่คิดว่าการดูแผนภาพการคงอยู่สามารถอธิบายได้ว่า "ดูที่ข้อมูลต้นฉบับ" ...
amoeba เมื่อ

คุณถูก. แผนภาพการคงอยู่เพียงแสดงลักษณะบางอย่างของข้อมูลต้นฉบับบ่อยที่สุดส่วนประกอบที่เชื่อมต่อรู 1 มิติและหลุมที่หายากมากขึ้น 2 หรือมากกว่าเนื่องจากการคำนวณที่มีราคาแพง ดังนั้นฉันควรจะบอกว่าฉันสามารถ"ดู" ข้อมูลต้นฉบับได้เพียงบางส่วนเท่านั้นโดยดูที่แผนภาพการคงอยู่ที่สอดคล้องกัน แต่ฉันสามารถเชื่อถือสิ่งที่ฉันสังเกตจากแผนภาพการคงอยู่นี้เพราะมันถูกสร้างขึ้นโดยตรงจากข้อมูลต้นฉบับ
SiXUlm

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