بسط تقنیة t-SNE وتنفیذها في بایثون

تقنیة t-SNE

مقدمة

t-SNE، اختصار لـ t-Distributed Stochastic Neighbor Embedding هي تقنية لتقليل الأبعاد والتي يمكن أن تكون مفيدة جدًا لتصور مجموعات البيانات عالية الأبعاد. تم تطوير tSNE بواسطة لورنس فان دير ماتن وجيفري هينتون.

على عكس PCA، أحد تقنيات تقليل الأبعاد شائعة الاستخدام، فإن t-SNE هي تقنية غير خطية واحتمالية. ما يعنيه هذا هو أن t-SNE يمكنه التقاط نمط غير خطي في البيانات. نظرًا لأنه احتمالي، فقد لا تحصل على نفس النتيجة لنفس البيانات.

وکما شرحوا لورنس فان دير ماتن وجيفري هينتون:

يحتوي t-SNE على دالة هدف غير محدبة (non-convex objective function). يتم تصغير دالة الهدف باستخدام تحسين نزول التدرج (gradient descent optimization) الذي يبدأ بشكل عشوائي. نتيجة لذلك، من الممكن أن تمنحك عمليات التشغيل المختلفة حلولًا مختلفة. فلاحظ أنه من الجيد تمامًا تشغيل t-SNE عدة مرات (بنفس البيانات والبارامترات)، واختيار التصور بأقل قيمة للدالة الهدف (objective function) كصورة نهائية.

تفاصيل ریاضیة لـ t-SNE

هذا القسم مخصص للأشخاص المهتمين بفهم الخوارزمية بعمق. يمكنك تخطي هذا القسم بأمان إذا كنت لا تريد متابعة الرياضيات بالتفصيل.

دعنا نفهم لماذا يجب أن تعرف عن t-SNE والتفاصيل الحسابية لـ t-SNE. فيعد t-SNE تحسينًا لخوارزمية Stochastic Neighbor Embedding (SNE).

الخوارزمیة t-SNE

 الخوارزمیة t-SNE

الخطوة الأولی

يبدأ Stochastic Neighbor Embedding (SNE) بتحويل المسافات الإقليدية عالية الأبعاد بين نقاط البيانات إلى احتمالات شرطية تمثل أوجه التشابه. تشابه نقطة البيانات  x_i مع نقطة البيانات  x_j هو الاحتمال الشرطي،  p_(j|i) ،  x_i تختار  x_j كجار لها إذا تم اختيار الجيران بما يتناسب مع كثافة الاحتمالية الخاصة بهم تحت غاوسي المتمركز عند x_i . بالنسبة لنقاط البيانات القريبة،  p_(j|i) يكون مرتفعًا نسبيًا، بينما بالنسبة لنقاط البيانات المنفصلة على نطاق واسع، ستكون  p_(j|i) متناهية الصغر تقريبًا (للقيم المعقولة لتباين غاوسي،  σ_i ). رياضيا، يتم إعطاء الاحتمال الشرطي  p_(j|i)  بواسطة:

 p_{i|j}=\frac{e^{-\left \| x_{i}-x_{j} \right \|^{2}/\partial _{i}^{2}}}{\sum_{j\neq i}e^{-\left \| x_{i}-x_{j} \right \|^{2}}/\partial _{i}^{2}}

حيث  σ_i هو تباين غاوسي المتمركز في نقطة البيانات  x_i . إذا لم تكن مهتمًا بالرياضيات، فكر في الأمر بهذه الطريقة: تبدأ الخوارزمية بتحويل أقصر مسافة (خط مستقيم) بين النقطتين إلى احتمالية تشابه النقاط. حيث يكون التشابه بين النقاط هو: الاحتمال الشرطي بأن  x_i ستختار  x_j كجار لها إذا تم اختيار الجيران بما يتناسب مع كثافة احتمالية تحت غاوسي (التوزيع الطبيعي) المتمركز عند  x_i .

الخطوة الثانیة

بالنسبة للنظيرات منخفضة الأبعاد  y_i و  y_j لنقطتي البيانات عالية الأبعاد  x_i و  x_j ، من الممكن احتساب احتمال مشروط مشابه، والذي نشير إليه بواسطة  q_(j|i) ):

 q_{i|j}=\frac{e^{-\left \| y_{i}-y_{j} \right \|^{2}}}{\sum_{j\neq i}e^{-\left \| y_{i}-y_{j} \right \|^{2}}}

لاحظ أنه يتم تعيين  q_(j|i) و  p_(j|i) على الصفر لأننا نريد فقط تصميم تشابه حكيم بين الزوجين.

بعبارات بسيطة، تحسب الخطوة 1 والخطوة 2 الاحتمال الشرطي للتشابه بين زوج من النقاط في:

  1. مساحة عالية الأبعاد
  2. في مساحة منخفضة الأبعاد

دعونا نرسم فضاء ثلاثي الأبعاد إلى فضاء ثنائي الأبعاد. ما تقوم به الخطوة 1 والخطوة 2 هو احتساب احتمال تشابه النقاط في الفضاء ثلاثي الأبعاد وحساب احتمال تشابه النقاط في الفضاء ثنائي الأبعاد المقابل. منطقياً، يجب أن تكون الاحتمالات الشرطية  p_(j|i) و  q_(j|i) متساويتين للتمثيل المثالي للتشابه بين نقاط البيانات في المساحات ذات الأبعاد المختلفة، أي أن الفرق بين  p_(j|i) و  q_(j|i) يجب أن يكون صفراً من أجل التكرار المثالي للمخطط في الأبعاد العالية والمنخفضة.

من خلال هذا المنطق، تحاول SNE تقليل هذا الاختلاف في الاحتمال الشرطي.

الخطوة الثالثة

الآن هنا هو الفرق بين خوارزميات SNE و t-SNE.

لقياس تقليل مجموع الاختلاف في الاحتمال الشرطي، يقلل SNE من مجموع نقاط البيانات الكلية كولباك ليبلر (Kullback-Leibler) باستخدام طريقة نزول التدرج (gradient descent). ويجب أن نعلم أن اختلافات KL غير متماثلة في طبيعتها.

بمعنى آخر، تركز دالة التكلفة (cost function) SNE على الاحتفاظ بالهيكل المحلي للبيانات في الخريطة (للحصول على قيم معقولة لتباين غاوسي في الفضاء عالي الأبعاد، σ_i. بالإضافة إلى ذلك، من الصعب جدًا (غير کافٍ احتسابيًا) تحسين دالة التكلفة هذه.

لذلك يحاول t-SNE أيضًا تقليل مجموع الفرق في الاحتمالات الشرطية. لكنها تفعل ذلك باستخدام النسخة المتماثلة من دالة التكلفة SNE، مع التدرجات البسيطة. أيضًا، تستخدم t-SNE توزيعًا ثقيل الذيل في الفضاء منخفض الأبعاد للتخفيف من مشكلة الازدحام (منطقة الخريطة ثنائية الأبعاد المتوفرة لاستيعاب نقاط البيانات البعيدة بشكل معتدل لن تكون كبيرة بما يكفي تقريبًا مقارنةً بـالمنطقة المتاحة لاستيعاب نقاط البيانات القريبة) ومشاكل تحسين SNE.

الخطوة الرابعة

إذا رأينا المعادلة لحساب الاحتمال الشرطي، فقد تركنا التباين من المناقشة حتى الآن. البارامترة المتبقية التي سيتم تحديدها هي التباين  σ_i لتوزيع t للطالب الذي يتركز فوق كل نقطة بيانات عالية الأبعاد  x_i  فليس من المحتمل أن تكون هناك قيمة واحدة لـ  σ_i وهي الأمثل لجميع نقاط البيانات في مجموعة البيانات لأن كثافة البيانات من المحتمل أن تختلف. في المناطق الكثيفة، تكون القيمة الأصغر لـ  σ_i عادة أكثر ملاءمة منها في المناطق المتفرقة. وتؤدي أي قيمة معينة لـ  σ_i إلى توزيع احتمالي،  P_i ، على جميع نقاط البيانات الأخرى. هذا التوزيع له إنتروبيا تزداد مع زيادة  σ_i . ويُجري t-SNE بحثًا ثنائيًا عن قيمة  σ_i التي تنتج  P_i مع ارتباك (perplexity) ثابت يحدده المستخدم  σ_i .

 Perp(P_i )=2^(H(P_i))

حيث   H(P_i) هي إنتروبيا شانون لـ  P_i المقاسة بالبتات.

     \[H\left( {{P_i}} \right) =  - \mathop \sum \limits_j {p_{j|i}} \times {\rm{log}}\left( {{p_{j|i}}} \right)\]

يمكن تفسير الارتباک (perplexity) على أنها مقياس سلس للعدد الفعال للجيران. أداء SNE قوي إلى حد ما للتغيرات في الارتباک (perplexity)، والقيم النموذجية بين 5 و 50.

ماذا يفعل t-SNE في الواقع؟

بعد أن نظرنا في الوصف الرياضي لكيفية عمل الخوارزميات، لتلخيص ما تعلمناه أعلاه، فيما يلي شرح موجز لكيفية عمل t-SNE. إنه أمر بسيط للغاية في الواقع، فإن خوارزمية t-SNE لتقليل الأبعاد غير الخطية تجد أنماطًا في البيانات عن طريق تحديد المجموعات المرصودة بناءً على تشابه نقاط البيانات مع خصائص متعددة. لكنها ليست خوارزمية تجميع بل هي خوارزمية لتقليل الأبعاد. هذا لأنه يقوم بتعيين البيانات متعددة الأبعاد إلى مساحة ذات أبعاد أقل، ولم تعد خصائص الإدخال قابلة للتحديد. وبالتالي لا يمكنك إجراء أي استدلال يعتمد فقط على ناتج t-SNE. لذلك فهي في الأساس تقنية لاستكشاف البيانات والتصور. ولكن يمكن استخدام t-SNE في عملية التصنيف والتجميع باستخدام مخرجاته کخصیصة إدخال لخوارزميات التصنيف الأخرى.

تنفیذ تقنیة tSNE في بایثون

لنرى مثالاً على استخدام t-SNE باستخدام scikit-learn في بایثون. سوف نستخدم مجموعة البيانات الرقمية اللازمة لتقليل الأبعاد باستخدام t-SNE.

کود:

from sklearn.datasets import load_digits
digits = load_digits()
data_X = digits.data[:600]
y = digits.target[:600]
from sklearn.manifold import TSNE
tsne = TSNE(n_components=2, random_state=0)
tsne_obj= tsne.fit_transform(data_X)
tsne_obj

الإخراج سیکون کما یلي:

array([[ 32.48211  , -25.342215 ],
       [-19.35444  ,  -4.162836 ],
       [-14.874006 ,   3.263016 ],
       ...,
       [-18.82114  ,  22.606081 ],
       [ -0.7269431, -35.8389   ],
       [  9.684427 ,  -4.3353996]], dtype=float32)

المصادر

المصدر الأول

المصدر الثاني

منشور ذات صلة
إنترنت الأشياء (IoT) 8 Minutes

ما هو إنترنت الأشياء (IoT)؟

جاسم ناظري

يتضمن IoT توسيع اتصال الإنترنت إلى الأجهزة التي تتجاوز الأجهزة المعتادة، مثل أجهزة الكمبيوتر المكتبية، وأجهزة الكمبيوتر المحمولة، والهواتف الذكية. يمكن للأجهزة التي تستخدم هذه التقنية الاتصال والتفاعل مع بعضها البعض عبر الإنترنت؛ يمكن أيضًا مراقبتها والتحكم فيها عن بُعد.

فكره واحده بخصوص “بسط تقنیة t-SNE وتنفیذها في بایثون

  1. جاسم ناظري

    مقالة کاملة ومفیدة جدا
    شکرا لفریق کرسي

    سبتمبر 3, 2021 - 10:13 م

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

السلة