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

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

بيانات حالة النموذج
في حين أن بيانات البكسل 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)

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