شبکه عصبی کانولوشن | معرفی Convolutional Neural Network

شبکه عصبی کانولوشن | معرفی Convolutional Neural Network

شبکه عصبی کانولوشن به عنوان یکی از انواع محبوب و پرکاربرد شبکه های عصبی عمیق و تحت عنوان Convolutional Neural Network شناخته می شود. شبکه عصبی کانولوشن امکان تشخیص چهره اشخاص تا شناسایی خودروهای خودران به را خوبی فراهم کرده است. این نوع شبکه عصبی با داشتن چندین لایه و پردازش داده‌های با آرایش شبکه‌ای؛ ویژگی های مهم این داده‌ها را استخراج می‌کند. در این نوع شبکه عصبی عمیق یا cnn نیازی به پیش پردازش روی داده‌های تصویری وجود ندارد. در ادامه این مطلب از مکسا ما را همراهی کنید تا ضمن پاسخ به این سوال که شبکه عصبی کانولوشن چیست؟ به بررسی تاریخچه، انواع شبکه کانولوشن، معماری، مزایا و معایب و نحوه کار آن بپردازیم.   

راهنمای مطالعه

شبکه عصبی کانولوشن (CNN) با الهام از ساختار بینایی انسان طراحی شده و در پردازش و تحلیل تصاویر، ویدیوها و حتی گفتار کاربرد گسترده‌ای دارد. این شبکه عصبی با استفاده از لایه‌های متوالی، ویژگی‌های مهم داده‌ها را به‌صورت خودکار استخراج کرده و در وظایفی مانند تشخیص چهره، شناسایی اشیا، یا تحلیل تصاویر پزشکی عملکردی دقیق و هوشمندانه دارد. با توجه به پیشرفت سریع هوش مصنوعی، شبکه‌های کانولوشنی به‌عنوان ستون اصلی سیستم‌های بینایی ماشین شناخته می‌شوند. شرکت مهندسی مکسا نیز با بهره‌گیری از این فناوری، خدمات تخصصی در زمینه چت بات های سازمانی و سرورهای AI (ai & GPU Server ) ارائه می‌دهد.

شبکه عصبی کانولوشن چیست؟

شبکه عصبی کانولوشن (Convolutional Neural Network) به عنوان یکی از انواع شبکه‌های عصبی عمیق، برای پردازش و تجزیه‌وتحلیل تصاویر به کار می‌رود. از مهم‌ترین ویژگی‌های این شبکه، جایگزینی عملیات کانولوشن با ضرب ماتریسی است؛ به این معنا که با ترکیب دو تابع، تابع جدیدی در فرآیند کانولوشن ایجاد می‌شود که اثر یک سیگنال بر دیگری را تحلیل می‌کند. این شبکه از اجزای مختلفی مانند فیلترهای کانولوشن برای استخراج ویژگی‌ها، لایه‌های ادغام (Pooling) برای کاهش ابعاد، و لایه‌های Fully Connected برای طبقه‌بندی نهایی داده‌ها تشکیل شده است.

به دلیل توانایی بالای شبکه عصبی کانولوشن در شناسایی الگوهای پیچیده، از آن نه تنها در پردازش تصاویر بلکه در حوزه‌هایی مانند پردازش زبان طبیعی (NLP) و تشخیص گفتار (Speech Recognition) نیز استفاده می‌شود. امروزه این شبکه‌ها در توسعه چت‌بات‌های سازمانی و سیستم‌های هوشمند مکالمه نقش کلیدی دارند و با استفاده از AI & GPU Server می‌توانند مدل‌هایی دقیق‌تر و سریع‌تر آموزش دهند.

بیشتر بخوانید: چت بات سازمانی | chat bot هوشمند فارسی برای سازمان ها و موسسات

مکسا ارائه دهنده چت بات هوشمند سازمانی
مکسا ارائه دهنده چت بات هوشمند سازمانی

تاریخچه شبکه عصبی Convolutional   

شبکه عصبی کانولوشن اولین بار در سال 1990 بر مبنای آزمایش های اوبل (Hubel) و ویزل (Wiesel) بر روی قشر بینایی پیاده‌سازی شد. پس از آن شبکه عصبی کانولوشن به منظور شناسایی رقم‌های دست‌نویسی شده در سال 1998 به کار گرفته شد که نتایج موفقیت‌آمیزی را به همراه داشت. داستان شگفتی‌های شبکه cnn در رویداد imagenet  در سال 2012 به اوج خود رسید. در جریان این رویداد که با هدف دسته‌بندی 1.2 میلیون تصویر در 1000 کلاس انجام شد، الکس از دانشگاه تورنتو با شبکه عصبی alexnet با خطای 16.4% مقاوم اول را بدست آورد.

به همین سرعت شبکه عصبی کانولوشنی رشد کرد تاجایی‌که در بسیاری از زمینه‌ها از جمله تشخیص حرکت اشخاص، تشخیص اشیاء، شناسایی چهره و دریابی شگفتی‌های زیادی را به همراه داشته است. همچنین در زمینه‌هایی همچون پردازش زبان، پردازش گفتار و پزشکی نیز دستاورد‌های زیادی را کسب کرده است.

انواع شبکه کانولوشن

شبکه عصبی کانولوشن براساس کاربرد آن در انواع مختلف وجود دارند در ادامه به بررسی هر یک از آن‌ها پرداخته‌ایم:

  • شبکه عصبی cnn یک بعدی:

در این نوع شبکه عصبی، کرنل cnn در یک مسیر حرکت کرده و cnn های بعدی بر روی داده‌های سری زمانی مورد استفاده قرار می گیرد.

  • شبکه عصبی cnn دو بعدی:

در شبکه عصبی cnn دو بعدی نیز کرنل‌ها در دو جهت حرکت می‌کنند و cnn های دو بعدی برای برچسب‌گذاری و پردازش تصویر استفاده می‌شود.

  • شبکه عصبی cnn سه بعدی:

شبکه عصبی cnn سه بعدی نوعی دیگر از شبکه cnn است که کرنل آن در سه جهت حرکت می‌کند. از این نوع شبکه عصبی در تصاویر سه بعدی بخصوص در حوزه پزشکی از جمله سی تی اسکن و mri استفاده می‌شود.

معماری شبکه کانولوشن (CNN)

معماری شبکه کانولوشن از سه لایه تشکیل شده است و به شکلی طراحی شده است که قادر به استخراج ویژگی‌های مهم تصویر در سطح‌های مختلف باشد. به منظور آشنایی با نحوه عملکرد هر یک از لایه‌های مختلف شبکه کانولوشن در ادامه به بررسی هر یک از آن‌ها پرداخته‌ایم.

لایه‌ کانولوشن (Convolutional Layers)

لایه کانولوشن در شبکه cnn وظیفه محاسبات شبکه را بر عهده دارد و با از طریق فیلترهایی که به دنبال الگوهای خاص در دیتاهای ورودی هستند، ویژگی‌های مهم تصاویر را شناسایی و استخراج می‌کند. هر یک از این فیلترها ماتریس کوچک از وزن‌ها است که در کل تصویر حرکت می‌کند و حاصلضرب بین وزن‌ها و پیکسل های تصویر را محاسبه می‌کند. در خروجی این محاسبات، نقشه ویژگی یا feature map حاصل می‌شود.

به طور کلی فرآیند محاسبه به این شکل است که هر عنصر از پیکسل تصویر با عنصر مرتبط از پیکسل دوم ضرب می‌شود و در ادامه همه مقادیر حاصل از ضرب با هم جمع می شوند. فیلتر با حرکت در سراسر تصویر این عملیات را تکرار کرده و خروجی به صورت نقشه ویژگی به نمایش درمی‌آید. به طور کلی عملکرد لایه کانولوشن به موارد زیر بستگی دارد:

اندازه کرنل(kernel size): این فاکتور نشان دهنده اندازه فیلتر است که اغلب عددی کوچک و فرد مانند 7،5،3،1 است.

گام (stride): گام فاکتوری است که میزان جابجایی پنجره کرنل را در مراحل کانولوشن نشان می‌دهد. این فاکتور نیز اغلب برابر با 1 است تا همه نقاط تصویر را بررسی کند.

پدینگ (padding): پدینگ در حاشیه های تصویر نقاط یا پیکسل‌هایی با مقدار 1 را درج می‌کند و این کار به منظور عدم تغییر سایز نقشه ویژگی ورودی و خروجی در زمان اعمال فیلتر تصویر صورت می‌گیرد.

تعداد فیلتر: فاکتور تعداد فیلتر، تعداد ویژگی هایی که لایه قصد شناسایی آن را دارد مشخص می‌کند

 لایه‌ ادغام (Pooling Layers)

لایه ادغام(pooling) در شبکه‌های عصبی کانولوشنی با هدف کاهش ابعاد نقشه ویژگی و کاهش تعداد پارامترها استفاده می‌شود. لایه ادغام؛ بهترین روش برای افزایش تعمیم پذیری و لایه‌های «ادغام» (Pooling) در شبکه‌های کانولوشن به منظور کاهش اندازه نقشه‌های ویژگی و در نتیجه کاهش تعداد پارامترها مورد استفاده قرار می‌گیرد. علاوه بر این، استفاده از لایه ادغام یکی از بهترین روش‌ها برای افزایش تعمیم پذیری(Generalization) و کاهش بیش‌برازش (Overfitting) است.   در لایه ادغام یک فیلتر بر روی پیکسل‌های تصویر حرکت می کند اما مانند کرنل‌های کانولوشن این فیلتر نیز وزن ندارد و فقط از ادغام ویژگی‌ها نتیجه خروجی بدست می‌آید. بطور کلی فرآیند ادغام با دو روش زیر صورت می گیرد:

ادغام بیشینه (Max Pooling): در این عملیات ادغام، یک پنجره خاص بر روی هر بخش از نقشه ویژگی قرار می گیرد. در ادامه مقدار بیشترین عنصر آن پنجره به عنوان نماینده آن بخش در نقشه ویژگی انتخاب می‌شود.

ادغام میانگین (Average Pooling): در این نوع  عملیات ادغام، میانگین اعضای هر پنجره به طور متناظر در نقشه ویژگی جدید، جایگزین می شود. این روش ادغام نیاز به یادگیری پارامترها ندارد، اما امکان از دست رفتن برخی از جزئیات مهم در داده‌ها وجود دارد.

لایه تمام متصل (Fully Connected Layers)

لایه تمام متصل در انتهای معماری شبکه عصبی کانولوشن قرار دارد و در آن نقشه ویژگی بصورت یک بعدی با مسطح به یک یا چند لایه تمام متصل وارد می شود. هدف لایه تمام متصل این است که ویژگی‌های سطح بالای تصویر به شکل نهایی تبدیل شوند تا نتایج خروجی به شکل مناسب نمایش داده شوند.  

معماری شبکه کانولوشن (CNN)
معماری شبکه کانولوشن (CNN)

خصوصیات Convolutional Neural Network

استفاده از الگوریتم‌های شبکه عصبی کانولوشنی در کنار مزایایی که در پردازش تصویر دارد ، معایبی نیز دارد که در جدول زیر ضمن مقایسه این خصوصیات شبکه عصبی به چند مورد از مهم‌ترین آن‌ها پرداخته‌ایم.

مزایا معایب
خودیادگیری بدون نظارت مستقیم شبکه کانولوشنی: شبکه cnn با تکیه بر حجم بالای داده‌ها، ویژگی‌ها و الگوهای مهم را به صورت خودکار شناسایی و استخراج می کند. نیاز توان محاسباتی بالا:  پیاده سازی و اجرای شبکه عصبی CNNمعمولاً نیاز به منابع پردازشی سنگین دارد که در دستگاه‌های کم‌مصرف یا محیط‌های بلادرنگ باعث افت کارایی می‌شود
دقت بالا در پردازش تصویر: شبکه کانولوشنی در زمینه های مانند تشخیص اشیا و قطعه‌بندی تصاویر، عملکرد بسیار دقیق‌تری نسبت به دیگر روش‌های پردازش تصویر دارند. زمان آموزش و داده آموزشی زیاد: به دلیل زمان بر بودن آموزش شبکه کانولوشنی، برای دستیابی به نتایج مطلوب به داده‌های آموزشی زیاد نیاز دارد.

 

توانایی تشخیص نقاط مهم تصویر : cnn در تحلیل تصاویر و ویدیوها قادر به شناسایی بخش های مهم تصویر بکارگیری برای کاربردهایی مثل تحلیل حرکت یا رفتار اشیاء است. نیاز به سخت‌افزار قوی:  اغلب مدل‌های CNN در صورت اجرا بر روی پردازنده‌های گرافیکی (GPU) یا سخت‌افزارهای قدرتمند قابل اجرا هستند.
سازگاری با سخت‌افزارهای تخصصی: برخورداری از تراشه‌هایی نظیر FPGA موجب افزایش سرعت پردازش و کاهش استفاده منابع گسترده محاسباتی می‌شود. دشواری در تنظیم و آموزش: دستیابی و آموزش مقادیر مناسب برای ابرمولفه ها  در شبکه عصبی  CNNنیاز به تجربه و منابع محاسباتی بالا دارد.
عملکرد بالا در بینایی ماشین: شبکه عصبی کانولوشنی به دلیل ساختار سلسله‌مراتبی، می‌توانند از ویژگی‌های ساده تا الگوهای پیچیده را در تصاویر یاد گرفته و در وظایف بینایی ماشین به خوبی عمل کنند. وابستگی شدید به داده‌های برچسب‌دار: شبکه‌های cnn برای دستیابی به عملکرد مناسب نیازمند به داده‌های زیاد با برچسب گذاری دقیق هستند.
استخراج خودکار ویژگی‌ها: برخلاف روش‌های سنتی، شبکه cnn به صورت خودکار آن‌ها را از داده‌ها استخراج می‌کند. تفسیرپذیری پایین: تشخیص تصمیمات داخلی CNN دشوار است و عملکرد کلی این شبکه عصبی معمولاً به به سختی تفسیر می شود. 
استفاده مجدد داده های آموزش دیده: قابلیت استفاده مجدد داده های آموزش دیده برای پروژه‌های با داده کم موجب مصرف بهینه منابع و زمان می شود. احتمال بیش‌برازش(Overfitting) : در صورت عدم وجود مکانیزم‌هایی نظیر Dropout، مدل داده‌های آموزشی را بیش از حد یاد گرفته و در تعمیم به داده‌های جدید دچار مشکل می‌شود

نحوه کار شبکه عصبی کانولوشن   

شبکه‌ عصبی کانولوشن بر روی یافته‌های حاصل از علوم اعصاب کار می‌کند و از لایه هایی از نورون‌های مصنوعی با نام نود ساخته شده‌اند. در واقع نود (node) تابعی است که مجموع وزنی ورودی‌ها را محاسبه و یک نگاشت فعال‌سازی را برمی‌گرداند. هر نود در لایه با مقادیر وزنی تعریف می‌شود و با دادن داده‌ها به شبکه کانولوشن، هر لایه نگاشت فعال‌سازی شامل ویژگی‌های مهم داده را برمی‌گرداند.

بطور مثال اگر داده تصویر باشد، شبکه cnn ابتدا لبه های تصویر را پیدا کرده و در ادامه این تعریف از تصویر به لایه بعدی منتقل شده و آن لایه جزئیاتی نظیر گوشه‌ها، گروه‌های رنگی را پیدا می‌کند. به همین شکل این تعریف به لایه بعدی منتقل شده و این چرخه تا پیش‌بینی و پردازش ادامه دارد. در نهایت مقدار پیش‌بینی شده در لایه طبقه بندی براساس نگاشت فعال‌سازی مشخص می‌شود. از کاربردهای آن می‌توان برای تشخیص اتومبیل، شخص یا مانع در وسایل نقلیه خودران اشاره کرد. به طور کلی آموزش شبکه عصبی کانولوشنی مانند سایر الگوریتم‌های یادگیری ماشین است و کار با داده‌های آموزشی انجام می‌شود که وزن‌ها و مقادیر براساس دقت مقادیر پیش‌بینی شده تنظیم می‌شود.

نحوه کار شبکه عصبی کانولوشن   
نحوه کار شبکه عصبی کانولوشن

جمع‌بندی  

همانطور که پیش از این بیان شد، شبکه‌ عصبی کانولوشنی از نوع شبکه‌های عصبی چندلایه هستند که در استخراج ویژگی‌ها از داده‌ها، به‌ویژه تصاویر، عملکرد بسیار خوبی دارند و نیاز چندانی به پیش‌پردازش ندارند. آموزش مدل‌ها در CNN نیز نسبت به سایر شبکه‌های عصبی ساده‌تر است. این شبکه‌ها امروز نقش مهمی در توسعه چت‌بات‌های سازمانی و سیستم‌های هوشمند مکالمه ایفا می‌کنند و با بهره‌گیری از AI & GPU Server می‌توانند با سرعت و دقت بالاتری آموزش ببینند و پاسخ‌های طبیعی‌تری ارائه دهند. در این مقاله از وب‌سایت مکسا سکیوریتی، ضمن پاسخ به این پرسش که شبکه عصبی کانولوشنی چیست، به بررسی تاریخچه، نحوه عملکرد، معماری و ویژگی‌های آن از جمله مزایا و معایب CNN پرداختیم.

سوالات متداول

شبکه عصبی کانولوشن(cnn) چیست؟

شبکه عصبی کانولوشن CNN نوعی شبکه‌های عصبی  یادگیری عمیق است که با  تجزیه و پردازش داده‌های تصویری قادر به تشخیص الگوها و ویژگی‌های پیچیده در تصاویر است.

شبکه عصبی کانولوشن در چه زمینه هایی کاربرد دارد؟

این شبکه عصبی در زمینه های متعدد از جمله تشخیص چهره، خودروهای خودران، صنعت و حوزه پزشکی استفاده می شود.

مزایای استفاده از شبکه عصبی کانولوشن چیست؟

شبکه عصبی کانولوشن با استخراج خودکار ویژگی‌ها، دقت بالا در شناسایی الگوها و قابلیت استفاده مجدد مدل‌ها، عملکردی بسیار قدرتمند از در پردازش تصویر ارائه می‌دهد.

معایب شبکه کانولوشن چیست؟

 این نوع شبکه‌ عصبی برای آموزش به داده‌های زیاد و سخت‌افزار قوی نیازمند است. فرآیند آموزش آن‌ها زمان‌بر است و تفسیر پذیری پایینی دارد؛ همچنین در صورت نبود مکانیزم‌هایی مانند Dropout ممکن است دچار بیش‌برازش (Overfitting) شوند.

 لایه‌های مختلف در شبکه عصبی کانولوشن (CNN) چه نقشی دارند؟

لایه کانولوشن ویژگی‌های اصلی تصویر را با فیلترها استخراج می‌کند، لایه ادغام (Pooling) ابعاد داده و احتمال بیش‌برازش را کاهش می‌دهد و لایه تمام‌متصل (Fully Connected) در انتها ویژگی‌های استخراج‌شده را برای طبقه‌بندی نهایی ترکیب می‌کند.

انواع شبکه‌های عصبی کانولوشن (CNN) کدام‌اند؟

شبکه های عصبی کانولوشنی در سه نوع یک‌بعدی، دو‌بعدی و سه‌بعدی طراحی می‌شود که هرکدام براساس نوع داده برای کاربردهای متفاوتی استفاده می‌شوند.

 شبکه عصبی کانولوشن یک‌بعدی در چه حوزه‌هایی کاربرد دارد؟

شبکه عصبی CNN یک‌بعدی بیشتر برای تحلیل داده‌های سری زمانی مانند سیگنال‌های صوتی، داده‌های حسگر و پیش‌بینی استفاده می‌شود.

شبکه عصبی کانولوشن دو‌بعدی در چه حوزه‌هایی به کار می‌رود؟

 شبکه عصبی CNN دو‌بعدی معمولاً در پردازش و شناسایی تصاویر، برچسب‌گذاری اشیاء، و بینایی ماشین کاربرد دارد.

شبکه عصبی کانولوشن سه‌بعدی چه کاربردی دارد؟

شبکه عصبی CNN سه‌بعدی برای تحلیل داده‌های حجمی مانند تصاویر پزشکی سه‌بعدی، از جمله سی‌تی‌اسکن و MRI کار می‌رود.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *