هذا المشروع مستوحى من التعلم العميق لـ Y. Tang باستخدام آلات ناقل الدعم الخطي (2013).
يمكن قراءة الورقة الكاملة حول هذا المشروع على arXiv.org.
تشبه الشبكات العصبية التلافيفية (CNNs) الشبكات العصبية "العادية" بمعنى أنها تتكون من طبقات مخفية تتكون من خلايا عصبية ذات معلمات "قابلة للتعلم". تتلقى هذه الخلايا العصبية المدخلات، وتنفذ منتجًا نقطيًا، ثم تتبعه بطريقة غير خطية. تعبر الشبكة بأكملها عن التعيين بين وحدات بكسل الصورة الأولية ودرجات فئتها. تقليديًا، تكون وظيفة Softmax هي المصنف المستخدم في الطبقة الأخيرة من هذه الشبكة. ومع ذلك، فقد أجريت دراسات (Alalshekmubarak and Smith, 2013; Agarap, 2017; Tang, 2013) لتحدي هذه القاعدة. تقدم الدراسات المذكورة استخدام آلة ناقل الدعم الخطي (SVM) في بنية الشبكة العصبية الاصطناعية. يعد هذا المشروع بمثابة تناول آخر للموضوع، وهو مستوحى من (Tang, 2013). أظهرت البيانات التجريبية أن نموذج CNN-SVM كان قادرًا على تحقيق دقة اختبار تصل إلى 99.04٪ تقريبًا باستخدام مجموعة بيانات MNIST (LeCun، Cortes، and Burges، 2010). ومن ناحية أخرى، تمكنت CNN-Softmax من تحقيق دقة اختبار تصل إلى 99.23% تقريبًا باستخدام نفس مجموعة البيانات. تم اختبار كلا النموذجين أيضًا على مجموعة بيانات Fashion-MNIST المنشورة مؤخرًا (Xiao, Rasul, and Volgraf, 2017)، والتي من المفترض أن تكون مجموعة بيانات لتصنيف الصور أكثر صعوبة من MNIST (Zalandoresearch, 2017). وقد ثبت أن هذا هو الحال حيث وصلت CNN-SVM إلى دقة اختبار تبلغ 90.72% تقريبًا، بينما وصلت CNN-Softmax إلى دقة اختبار تبلغ 91.86% تقريبًا. يمكن تحسين النتائج المذكورة إذا تم استخدام تقنيات المعالجة المسبقة للبيانات في مجموعات البيانات، وإذا كان نموذج CNN الأساسي أكثر تعقيدًا نسبيًا من النموذج المستخدم في هذه الدراسة.
أولا، استنساخ المشروع.
git clone https://github.com/AFAgarap/cnn-svm.git/
قم بتشغيل setup.sh
للتأكد من تثبيت المكتبات المطلوبة مسبقًا في البيئة.
sudo chmod +x setup.sh
./setup.sh
معلمات البرنامج.
usage: main.py [-h] -m MODEL -d DATASET [-p PENALTY_PARAMETER] -c
CHECKPOINT_PATH -l LOG_PATH
CNN & CNN-SVM for Image Classification
optional arguments:
-h, --help show this help message and exit
Arguments:
-m MODEL, --model MODEL
[1] CNN-Softmax, [2] CNN-SVM
-d DATASET, --dataset DATASET
path of the MNIST dataset
-p PENALTY_PARAMETER, --penalty_parameter PENALTY_PARAMETER
the SVM C penalty parameter
-c CHECKPOINT_PATH, --checkpoint_path CHECKPOINT_PATH
path where to save the trained model
-l LOG_PATH, --log_path LOG_PATH
path where to save the TensorBoard logs
بعد ذلك، انتقل إلى دليل المستودع، وقم بتشغيل الوحدة main.py
وفقًا للمعلمات المطلوبة.
cd cnn-svm
python3 main.py --model 2 --dataset ./MNIST_data --penalty_parameter 1 --checkpoint_path ./checkpoint --log_path ./logs
تم تعيين المعلمات الفائقة المستخدمة في هذا المشروع يدويًا، وليس من خلال التحسين.
المعلمات الفائقة | سي إن إن-سوفت ماكس | سي إن إن-SVM |
---|---|---|
حجم الدفعة | 128 | 128 |
معدل التعلم | 1ه-3 | 1ه-3 |
خطوات | 10000 | 10000 |
إس في إم ج | لا يوجد | 1 |
تم إجراء التجارب على جهاز كمبيوتر محمول مزود بوحدة معالجة مركزية Intel Core(TM) i5-6300HQ بسرعة 2.30 جيجا هرتز × 4، وذاكرة وصول عشوائي DDR3 بسعة 16 جيجابايت، ووحدة معالجة الرسومات NVIDIA GeForce GTX 960M بسعة 4 جيجابايت DDR5.
الشكل 1. دقة التدريب (يسار) والخسارة (يمين) لـ CNN-Softmax وCNN-SVM على تصنيف الصور باستخدام MNIST.
يشير المخطط البرتقالي إلى دقة التدريب وفقدان CNN-Softmax، مع دقة اختبار تبلغ 99.22999739646912%. من ناحية أخرى، يشير المخطط الأزرق إلى دقة التدريب وفقدان CNN-SVM، مع دقة اختبار تبلغ 99.04000163078308%. لا تدعم النتائج النتائج التي توصل إليها Tang (2017) فيما يتعلق بتصنيف الأرقام المكتوبة بخط اليد MNIST. يمكن أن يعزى ذلك إلى حقيقة أنه لم يتم إجراء أي معالجة مسبقة للبيانات أو تقليل الأبعاد في مجموعة البيانات الخاصة بهذا المشروع.
الشكل 2. دقة التدريب (يسار) والخسارة (يمين) لـ CNN-Softmax وCNN-SVM على تصنيف الصور باستخدام Fashion-MNIST.
يشير المخطط الأحمر إلى دقة التدريب وفقدان CNN-Softmax، مع دقة اختبار تبلغ 91.86000227928162%. من ناحية أخرى، يشير المخطط باللون الأزرق الفاتح إلى دقة التدريب وفقدان CNN-SVM، مع دقة اختبار تبلغ 90.71999788284302%. النتيجة التي ظهرت على CNN-Softmax تؤكد النتيجة التي توصلت إليها zalandoresearch على Fashion-MNIST.
للاستشهاد بالمقالة، يرجى استخدام إدخال BibTex التالي:
@article{agarap2017architecture,
title={An Architecture Combining Convolutional Neural Network (CNN) and Support Vector Machine (SVM) for Image Classification},
author={Agarap, Abien Fred},
journal={arXiv preprint arXiv:1712.03541},
year={2017}
}
للاستشهاد بالمستودع/البرنامج، يرجى استخدام إدخال BibTex التالي:
@misc{abien_fred_agarap_2017_1098369,
author = {Abien Fred Agarap},
title = {AFAgarap/cnn-svm v0.1.0-alpha},
month = dec,
year = 2017,
doi = {10.5281/zenodo.1098369},
url = {https://doi.org/10.5281/zenodo.1098369}
}
Copyright 2017-2020 Abien Fred Agarap
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.