دليل المبتدئين لاكتشاف الحالات الشاذة باستخدام الخرائط ذاتية التنظيم

عقدة المصدر: 1866873

تم نشر هذه المقالة كجزء من مدونة علوم البيانات

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

على غرار التجزئة ، توجد تقنية موازية في عالم التعلم العميق والتي تسمى خرائط التنظيم الذاتي. في هذه المقالة ، سوف نتعمق في هذه التقنية بالتفصيل ، ونغطي ما هي خرائط التنظيم الذاتي ، وبنيتها ، وكيف يتم تدريبها ، وما هي تطبيقاتها ، وكيف تشبه مجموعة K-Means Clustering ، ثم ننفذها في Python.

جدول المحتويات

  • ما هي الخرائط ذاتية التنظيم؟
  • هندسة الخرائط ذاتية التنظيم
  • كيف تتعلم الخرائط ذاتية التنظيم؟
  • أفضل وحدة مطابقة (BMU)
  • تشبيه الخرائط ذاتية التنظيم إلى K يعني التجميع
  • تنفيذ خرائط ذاتية التنظيم على لغة بايثون

ما هي الخرائط ذاتية التنظيم؟

اخترع البروفيسور Teuvo Kohonen شبكات Kohonen العصبية الاصطناعية أو خرائط Kohonen وهي سلالة أخرى من الشبكات العصبية الاصطناعية (ANNs). تُعرف أكثر باسم خريطة التنظيم الذاتي (SOMs) وهي جانب نادر جدًا من التعلم غير الخاضع للإشراف وهي تقنية تصور البيانات.

الهدف من هذه التقنية هو تقليل الأبعاد واكتشاف الميزات. تساعد الخرائط في تصور البيانات عالية الأبعاد. يمثل البيانات متعددة الأبعاد في فضاء ثنائي الأبعاد باستخدام الشبكات العصبية ذاتية التنظيم. تُستخدم هذه التقنية في استخراج البيانات ، والتعرف على الوجوه ، والتعرف على الأنماط ، وتحليل الكلام ، والتشخيصات الصناعية والطبية ، واكتشاف الحالات الشاذة.

يكمن جمال SOM في أنها تحافظ على العلاقة الطوبولوجية لمجموعة بيانات التدريب (أو المدخلات). مما يدل على أن الخصائص الأساسية لبيانات الإدخال لا تتأثر حتى بعد التغيير المستمر في شكل أو حجم الشكل. تساعد SOMs في الكشف عن الارتباطات التي لا يمكن تحديدها بسهولة.

لنرى كيف يتم تنظيم SOMs وفهم الفروق الدقيقة المعمارية ...

العمارة خرائط ذاتية التنظيم

هيكل الخرائط ذاتية التنظيم عبارة عن شبكة من الخلايا العصبية. في إحداثي الشبكة و X و Y ، يكون لكل عقدة موقع طوبولوجي محدد وتتألف من متجه للأوزان من نفس البعد مثل متغيرات الإدخال.

بيانات تدريب الإدخال عبارة عن مجموعة من النواقل ذات أبعاد n: x1 ، x2 ، x3 ... xn ، وتتكون كل عقدة من متجه الوزن المقابل W بأبعاد n: w1 ، w2 ، w3 ... wn

في الرسم التوضيحي أدناه ، الخطوط بين العقد هي مجرد تمثيل للتجاور ولا تشير إلى أي اتصال كما هو الحال في الشبكات العصبية الأخرى.

خرائط ذاتية التنظيم

صورة 1

الخرائط ذاتية التنظيم هي شبكة أو شبكة من الخلايا العصبية (أو العقد) التي تقبل وتستجيب لمجموعة من إشارات الإدخال. كل خلية عصبية لها موقع ، وتلك التي تقع بالقرب من بعضها البعض تمثل مجموعات ذات خصائص متشابهة. لذلك ، يمثل كل خلية عصبية كتلة تم تعلمها من التدريب.

في SOMs ، تتم مقارنة الاستجابات ويتم اختيار خلية عصبية "فائزة" من الشبكة. يتم تنشيط هذه الخلايا العصبية المختارة مع الخلايا العصبية المجاورة. تُرجع SOMs خريطة ثنائية الأبعاد لأي عدد من المؤشرات كمخرجات حيث لا توجد اتصالات جانبية بين عقد الإخراج.

إليك سؤال لك ، ما رأيك في وظيفة الخسارة التي يجب حسابها لـ SOMs؟ حسنًا ، نظرًا لأنها تقنية تعليمية غير خاضعة للإشراف ، فلا يوجد متغير مستهدف ، وبالتالي ، فإننا لا نحسب حتى وظيفة الخسارة ، وبالتالي لا توجد عملية نشر رجعية مطلوبة أيضًا لـ SOMs.

كيف خرائط ذاتية التنظيم يتعلم؟

الآن ، دعنا نفهم ما هي آلية التعلم لخوارزمية الخرائط ذاتية التنظيم؟ كيف يتم تقدير الإصدارات التجريبية ويتم تدريب الشبكة؟

الفكرة الأساسية لعملية تدريب SOM هي فحص كل عقدة والعثور على العقدة الواحدة التي يكون وزنها أشبه بموجه الإدخال. يتم تنفيذ التدريب في خطوات قليلة وعلى العديد من التكرارات. دعونا نرى هذا بالتفصيل أدناه:

لدينا ثلاث إشارات دخل x1 و x2 و x3. يتم اختيار متجه الإدخال هذا عشوائيًا من مجموعة من بيانات التدريب ويتم تقديمه إلى الشبكة. لذلك ، لدينا شبكة من الخلايا العصبية على شكل مصفوفة ثنائية الأبعاد 3 * 3 بها تسعة عقد بثلاثة صفوف وثلاثة أعمدة كما هو موضح أدناه:

عقد الإخراج المرئية | خرائط ذاتية التنظيم

صورة 2

لأغراض الفهم ، تصور مصفوفة 3 * 3 أعلاه على النحو التالي:

عقد الإدخال المرئية

صورة 3

كل عقدة لديها بعض القيم العشوائية كأوزان. هذه الأوزان ليست من الشبكة العصبية كما هو موضح على النحو التالي:

الوزن | خرائط ذاتية التنظيم

صورة 4

من هذه الأوزان ، يمكن حساب المسافة الإقليدية على النحو التالي:

حساب المسافة | خرائط ذاتية التنظيم

صورة 5

عملية تدريب SOMs كما يلي:

  1. أولاً ، قم بتهيئة جميع الأوزان بشكل عشوائي.

  2. حدد متجه الإدخال x = [x1 ، x2 ، x3 ، ... ، xn] من مجموعة التدريب.

  3. قارن x بالأوزان wj بحساب المسافة الإقليدية لكل خلية عصبية j. تم إعلان أن العصبون الذي يحتوي على أقل مسافة هو الفائز. تُعرف الخلية العصبية الفائزة باسم أفضل وحدة مطابقة (BMU)

  4. قم بتحديث أوزان الخلايا العصبية بحيث يصبح الفائز ويشبه متجه الإدخال x.

  5. يتم تعديل أوزان الخلايا العصبية المجاورة لجعلها أكثر شبهاً بمتجه الإدخال. كلما اقتربت العقدة من BMU ، كلما تغيرت أوزانها. المعلمات المعدلة هي معدل التعلم ووظيفة الجوار. (المزيد أدناه حول وظيفة الجوار)

  6. كرر من الخطوة 2 حتى تتقارب الخريطة للتكرارات المحددة أو لا توجد تغييرات ملحوظة في الأوزان.

أفضل وحدة مطابقة (BMU)

كما رأينا أعلاه ، يتم حساب مسافة كل عقدة (أو نقطة بيانات أولية) من جميع عقد الإخراج. العقدة أو الخلايا العصبية التي تم تحديدها بأقل مسافة هي أفضل وحدة مطابقة (BMU) أو الحي. يصور على أنه (م) في الشكل التالي:

BMU | خرائط ذاتية التنظيم

صورة 6

من هذا BMU ، يتم تحديد نصف قطر (أو سيجما). يتم تحديث جميع العقد التي تقع في نصف قطر BMU وفقًا لمسافة كل منها من BMU.

لذا ، فالنقطة الآن هي أن الخلية العصبية في خريطة الإخراج يمكن أن تكون جزءًا من نصف قطر العديد من وحدات المطابقة الأفضل المختلفة. يؤدي هذا إلى تأثير دفع وسحب ثابت على الخلايا العصبية ، ومع ذلك ، فإن سلوك الخلية العصبية سيكون أكثر تشابهًا مع أفضل وحدة مطابقة بالقرب منها.

بعد كل تكرار ، يتقلص نصف القطر وتسحب وحدة BMU العقد الأقل ، وبالتالي تصبح العملية أكثر دقة مما يؤدي إلى تقليص الجوار مما يقلل من تعيين تلك الأجزاء من نقاط البيانات التي تنتمي إلى هذا الجزء المحدد. هذا يجعل الخريطة أكثر تحديدًا وفي النهاية تبدأ في التقارب وتصبح مثل بيانات التدريب (أو الإدخال).

المجموعات

صورة 7

في الشكل أعلاه ، تم حساب نصف قطر المنطقة المجاورة لأفضل وحدة مطابقة (BMU). تبدأ هذه القيمة بحجم كبير كما هو الحال في الجانب الأيمن من اللوحة ، وعادة ما يتم ضبطها على نصف قطر الشبكة ولكنها تتضاءل في كل خطوة زمنية. تعتبر أي عقد موجودة داخل هذا النطاق الجغرافي داخل حي BMU.

تشبيه SOMs إلى K- يعني Clustering

يعد كل من مجموعات K-Means و SOMs وسيلة لتحويل البيانات ذات الأبعاد الأعلى إلى بيانات ذات أبعاد أقل. على الرغم من أن إحداها عبارة عن خوارزمية للتعلم الآلي والأخرى عبارة عن خوارزمية تعلم عميق ، إلا أن هناك تشابهًا بين الاثنين.

في مجموعات K-Means ، عند تقديم نقاط بيانات جديدة ، يتم تحديث النقط الوسطى وهناك طرق مثل طريقة الكوع للعثور على قيمة K. بينما في خرائط التنظيم الذاتي ، يتم تغيير بنية الشبكة العصبية لتحديث الأوزان وعدد الخلايا العصبية هي معلمة ضبط.

تنفيذ خرائط ذاتية التنظيم على لغة بايثون

سنستخدم تقنية الخرائط ذاتية التنظيم لاكتشاف الاحتيال للعملاء في بايثون. تحتوي البيانات على 690 سجلاً و 16 ميزة بالإضافة إلى تسمية فئة ومعرف العميل. نظرًا لأن SOMs هي تقنية غير خاضعة للإشراف ، فلن نستخدم عمود الفصل هنا ولا نحتاج أيضًا إلى عمود معرف العميل. يمكن الوصول إلى مجموعة البيانات والرموز من my GitHub جيثب: مستودع.

تُرجع SOMs خريطة ثنائية الأبعاد حيث يتم استخدام الترميز اللوني لتعيين مجموعة محددة من نقاط البيانات.

في Python ، نستخدم المكتبة المسماة Minisom المستخدمة لتنفيذ خرائط التنظيم الذاتي.

import numpy as np import matplotlib.pyplot مثل plt import pandas مثل pd # تُستخدم مكتبة Minisom والوحدة النمطية لأداء خرائط التنظيم الذاتي من استيراد minisom
# تحميل بيانات البيانات = pd.read_csv ('Credit_Card_Applications.csv') # بيانات X # شكل البيانات: data.shape # معلومات البيانات: data.info ()

بالنسبة للخرائط ذاتية التنظيم ، لا تتطلب سوى متغيرات X. في هذه الحالة ، لا نطلب معرف العميل لأنه متغير فريد ولا يستخدم أي منهما Y (المتغير الهدف).

على الرغم من ذلك ، يمكن استخدام المتغير الهدف (Y) لفهم ما إذا كان الناتج يتطابق مع الإدخال أم لا.

# تحديد متغيرات X لإدخال SOM
X = data.iloc [:، 1:14] .values ​​y = data.iloc [:، -1] .values ​​# X variables:
pd.DataFrame (X)

تحجيم المتغيرات X:

من sklearn.preprocessing import MinMaxScaler sc = MinMaxScaler (feature_range = (0، 1)) X = sc.fit_transform (X) pd.DataFrame (X)

SOMs هي مجموعة ثنائية الأبعاد من الخلايا العصبية. لذلك ، لتحديد SOMs ، سنحتاج إلى معرفة عدد الصفوف والأعمدة والخلايا العصبية اللازمة لترتيب أبعاد x و y. معلمات SOM هي:

  • x: som_grid_rows ، هو عدد الصفوف
  • y: som_grid_columns ، هو عدد الأعمدة
  • سيجما هو نصف قطر الجوار
  • معدل التعليم

نظرًا لأن x و y هما أبعاد SOM ، فلا ينبغي أن تكون هذه صغيرة ويمكن أخذ Sigma و Learning_rate بقيم أعلى لأنه في كل تكرار يتم تعديل هذه القيم. على الرغم من أن القيمة الأولية لنصف القطر هي 1.

# اضبط المعلمات الفائقة som_grid_rows = 10 som_grid_columns = 10 تكرارات = 20000 سيجما = 1 معدل التعلم = 0.5

مع x = 10 و y = 10 كعدد الصفوف وعدد الأعمدة (الأبعاد) ، سيكون هناك 10 * 10 بمعنى 100 مقطع. نحن نأخذ الملاحظات بشكل عشوائي وليس في أي تسلسل لإجراء التكرارات.

# حدد SOM: som = MiniSom (x = som_grid_rows ، y = som_grid_columns ، input_len = 13 ، سيجما = سيجما ، Learning_rate = Learning_rate) # تهيئة الأوزان som.random_weights_init (X) # تدريب som.train_random (X ، التكرارات)

الأوزان وخريطة المسافة من الأوزان هي:

# الأوزان هي: wts = som.weights # شكل الوزن: wts.shape # إرجاع خريطة المسافة من الأوزان: som.distance_map ()

نحسب متوسط ​​المسافة بين الخلايا العصبية (MID) ، وهو متوسط ​​المسافة الإقليدية للخلايا العصبية الرئيسية مع جوارها.

  • كلما ارتفع MID ​​، كلما كانت العقدة الفائزة بعيدة عن جوارها.
  • وحدة أفضل تطابق بعيدًا عن جوارها بعيدة عمومًا عن التجمعات.
  • إذا كانت بعض القيم لها مسافات أكثر تشابهًا ، أي مسافات صغيرة من حيث MID ، فإن هذه القيم تكون أقرب وأكثر تشابهًا مع بعضها البعض.

يستخدم Pcolor () لتلوين جميع MIDs والنافذة هي العظم ().

من مؤامرة استيراد pylab ، المحور ، show ، pcolor ، colorbar ، عظم العظام () pcolor (som.distance_map (). T) # خريطة المسافة مثل شريط ألوان الخلفية () تظهر ()

استخدام ألوان وعلامات مختلفة لكل ملصق للتعرف على المرضى المصابين بالمرض. المثال الأكثر شيوعًا المستخدم لشرح مبادئ SOM هو تعيين الألوان من الأبعاد الثلاثة - الأحمر والأخضر والأزرق إلى بعدين. إذا كان الخارج الموضح في خريطة التمثيل اللاحق يتماشى مع عملاء الاحتيال الفعلي أم لا ، فيمكن عندئذٍ التحقق من خلال:

العظام () pcolor (som.distance_map (). T) colorbar () #gives legend markers = ['o'، 's'] # إذا كانت الملاحظة احتيالية ثم لون دائري أحمر أو ألوان مربعة خضراء = ['r' ، 'g'] لـ i ، x في تعداد (X): w = som.winner (x) قطعة الأرض (w [0] + 0.5 ، w [1] + 0.5 ، علامات [y [i]] ، markeredgecolor = colours [y [i]]، markerfacecolor = 'None'، markersize = 10، markeredgewidth = 2) show ()
  • العلامات المستخدمة لتمييز عمليات الاحتيال هي:
    • التعميم الأحمر هو الفئة 0 كعملاء محتالين
    • جرين سكوير من الدرجة الأولى كعملاء غير محتالين
  • i هو الفهرس و x هو متجه كل قيمة ولكل x أولاً احصل على العقدة الفائزة
  • إحداثيات العقدة الفائزة هي w [0] و w [1] ، تتم إضافة 0.5 إلى مركز العلامة
  • s مربع ولون وجه العلامة هو اللون الداخلي للعلامة

سيكون هناك بعض العملاء الذين ليس لديهم أي تعيين أعلاه ، وبالتالي لن يكون هؤلاء جزءًا من الشرائح. لإظهار القيم التي تشكل جزءًا من المقاطع:

التعيينات = som.win_map (البيانات) التعيينات mappings.keys () len (mappings.keys ()) التعيينات [(9,8،XNUMX)] أخذ بعض التعاميم الحمراء من خريطة الحرارة ورسم الخرائط على أنها عمليات احتيال:
الاحتيال = np.concatenate ((التعيينات [(0,9،8,9)] ​​، التعيينات [(0،1)]) ، المحور = 1) عمليات الاحتيال # قائمة العملاء المحتالين: fraudsXNUMX = sc.inverse_transform (عمليات الاحتيال) pd. DataFrame (عمليات الاحتيال XNUMX)

التعليقات الختامية

يوضح المخطط أدناه طريقة عمل الخرائط ذاتية التنظيم:

صورة 8

  • تقوم خوارزمية الخرائط ذاتية التنظيم بإسقاط البيانات عالية الأبعاد في خريطة ثنائية الأبعاد مع الاحتفاظ بطوبولوجيا البيانات بحيث يتم تعيين نقاط البيانات المتشابهة إلى المواقع القريبة على الخريطة.

  • تصنف التقنية البيانات دون أي إشراف ولا يوجد متجه مستهدف وبالتالي لا يوجد انتشار عكسي.

  • ناتج SOMs عبارة عن خريطة ثنائية الأبعاد ويتم استخدام الترميز اللوني لتحديد أي مجموعة محددة من نقاط البيانات.

أتمنى أن تكون المقالة مفيدة لك وتعلمت شيئًا جديدًا. شكرًا جزيلاً لزيارتكم للقراءة والمساعدة في مشاركة المقالة مع شبكتك 🙂

تعلم سعيد! 🙂

عني

أهلا! أنا نيها سيث. أحمل برنامج دراسات عليا في علوم وهندسة البيانات من معهد البحيرات العظمى للإدارة وبكالوريوس في الإحصاء. لقد تم تمييزي كـ أشهر 10 مؤلفين ضيوف في عام 2020 على Analytics Vidhya (AV).

يكمن مجال اهتمامي في البرمجة اللغوية العصبية والتعلم العميق. لقد نجحت أيضًا في برنامج CFA. يمكنك التواصل معي على لينكدين: ويمكن قراءة مدوناتي الأخرى لـ AVI.

مراجع حسابات

https://en.wikipedia.org/wiki/Teuvo_Kohonen

مصادر الصور

  1. Image 1: https://static-01.hindawi.com/articles/cin/volume-2016/2476256/figures/2476256.fig.002.svgz
  2. الصورة 2: 63_blog_image_2.png (671 × 663) (sds-platform-private.s3-us-east-2.amazonaws.com)
  3. الصورة 3: 63_blog_image_3.png (671 × 663) (sds-platform-private.s3-us-east-2.amazonaws.com)
  4. الصورة 4: 63_blog_image_4.png (671 × 663) (sds-platform-private.s3-us-east-2.amazonaws.com)
  5. الصورة 5: 63_blog_image_5.png (671 × 663) (sds-platform-private.s3-us-east-2.amazonaws.com)
  6. الصورة 6: https://www.researchgate.net/publication/350552111/figure/fig2/AS:[البريد الإلكتروني محمي]/أفضل-وحدة-المطابقة-في-التنظيم-Map-SOM.png
  7. الصورة 7: mathworks.com
  8. الصورة 8: https://www.researchgate.net/profile/Bruno-Senzio/publication/313160273/figure/fig2/AS:[البريد الإلكتروني محمي]/SOM-هيكل-وتحديث-أفضل-مطابقة-الوحدة-19.png

الوسائط الموضحة في هذه المقالة ليست مملوكة لشركة Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.

المصدر: https://www.analyticsvidhya.com/blog/2021/09/beginners-guide-to-anomaly-detection-using-self-organizing-maps/

الطابع الزمني:

اكثر من تحليلات Vidhya