توجه: نسخههای بعدی این کتابخانه در https://bitbucket.org/intelligenceagent/cudacnn-public/wiki/Home میزبانی میشود. دلیل آن این است که اکنون بیشتر یک کتابخانه C++/CUDA با رابط MATLAB است تا یک کتابخانه MATLAB.

این پروژه یک کلاس MATLAB برای پیادهسازی شبکههای عصبی کانولوشنال فراهم میکند. این شبکهها توسط یان لکون توسعه یافتهاند و با موفقیت در بسیاری از کاربردهای عملی مانند تشخیص ارقام دستنویس، تشخیص چهره، ناوبری ربات و موارد دیگر استفاده شدهاند (برای اطلاعات بیشتر به مراجع مراجعه کنید). به دلیل برخی از ویژگیهای معماری شبکههای کانولوشنال، مانند اشتراک وزن، پیادهسازی آن با استفاده از جعبه ابزار شبکه عصبی MATLAB بدون تغییرات منبع آن غیرممکن است. به همین دلیل این کلاس تقریباً مستقل از جعبه ابزار NN کار میکند (به زودی استقلال کامل).
این نسخه شامل نمونهای از تشخیص ارقام دستنویس با استفاده از CNN است. اگر فقط میخواهید آن را امتحان کنید، cnet_tool را اجرا کنید. یک رابط کاربری ساده خواهید دید. این شبکه عصبی کانولوشنال از پیش آموزش دیده را از cnet.mat بارگذاری میکند و تصویر رقم را یا در ناحیه نقاشی رنگآمیزی میکند یا از پایگاه داده MNIST دانلود میکند و آن را تشخیص میدهد.
اطلاعات بیشتر در مورد کتابخانه را میتوانید در اینجا بیابید:
https://sites.google.com/site/mihailsirotenko/projects/convolutional-neural-network-class
و اینجا:
https://sites.google.com/site/mihailsirotenko/projects/cuda-cnn
توضیحات بیشتر
- شبکههای عصبی کانولوشنال (CNN) نوعی از شبکههای عصبی هستند که به طور خاص برای پردازش دادههای Grid مانند مانند تصاویر و ویدیوها طراحی شدهاند. آنها از لایههای کانولوشنال برای استخراج ویژگیهای سلسله مراتبی از دادهها استفاده میکنند.
- اشتراک وزن یکی از ویژگیهای کلیدی CNNها است که به آنها اجازه میدهد تا با تعداد پارامترهای کمتری نسبت به سایر شبکههای عصبی، عملکرد خوبی داشته باشند. در اشتراک وزن، یک مجموعه از وزنها در چندین نورون به اشتراک گذاشته میشود.
- MATLAB Neural Network Toolbox یک جعبه ابزار در MATLAB است که برای ایجاد و آموزش شبکههای عصبی استفاده میشود. با این حال، این جعبه ابزار برای پیادهسازی CNNها به طور مستقیم مناسب نیست.
- C++/CUDA زبانهای برنامهنویسی هستند که برای توسعه برنامههای کاربردی با کارایی بالا، به ویژه در زمینههای محاسبات موازی مانند یادگیری عمیق، استفاده میشوند.
- MNIST database یک پایگاه داده بزرگ از ارقام دستنویس است که معمولاً برای آموزش و ارزیابی مدلهای یادگیری عمیق استفاده میشود.
مزایای استفاده از این کلاس
- پیادهسازی آسان CNNها در MATLAB
- امکان استفاده از ویژگیهای معماری CNN مانند اشتراک وزن
- نمونهای از تشخیص ارقام دستنویس برای شروع سریع
- امکان استفاده از CUDA برای افزایش سرعت پردازش
جمعبندی
این کلاس MATLAB ابزاری قدرتمند برای پیادهسازی و استفاده از شبکههای عصبی کانولوشنال فراهم میکند. با استفاده از این کلاس میتوانید به راحتی CNNها را برای کاربردهای مختلف مانند تشخیص تصویر، پردازش ویدیو و غیره توسعه دهید.
