انواع شبکه های عصبی و کاربردهای آن ها – پادکست پرسش و پاسخ


«شبکههای عصبی» (Neural Networks) از جمله الگوریتمهای یادگیری ماشین محبوب محسوب میشوند که در مسائل گوناگون دارای کاربرد هستند. این دسته از الگوریتمها، انواع گوناگونی دارند. پرسشی که برای اغلب افراد پیش میآید، این است که کدام الگوریتم شبکه عصبی برای حل یک مساله مشخص، مناسبتر است و آیا نیاز به آشنایی با همه الگوریتمهای شبکه عصبی وجود دارد یا تسلط بر یک مورد کافی است. دکتر «سید مصطفی کلامی هریس»، در پادکستی که در ادامه آمده، به این پرسش به طور مشروح پاسخ داده و به موضوع انواع شبکههای عصبی و کاربردهای آنها پرداخته است. نسخه متنی این پادکست نیز در همین مطلب قرار دارد. البته، منبع اصلی همچنان فایل صوتی محسوب میشود.
پادکست پیرامون انواع شبکه های عصبی و کاربردهای آن ها
ذخیره کردن این فایل صوتی: لینک دانلود
نسخه نوشتاری
یکی از دوستان در مورد کاربرد انواع «شبکههای عصبی» (Neural Networks) سوال کردند و پرسیدهاند «شبکه عصبی MLP» (سرنام Multilayer Perceptron) برای چه نوع کاربردهایی میتواند مورد استفاده قرار بگیرد و آیا اساسا میتوانیم فقط با MLP نیازهایمان را برآورده کنیم و از دیگر انواع شبکه عصبی استفاده نکنیم؟
پاسخ این پرسش را با طرح یک مثال بیان میکنم. این موضوع مانند استفاده از یک جعبه است. به عنوان مثال جعبه دایرهای، جعبه مربعی و جعبه مکعبی شکل وجود دارند. فرد، بسته به فضا و بستهبندی که دارد، میتواند از شکلهای مختلف جعبهها استفاده کند. بعضی از این جعبهها مناسب کار فرد هستند و برخی دیگر بسته به نیاز او کاربردی ندارند. کرنل و هستهای که در MLP ،RBF ،SOM و دیگر موارد وجود دارند، هر کدام مناسب حال برخی از مسائل هستند. البته برخی از مسائل نیز وجود دارند که در آنها، فرد میتواند از کلیه این موارد برای انجام یک سری از کارها استفاده کند.
ولیکن، اگر فرد واقعا بخواهد بررسی کند متوجه خواهد شد که در برخی مسائل بعضی از این الگوریتمها بهتر از سایر موارد جواب میدهند. بعضی از مسائل ساده هستند که در آنها همه الگوریتمها مانند هم و علیالسویه جواب میدهند. بعضی از مسائل نیز هستند که هیچ یک از الگوریتمها در آنها پاسخگو نیست. این یعنی هر حالتی ممکن است وجود داشته باشد.
یک موضوع در این راستا آن است که کاربر اساسا در کار با MLP درجه آزادی زیادی دارد و میتواند انواع و اقسام پارامترها و روشها را عوض کند که از این جمله میتوان به توابع فعالسازی و تعداد لایهها اشاره کرد. این موارد میتوانند در مناسب بودن الگوریتم برای یک مساله خاص اثرگذار باشند. چنین انعطافی در RBF نیز وجود دارد ولی نه به این شدت. برای مثال، MLP در تعداد لایههای بالا یکی از الگوریتمهای اساسی است که در بحث «یادگیری عمیق» (Deep Learning) داریم. دیپلرنینگ در واقع چیزی به جز شبکهها عصبی کلاسیک نیست، منتها در لایههای خیلی زیاد تعریف شده که همان مفهوم «Deep» یا ژرف و عمیق بودن یادگیری نیز از همین موضوع نشات میگیرد.
در RBF، کاربر اساسا مجبور است به ازای هر پیچیدگی که در «دادهها» (Data) وجود دارد، یک «نورن» (Neuron) اضافه کند و این نورنها یک «موازنه» (Trade-Off) دارند و فرد اگر بخواهد آن را خیلی دقیق کند مجبور میشود تعداد نورنها و پیچدگی مدل را افزایش دهد و اگر بخواهد پیچیدگی مدل را کاهش بدهد در واقع مجبور میشود از دقت مدل بکاهد. این موضوع البته در همه الگوریتمها وجود دارد ولی در RBF خیلی ملموستر و و مشهودتر است.
یک رویکرد در این حالت این است که کاربر شکل این الگوریتمها را از نظر ریاضی بشناسد و بداند و حتی اگر درباره آنها مطمئن هم نباشد، با اعمال آنها روی چند مساله این موضوع به طور کامل برای ایشان روشن میشود. سعی ما بر آن بوده تا در آموزشهای موجود در فرادرس به این موضوعات بپردازیم، منتها خوب طبیعتا مراجع خیلی کاملتری از جمله کتابهای جامعتر نیز وجود دارند که میتوان به آنها نیز مراجعه کرد.
یک موضوع دیگر که من احساس کردم بر اساس نحوه بیان این سوال وجود داشت (چون مثلا پرسیده شده که آیا از شبکه عصبی «کوهنن» (kohonen) هم دیگر لازم نیست استفاده کنیم؟) و باید به آن اشاره کنم این است که در واقع جنس شبکه عصبی kohonen و SOM با مثلا MLP اصلا یکی نیست. نوع مسائلی که قصد حل کردن آنها وجود دارد نیز خیلی مهم هستند. یعنی این موارد مباحث تزئینی نیستند و ما مثلا وقتی دوره شبکه عصبی و یا «یادگیری ماشین» (Machine Learning) و یا هر دوره دیگری را شروع میکنیم، انواع و اقسام مسائل را توصیف میکنیم. در دوره «دادهکاوی» (Data Mining) نیز اینچنین بوده است.
اگر مساله «یادگیری نظارت شده» (Supervised Learning) است، آن وقت میتوان از MLP، SVM یا RBF نیز استفاده کرد. در غیر این صورت اگر مساله «یادگیری غیر نظارت شده» (Unsupervised Learning) است، مساله چیز دیگری میشود و باید به سراغ SOM ،K-Means و دیگر گزینهها رفت. وقتی نوع مساله «خوشهبندی» (Clustering) است در نتیجه از SOM ،K-Means و Neural Gas و چنین مواردی استفاده میشود، اما وقتی مساله «دستهبندی» (Classification) و نظارت شده است میتوان از LVQ و MLP استفاده کرد.
اگر مساله «رگرسیون» (Regression) و پیوسته باشد، مثلا MLP باید استفاده شود و دیگر نمیتوان از LVQ استفاده کرد. البته منظور LVQ کلاسیک است. زیرا LVQ تعمیم یافته برای مسائل پیوسته نیز وجود دارد. همه اینها یعنی شناخت فرد از مساله خیلی مهم هست و فرد باید بداند کلیدی که در دست او قرار دارد چه قفلی را باز میکند. این شناخت یعنی مساله را باید شناخت و دانست که چه باید کرد و همچنین باید دانست که برای حل یک مساله مشخص کدام یک از این روشها را باید استفاده کرد.
این طبقهبندی به فرد کمک میکند تا بتواند روش مناسب را انتخاب کند. ولی در حالت کلی این جمله درست نیست که بگوییم اگر الگوریتم MLP را یاد گرفتیم کافی است. بله؛ شاید برای طیف وسیعی از مسائل پاسخگو باشد اما یک زمانهایی هست که جوابگو نیست و باید برای بهتر کردن «کارایی» (Performance) یک روش دیگر را امتحان کرد. به عنوان مثالی دیگر، میتوان گفت اگر فرد تا دیروز از رگرسیون برای حل مسائل استفاده کرده است و اکنون قصد دارد مسائل خوشهبندی را حل کند دیگر MLP پاسخگو نخواهد بود چون ذات این الگوریتم نظارت شده است. به هر حال کلیه این موارد در انتخاب ابزار نقش تعیین کنندهای دارند و البته نباید فراموش کرد که هر ابزاری مزایا و معیاب خودش را دارد و نمیشود با اتکا به یکی از موارد همه مسائل را حل کرد.
برای دانلود و شنیدن دیگر پادکستهای دکتر سید مصطفی کلامی هریس در مجله فرادرس، روی این لینک [+] کلیک کنید.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- آموزش شبکههای عصبی مصنوعی در متلب
- مجموعه آموزشهای هوش محاسباتی
- ساخت شبکه عصبی (Neural Network) در پایتون — به زبان ساده
- شبکه عصبی پیچشی (Convolutional Neural Networks) — به زبان ساده
^^