การลดขนาดสำหรับการสร้างภาพควรได้รับการพิจารณาว่าเป็นปัญหา "ปิด" แก้ไขโดย t-SNE หรือไม่


23

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

t-SNE MNIST

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

ดังนั้นฉันเข้าใจ:

เสื้อ -sne มีผลลัพธ์ที่ดีในชุดข้อมูลส่วนใหญ่และมีการนำไปใช้อย่างมีประสิทธิภาพ - ด้วยวิธีการประมาณ Barnes-Hut จากนั้นเราอาจพูดได้ว่าปัญหา "การลดมิติ" อย่างน้อยก็เพื่อจุดประสงค์ในการสร้างการสร้างภาพข้อมูล 2D / 3D ที่ดีตอนนี้เป็นปัญหา "ปิด" หรือไม่O(nเข้าสู่ระบบn)

ฉันรู้ว่านี่เป็นคำสั่งที่ค่อนข้างหนา ฉันสนใจที่จะเข้าใจว่า "หลุมพราง" ที่เป็นไปได้ของวิธีการนี้คืออะไร นั่นคือมีกรณีใดบ้างที่เรารู้ว่าไม่มีประโยชน์หรือไม่ นอกจากนี้ปัญหา "เปิด" ในฟิลด์นี้คืออะไร

คำตอบ:


16

ไม่อย่างแน่นอน.

ฉันยอมรับว่า t-SNE เป็นอัลกอริทึมที่น่าทึ่งซึ่งทำงานได้ดีมากและนั่นเป็นความก้าวหน้าที่แท้จริงในเวลานั้น อย่างไรก็ตาม:

  • มันมีข้อบกพร่องร้ายแรง
  • ข้อบกพร่องบางอย่างจะต้องแก้ไขได้;
  • มีอัลกอริทึมที่ทำงานได้ดีขึ้นอย่างเห็นได้ชัดในบางกรณี;
  • คุณสมบัติของ t-SNE จำนวนมากยังคงเข้าใจได้ไม่ดี

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

  1. t-SNE มักล้มเหลวในการรักษาโครงสร้างส่วนกลางของชุดข้อมูล
  2. ยังไม่มีข้อความ
  3. ยังไม่มีข้อความ

ฉันจะหารือสั้น ๆ ทั้งสามด้านล่างนี้


  1. t-SNE มักจะล้มเหลวในการรักษาโครงสร้างระดับโลกของชุดข้อมูล

    พิจารณานี้ชุดเดียวเซลล์ RNA-seq จากสถาบันอัลเลน (เมาส์เซลล์เยื่อหุ้มสมอง): http://celltypes.brain-map.org/rnaseq/mouse มันมีเซลล์ ~ 23k เรารู้เบื้องต้นว่าชุดข้อมูลนี้มีโครงสร้างลำดับชั้นที่มีความหมายจำนวนมากและสิ่งนี้ได้รับการยืนยันโดยการจัดกลุ่มแบบลำดับชั้น มีเซลล์ประสาทและเซลล์ที่ไม่เกี่ยวกับประสาท (glia, astrocytes, ฯลฯ ) ในบรรดาเซลล์ประสาทมีเซลล์ประสาทที่ถูกกระตุ้นและยับยั้ง - มีสองกลุ่มที่แตกต่างกันมาก ในบรรดาเซลล์ประสาทยับยั้งเช่นมีหลายกลุ่มที่สำคัญ: Pvalb-expressing, SSt-expressing, VIP-expressing ในกลุ่มใดกลุ่มหนึ่งดูเหมือนว่าจะมีกลุ่มมากกว่าหนึ่งกลุ่ม สิ่งนี้สะท้อนให้เห็นในแผนผังการจัดกลุ่มแบบลำดับชั้น แต่นี่คือ t-SNE จากลิงค์ด้านบน:

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

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

    ฉันคิดว่านี่ควรเป็นปัญหาที่แก้ไขได้ แต่ฉันไม่ได้ตระหนักถึงการพัฒนาที่ดีใด ๆ แม้จะมีการทำงานในทิศทางนี้ (รวมถึงของฉันเอง)

  2. ยังไม่มีข้อความ

    t-SNE ทำงานได้ดีกับข้อมูล MNIST แต่ให้พิจารณาสิ่งนี้ (นำมาจากบทความนี้ ):

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

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

    เราสามารถดูเนื้อหานี้ด้วย MNIST เอง (N = 70k) ลองดูสิ:

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

    ด้านขวาคือ t-SNE ทางด้านซ้ายคือUMAPซึ่งเป็นวิธีการใหม่ที่น่าตื่นเต้นภายใต้การพัฒนาที่ใช้งานอยู่ซึ่งคล้ายกับรุ่นเก่าที่มีขนาดใหญ่มาก UMAP / largeVis ดึงกลุ่มออกห่างกันมาก เหตุผลที่แน่นอนสำหรับเรื่องนี้คือ IMHO ชัดเจน; ฉันจะบอกว่ายังมีอะไรอีกมากมายให้ทำความเข้าใจที่นี่และอาจจะต้องปรับปรุงอีกมาก

  3. รันไทม์ Barnes-Hut ช้าเกินไปสำหรับขนาดใหญ่ยังไม่มีข้อความ

    ยังไม่มีข้อความยังไม่มีข้อความ

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

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


7

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


7

ฉันยังคงชอบที่จะฟังความคิดเห็นอื่น ๆ แต่ฉันจะโพสต์คำตอบของฉันเองตอนนี้ตามที่เห็น ในขณะที่ฉันกำลังมองหาคำตอบ "ปฏิบัติ" มากขึ้นมีสองทฤษฎี "ข้อได้เปรียบ - dis" เพื่อ t-sne ซึ่งมีมูลค่าการกล่าวขวัญ; อันแรกมีปัญหาน้อยกว่าและอันที่สองควรได้รับการพิจารณาอย่างแน่นอน:

  1. ฟังก์ชั่นต้นทุน t-sne ไม่ได้เป็นนูนดังนั้นเราจึงไม่รับประกันว่าจะได้รับประโยชน์สูงสุดจากทั่วโลก : เทคนิคการลดขนาดอื่น ๆ (Isomap, LLE) มีฟังก์ชั่นต้นทุนนูน ใน t-sne นี่ไม่ใช่กรณีดังนั้นจึงมีพารามิเตอร์การปรับให้เหมาะสมบางอย่างที่จำเป็นต้องปรับแต่งอย่างมีประสิทธิภาพเพื่อให้ได้โซลูชันที่ "ดี" อย่างไรก็ตามถึงแม้ว่าอาจมีข้อผิดพลาดทางทฤษฎี แต่ก็คุ้มค่าที่จะกล่าวถึงว่าในทางปฏิบัติสิ่งนี้เป็นความหายนะที่แทบจะไม่เกิดขึ้นเพราะดูเหมือนว่าแม้แต่ "ขั้นต่ำในท้องถิ่น" ของอัลกอริธึม t-sne ก็มีประสิทธิภาพสูงกว่า .

  2. การสาปแช่งของมิติภายใน : สิ่งสำคัญอย่างหนึ่งที่ต้องจำไว้เมื่อใช้ t-sne คือการเรียนรู้ที่หลากหลายขั้นตอนวิธี โดยพื้นฐานแล้วสิ่งนี้หมายความว่า t-sne (และวิธีการอื่น ๆ ) ได้รับการออกแบบมาเพื่อทำงานในสถานการณ์ที่มิติสูงดั้งเดิมมีค่าสูงเกินจริง: มีมิติต่ำกว่าภายในของข้อมูล เช่นข้อมูล "อยู่" ในมิติที่ต่ำกว่า ตัวอย่างที่ดีที่ควรคำนึงถึงคือภาพถ่ายที่ต่อเนื่องกันของบุคคลคนเดียวกัน: ในขณะที่ฉันอาจแสดงรูปภาพแต่ละภาพด้วยจำนวนพิกเซล (มิติสูง) มิติภายในของข้อมูลนั้นถูก จำกัด ด้วยการเปลี่ยนแปลงทางกายภาพของคะแนน (ใน กรณีนี้คือการหมุน 3 มิติของหัว) ในกรณีเช่นนี้ t-sne ทำงานได้ดี แต่ในกรณีที่มิติข้อมูลสูงอยู่ในระดับสูงหรือจุดข้อมูลนั่งอยู่บนหลากหลายมาก t-sne คาดว่าจะทำงานได้ไม่ดีเนื่องจากมันเป็นสมมติฐานพื้นฐานที่สุด - เป็นเส้นตรงท้องถิ่นในท่อ - ถูกละเมิด

สำหรับผู้ใช้ที่ใช้งานจริงฉันคิดว่านี่เป็นคำแนะนำที่มีประโยชน์สองข้อที่ควรคำนึงถึง

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

  2. หากคุณไม่แน่ใจเกี่ยวกับ 1 (และโดยทั่วไป) อาจเป็นประโยชน์ตามที่บทความต้นฉบับแนะนำให้ "ดำเนินการ t-sne บนการแสดงข้อมูลที่ได้รับจากแบบจำลองที่แสดงถึงข้อมูลที่หลากหลายที่มีประสิทธิภาพสูงในตัวเลข ของเลเยอร์ที่ไม่ใช่เชิงเส้นเช่นตัวเข้ารหัสอัตโนมัติ " ดังนั้นการรวมกันของauto-encoder + t-sneจึงเป็นทางออกที่ดีในกรณีเช่นนี้


สวัสดี @ galoosh33! ฉันสงสัยว่าถ้าคุณมีโอกาสได้ดูคำตอบของฉัน มันมีประโยชน์หรือไม่ ฉันไม่มีความคิดถ้าคุณยังคงสนใจใน 1.5 ปีนี้หลังจากถามคำถามนี้ดังนั้นฉันขอขอบคุณคำติชม ... ในคำตอบที่คุณยอมรับคุณพูดว่าคุณยังชอบที่จะได้ยินความคิดเพิ่มเติม แต่นี่ก็เป็นเช่นกัน เวลาที่ผ่านมา :)
อะมีบาพูดว่า Reinstate Monica

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