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


شبکه عصبی کانولوشن (Convolutional Neural Network)، نوعی مدل یادگیری عمیق است که برای تشخیص تصویر و ویدئو بهره گیری میشود به صورتی که برای یادگیری خودکار و استخراج ویژگی ها از تصاویر طراحی شده است. شبکه های عصبی کانولوشن بر پایه علوم اعصاب اجرا می شوند.

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

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



تاریخچه شبکه عصبی کانولوشن


بعد از شکل گیری یادگیری عمیق، این نوع شبکه ها (Convolutional Neural Network) در سال 1990 در آزمایشی توسط هابل و ویزل که بر روی قشر بینایی بود، ارائه شد. اولین پروژه انجام شده با استفاده از شبکه عصبی کانولوشن در سال 1998 توسط Yann Lecun انجام شد که نام آن را شناسایی ارقام دست نویس MNIST گذاشتند.

در سال 2012 شبکه عصبی کانولوشن بسیار مطرح شد چراکه در مسابقه ImageNet شرکت داده شد و با خطای 26 درصدی رده دوم این مسابقات شد و از همان لحظه این شبکه بسیار مطرح شد. در سال 2020 تنها درصد خطای این شبکه عصبی به کمتر از 4 درصد رسید.


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


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


تصاویر پزشکی: یکی از کاربرد های این نوع شبکه ها طبقه بندی کردن تصاویر پزشکی میباشد که برای دسترسی راحت تر پزشکان، تحقیقات بیشتر و تشخیص و روند بیماری به کار میرود. این شبکه کمک شایانی به بهبود و پیشگیری، درمان بیماری ها کرده است.


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


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


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


تشخیص اشیا: تشخیص اشیا با الگوریتم yolo امکان تشخیص اشیا در تصاویر و ویدیو ها ممکن میسازد. در شبکه عصبی کانولوشن با yolo تصویر ورودی به بخش های کوچکتر تقسیم میشود که با برچسب گذاری و آموزش، داده ها به صورت دسته بندی به یک شی واحد تبدیل شده و ماشین اعلام میکند که شی موجود در این تصویر چیست.



شبکه عصبی کانولوشن  (Convolutional Neural Network)



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


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


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


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


تکنولوژی های شبکه عصبی کانولوشن 


تکنولوژی های Tensorflow ،Keras و Torch در شبکه عصبی کانولوشن به به صورت کتابخانه ها و فریم ورک ها برای ایجاد بستر و آموزش شبکه های عصبی کانولوشن استفاده می شوند.


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

Keras: این فریمورک یک چارچوب توسعه یافته برای ساخت و آموزش، اجرا شبکه های عصبی است که در سال 2015 فرانسوا شوله ارائه شد. این فریمورک از Tensorflow به عنوان یک پشتیبان استفاده میکند.

Torch: این فریم ورک برای توسعه تحقیقات هوش مصنوعی، علم داده، تشخیص تصویر و پردازش گفتار و زبان استفاده میشود و قابلیت پیاده سازی شبکه های عصبی کانولوشن را به کاربران میدهد.


نتیجه گیری 


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