آلة التعلم

أين يوجد مجلد القطط والكلاب الخاص بي؟

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

الآن ، أيهما الأفضل للتنبؤ بأنواع أخرى من الكائنات ، الحشرات مثلاً؟ وهكذا ، أخذت سبع فئات من الحشرات (في الواقع ، كانت ستة لأن العناكب ليست حشرات بل العناكب. آسف أصدقائي في علم الأحياء). الفصول السبع المختارة هي: الخنافس ، الصراصير ، اليعسوب ، الذباب ، العناكب ، النمل الأبيض ، والتريبس.

سبعة حيوانات جميلة ، أليس كذلك؟

تحتوي مجموعة البيانات على 1445 صورة لقسم التدريب مع توزيع غير متوازن ، مما يعني أن هناك بعض الفصول التي تحتوي على صور أكثر من غيرها. تحتوي مجموعة التحقق من الصحة على 600 صورة توفر توزيعًا يتراوح بين 60 إلى 40 في المائة بين مجموعة التدريب ومجموعة التحقق من الصحة. جميع الصور التي تم الحصول عليها من موقع InsectImages ، لذلك لا تتردد في التحقق من المزيد من الفصول الدراسية هناك. في الماضي ، حاولت تطبيق المعالجة المسبقة لاستخراج ميزات متعددة الحلول وتصنيف جهاز متجه واحد (SVM) - ضد كل مصنف. ومع ذلك ، فإن SVM مع نهج حل متعدد حلقي حصل على هذه النتيجة السيئة من 24 ٪ فقط في مرحلة الاختبار. لم يتم تضمين Thrips في العملية وتم تدريب ستة فصول فقط.

فتح إصدار مكتبات جديدة لممارسي منظمة العفو الدولية ، مثل Fastai ، إمكانيات جديدة لنا لتدريب نماذج تحتوي على بيانات غير منظمة مثل هذه المقدمة هنا. يحتوي Fastai على كل من مكتبات التعلم الآلي والتعلم العميق المبنية على دعم Pytorch و CUDA. لذلك مع كل هذه الإمكانية ، حاولت تصنيف مجموعة البيانات مرة أخرى لإجراء مقارنة بين شبكة عصبية كلاسيكية لا تحتوي على أكثر من 6 طبقات ونهج تعلم النقل استنادًا إلى resnet 34.

تجهيزها

يمكن أن تكون الصور إما بمقياس رمادي أو في بعض أنظمة الألوان مثل RGB ، على سبيل المثال. عندما تكون الصورة بتدرج الرمادي ، يكون لها قناة واحدة فقط ، وهي تتكون من مصفوفة NxM وحدها. من ناحية أخرى ، بالنسبة لصورة ذات مخطط ألوان ، تحتوي على 3 قنوات على الأقل - الأحمر والأخضر والأزرق لحالة RGB - يمكن دمج هذه القنوات في مصفوفة ثلاثية الأبعاد واحدة ، تسمى أيضًا موتر ، من العرض ، معلومات الارتفاع وقناة اللون. للتوضيح ، تعد صفيف الأبعاد واحدًا هو الموتر من المرتبة 1 ، والمصفوفة ثنائية الأبعاد أو المصفوفة هي الموتر من الدرجة 2 (صور المقياس الرمادي لدينا ، على سبيل المثال) ، والمصفوفة ثلاثية الأبعاد أو المصفوفة هي الموتر من المرتبة 3.

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

قبل المعالجة في التعلم الآلي. تسلسل البيانات.

يؤدي التطبيع إلى تشويه مرئي لمجموعة البيانات ، ولكنه يجعل حساب الأوزان أسهل لأنه يزيل القيم المتطرفة ، وبالتالي يلائم القيم في نطاق يمكن التحكم فيه.

صور طبيعية

لا يستغرق تنفيذ net العصبي نفسه أكثر من الخطوة preprocessing. لقد حددنا البنية ونحدد بيانات النموذج والمقاييس ونبدأ مرحلة التدريب بخط واحد.

تنفيذ الشبكة العصبية.

ومع ذلك ، فإن شبكة التعلم العصبية العميقة أو الشبكة العصبية التلافيفية تستخدم خطوة ما قبل المعالجة في Fastai تسمى التحويلات. لذلك ، بالنسبة إلى منهج التعلم العميق ، يتم تغذية الصور مباشرة كما هي ، وقد يتم تضمين بعض التعزيزات مثل القص ، والتكبير / التصغير ، والاقتصاص من خلال إضافة معلمات اختيارية ببساطة إلى بيانات النموذج من خلال الكائن tfms_from_model (resnet34 ، sz ، aug_tfms = transforms_side_on ، max_zoom = 1.1).

التعلم العميق: ثلاثة خطوط فقط جعلت كل عملية التدريب.

النتائج

كان نموذج التعلم الآلي مع المدخلات ، طبقة خطية مع وظيفة Log Softmax قادرة على الوصول إلى 45 ٪ من الدقة في مرحلة التحقق من الصحة. على الرغم من أنها تبدو نتيجة سيئة ، إلا أنها تقترب من مضاعفة دقة محاولتي الأولى مع SVM ، والتي لم تحقق سوى 24٪. من المهم أن نتذكر أنه تطبيق بسيط للغاية لشبكة عصبية تصنف بيانات معقدة غير منظمة. علاوة على ذلك ، تحتوي مكتبة Fastai على العديد من خيارات التحسين لتناسب النموذج مع الهدف المنشود.

نتائج ML العصبية الصافية كحد أقصى 5 عصر فقط ودقة 47 ٪.التنبؤ ML بعد 64 التكرار. كان محسن SGD.

لمواجهة النتائج ، يمكننا مقارنة الطبقات الفعلية:

الطبقات الفعلية التي ينبغي التنبؤ بها.

أيضًا ، يمكننا التحقق من مصفوفة الارتباك لنرى أداء الشبكة العصبية بشكل عام على 600 صورة تحقق. كانت معظم تنبؤاتها الصحيحة هي الخنافس (122 / 138-89 ٪) ، في حين أن أداء الشبكة العصبية للآخرين كان على النحو التالي:

صرصور - 23/72: 32 ٪

اليعسوب - 41/96: 42 ٪

الذباب - 16/55: 29 ٪

العناكب - 22/87: 25 ٪

النمل الأبيض - 61/121: 50 ٪

Thrips - 1/32: 3٪

أظهرت النتائج وضعًا نموذجيًا للفرط أثناء الدورة التدريبية حيث زادت القيم التي اقتربت من الخسارة من 8e-9 (الحد الأدنى المحلي) تدريجياً حتى 6e-5 ، لكنها لا تزال مُرضية جدًا بناءً على الدقائق القصيرة التي استغرقتها المحاولة. لذلك ، يمكن تطبيق ضبط أكثر دقة لجعل النموذج أكثر فعالية مثل تضمين المصفوفة من أجل توسيع الميزات المخفية التي لم نستكشفها على بياناتنا ، ولكنها مجرد فكرة يمكن إجراؤها في تجربة أخرى.

النتائج الإجمالية للصور 600 التحقق من الصحة لنموذج التعلم الآلي.

ليس من المستغرب أن حقق نموذج التعلم العميق نتيجة أفضل بكثير حتى مع وجود مجموعة بيانات صغيرة مثل هذه المجموعة. بعد ضبط الأوزان لأجزاء من resnet ، وصلت دقة 77.7 ٪. النموذج الأساسي هو بنية مسبقة resnet 34 مع 34 طبقات. في التمريرة الأولى ، يتم الاحتفاظ بجميع عمليات تنشيط الشبكة (الأوزان) في الأصل ويتم تعديل الطبقة الأخيرة فقط لغرضنا. من الممكن القيام بذلك عن طريق إضافة المعلمة precompute = True إلى كائن التعلم (الشبكة العصبية على Fastai). بعد التمريرة الأولى التي تحتوي على 3 عهود ، تبدأ مرحلة الضبط عن طريق تغيير معدل التعلم من 0.1 إلى 0.01 بحيث يمكن إجراء التمرير الثاني بثلاث عهود. كانت معايير ذلك هي التجربة السابقة في هذا النوع من البيانات ، حيث يجب أن يتحلل معدل التعلم عشر مرات على الأقل ، ولكن بفضل أدوات Fastai لا يحتاج المرء إلى تطبيق الشعور الغريزي في هذا الشأن. تساعد الطريقة Learn.lr_find () ورسمها بـ Learn.sched_plot () في تحديد عملية تعلم أكثر ملاءمة للبيانات المستهدفة. يمكن اختبار التعلم الجديد بعهود صغيرة من 1 إلى 5 للتحقق مما إذا كان هناك تقارب نتيجة لانحسار خسارة التدريب وفقدان التحقق من الصحة. يتم اختيار معدل التعلم بحيث يكون ترتيبًا واحدًا من حيث الحجم أعلى من المستوى الذي ينتج عنه الحد الأدنى من خسارة التدريب. إذا نجحت استراتيجية الوصف ، فيمكننا المضي قدمًا خطوة واحدة واستخدام الطريقة learn.unfreeze () لتعديل جميع عمليات التنشيط (الأوزان) عن طريق تدريب أجزاء مختلفة من الشبكة العصبية بمعدلات تعلم مختلفة. وبالتالي ، بدلاً من تحليل قيمة واحدة ، يمكننا تعيين مجموعة من معدلات التعلم لتدريب النموذج (lr = np.array ([5e-4،1e-3،1e-2])). أخيرًا ، تتعلم تقنية زيادة وقت الاختبار. تساعد TTA () مع نزول التدرج العشوائي مع إعادة التشغيل (cycle_len و cycle_mult) على تحسين أداء النموذج من خلال إضافة أنواع مختلفة من التحويل إلى البيانات لتحسين تعميم النموذج. على الرغم من أن هذا قد يبدو تقنيًا جدًا ، إلا أن كل خطوة من هذه الخطوات تتم كتابتها عمومًا على سطر واحد من التعليمات البرمجية مما يسهل متابعة عملية الضبط خطوة بخطوة.

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

الخنافس - 130/138: 94٪

الصرصور - 52/72: 72 ٪

اليعسوب - 88/96: 91 ٪

الذباب - 22/55: 40 ٪

العناكب - 22/87: 81 ٪

النمل الأبيض - 86/121: 71 ٪

Thrips - 17/32: 53٪

الخطوة الأخيرة على شبكة التعلم العميق. تم استخدام بنية resnet 34 بنهج تعلم النقل.النتائج الإجمالية للصور 600 التحقق من الصحة لنموذج الكسب العميق.توقعات لنموذج التعلم العميق

هذه النماذج ، وبالتالي قدمت نتائج رائعة مع كمية قصيرة جدا من التدريب وضبط قليلا ، وبالتالي قد يتم تحسين كل منهما. كما حدث كل التدريب والتحقق والاختبار على البيانات الأولية ، وعلى الرغم من تطبيق المعالجة المسبقة ، فقد تم تغذية الصور لأنها تم الحصول عليها بدون خلفية أو تجزئة مقدمة. أخيرًا ، مكتبة Fastai في الإصدار الثاني. في هذا العمل ، تم تطبيق إصدار ما قبل ألفا (0.7X). أثبت الإصدار الثاني من Fastai (1.0X) أنه أكثر فاعلية.

تم إجراء هذه التجربة على رأس دفتريْن من دورات Fastai: الكلاب مقابل القطط Jupyter Notebook (درس DL 1) و MNIST (درس ML1 4). إذا كنت ترغب في اختبار الملفات الأصلية ، يرجى تجربة دورات Fastai المذكورة أعلاه.

يرجى الرجوع إلى رمز بيثون المستخدمة في هذا العمل أدناه:

جيثب

يمكنك تجربة مكتبة Fastai Library محليًا أو عبر الإنترنت:

تثبيت فاستاي المواضيع

استكشاف فئات الحشرات الأخرى في Insect Images:

صور الحشرات

ويتنبرغ إس آر سوزا ،

ماجستير في نظم الميكاترونيك في جامعة برازيليا

https://www.linkedin.com/in/witenberg/