انتقل إلى المحتوى الرئيسي

جارٍ تحميل المختبر المرئي…

#t-sne-umapالتعلّم غير المُشرَف

ارسم خريطة الأبعاد العالية: t-SNE وUMAP يفتحان بيانات ذات 10 أبعاد إلى خريطة قابلة للقراءة في بُعدَين — الحيرة، الجيران، ومغالطات القراءة.

ما ستُجرّبه

  1. مرحبًا بك في #t-sne-umap. على الشاشة، 100 نقطة تعيش في 10 أبعاد: أربع مجموعات من 25 نقطة، ملوّنة بحسب تسميتها الحقيقيّة — لون لن تراه الخوارزميّة أبدًا. على اليسار، تُسطّحها PCA إلى بُعدَين: تحتفظ باتّجاه أكبر تباين، وهنا محور ضوضاء مشترك، فتراكم المجموعات فوق بعضها. على اليمين، خريطة t-SNE عند التكرار 0: لا تزال هي PCA، لكنّ t-SNE سيفتحها بالنظر إلى جوارات كلّ نقطة فقط.
  2. شغّل التكرارات الخمسين الأولى: /iterate 50. هذه مرحلة التضخيم المبكّر: تُضرب التقاربات بين الجيران في 4، فتنكمش الخريطة وتتشكّل المجموعات فورًا.
  3. الصقل: /iterate 100. يتوقّف التضخيم، وترتاح الخريطة، وتنتشر السحب الأربع بوضوح. تذكّر: الألوان لم تُعرض أبدًا على الخوارزميّة، لم تر إلّا مسافات في 10 أبعاد.
  4. الحيرة هي العدد الفعّال للجيران الذي تأخذه كلّ نقطة بعين الاعتبار. اجعلها صغيرة جدًّا: /perplexity 5. تعود المواضع إلى الصفر (التكرار 0).
  5. شغّل /iterate 100 لترى أثر الحيرة 5: كتل، مجموعات ممدودة. ثمّ تأرجح إلى الطرف المقابل: /perplexity 50 — نصف النقاط يُعدّ جيرانًا.
  6. شغّل /iterate 100 إن أردت رؤية خريطة الحيرة 50: كلّ شيء ينتشر، ولم تعد الفراغات بين المجموعات تعني شيئًا. الآن غيّر الطريقة: /method umap. ينطلق UMAP من الفكرة نفسها، لكنّه يبني مخطّط الجيران الأقرب ثمّ يُحسّنه بقوى: جذب على طول الحوافّ، ودفع في ما عداها.
  7. شغّل /iterate 100 لترك UMAP يستقرّ. ثمّ أخفِ المرجع لتكبير الخريطة: /compare.
  8. لنغيّر شكل البيانات: /dataset chain. هذه المرّة تتبع النقاط الـ 100 منحنى في 10 أبعاد، ملوّنة بأربعة مقاطع من البداية إلى النهاية: البنية الحقيقيّة خطّ.
  9. دورك الآن: /dataset mixed (ثلاث مجموعات من 40 و20 و10 نقاط مع سلسلة — انظر كيف يمنحها t-SNE أحجامًا متقاربة)، /method tsne ثمّ /iterate 100، /neighbors 5 لـ UMAP محلّي جدًّا، /lr 500 لرؤية النزول يشتطّ، /seed 42 لسحب آخر، /reset للبدء من جديد. للتوسّع أكثر: #pca للنسخة الخطّية من هذه القصّة، و#embeddings-3d لما تُستخدم هذه الخرائط للنظر إليه.

أوامر القناة

  • /iterate <n=10..100>يُشغّل n تكرارًا للطريقة الحاليّة (بحدّ أقصى 600 إجمالًا).
  • /perplexity <5..50>يضبط حيرة t-SNE (العدد الفعّال للجيران) ويُصفّر المواضع.
  • /neighbors <5..30>يضبط عدد الجيران k لمخطّط UMAP ويُصفّر المواضع.
  • /method <tsne|umap>اختر t-SNE أو UMAP وصفّر المواضع.
  • /lr <10..500>يضبط معدّل التعلّم (دون تصفير).
  • /compareيُظهر خريطة PCA المرجعيّة أو يُخفيها.
  • /dataset <clusters|chain|mixed>يغيّر مجموعة البيانات (100 نقطة في 10 أبعاد) ويُصفّر المواضع.
  • /seed <1..99>يُعيد سحب مجموعة البيانات ببذرة أخرى ويُصفّر المواضع.
  • /resetالعودة إلى مجموعة clusters، t-SNE، الحيرة 30، PCA معروضة.

المسرد

t-SNE
تقليل أبعاد غير خطّي يضع كلّ نقطة في بُعدَين بحيث تُشبه جواراتها جوارات الفضاء الأصلي: تقاربات غاوسيّة في الأبعاد العالية، نواة Student في بُعدَين، ونزول تدرّج على تباعد كولباك-لايبلر بينهما.
UMAP
تقليل أبعاد غير خطّي يبني مخطّط الجيران الـ k الأقرب موزونًا (مخطّط ضبابي)، ثمّ يُحسّن خريطة ثنائيّة الأبعاد بالقوى: جذب على طول الحوافّ، ودفع لعيّنات سلبيّة. أسرع من t-SNE وأوفى قليلًا للبنية العامّة.
الحيرة (perplexity)
وسيط t-SNE: العدد الفعّال للجيران الذي تأخذه كلّ نقطة بعين الاعتبار (2 أُسّ إنتروبيا تقارباتها). عرض σᵢ الغاوسيّ لكلّ نقطة يُضبط للوصول إليه. القيم المعتادة: 5 إلى 50.
تقليل الأبعاد غير الخطّي
تمثيل بيانات ذات أبعاد عالية في بُعدَين أو ثلاثة (تضمين) دون الاكتفاء بإسقاط: يمكن للخريطة أن تنطوي أو تمتدّ أو تتمزّق للحفاظ على ما يهمّ، غالبًا الجوارات المحلّية.
تباعد Kullback-Leibler
مقياس الفجوة بين توزيعَين احتماليّين، هنا تقاربات P (الأبعاد العالية) وQ (خريطة بُعدَين). يُقلّله t-SNE؛ يُعاقب بشدّة على جيران قريبين في 10 أبعاد يُوضعون بعيدًا في بُعدَين، وبخفّة على العكس.
التضخيم المبكّر
حيلة t-SNE: ضرب تقاربات P (هنا في 4) خلال التكرارات الأولى. تنكمش الخريطة، وتتشكّل المجموعات بسرعة ومنفصلة جيّدًا، ثمّ يتوقّف التضخيم وترتاح الخريطة.
توزيع Student ثقيل الذيل
النواة التي يستعملها t-SNE في خريطة بُعدَين: 1 / (1 + d²). ذيلها الأثقل من الغاوسيّ يترك غير الجيران ينحرفون بعيدًا دون كلفة، ما يتجنّب الاكتظاظ المركزي ويُفرِّق المجموعات.
مخطّط الجيران الـ k الأقرب
مخطّط يربط كلّ نقطة بجيرانها الـ k الأقرب في الفضاء الأصلي. يُوزّنه UMAP (أوزان exp(−(d − ρᵢ)/σᵢ))، ثمّ يجعله متماثلًا في مخطّط ضبابي، ثمّ يعمل به فحسب: يكفي الخريطةَ أن تحترم هذه الروابط.
الحفاظ على الجوارات
مقياس وفاء الخريطة: نسبة الجيران الـ k الأقرب لكلّ نقطة في الأبعاد العالية الموجودين ضمن الـ k الأقرب في بُعدَين، بالمتوسّط. 100% = كلّ الجوارات محفوظة.
مغالطات القراءة
ما لا تقيسه خريطة t-SNE أو UMAP: المسافة بين مجموعتَين، حجم مجموعة أو كثافتها، وأحيانًا وجود المجموعات نفسه (حيرة صغيرة جدًّا تفتّت سحابة متّصلة). فقط تركيبة الجوارات موثوقة.

قنوات أخرى في التعلّم غير المُشرَف

  • #k-meansالتجميع بلا تسميات: مراكز تتحرّك، قصور ذاتي يهبط، اختيار k — والأشكال التي يفشل عليها k-means.
  • #pcaتحليل المكوّنات الرئيسية: أوجِد المحاور التي تتغيّر عليها البيانات أكثر ما يكون، أسقِط، اضغط — وقِس ما فُقد.
  • #hierarchical-clusteringادمج النقاط اثنتَين اثنتَين حتّى لا يبقى إلّا واحدة: المخطّط الشجريّ، ومعايير الوصلة، وارتفاع القطع الذي يحدّد عدد العناقيد.
  • #dbscanالتجميع بحسب الكثافة: إبسيلون، MinPts، نقاط النواة والحافّة والضوضاء — الخوارزميّة التي تجد الأشكال الاعتباطيّة وتتجاهل المتطفّلين.
  • #anomaly-detectionاكتشِف ما لا يُطابق شيئًا: z-score / ماهالانوبيس، Isolation Forest، LOF — ثلاث طرق لقول «هذه النقطة غريبة».
  • #t-sne-umapارسم خريطة الأبعاد العالية: t-SNE وUMAP يفتحان بيانات ذات 10 أبعاد إلى خريطة قابلة للقراءة في بُعدَين — الحيرة، الجيران، ومغالطات القراءة.