کاربردهای شبکه عصبی کانولوشنی (CNN) چیست؟ یکی از الگوریتمهای یادگیری عمیق است که اغلب در مسائل شناسایی تصاویر استفاده میشود. البته شبکه عصبی کانولوشنی کاربردهای متنوعی دارد و علاوه بر عکس و ویدئو، در تحلیل انواع دیگر داده، مانند پردازش متن یا صدا، هم میتوان از آن بهره برد. میتوانیم این شبکه را یک شبکه عصبی مصنوعی در نظر بگیریم که میتواند الگوهایی را از داده ورودی تشخیص دهد و از آنها برای شناسایی و طبقهبندی داده استفاده کند.
انواع شبکههای عصبی
انواع مختلفی از شبکههای عصبی مصنوعی (ANN) وجود دارد که هر کدام دارای ویژگیها و کاربردهای منحصر به فرد خود هستند.
در اینجا قصد داریم به معرفی برخی از رایجترین انواع این شبکهها بپردازیم:
شبکههای عصبی پیشخور (FFNN): این نوع شبکهها سادهترین نوع شبکه عصبی مصنوعی هستند که اطلاعات تنها در یک جهت، از گرههای ورودی به گرههای خروجی، جریان مییابند. آنها برای کارهایی مانند طبقهبندی، رگرسیون و تشخیص الگو استفاده میشوند.
شبکههای عصبی کانولوشنی (CNN): این شبکهها نوعی از شبکههای عصبی هستند که معمولاً برای کارهای تشخیص تصویر و ویدیو استفاده میشوند. آنها از لایههای کانولوشن برای استخراج ویژگیها از تصاویر استفاده میکنند و در کارهایی مانند تشخیص اشیا (Object Detection) و بخشبندی تصویر (Image Segmentation) موفق بوده اند.
شبکههای عصبی بازگشتی (RNN): این شبکهها، شبکههای عصبی هستند که برای پردازش دادههای متوالی مانند سریهای زمانی یا زبان طبیعی طراحی شدهاند. آنها از حلقههای بازخورد استفاده میکنند تا به اطلاعات اجازه دهند در طول زمان باقی بماند و در کارهایی مانند تشخیص گفتار (Speech Recognition) و ترجمه زبان موفق بودهاند.
شبکههای عصبی رمزگذار خودکار (Autoencoder): اینها نوعی از شبکههای عصبی هستند که برای یادگیری بدون نظارت استفاده میشوند، جایی که دادههای ورودی و خروجی یکسان هستند. رمزگذارهای خودکار معمولاً برای استخراج ویژگی، فشرده سازی تصویر و گفتار و تشخیص ناهنجاری استفاده می شوند.
شبکههای مولد متخاصم (GAN): این ها نوعی از شبکههای عصبی هستند که میتوانند دادههای جدیدی شبیه به دادههای آموزشی تولید کنند. GANها معمولا در سنتز تصویر و ویدئو استفاده می شوند.
این ها تنها چند نمونه از انواع ANNهایی هستند که معمولاً مورد استفاده قرار میگیرند. انواع و اقسام بسیاری از ANNها وجود دارد که هر کدام نقاط قوت و کاربردهای منحصر به فردی دارند.
شبکه عصبی کانولوشنی
از دههی ۱۹۵۰، اوایل ظهور هوش مصنوعی، دانشمندان در تلاش بودهاند تا کامپیوترهایی بسازند تا بتوانند دادههای بصری را درک کنند. در طول زمان این حوزه که اکنون به بینایی ماشین (Computer Vision) معروف شده است پیشرفتهای چشمگیری را شاهد بوده است. اگر در زمینهی بینایی ماشین مطالعه کنیم، قطعاً میدانیم که شبکه عصبی کانولوشنی (CNN) ازجمله مهمترین شبکههای مصنوعی است که اغلب در حوزهی بینایی ماشین استفاده میشود و عملکرد بسیار قابلقبولی را نیز دارد.
در این مطلب قصد داریم با کاربردهای متنوع شبکه عصبی کانولوشنی (CNN) آشنا شویم.
در ادامه ابتدا تاریخچهای مختصر از پیداش شبکه عصبی کانولوشنی (CNN) را مرور خواهیم کرد؛ سپس در هر بخش به بررسی یکی از موارد کاربرد شبکه عصبی کانولوشنی (CNN) میپردازیم و بهصورت مختصر هر یک از آنها را شرح میدهیم.
برای آشنایی با یادگیری عمیق مطلب یادگیری عمیق (Deep Learning) چیست؟ را مطالعه کنید.
تاریخچهی شبکهی عصبی کانولوشنی (CNN)
شبکهی عصبی کانولوشنی (CNN) را برای اولین بار در دههی ۱۹۸۰ Yann LeCun، محقق علوم کامپیوتر، معرفی کرد.
اولین نسخهی شبکههای کانولوشنی (CNNs) لینت LeNet نام دارد. این شبکهی عصبی توانایی شناسایی اعداد دستنویس را داشت. با اینکه لینت نوآوری مهمی محسوب میشد، بهدلیل مشکلاتش، سالها در حاشیه باقی ماند. این مشکل ناتوانیاش برای کار با تصاویر با مقیاس بزرگ بود. CNNها برای اینکه در کار با تصاویر بزرگ کارایی خوبی داشته باشند به داده و منابع محاسباتی زیادی نیاز داشتند و در آن زمان این روش فقط در تصاویر با رزولوشن پایین اجرایی بود.
در سال ۲۰۱۲، هنگامیکه گروهی از محققان از دانشگاه تورنتو مدل هوش مصنوعی را توسعه دادند، بینایی ماشین با یک جهش بزرگ روبهرو شد که با اختلاف زیاد از بهترین الگوریتم های شناسایی تصاویر پیشی گرفت.
با بینایی ماشین (Computer Vision) بیشتر آشنا شوید.
شبکهی عصبی الکسنت
این مدل هوش مصنوعی که الکسنت (AlexNet) نام دارد (بهنام خالق اصلی آن، Alex Krizhevsky) با دقت شگفتانگیز ۸۵ درصدی در مسابقهی بینایی ماشین ImageNet ۲۰۱۲ برنده شد. رتبهی دوم در این رقابت دقت ۷۴ درصد را کسب کرد. الکسنت ((AlexNet نوعی شبکه عصبی کانولوشن است که در سال ۲۰۱۲ نشان داد شاید زمان بازبینی یادگیری عمیق (Deep Learning) فرا رسیده است.
درواقع دردسترسبودن مجموعههای زیادی از دادهها، یعنی مجموعهدادهی ImageNet، با میلیونها تصویر دارای برچسب و همینطور منابع محاسباتی گسترده، محققان را قادر به ایجاد CNNهای پیچیدهای کرد که میتوانستند کارهای بینایی ماشین را انجام دهند که قبل از آن غیرممکن بود. بعد از الکسنت نیز شبکههای کانولوشنی دیگری، ازجمله GoogleNet، ZFNet، VGGNet و ResNet، معرفی شدند.
در سالهای اخیر CNN به مهمترین و اساسیترین شبکهی کاربردی در حوزهی بینایی ماشین تبدیل شده است.
با شبکه عصبی کانولوشنی (CNN) بیشتر آشنا شوید.
کاربردهای شبکه عصبی کانولوشنی (CNN)
همانطور که اشاره شد، شبکه عصبی کانولوشنی (CNN) میتواند کاربردهای مختلفی داشته باشد. در این بخش به برخی از این کاربردها اشاره میکنیم.
شناسایی گفتار
یکی از موارد کاربرد شبکه عصبی کانولوشنی شناسایی گفتار (Speech Recognition) است. تشخیص گفتار (Speech Recognition) به تفسیر گفتههای یک شخص توسط کامپیوتر و تبدیل آن به فرمتی است که کامپیوتر بتواند آن را درک کند و درنهایت، بسته به هدف نهایی، به متن یا صدا یا فرمت موردنیاز دیگری تبدیل شود.
کاربردهای تشخیص گفتار (Speech Recognition) در چند وقت اخیر رشد چشمگیری داشته است؛ زیرا مشاغل بهطور فزایندهای دستیارهای دیجیتال و پشتیبانی خودکار را برای سادهسازی خدمات خود به کار می گیرند؛ برای مثال، از کاربردهای شناسایی گفتار میتوان به سیری اپل (Apple’s Siri) یا الکسای گوگل (Google’s Alexa) اشاره کرد که برای خدمات صوتی یا متنی از شناسایی گفتار بهره میبرند.
شناسایی چهره
تشخیص چهره (Face Recognition) روشی است برای شناسایی یا تأیید هویت فرد با استفاده از چهره. از سیستمهای تشخیص چهره میتوان برای شناسایی افراد در عکسها و فیلمهای بلادرنگ (Real-time) استفاده کرد.
احتمالاً همهی ما با فناوری تشخیص چهره ازطریق FaceID که برای بازکردن قفل آیفون استفاده می شود آشنایی داریم (بااینحال این تنها یک کاربرد تشخیص چهره است). بهطور معمول، تشخیص چهره به یک پایگاه دادهی عظیم عکس برای تعیین هویت فرد متکی نیست، بلکه بهسادگی یک شخص را بهعنوان تنها مالک دستگاه شناسایی میکند و تشخیص می دهد، درحالیکه دسترسی به دیگران را محدود میکند.
علاوه بر بازکردن قفل تلفنهمراه، سیستم تشخیص چهره میتواند چهرهی افرادی را که از جلوی دوربینهای خاصی عبور کردهاند با تصاویر افرادی مطابقت دهد که در یک فهرست مشخص قرار دارد. این کاربرد، برای مثال، در تشخیص مجرمان، افراد گمشده و غیره کمک بزرگی محسوب میشود.
شناسایی تصاویر پزشکی
از دیگر کاربردهای شبکه عصبی کانولوشنی (CNN) میتوان به شناسایی تصاویر پزشکی (Medical Image Recognition) اشاره کرد. این مسئله یکی از مهمترین مسائل در زمینهی شناسایی تصاویر (Image Recognition) است و هدف آن طبقهبندی تصاویر پزشکی در دستههای مختلف برای کمک به پزشکان در تشخیص بیماری یا تحقیقات بیشتر است.
این موضوع اهمیت بسیار بالایی دارد؛ زیرا با سلامت افراد در ارتباط است؛ برای مثال، بسیاری از افراد هر سال در دنیا به سرطان پوست مبتلا میشوند. حال اگر این بیماری در مراحل اولیه تشخیص داده شود، جان بسیاری از مبتلایان نجات داده خواهد شد.
در گذشته پزشکان معمولاً از تجربههای حرفهای خود برای استخراج ویژگیها برای طبقهبندی تصاویر پزشکی در دستههای مختلف استفاده میکردند. این رفتار معمولاً کاری دشوار، کسلکننده و زمانبر است؛ بنابراین پیشرفت یادگیری عمیق و ظهور شبکههای عصبی مصنوعی، مانند شبکه کانولوشنی، به حوزهی پزشکی کمک بزرگی کرده است.
طبقهبندی متن
شبکه عصبی کانولوشنی (CNN) میتواند در حوزهی طبقهبندی متن (Text Classification) نیز استفاده میشود. طبقهبندی متن شاخهای از پردازش زبان طبیعی (NLP) محسوب میشود که فرایندی است که در آن متن در کلاسهای مختلف طبقهبندی میشود. طبقهبندی متن در حال تبدیلشدن به بخشی مهم و اساسی در مشاغل است؛ زیرا امکان میدهد بهراحتی از دادهها اطلاعات کسب کنیم و فرایندهای تجاری را بهطور خودکار انجام دهیم.
برای مثال از میان صدها کاربرد طبقه بندی متن (Text Classification) میتوان به این چند مورد اشاره کرد:
- تحلیل احساسات (Sentiment Analysis): تشخیص اینکه یک متن درمورد یک موضوع مشخص مثبت است یا منفی؛ برای مثال، میتوان ازطریق نظرات مشتریان تشخیص داد که محصول ارائهشده بازخورد خوبی داشته یا نه.
- تشخیص موضوع (Topic Detection): همانطور که از اسمش مشخص است، بهمعنای شناسایی موضوع یک متن ارائه شده است؛ برای مثال، سیستم تشخیص میدهد نظر ثبتشده درمورد کدام محصول است یا درمورد کدام جنبهی محصول صحبت میکند.
- تشخیص زبان (Language Detection): شناسایی زبان یک متن ارائهشده که احتمالاً همگی ما با آن آشنایی داریم؛ برای مثال، گوگل ترنسلیت (Google Translate) با واردکردن متن مدنظر بهطور اتوماتیک زبان متن را تشخیص میدهد.
شناسایی الگو
از کاربردهای دیگر شبکه عصبی کانولوشنی میتوانیم به شناسایی الگو (Pattern Recognition) اشاره کنیم. شناسایی الگو فرایند شناخت الگوها با استفاده از الگوریتم یادگیری ماشین است؛ بهعبارت دیگر، شناخت الگو را میتوان طبقهبندی دادهها براساس دانش بهدستآمده یا اطلاعات آماری استخراجشده از الگوها تعریف کرد. در فرایند شناسایی الگو دادههای خام پردازش و بهشکلی تبدیل میشوند که برای ماشین فهمیدنی باشد.
از شناسایی الگو در مسائلی مانند تشخیص گفتار (Speech Recognition)، تشخیص شخص صحبتکننده(Speaker Recognition) ، شناسایی اسناد چندرسانهای (Multimedia Document Recognition) و غیره اشاره کرد.
خلاصهی مطالب دربارهی کاربردهای شبکهی کانولوشنی (CNN)
در این مطلب شرح مختصری از تاریخچهی پیدایش شبکه عصبی کانولوشنی (CNN) به دست دادیم و با برخی از کاربردهای این شبکه آشنا شدیم. همانطور که تا الان دریافتهاید، کاربردهای این شبکه بهوضوح در زندگی روزمرهی همهی ما احساس میشود. باید منتظر بود و دید پیشرفت در زمینهی هوش مصنوعی و یادگیری عمیق چه دنیای شگفتانگیزی را برایمان رقم میزند.
یادگیری دیتا ساینس با کلاسهای آنلاین آموزش علم داده کافهتدریس
کافهتدریس کلاسهای جامع آموزش علم داده برگزار میکند. این کلاسها بهصورت کاملاً کارگاهی و بر مبنای کار روی پروژههای واقعی دیتا ساینس برگزار میشود.
شما با شرکت در کلاسهای آنلاین آموزش دیتا ساینس کافهتدریس در هر نقطهی جغرافیایی به آموزش مقدماتی و پیشرفته علم داده دسترسی دارید.
برای آشنایی با کلاسهای آنلاین آموزش علم داده کافهتدریس و مشاورهی رایگان برای شروع یادگیری روی این لینک کلیک کنید: