در مسائل حوزه هوش مصنوعی و بینایی ماشین، شبکه عصبی اغلب کاربرد دارد. اما پرسشی که برای اغلب افراد پیش میآید، این است که کدام الگوریتم شبکه عصبی برای حل یک مساله مشخص، مناسبتر است و آیا نیاز به آشنایی با همه الگوریتمهای شبکه عصبی وجود دارد یا تسلط بر یک مورد کافی است.
فرض کنید برای بسته بندی وسیله ای میخواهیم یک جعبه انتخاب کنیم، به عنوان مثال جعبه گرد، جعبه مکعبی و جعبه مثلثی شکل وجود دارند. بسته به فضا و بستهبندی که داریم، میتوانیم از شکلهای مختلف جعبهها استفاده کنیم. بعضی از این جعبهها مناسب کار فرد هستند و برخی دیگر بسته به نیاز او کاربردی ندارند. کرنل و هستهای که در MLP ،RBF ،SOM و دیگر موارد وجود دارند، هر کدام مناسب حال برخی از مسائل هستند. البته برخی از مسائل نیز وجود دارند که در آنها، فرد میتواند از کلیه این موارد برای انجام یک سری از کارها استفاده کند.
اما، اگر فرد بررسی کند متوجه خواهد شد که در برخی مسائل بعضی از این الگوریتمها بهتر از سایر موارد جواب میدهند. البته بعضی از مسائل ساده هستند که در آنها همه الگوریتمها مشابه هم جواب میدهند. بعضی از مسائل نیز هستند که هیچ یک از الگوریتمها در آنها پاسخگو نیست. این یعنی هر حالتی ممکن است وجود داشته باشد.
بعنوان مثالی در این راستا این است که کاربر اساسا در کار با MLP درجه آزادی زیادی دارد و میتواند انواع و اقسام پارامترها و روشها را عوض کند که از این جمله میتوان به توابع فعالسازی و تعداد لایهها اشاره کرد. این موارد میتوانند در مناسب بودن الگوریتم برای یک مساله خاص اثرگذار باشند. چنین انعطافی در RBF نیز وجود دارد ولی نه به این شدت. برای مثال، MLP در تعداد لایههای بالا یکی از الگوریتمهای اساسی است که در بحث یادگیری عمیق نیز مطرح میشود. به زبان ساده، یادگیری عمیق در واقع چیزی به جز شبکهها عصبی کلاسیک نیست، منتها در لایههای خیلی زیاد تعریف شده که همان مفهوم «Deep» یا ژرف و عمیق بودن یادگیری نیز از همین موضوع نشات میگیرد.
در RBF، کاربر اساسا مجبور است به ازای هر پیچیدگی که در «دادهها» وجود دارد، یک «نرورن» اضافه کند و این تعداد نرورنها یک مصالحه دارند و فرد اگر بخواهد آن را خیلی دقیق کند مجبور میشود تعداد نورنها و پیچدگی مدل را افزایش دهد و اگر بخواهد پیچیدگی مدل را کاهش بدهد در واقع مجبور میشود از دقت مدل بکاهد. این موضوع البته در اکثر الگوریتمها وجود دارد ولی در RBF خیلی ملموستر و و مشهودتر است.
یک رویکرد در این حالت این است که کاربر شکل این الگوریتمها را از نظر ریاضی بشناسد و بداند و حتی اگر درباره آنها مطمئن هم نباشد، با اعمال آنها روی چند مساله این موضوع به طور کامل برای ایشان روشن میشود. نوع مسائلی که قصد حل کردن آنها وجود دارد نیز خیلی مهم هستند.
بعنوان پیشنهاد اگر مساله «یادگیری نظارت شده» (Supervised Learning) است، آن وقت میتوان از MLP، SVM یا RBF نیز استفاده کرد. در غیر این صورت اگر مساله «یادگیری غیر نظارت شده» (Unsupervised Learning) است، مساله چیز دیگری میشود و باید به سراغ SOM ،K-Means و دیگر گزینهها رفت. وقتی نوع مساله «خوشهبندی» (Clustering) است در نتیجه از SOM ،K-Means و Neural Gas و چنین مواردی استفاده میشود، اما وقتی مساله «دستهبندی» و نظارت شده است میتوان از LVQ و MLP استفاده کرد. اگر مساله «رگرسیون» (Regression) و پیوسته باشد، مثلا MLP باید استفاده شود و دیگر نمیتوان از LVQ استفاده کرد. البته منظور LVQ کلاسیک است. زیرا LVQ تعمیم یافته برای مسائل پیوسته نیز وجود دارد.
همه اینها یعنی شناخت فرد از مساله خیلی مهم هست و فرد باید بداند کلیدی که در دست او قرار دارد چه قفلی را باز میکند. این شناخت یعنی مساله را باید شناخت و دانست که چه باید کرد و همچنین باید دانست که برای حل یک مساله مشخص کدام یک از این روشها را باید استفاده کرد.
این طبقهبندی به فرد کمک میکند تا بتواند روش مناسب را انتخاب کند. ولی در حالت کلی این جمله درست نیست که بگوییم اگر الگوریتم MLP را یاد گرفتیم کافی است. بله؛ شاید برای طیف وسیعی از مسائل پاسخگو باشد اما یک زمانهایی هست که جوابگو نیست و باید برای بهتر کردن «کارایی» (Performance) یک روش دیگر را امتحان کرد. به عنوان مثالی دیگر، میتوان گفت اگر فرد تا دیروز از رگرسیون برای حل مسائل استفاده کرده است و اکنون قصد دارد مسائل خوشهبندی را حل کند دیگر MLP پاسخگو نخواهد بود چون ذات این الگوریتم نظارت شده است. به هر حال کلیه این موارد در انتخاب ابزار نقش تعیین کنندهای دارند و البته نباید فراموش کرد که هر ابزاری مزایا و معیاب خودش را دارد و نمیشود با اتکا به یکی از موارد همه مسائل را حل کرد.