نموذج التصنيف باستخدام الشبكات العصبية الاصطناعية (ANN)

نشرت: 2020-12-01

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

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

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

تعلم دورة الذكاء الاصطناعي من أفضل الجامعات في العالم. احصل على درجة الماجستير أو برنامج PGP التنفيذي أو برامج الشهادات المتقدمة لتسريع مسار حياتك المهنية.

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

الشبكات العصبية

الشبكات العصبية ممثلة بشكل فضفاض لتعلم الدماغ البشري. تتكون الشبكة العصبية الاصطناعية من الخلايا العصبية المسؤولة بدورها عن تكوين الطبقات. تُعرف هذه الخلايا العصبية أيضًا باسم المعلمات المضبوطة.

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

المصدر: ويكيبيديا

يتم تحديث الأوزان المرتبطة بالخلايا العصبية والمسؤولة عن التنبؤات الإجمالية في كل حقبة. تم تحسين معدل التعلم باستخدام مُحسِّن مختلف. يتم تزويد كل شبكة عصبية بوظيفة التكلفة التي يتم تصغيرها مع استمرار التعلم. ثم يتم استخدام أفضل الأوزان حيث تعطي دالة التكلفة أفضل النتائج.

قراءة: برنامج TensorFlow لاكتشاف الأشياء للمبتدئين

مشكلة التصنيف

في هذه المقالة ، سنستخدم Keras لبناء الشبكة العصبية. يمكن استيراد Keras مباشرة في Python باستخدام الأوامر التالية.

استيراد tensorflow مثل tf

من keras استيراد tensorflow

من keras.models استيراد تسلسلي

من keras.layer استيراد كثيف

متغير مجموعة البيانات والهدف

سنستخدم مجموعة بيانات خاصة بمرض السكري والتي ستتضمن الميزات التالية:

متغيرات الإدخال (X):

  • الحمل: عدد مرات الحمل
  • الجلوكوز: تركيز الجلوكوز في البلازما لمدة ساعتين في اختبار تحمل الجلوكوز الفموي
  • ضغط الدم: ضغط الدم الانبساطي (مم زئبق)
  • سماكة الجلد: سمك ثنية الجلد ثلاثية الرؤوس (مم)
  • الأنسولين: الأنسولين في الدم لمدة ساعتين (mu U / ml)
  • مؤشر كتلة الجسم: مؤشر كتلة الجسم (الوزن بالكيلو جرام / (الطول بالمتر) ^ 2)
  • وظيفة السكري: وظيفة مرض السكري
  • العمر: العمر (بالسنوات)

متغيرات الإخراج (ص):

النتيجة: متغير الفئة (0 أو 1) [المريض مصاب بالسكري أم لا]

# تحميل مجموعة البيانات

df = loadtxt ('pima-indians-sugar.csv'، محدد = '،')

# تقسيم البيانات إلى X (إدخال) و Y (إخراج)

X = مجموعة بيانات [:، 0: 8]

y = مجموعة البيانات [: ، 8]

تحديد نموذج Keras

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

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

يمكن ضبط وظيفة التنشيط باستخدام وسيطة التنشيط. سنستخدم الوحدة الخطية المصححة كوظيفة التنشيط في هذه الحالة. هناك خيارات أخرى مثل Sigmoid أو TanH ، لكن RELU هو خيار عام جدًا وأفضل.

# تحديد نموذج keras

النموذج = متسلسل ()

model.add (كثيف (12، input_dim = 8، Activation = 'relu'))

model.add (كثيف (8 ، التنشيط = 'relu'))

model.add (كثيف (1 ، التنشيط = 'sigmoid'))

تجميع نموذج Keras

تجميع النموذج هو الخطوة التالية بعد تعريف النموذج. يستخدم Tensorflow لتجميع النموذج. التجميع هو العملية التي يتم فيها تعيين المعلمات لتدريب النموذج والتنبؤات. يمكن استخدام وحدة المعالجة المركزية / وحدة معالجة الرسومات أو الذكريات الموزعة في الخلفية.

علينا تحديد دالة خسارة تُستخدم لتقييم أوزان الطبقات المختلفة. يقوم المُحسِّن بضبط معدل التعلم ويمر عبر مجموعات مختلفة من الأوزان. في هذه الحالة سوف نستخدم Binary Cross Entropy كوظيفة خسارة. في حالة المُحسِّن ، سوف نستخدم ADAM وهي خوارزمية نزول التدرج العشوائي الفعالة.

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

# تجميع نموذج keras

model.compile (الخسارة = 'binary_crossentropy' ، المحسن = 'adam' ، المقاييس = ['الدقة'])

ملاءمة النموذج وتقييمه

يُعرف تركيب النموذج أساسًا باسم تدريب النموذج. بعد تجميع النموذج ، يصبح النموذج جاهزًا لتصفح البيانات بكفاءة وتدريب نفسه. يمكن استخدام وظيفة fit () من Keras في عملية تدريب النموذج. المعلمتان الرئيسيتان المستخدمتان قبل تدريب النموذج هما:

  1. العهود: يمر المرء عبر مجموعة البيانات بأكملها.
  2. حجم الدُفعة: يتم تحديث الأوزان في كل حجم دفعة. تتكون العصور من دفعات موزعة بالتساوي من البيانات.

# تناسب نموذج keras في مجموعة البيانات

model.fit (س ، ص ، عهود = 150 ، حجم_دفعة = 10)

يتم استخدام وحدة معالجة الرسومات أو وحدة المعالجة المركزية في هذه العملية. يمكن أن يكون التدريب عملية طويلة جدًا اعتمادًا على العصور وحجم الدفعة والأهم من ذلك حجم البيانات.

يمكننا أيضًا تقييم النموذج على مجموعة بيانات التدريب باستخدام وظيفة التقييم (). يمكن تقسيم البيانات إلى مجموعات تدريب واختبار ويمكن استخدام اختبار X و Y لتقييم النموذج.

لكل زوج من المدخلات والمخرجات ، سينتج هذا تنبؤًا ويجمع الدرجات ، بما في ذلك متوسط ​​الخسارة وأي قياسات قمنا بتثبيتها ، مثل الدقة.

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

# تقييم نموذج keras

_ ، الدقة = تقييم النموذج (Xtest ، ytest)

طباعة (الدقة:٪ .2f '٪ (دقة * 100))

اقرأ أيضًا: مقدمة نموذج الشبكة العصبية

خاتمة

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

الخروج من برنامج الشهادة المتقدمة upGrad في التعلم الآلي و البرمجة اللغوية العصبية. تم تصميم هذه الدورة التدريبية مع مراعاة أنواع مختلفة من الطلاب المهتمين بالتعلم الآلي ، حيث تقدم إرشادًا من 1-1 وغير ذلك الكثير.

كيف يمكن استخدام الشبكات العصبية للتصنيف؟

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

لماذا الشبكات العصبية الاصطناعية جيدة للتصنيف؟

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

متى يجب استخدام الشبكات العصبية الاصطناعية؟

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