در این جلسه تیم کدگیت را با آموزش معماری Lenet در شبکه های عصبی همراهی کنید. این معماری توسطYann LeCun در سال 1998 ارائه شد. Lenet یک معماری برای شبکه های عصبی کانولوشنی بوده که در ادامه ساختار آن را توضیح میدهیم. این آموزش دارای پیشنیازهای می باشد که لیست آن در زیر آورده شده است:
- شبکه عصبی مصنوعی
- شبکه عصبی کانولوشنی
معماری Lenet
Lenet سال 1998 اولین بار در مقالهای با نام Gradient-Based Learning Applied to Document Recognition رونمایی شد. این مقاله در خصوص تشخیص اعداد دستنویس است. اعداد دستنویس به صورت عکس میباشند و پس از ایجاد دیتاستی کامل از اعداد دستنویس، با کمک معماری Lenet، تشخیص اعداد از روی تصاویر انجام میشود.

بخشهای Lenet
شبکه Lenet به بخشهای مختلفی تقسیم میشود. لایهها به صورت جداگانه به صورت زیر میباشند:
- لایه input یا ورودی: در این لایه تصاویر بعد از پیش پردازش به شبکه Lenet وارد میشود. بر اساس اولین مدل ارائه شده در مقاله Yann LeCun این مرحله سایز تصاویر 32 *32 است.
- لایه کانولوشن: در این مرحله بر روی تصاویر ورودی عملیات کانولوشن انجام میشود. سایز Kernel در این عملیات 5*5 بوده و از 6 کرنل مختلف استفاده خواهد شد. در پایان مرحله تصاویر ما سایزی برابر با 28*28 داشته که با توجه به Kernel اعمال شده، سایز پایانی خروجی این مرحله 6*28*28 می باشد.
- عملیات Pooling: مرحله بعد عملیات Pooling می باشد. این کار برای کاهش سایز شبکه استفاده میشود. پس از پایان این مرحله سایز تصاویر نصف میشود. سایز خروجی 6*14*14 می باشد.
- لایه کانولوشن: در این مرحله مجدداً عملیات کانولوشن انجام میشود. البته این بار بر روی خروجی مرحله قبل انجام میشود. سایز Kernel در این مرحله 5*5 بوده و این بار 16 فیلتر متفاوت استفاده خواهد شد. سایز خروجی برابر با 16*10*10 می باشد.
- عملیات Pooling: مجدداً عملیات Pooling انجام میشود. پس از پایان این مرحله سایز تصاویر نصف میشود. سایز خروجی 16*5*5 می باشد.
- لایه کانولوشن: این مرحله را مرحله آخر میگوییم چراکه مرحله بعد اتصال خروجی به شبکه عصبی است. باز هم یک لایه کانولوشن داریم با kernel به سایز 5*5 و تعداد 120 فیلتر. خروجی این مرحله 120*1*1 می باشد.
- لایه تماماً متصل یا Fully Connected Layer: در این بخش خروجی مرحله قبل را به عنوان ورودی شبکه عصبی قرار میدهیم. شبکه عصبی این مرحله تماماً متصل بوده و شامل 84 نورون میباشد.
- لایه خروجی: تعداد اعدادی که شبکه ما شناسایی میکند 10 عدد است یعنی اعداد 0، 1، 2، 3، 4، 5، 6، 7، 8، 9. در نهایت تعداد نورون لایه خروجی برای شبکه عصبی 10 عدد است.
پیادهسازی
برای پیاده سازی این معماری، می توان از زبانهای برنامهنویسی مختلفی کمک گرفت. زبانی که ما برای پیاده سازی انتخاب کردیم پایتون میباشد. شما میتوانید سورس کد این جلسه را در بخش سورسهای سایت تهیه نمایید یا بر روی لینک کلیک کنید. پیاده سازی که توسط تیم کدگیت انجام شده کاملاً تست می شود و سپس در اختیار شما قرار میگیرد. پس با خیالی آسوده از سورسکدهای وبسایت ما استفاده کنید.