มีรุ่นใดของ t-SNE สำหรับการสตรีมข้อมูลหรือไม่


19

ความเข้าใจของฉันเกี่ยวกับt-SNEและการประมาณ Barnes-Hut คือจุดข้อมูลทั้งหมดจำเป็นต้องใช้เพื่อให้การคำนวณการโต้ตอบกับแรงทั้งหมดในเวลาเดียวกันและแต่ละจุดสามารถปรับได้ในแผนที่ 2d (หรือมิติที่ต่ำกว่า)

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

สิ่งนี้จะสมเหตุสมผลหรือไม่หรือขัดกับการตั้งค่าของ t-sne


การประมาณ Barnes-Hut ทำให้ t-SNE สามารถปรับขยายได้สูง (อย่างน้อยคุณสามารถใช้กับ 100000 บรรทัดฉันลองแล้ว) คุณสามารถโทรหาได้จาก R: cran.r-project.org/web/packages/Rtsne/index.html
RUser4512

เฮ้ขอบคุณ! ฉันยินดีที่จะลงคะแนนให้คำตอบของคุณหากคุณใส่ไว้ในส่วนคำตอบของสิ่งนี้
ทอม

3
ดูที่นี่สำหรับรุ่นพารามิเตอร์ที่ใช้กับ ntwork ประสาท lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf
eyaler

คำตอบ:


15

ฉันมีคำถามเดียวกันและโพสต์ไว้ในวิดีโอ YouTube ของการบรรยาย CS231n ที่ Andrej Karpathy ได้รับเมื่อไม่กี่สัปดาห์ที่ผ่านมา นี่คือคำถามที่ฉันโพสต์ตามด้วยคำตอบของ Andrej:

https://www.youtube.com/watch?v=ta5fdaqDT3M&lc=z12ji3arguzwgxdm422gxnf54xaluzhcx

Q:

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

ฉันถามเพราะฉันสังเกตเห็นว่า scikit-learn มี t-SNE เป็นส่วนหนึ่งของคลาสที่หลากหลาย แต่โมดูลนั้นไม่มีวิธีการแปลง () ตามที่ PCA ทำ อย่างน้อยที่สุดใน sklearn ดูเหมือนว่ามันเป็นไปไม่ได้

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

A:

+ Evan Zamir ใช่นี่เป็นไปได้ด้วย t-SNE แต่อาจไม่ได้รับการสนับสนุนนอกกรอบด้วยการใช้งาน t-SNE ปกติ โดยทั่วไปตำแหน่งของจุดแต่ละจุดเป็นพารามิเตอร์ในการปรับให้เหมาะสม แต่คุณสามารถสร้างการแมปจาก high-D -> low-D (เช่นโครงข่ายใยประสาทเทียม) และ backprop ผ่านตำแหน่งต่างๆ จากนั้นคุณก็จบลงด้วยฟังก์ชั่นการฝังและสามารถฉายจุดใหม่ได้ ดังนั้นจึงไม่มีอะไรขัดขวางหลักการนี้ แต่การใช้งานบางอย่างอาจไม่รองรับเนื่องจากเป็นกรณีการใช้งานที่น้อยกว่า


11

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

  1. เลือกหน้าต่างเวลาของช่วงเวลา T นานพอเพื่อให้แต่ละรูปแบบความสนใจปรากฏขึ้นอย่างน้อยสองครั้งในช่วงเวลาของหน้าต่าง

  2. เลื่อนหน้าต่างไปตามกระแสข้อมูลด้วยขั้นตอน dt เล็กกว่า T มากสำหรับแต่ละตำแหน่งของหน้าต่างคำนวณ t-SNE ฝังจุดข้อมูลในหน้าต่างเวลา

  3. เมล็ดแต่ละฝังด้วยผลลัพธ์ของหนึ่งก่อนหน้า ใน t-SNE เราจำเป็นต้องเลือกพิกัดเริ่มต้นของจุดข้อมูลในพื้นที่มิติต่ำ ในกรณีของเราเนื่องจากเราเลือก dt ที่เล็กกว่า T มากสองงานแต่งงานที่ต่อเนื่องกันจะใช้จุดข้อมูลร่วมกัน สำหรับทุกจุดข้อมูลที่ใช้ร่วมกันตรงกับพิกัดแรกของพวกเขาในการฝังปัจจุบันพิกัดสุดท้ายของพวกเขาในการฝังก่อนหน้านี้ ขั้นตอนนี้จะทำให้มั่นใจได้ว่ารูปแบบที่คล้ายกันมีการแสดงที่สอดคล้องกันในงานแต่งงานที่ต่อเนื่องกัน (ในการใช้งาน sklearnใน python พารามิเตอร์ seed คือ "init" โดยค่าเริ่มต้นการใช้งาน sklearn จะกำหนดตำแหน่งเริ่มต้นของคะแนนแบบสุ่ม)

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

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

หมายเหตุ 3: ในวิธีนี้ embedding ที่ต่อเนื่องไม่สามารถขนานกันได้เนื่องจากต้องการผลลัพธ์ของการฝังก่อนหน้านี้เพื่อให้ seed ถัดไป อย่างไรก็ตามเนื่องจากเมล็ด (เช่นพิกัดเริ่มต้นของคะแนน) ได้รับการคัดเลือกเป็นอย่างดีสำหรับจุดส่วนใหญ่ (ทุกจุดที่ใช้ร่วมกันระหว่างงานแต่งงานที่ประสบความสำเร็จ) การฝังมักจะมาบรรจบกันอย่างรวดเร็วมากในการทำซ้ำเพียงไม่กี่

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


2
ยินดีต้อนรับสู่ชุมชน การขโมยความคิดด้วยตนเองเป็นสิ่งที่ไม่ดี ผมหมายถึงการโพสต์ครั้งแรกของคุณที่นี่ แน่นอนว่าเราอาจใช้เหตุผลเดียวกันนี้สำหรับคำตอบหลาย ๆ คำอาจคัดลอกวางวลีหรือสองหรือเพียงแค่ลิงก์ไปยังคำตอบก่อนหน้าโดยตรง สิ่งเหล่านี้ถูกกล่าวว่าอย่าลดโพสต์ของคุณเพื่อคัดลอกคำต่อคำต่อคำก่อนหน้าด้วยการเปลี่ยนประโยคแรก มันลดคุณภาพของเนื้อหา CV และแสดงให้เห็นถึงความเป็นนักวิชาการด้านกีฬาที่ไม่ดีโดยคุณ
usεr11852พูดว่า Reinstate Monic

5
@ usεr11852ปัญหาถูกสร้างขึ้นเนื่องจากเธรดอื่นซ้ำซ้อนกับเธรดนี้ ฉันจึงปิดอีกอันรวมเข้ากับอันนี้และลบคำตอบที่ไม่จำเป็นออกไป โดยทั่วไปStéphaneทุกครั้งที่คุณรู้สึกว่ามีแรงบันดาลใจในการโพสต์คำตอบเดียวกันในสองหัวข้อโปรดเพียงแค่ตั้งค่าสถานะหนึ่งให้ซ้ำเพื่อให้เราสามารถรวม
whuber

2
@ usεr11852โอเคขออภัยสำหรับคำตอบที่ซ้ำกันฉันเป็นผู้มีส่วนร่วมคนใหม่ดังนั้นฉันยังไม่รู้แนวทางปฏิบัติที่ดีที่สุด
Stéphaneปฏิเสธ

1
@whuber ขอบคุณสำหรับการรวมคำถามและหัวขึ้น!
Stéphaneปฏิเสธ

1
คุณดูเหมือนจะสูญเสีย 2 upvotes เป็นผล นั่นเป็นโชคร้าย +1 :) ยินดีต้อนรับสู่ประวัติย่อ
อะมีบาพูดว่า Reinstate Monica

7

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

การอ้างอิง: arXiv: 1512.01655

tSNE ที่ประมาณการณ์ได้และผู้ใช้ถูกนำมาใช้เพื่อการวิเคราะห์ภาพแบบก้าวหน้า Nicola Pezzotti, Boudewijn PF Lelieveldt, Laurens van der Maaten, Thomas Höllt, Elmar Eisemann, Anna Vilanova

สรุป:

Progressive Visual Analytics มีจุดมุ่งหมายเพื่อปรับปรุงการโต้ตอบในเทคนิคการวิเคราะห์ที่มีอยู่โดยใช้วิธีการสร้างภาพข้อมูลและการโต้ตอบกับผลลัพธ์ระดับกลาง วิธีการหนึ่งที่สำคัญสำหรับการวิเคราะห์ข้อมูลคือการลดขนาดเช่นการผลิตงานปัก 2D ที่สามารถมองเห็นและวิเคราะห์ได้อย่างมีประสิทธิภาพ t-Distributed Stochastic Neighbor Embedding (tSNE) เป็นเทคนิคที่เหมาะสมอย่างยิ่งสำหรับการสร้างภาพข้อมูลหลายมิติในระดับสูง tSNE สามารถสร้างผลลัพธ์ระดับกลางที่มีความหมาย แต่ทนทุกข์ทรมานจากการเริ่มต้นช้าที่ จำกัด แอปพลิเคชันใน Progressive Visual Analytics เราแนะนำการประมาณค่า tSNE ที่สามารถควบคุมได้ (A-tSNE) ซึ่งแลกเปลี่ยนความเร็วและความแม่นยำเพื่อเปิดใช้งานการสำรวจข้อมูลเชิงโต้ตอบ เรานำเสนอเทคนิคการสร้างภาพแบบเรียลไทม์ รวมถึงโซลูชันที่ยึดตามความหนาแน่นและ Magic Lens เพื่อตรวจสอบระดับการประมาณ ด้วยข้อเสนอแนะนี้ผู้ใช้สามารถตัดสินใจเกี่ยวกับการปรับแต่งท้องถิ่นและคัดท้ายระดับการประมาณในระหว่างการวิเคราะห์ เราแสดงให้เห็นถึงเทคนิคของเรากับชุดข้อมูลหลายชุดในสถานการณ์การวิจัยในโลกแห่งความเป็นจริงและสำหรับการวิเคราะห์แบบเรียลไทม์ของสตรีมมิติสูงเพื่อแสดงให้เห็นถึงประสิทธิภาพในการวิเคราะห์ข้อมูลแบบโต้ตอบ


ยินดีต้อนรับสู่เว็บไซต์ เราพยายามสร้างที่เก็บถาวรของข้อมูลสถิติคุณภาพสูงในรูปแบบของคำถาม & คำตอบ ดังนั้นเราจึงต้องระวังคำตอบเฉพาะลิงก์เนื่องจาก linkrot คุณสามารถโพสต์การอ้างอิงแบบเต็ม & สรุปข้อมูลที่ลิงค์ในกรณีที่มันจะตาย?
gung - Reinstate Monica

6

การประมาณ Barnes-Hut ทำให้ t-SNE สามารถปรับขยายได้สูง (อย่างน้อยคุณสามารถใช้กับ 100000 บรรทัดฉันลองแล้ว) คุณสามารถโทรหาได้จาก R: Rtsne

O(nเข้าสู่ระบบ(n))O(n2)


1
ฉันใช้กับเส้นความหนาแน่น 1K 250K จริง ๆ แล้วค่อนข้างดี แต่มันถูกผูกไว้กับหน่วยความจำ
Vladimir Chupakhin

2

การประมาณ Barnes-Hut เป็นวิธีเริ่มต้นในการเรียนรู้ scikit เป็นรุ่น 0.17.0:

ตามค่าเริ่มต้นอัลกอริทึมการคำนวณการไล่ระดับสีใช้การประมาณแบบ Barnes-Hut ในเวลา O (NlogN) method = 'แน่นอน' จะทำงานในเวลาที่ช้าลง แต่แน่นอนว่าอัลกอริทึมในเวลา O (N ^ 2) อัลกอริทึมที่แน่นอนควรใช้เมื่อข้อผิดพลาดเพื่อนบ้านที่ใกล้ที่สุดจะต้องดีกว่า 3% อย่างไรก็ตามวิธีการที่แน่นอนไม่สามารถขยายตัวอย่างได้นับล้านตัวอย่าง ใหม่ในรุ่น 0.17: วิธีการเพิ่มประสิทธิภาพโดยประมาณผ่าน Barnes-Hut


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