در این مقاله، یک مثال عملی از یک شبکه عصبی ساده را بررسی میکنیم که اعداد دستنوشته را با استفاده از مجموعه داده MNIST طبقهبندی میکند. این مجموعه داده شامل ۶۰,۰۰۰ تصویر آموزشی و ۱۰,۰۰۰ تصویر آزمایشی از اعداد دستنوشته (۰ تا ۹) است. در ادامه، مراحل پیادهسازی این مدل را به صورت گام به گام توضیح میدهیم.
گام ۱: بارگذاری دادهها
ابتدا دادههای MNIST را بارگذاری میکنیم. این دادهها شامل تصاویر آموزشی و آزمایشی به همراه برچسبهای مربوطه هستند.
- train_images و train_labels: دادههای آموزشی شامل تصاویر و برچسبهای مربوطه.
- test_images و test_labels: دادههای آزمایشی شامل تصاویر و برچسبهای مربوطه.
گام ۲: پیشپردازش دادهها
تصاویر باید به شکل مناسب برای ورودی شبکه عصبی تبدیل شوند. در این مرحله، تصاویر را تغییر شکل داده و مقادیر پیکسلها را به محدوده [۰, ۱] نرمالسازی میکنیم.
- تغییر شکل: تصاویر ۲۸x28 پیکسلی به بردارهای ۷۸۴ بعدی (۲۸ * ۲۸) تبدیل میشوند.
- نرمالسازی: مقادیر پیکسلها از محدوده [۰, ۲۵۵] به [۰, ۱] نرمالسازی میشوند.
گام ۳: ساخت مدل
یک شبکه عصبی ساده با دو لایه متراکم (Dense) ایجاد میکنیم.
- لایه اول: دارای ۵۱۲ نورون با تابع فعالسازی ReLU است.
- لایه دوم: دارای ۱۰ نورون (یکی برای هر عدد) با تابع فعالسازی softmax است که توزیع احتمال بر روی ۱۰ کلاس را تولید میکند.
گام ۴: کامپایل مدل
مدل را با مشخص کردن بهینهساز، تابع زیان و معیارهای ارزیابی کامپایل میکنیم.
- بهینهساز: از الگوریتم RMSprop برای بهروزرسانی وزنها استفاده میشود.
- تابع زیان: از تابع زیان sparse_categorical_crossentropy برای ارزیابی عملکرد مدل استفاده میشود.
- معیارها: دقت (accuracy) به عنوان معیار برای نظارت در طول آموزش انتخاب میشود.
گام ۵: آموزش مدل
مدل را با استفاده از دادههای آموزشی آموزش میدهیم.
- دورهها (Epochs): مدل برای ۵ دوره آموزش داده میشود.
- اندازه دسته (Batch Size): در هر مرحله، ۱۲۸ نمونه پردازش میشوند.
گام ۶: ارزیابی مدل
در نهایت، مدل را بر روی دادههای آزمایشی ارزیابی میکنیم.
- دقت آزمایشی: معمولاً دقت مدل بر روی دادههای آزمایشی حدود ۹۷-۹۸٪ است که نتیجه خوبی برای این مدل ساده محسوب میشود.
نتیجهگیری
این مثال ساده، مراحل اصلی ساخت، آموزش و ارزیابی یک شبکه عصبی را نشان میدهد. اگرچه مدل به دقت بالایی در مجموعه داده MNIST دست یافته است، اما این مثال همچنین مفهوم بیشبرازش (Overfitting) را نیز برجسته میکند، جایی که مدل عملکرد بهتری بر روی دادههای آموزشی نسبت به دادههای جدید و دیدهنشده دارد. بیشبرازش یکی از چالشهای رایج در یادگیری عمیق است و در مباحث پیشرفتهتر به طور مفصل بررسی خواهد شد.
با درک این مفاهیم پایهای—شبکههای عصبی، تنسورها، کاهش گرادیان و انتشار معکوس—اکنون آمادهاید تا به سراغ مدلهای پیچیدهتر و کاربردهای پیشرفتهتر یادگیری عمیق بروید. یادگیری عمیق با استفاده از شبکههای عصبی، توانایی یادگیری الگوهای پیچیده از دادهها را فراهم میکند و به یکی از قدرتمندترین ابزارها در هوش مصنوعی تبدیل شده است.