شبکه عصبی کانولوشن چیست و چه کاربردی دارد؟
هوش مصنوعی شاهد رشد چشمگیری در پر کردن شکاف بین تواناییهای انسان و ماشین بوده است. محققان و علاقه مندان به طور یکسان، روی جنبههای متعددی از این رشته کار میکنند تا بتوانند اتفاقات شگفت انگیزی را رقم بزنند. یکی از این حوزهها، حوزه بینایی کامپیوتر است. پیشرفتهای بینایی رایانهای با یادگیری عمیق در گذشت زمان، عمدتا بر روی یک الگوریتم خاص یک شبکه عصبی کانالوشن، ساخته و تکمیل شده است. شبکه عصبی کانولوشن برای یافتن الگوهایی در تصاویر برای تشخیص اشیا، چهرهها و صحنهها مفید میباشد. آنها همچنین میتوانند برای طبقه بندی دادههای غیر تصویری مانند: صدا، دادههای سیگنال کاملا موثر باشند. برنامههایی که به تشخیص اشیا و دید کامپیوتری نیاز دارند. مانند: وسایل نقلیه خودران و برنامههای تشخیص چهره به شدت به CNNها متکی هستند.
توضیحی مختصر درباره بینایی کامپیوتر
بینایی کامپیوتری حوزهای از هوش مصنوعی است که به رایانهها و سیستمها این قابلیت را میدهد؛ تا اطلاعات معنا داری را از تصاویر دیجیتال، ویدئوها و سایر ورودیهای بصری به دست آورند. و بر اساس آن اطلاعات، اقداماتی انجام دهند یا توصیههایی را ارائه کنند. هوش مصنوعی رایانهها را قادر میسازد فکر کنند، بینایی رایانه آنها را قادر میسازد که ببینند، مشاهده کنند و بفهمند. انواع مختلفی از شبکههای عصبی وجود دارد. به عنوان مثال: شبکههای عصبی مکرر که معمولا برای پردازش زبان طبیعی و تشخیص گفتار استفاده میشوند. در حالی که شبکههای عصبی کانولوشنال (CNN) اغلب برای طبقه بندی و وظایف بینایی کامپیوتری مورد استفاده قرار میگیرند.
تعریف شبکه عصبی کانولوشن
شبکه عصبی کانولوشن (CNN) نوعی شبکه عصبی مصنوعی میباشد که در تشخیص و پردازش تصویر استفاده میشود. شبکه عصبی سیستمی از سخت افزار و یا نرم افزار میباشد. که از عملکرد نورونها در مغز انسان الگوبرداری شده است. CNN نورونهای خود را بیشتر شبیه نورونهای لوب فرونتال، ناحیهای که مسئول پردازش محرکهای بصری در انسان و سایر حیوانات است، مرتب میکند. لایههای CNN شامل یک لایه ورودی، یک لایه خروجی و یک لایه پنهان است.
دستور کار در زمینه شبکههای عصبی کانولوشن این است که ماشینها را قادر سازد تا جهان را مانند: انسانها ببینند، آن را به شیوهای مشابه درک کنند و حتی از این دانش برای بسیاری از وظایف مشابه استفاده کنند. مانند: تشخیص تصویر و ویدئو، تجزیه و تحلیل و طبقه بندی تصویر و باز آفرینی رسانهها مورد استفاده قرار میگیرد. شبکه عصبی کانولوشن (CNN)، یک معماری شبکه برای یادگیری عمیق است که مستقیما از دادهها یاد میگیرد. شبکههای عصبی کانولوشنال زیر مجموعهای از یادگیری ماشین هستند و در قلب الگوریتمهای یادگیری عمیق قرار دارند. آنها از لایههای گره تشکیل شدهاند که شامل یک لایه ورودی، یک یا چند لایه پنهان و یک لایه خروجی است.
علت پیدایش شبکه عصبی کانولوشن
از دههی 1950، اوایل ظهور هوش مصنوعی، دانشمندان در تلاش بودهاند تا کامپیوترهایی بسازند تا بتوانند دادههای بصری را درک کنند. در طول زمان این حوزه که اکنون به بینایی ماشین (Computer Vision) معروف شده است پیشرفتهای چشمگیری را شاهد بوده است. اگر در زمینهی بینایی ماشین مطالعه داشته باشید، قطعا میدانید که شبکه عصبی کانولوشنی (CNN) از جمله مهمترین شبکههای مصنوعی است که اغلب در حوزهی بینایی ماشین استفاده میشود و عملکرد بسیار قابل قبولی دارد.
معماری شبکه عصبی کانولوشن CNN
معماری یک CNN مشابه الگوی اتصال نورونها در مغز انسان میباشد و از سازماندهی قشر بینایی الهام گرفته شده است. نورونهای منفرد به محرکها فقط در یک ناحیه محدود از میدان بینایی به نام میدان گیرنده پاسخ میدهند. مجموعهای از این زمینهها با هم، هم پوشانی دارند تا کل ناحیه بصری را پوشش دهند.
نحوه کارکرد شبکه عصبی کانولوشن
یک شبکه عصبی کانولوشن میتواند دهها یا صدها لایه داشته باشد. که هر کدام تشخیص ویژگیهای مختلف یک تصویر را یاد میگیرند. فیلترها برای هر تصویر آموزشی با رزولوشنهای مختلف اعمال میشوند و خروجی هر تصویر به عنوان ورودی لایه بعدی استفاده میشود. شبکههای عصبی کانولوشنال با عملکرد برترشان با ورودیهای سیگنال تصویر، گفتار یا صوتی از سایر شبکههای عصبی متمایز میشوند.
لایه کانولوشن
لایه کانولوشن بلوک اصلی یک CNN است و جایی میباشد که اکثر محاسبات در آن انجام میشود. به چند جز نیاز دارد که عبارتند: از دادههای ورودی، فیلتر و نقشه ویژگی. فرض کنید ورودی یک تصویر رنگی میباشد که از ماتریسی از پیکسلها به صورت سه بعدی تشکیل شده است. این بدان معناست که ورودی دارای سه بعد ارتفاع، عرض و عمق خواهد بود که با RGB در یک تصویر مطابقت دارد. همچنین یک ویژگی مهم وجود دارد که آن این است که به عنوان هسته یا فیلتر نیز شناخته میشود. که در فیلدهای گیرنده تصویر حرکت و بررسی میکند. که آیا این ویژگی وجود دارد یا خیر این فرآیند به عنوان یک پیچیدگی شناخته میشود.
شبکه عصبی کانولوشن و بینایی کامپیوتری
شبکههای عصبی کانولوشن توانایی تشخیص تصویر و وظایف بینایی کامپیوتری را دارند. بینایی کامپیوتری حوزهای از هوش مصنوعی (AI) است. که رایانهها و سیستمها را قادر میسازد تا اطلاعات معنی داری را از تصاویر دیجیتال، فیلمها و سایر ورودیهای بصری استخراج کنند.
برخی از کاربردهای رایج این کامپیوتر بینایی امروزه در موارد زیر قابل مشاهده است:
- مراقبتهای بهداشتی: بینایی کامپیوتری در فناوری رادیولوژی گنجانده شده است. و پزشکان را قادر میسازد تا تومورهای سرطانی را در آناتومی سالم بهتر شناسایی کنند.
- retail: جستجوی بصری در برخی از پلتفرمهای تجارت الکترونیک گنجانده شده است.
- خودرو: در حالی که عصر خودروهای بدون راننده کاملا پدیدار شده است. فناوری زیر بنایی راه خود را به خودروها باز کرده است و ایمنی راننده و سرنشینان را از طریق ویژگیهایی مانند: تشخیص خطوط بهبود میبخشد.
استفاده از CNN برای یادگیری عمیق به دلیل سه عامل مهم رایج است:
- CNNها نتایج تشخیص بسیار دقیقی را تولید میکنند.
- CNNها یک معماری بهینه برای کشف و یادگیری ویژگیهای کلیدی در دادههای تصویر و سری زمانی ارائه میدهند.
- CNNها را میتوان برای کارهای شناسایی جدید آموزش داد.
گردش کار یادگیری عمیق تصاویر به CNN ارسال میشود. که به طور خودکار ویژگیها را یاد میگیرد و اشیا را طبقه بندی میکند.
کاربرد شبکه عصبی کانولوشن (CNN)
- تصویر برداری پزشکی: CNNها میتوانند هزاران گزارش آسیب شناسی را برای تشخیص بصری وجود یا عدم حضور سلولهای سرطانی در تصاویر بررسی کنند.
- تشخیص علامت توقف: رانندگی خودکار به CNNها برای تشخیص دقیق وجود یک علامت یا شی دیگر و تصمیم گیری بر اساس خروجی متکی است.
- تولید داده مصنوعی: با استفاده از شبکههای GAN میتوان تصاویر جدیدی را برای استفاده در برنامههای یادگیری عمیق از جمله تشخیص چهره و رانندگی خودکار تولید کرد.
- شناسایی الگو: از کاربردهای دیگر شبکه عصبی کانولوشنی میتوانیم به شناسایی الگو (Pattern Recognition) اشاره کرد. شناسایی الگو فرایند شناخت الگوها با استفاده از الگوریتم یادگیری ماشین است. در فرایند شناسایی الگو دادههای خام پردازش و به شکلی تبدیل میشوند که برای ماشین قابل فهم باشد.
نتیجه گیری
یک شبکه عصبی کانولوشن (CNN)، یک الگوریتم یادگیری عمیق بوده که قادر است یک ورودی تصویری را دریافت کند. به جنبهها یا اشیای مختلف موجود در تصویر، اهمیت (وزنها و Learnable biases) اختصاص دهد. و در نهایت بتواند یکی را از دیگری متمایز کند. همچنین این شبکهها، توانایی یادگیری فیلترها یا ویژگیها را دارند، در حالی که در روشهای اولیه، این فیلترها به صورت دستی طراحی و مهندسی میشدند.