شبکههای عصبی کانولوشنال (CNN) یکی از مهمترین و مؤثرترین انواع شبکههای عصبیست که امروزه در زمینه بینایی رایانه و تشخیص تصویر مورد استفاده قرار میگیرد. از زمان پیدایش آنها در دهه 1990، CNNها به نتایج پیشرفتهای دست پیدا کردهاند، از جمله: در زمینه انواع تشخیص بصری، از طبقه بندی تصویر و تشخیص اشیا گرفته تا تقسیم بندی معنایی و تولید تصویر.
در این راهنمای جامع، همه آنچه را که باید در مورد شبکههای عصبی کانولوشنال بدانید را مورد بحث قرار خواهیم داد؛ از نحوه کار، کاربردها و برخی از معماریهای کلیدی که سیستمهای بینایی را برای کامپیوتری امروزی تامین میکنند.
CNN چیست؟
شبکههای عصبی کانولوشنال یک نوع تخصصی از شبکه عصبی مصنوعی (ANN) هستند که برای پردازش دادههای پیکسلی از تصاویر یا فیلمها طراحی شدهاند. مانند ANNهای استاندارد، CNNها حاوی نورونهایی با وزنها و سوگیریهای قابل یادگیری هستند. اما برخلاف شبکههای عصبی معمولی، CNNها سه جز کلیدی به معماری اضافه میکنند که از ساختار سلسله مراتبی دادههای تصویر بهره میبرند. این موارد شامل:
– اتصالات محلی: نورونهادر CNN فقط به یک منطقه محلی در حجم ورودی متصل میشوند، نه به همه نورونها. این به طور چشمگیری تعداد پارامترهای شبکه را کاهش میدهد.
– به اشتراک گذاری پارامتر: CNNها از پارامترهای فیلتر یکسانی در مکانهای فضایی مختلف در یک تصویر استفاده میکنند. این اشتراک گذاری تعداد پارامترهای بیشتری را کاهش میدهد.
– ادغام: CNNها خروجیهای گروهی از نورونهای همسایه را از طریق عملیات ادغام مانند حداکثر یا میانگین ادغام در یک مقدار خلاصه میکنند. این به تدریج اندازه فضایی نمایشها را متراکم میکند تا محاسبات را کاهش دهد.
این سه مورد مهم در معماری به CNNها اجازه میدهد تا الگوهای کلیدی تصاویر را بدون توجه به جایی که ظاهر میشوند تشخیص دهند و این یعنی امکانی ایدهال برای بینایی کامپیوتر به جهت درک تصاویر که بسیار مهم است.
در همین رابطه بخوانید: پردازش زبان طبیعی یا NLP چیست؟ (NATURAL LANGUAGE PROCESSING)
بررسی اجمالی معماری CNN
یک معماری معمولی CNN شامل سه نوع لایه است که برای تشکیل یک CNN کامل روی هم قرار میگیرند:
لایههای کانولوشن: تعداد مشخصی از فیلترهای کانولوشن را روی ورودی اعمال میکند تا نقشههای فعال سازی را تولید کند.
لایههای ادغام: از ابعاد فضایی نمایش ورودی برای کاهش نیازهای محاسباتی و اضافه کردن نمونه برداری میکند. عملیات متداول ادغام شامل حداکثر، متوسط یا مجموع است.
لایههای کاملاً متصل (FC): لایههای نهایی که ویژگیهای سطح بالا را از لایههای کانولوشن میگیرند و از طریق توابع ضرب ماتریس و فعالسازی به پیشبینیهای خروجی تبدیل میکنند.
همانطور که دادهها از طریق CNN عبور میکنند، شبکه ویژگیهای پیچیدهتری را در هر لایه کانولوشنی، از لبهها و بافتهای سطح پایین گرفته تا قطعات سطح بالا، یاد میگیرد. در نهایت آخرین لایههای FC این ویژگیها را به پیشبینیهای کلاس نهایی تبدیل میکند.
اجزای کلیدی یک CNN
به طور خلاصه اجزای کلیدی یک شبکه عصبی کانولوشنال شامل موارد زیر است:
۱. لایههای کانولوشنال
لایههای کانولوشن بلوکهای اصلی یک CNN هستند. در اینجا، فیلترها (یا هستهها) روی ورودی میلغزند و محصولات نقطهای را بین مقادیر فیلتر و وصلههای ورودی محاسبه میکنند تا نقشههای فعال سازی را تولید کنند.
هر فیلتر نوع خاصی از ویژگی را در هر موقعیت مکانی در ورودی تشخیص میدهد. اندازههای رایج فیلتر 3×3 یا 5×5 هستند. چندین فیلتر روی هم چیده شدهاند تا یک لایه کانولوشن را تشکیل دهند.
دو پارامتر کلیدی که یک لایه کانولوشن را تعریف میکنند عبارتند از:
- تعداد فیلترها: فیلترهای بیشتر به شبکه امکان میدهد ویژگیهای پیچیدهتری را بیاموزد. اعداد معمولی از 32 تا 512 متغیر هستند.
- اندازه فضایی فیلتر: ارتفاع و عرض فیلتر، به عنوان مثال. 3×3 یا 5×5. اندازههای بزرگتر میدان پذیرای نورونها را افزایش میدهد.
به طور قابلتوجهی، فیلترها تمام عمق حجم ورودی را در بر میگیرند، بنابراین هر نقشه فعال سازی، خروجی اطلاعات همه کانالهای ورودی را ترکیب میکند. این به فیلترها اجازه میدهد تا ویژگیهای وابسته به همبستگیهای فضایی در عمق ورودی را شناسایی کنند.
پس از لایههای کانولوشن، توابع فعالسازی مانند ReLU معمولاً برای معرفی غیرخطیها به مدل اعمال میشوند.
بیشتر بدانید: منظور از شبکههای عصبی بازگشتی (RNN) چیست؟
۲. لایههای ترکیبی
لایههای ادغام به تدریج ابعاد فضایی حجم ورودی را کاهش میدهند تا هزینههای محاسباتی و اضافهبرازش کمتر شود. ادغام فضایی خروجیهای خوشههای عصبی را در یک مقدار واحد ترکیب میکند. عملیات متداول ادغام عبارتند از:
- حداکثر ادغام: خروجی حداکثر مقدار از هر خوشه
- میانگین ادغام: مقدار متوسط را از هر خوشه میگیرد
- ادغام مجموع: مقادیر هر خوشه را جمع میکند
حداکثر ادغام، رایجترین است زیرا برجستهترین ویژگی را در هر خوشه انتخاب میکند. اندازههای معمول پنجره ادغام 2×2 یا 3×3 با گام 2 است که 75 درصد از فعالسازیها را حذف میکند. لایههای ادغام به شبکه تا حدودی کمک میکنند تا تعمیم و انعطافپذیری در مدل ایجاد شود.
۳. لایههای کاملاً متصل
پس از چندین لایه کانولوشنال و ادغام، استدلال سطح بالا در شبکه عصبی از طریق لایههای کاملاً متصل انجام میشود. در این موارد مانند شبکههای عصبی مصنوعی استاندارد عمل میکنند و محصولات نقطهای (dot products) را بین ویژگیهای آموخته شده و weight matrices انجام میدهند تا امتیازات کلاس را ایجاد کنند.
لایه نهایی FC دارای یک گره برای هر کلاس هدف در مدل (به عنوان مثال “گربه”، “سگ”، “ماشین”) است که بالاترین گره فعال شده در کلاس پیش بینی شده را نشان میدهد.
معماریهای محبوب CNN
بسیاری از معماریهای CNN در طول سالهای اخیر توسعه یافتهاند و هر تکرار جدید باعث بهبود دقت و قابلیت میشود. برخی از تاثیرگذارترین مدلهای CNN را که به عنوان ستون فقرات بسیاری از برنامههای بینایی کامپیوتری مدرن عمل میکنند، شامل موارد زیر است:
۱. LeNet (دهه 1990)
یکی از اولین CNNها، LeNet که برای تشخیص کاراکترهای دست نویس و چاپ شده توسط ماشین طراحی شد. این شبکه برجسته، قابلیت آموزش پس انتشار را برای شبکههای کانولوشنی فراهم آورد.
۲. AlexNet (سال 2012)
AlexNet که توسط الکس کریژفسکی، ایلیا سوتسکور و جف هینتون ایجاد شد، نقش مهمی در پیشرفت CNN در بینایی کامپیوتر داشت. شبکه 8 لایه در رقابت ImageNet در سال 2012 به نرخ خطای پیشرفته 15.3 درصدی دست یافت که توجه وافری را به CNN به جهت عملکرد بینایی رایانه برانگیخت.
۳. VGGNet (سال 2014)
VGGNet قدرت استفاده از فیلترهای پیچیده 3×3 را در افزایش عمق نشان داد. انواع VGGNet همچنان به عنوان یک ویژگی استخراج کننده قدرتمند استفاده میشود.
۴. GoogLeNet (سال 2014)
GoogLeNet بر اساس کار VGGNet با چیدن ماژولهای Inception متشکل از اندازههای مختلف فیلتر کانولوشن ساخته شده است. این دستاورد امکان استخراج ویژگیهای چند سطحی را در یک مدل کارآمد فراهم کرد.
۵. ResNet (سال 2015)
ResNet که توسط محققان مایکروسافت پیشنهاد شد، اتصالات پرش را معرفی کرد که لایهها را دور میزنند تا مشکل ناپدید شدن گرادیان در شبکههای بسیار عمیق را برطرف کنند. ResNets آموزش CNN های بسیار عمیق تر را فعال کرد و به نتایج رکوردشکنی دست یافت.
۶. MobileNets (سال 2017)
MobileNetها CNNهای فشرده و بهینه سازی شدهای هستند که توسط Google برای برنامههای موبایل و embedded vision applications طراحی شدهاند. آنها از کانولوشنهای عمیق قابل تفکیک برای ساخت شبکههای بسیار سبک وزن با دقت بسیار بالا استفاده میکنند.
این فهرست تنها چند پیشرفت کلیدی را برجسته میکند. بسیاری دیگر از معماریهای CNN نتایج پیشرفته را به سطوح جدیدی ارتقا دادهاند.
بیشتر بدانید: منظور از مدل زبانی بزرگ (LLM) چیست؟ (LARGE LANGUAGE MODEL)
برنامههای کاربردی CNN
برخی از کاربردهای رایج شبکه های عصبی کانولوشنال شامل موارد زیر است:
۱. طبقه بندی تصویر
CNNها میتوانند تصاویر را بر اساس اشیاء موجود در آنها به کلاسهای مختلف دستهبندی کنند. این برای برچسب گذاری عکس، فیلتر محتوا و موتورهای جستجوی بصری مفید است.
۲. تشخیص شی
Object detectors میتوانند اشیاء را طبقه بندی کنند و هم موقعیت مکانی آنها را در یک تصویر از طریق مختصات bounding box مشخص کنند. این امکان برای مواردی مثل رانندگی خودکار، روباتیک و جستجوی تصویر کاربرد دارد.
۳. تقسیم بندی معنایی
تقسیم بندی معنایی، هر پیکسل در یک تصویر را با رنگ آمیزی آنها از طریق برچسبهای پیش بینی شده طبقه بندی میکند. این امکان، تعیین دقیق اشیاء و پس زمینه در عکسها را فراهم میکند.
۴. شبکه های متخاصم مولد (GAN)
انواع خاصی از CNNهابه نام GAN میتوانند تصاویر و ویدیوهای جعلی که بنظر واقعیاند را تولید کنند. این امکان، برای ایجاد دیپ فیک تا افزایش وضوح و رنگها میتواند کاربرد داشته باشد.
۵. پاسخ به سوال تصویری
برخی از شبکهها، CNN و پردازش زبان طبیعی را برای پاسخ به سؤالات متنی در مورد تصاویر ترکیب میکنند. این امکان میتواند عوامل مکالمه مثل چتباتها و سایر موارد اینچنینی را تقویت کند.
آموزش شبکههای عصبی کانولوشنال
آموزش CNN به مجموعه دادههای بزرگی از تصاویر برچسبگذاری شده، سختافزار تخصصی مانند GPU و تنظیم دقیق فراپارامتر نیاز دارد. در اینجا چند فاکتور کلیدی وجود دارد که باید در نظر گرفته شود:
- نزول گرادیان تصادفی (SGD) الگوریتم بهینهسازی انتخابی برای CNN است. SGD و انواع آن مانند Adam برای فضای پارامتر با ابعاد بالا مناسب هستند.
- اندازه دسته، تعداد نمونههای منتشر شده از طریق شبکه در هر تکرار را کنترل میکند. مقادیر معمولی از 32 تا 256 متغیر است. دستههای بزرگتر آموزش سریع تری را ارائه میدهند، اما دستههای کوچکتر تعمیم بهتری دارند.
- نرخ یادگیری، اندازه مرحله به روزرسانی وزن را در حین انتشار پس زمینه تعیین میکند. یافتن برنامه نرخ یادگیری مناسب برای همگرایی به حداقل بهینه، بسیار مهم است.
- افزایش دادهها به طور مصنوعی، مجموعه داده را با استفاده از تکنیک هایی مانند برش، چرخش و لرزش رنگ گسترش میدهد. این امر برازش بیش از حد (overfitting) را کاهش میدهد و تعمیم را بهبود میبخشد.
- یادگیری انتقال، وزنها را از یک مدل از پیش آموزش دیده، قبل از تنظیم دقیق روی یک مجموعه داده جدید، مقداردهی اولیه میکند. این باعث افزایش عملکرد و کاهش زمان تمرین میشود.
در حالی که آموزش CNNها ساده بنظر میرسد، چارچوبهای جدید یادگیری عمیق مانند TensorFlow و PyTorch API سطح بالایی را برای تسریع روند ارائه میدهند. مدلهای از پیش آموزش دیده نیز به صورت رایگان برای یادگیری انتقالی در دسترس هستند.
بیشتر بدانید:BERT چیست؟ (همه چیز درباره مدل زبانی مشهور گوگل)
جمع بندی
برای جمع بندی، در اینجا چند نکته کلیدی در مورد شبکههای عصبی کانولوشن وجود دارد:
- CNNها از سه معماری کلیدی استفاده میکنند: اتصالات محلی، اشتراک گذاری پارامترها و ادغام. این به آنها اجازه میدهد تا الگوهای فضایی را در داده های تصویری به طور موثر تشخیص دهند.
- لایههای کانولوشن ویژگیها را از طریق عملیات فیلتر کشویی تشخیص میدهند. ادغام لایهها از فعال سازی نمونه پایین آغاز میشود. لایههای کاملاً متصل، پیشبینیهای کلاس را ارائه میدهند.
- نوآوریهای کلیدی مانند ماژولهای اولیه، اتصالات باقیمانده و پیچیدگیهای قابل جداسازی، به CNNها اجازه دادهاند عمیقتر و دقیقتر رشد کنند.
- کاربردهای CNNهاشامل طبقه بندی تصویر، تشخیص اشیا، تقسیم بندی معنایی، GANها، کیفیت تصویری و غیره است.
- آموزش، به مجموعه دادههای برچسبگذاریشده بزرگ، بهینهسازی SGD، منظمسازی، افزایش دادهها و اغلب انتقال یادگیری نیاز دارد.
تنها در چند دهه، CNNها انقلاب بینایی کامپیوتری را شعلهور کردند. با ادامه تحقیقات و پیشرفتهای محاسباتی، آنها یکی از بهترین مدلهای یادگیری برای مواردی در زمینه ادراک بصری هستند که احتمالا فهم ماشینها را کاملا تحت تاثیر قرار خواهند داد.
پایان مطلب
پی نوشت:
در AI Point همه تلاش ما رعایت نکات حرفهای و الزامات اساسی برای ارائه مطالب است. برای تولید مقالات عموما از بهترین منابع موجود بهره میبریم. در این مجله جدیدترین و محبوبترین مطالب حوزه هوش مصنوعی و ابزارهای AI ، کریپتوکارنسی، بلاکچین و مقالات NLP از منابع تخصصی انتخاب و ترجمه میشود. در انتخاب مقالات برای ترجمه به ارجاعات متن توجه میکنیم. اساسا به دنبال ارائه محتوای جذاب و آموزنده هستیم تا مخاطبان خود را در این حوزه درگیر کنیم. برای تولید محتوا سرنخهایی از هوش مصنوعی میگیریم. باور داریم که هوش مصنوعی یک فناوری قدرتمند است که میتواند بسیار مفید واقع شود و کیفیت مطالب و دقت دادهها را بیشتر کند. در این ژورنال آنلاین سعی داریم با ارائه اطلاعات دقیق و جامع به مخاطبان خود کمک کرده و به پرسشهای آنها پاسخ دهیم. علاوه براین، پیوسته به دنبال شیوههای برای بهبود وبسایت و مطالب خود هستیم، بنابراین نظرات و پیشنهادات خود را با ما در میان بگذارید.
ارسال پاسخ