Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.
تقنية وتكنولوجيا

استكشاف بيانات حالة النموذج في الكشف عن الشذوذ | بواسطة سارة نوبريجا


البيانات

MNIST بكسل البيانات

مجموعة البيانات الأولى المستخدمة هنا هي بيانات بكسل MNIST المعتادة، والتي تتألف من أرقام مكتوبة بخط اليد. هنا الخلفية سوداء والأرقام بيضاء.

الشكل 1: بيانات بكسل MNIST | الصورة من قبل المؤلف

شاذ MNIST بكسل البيانات

لقد قمت بإنشائه لاختبار الإجراء الجديد ومقارنته بالإجراء المعتاد أربعة أنواع بسيطة من البيانات الشاذة.

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

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

الشكل 2: أربعة أنواع من البيانات الشاذة | الصورة من قبل المؤلف

بيانات حالة النموذج

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

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

نقوم بعد ذلك بتنفيذ الإجراء المعتاد: تقسيم البيانات إلى تدريب واختبار، ثم نلائم نموذج ANN:

model.fit(X_train,Y_cat_train,epochs=8, validation_data=(X_test, y_cat_test))

بعد ذلك نريد استرجاع أسماء الطبقات الموجودة فيها نموذج وتخزينها في القائمة:

list(map(lambda x: x.name, model.layers))

وأخيرًا، نقوم بإنشاء نموذج جديد يأخذ نفس المدخلات مثل النموذج الأصلي نموذج ولكنها تنتج مخرجات من طبقة محددة تسمى “كثيفة”:

intermediate_layer_model=Model(inputs=model.input, outputs=model.get_layer("dense").output)

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

دعونا نلقي نظرة على هذا بيانات حالة النموذج:

model_state_data_layer1=pd.read_csv("first_layer_dense.csv",header=None)
model_state_data_layer2=pd.read_csv("second_layer_dense.csv",header=None)

model_state_data_layer1.head(4)

الشكل 3: لقطة من بيانات حالة النموذج (الطبقة الأولى). | الصورة من قبل المؤلف

تتكون بيانات حالة النموذج للطبقة العصبية الأولى من 32 عمودًا و4 صفوف.

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

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

اترك تعليقاً

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

زر الذهاب إلى الأعلى