جدول قواعد در سیستم های فازی – پادکست پرسش و پاسخ
یکی از موضوعاتی که در بحث طراحی سیستمهای فازی مطرح میشود، ساخت جدول «قواعد فازی» (Rules Table) است. دانشجویان زیادی با این پرسش مواجه هستند که در صورت زیاد شدن متغیرهای ورودی، جدول فازی به چه صورت میشود. دکتر «سید مصطفی کلامی هریس»، در پادکستی که در ادامه آمده، به این پرسش به طور مشروح پاسخ داده است. نسخه متنی این پادکست نیز در همین مطلب قرار دارد. البته، منبع اصلی همچنان فایل صوتی محسوب میشود.
پادکست پیرامون جدول قواعد در سیستم های فازی
نسخه نوشتاری
یکی از دوستان پرسشی را مطرح کردند مبنی بر اینکه اگر در یک سیستم فازی که قصد طراحی آن را داریم، تعداد متغیرهای ورودی پنج تا باشد، «جدول قواعد» (Rules Table) به چه صورت میشود؟ زیرا در مثال موجود در آموزش «سیستمهای فازی» که در فرادرس منتشر شده است، یک سیستم با دو ورودی بوده و طبیعتا با افزایش آنها به پنج تا، کار پیچده میشود. بله؛ درست است. در آن آموزش نیز اشاره شد که اگر تعداد متغیرهای ورودی زیاد باشد، دیگر نمیتوان همه قواعد (Rules) ممکن را طراحی کرد و بعد آنها را به صورت یک سری مواردی وارد کنید در طراحی سیستم فازی و مثلا نمایش بدید؛ و اصلا این کار درست نیست.
یک راهکار این است که فرد آن را طراحی کند و بعد ببینید که در این سیستم چه قواعدی اساسا «فایر» (Firing) میشوند. یعنی یک سری قواعد وجود دارد که اساسا هیچ وقت استفاده نمیشوند زیرا پیش شرط آنها هیچ وقت برقرار نیست؛ بنابراین، در واقع اصطلاحا «کاهش قواعد» (Rule Reduction) انجام داده میشود. بدین شکل، قواعدی که زائد هستند حذف میشوند و یک سری از قواعد باقی میماند. در واقع آنچه پیرامون آن صحبت میکنیم، مثلا پنج تا متغیر داریم هر کدام سه حالت دارند و بنابراین سه به توان پنج تا قاعده میتوان تعریف کرد.
ولی واقعیت این است که این تنسور و این جدول از ماتریسها که تعریف شده، این Ruleهایی که تعریف شدهاند، چیزی نیست که همه نقاط آن مورد استفاده باشند. ما به یک چیز اسپارس (خلوت | Sparse) احتیاج داریم. شاید از بین همه این موارد، تنها ده قاعده باشد که بتواند کل سیستم را توصیف کند. برای این کار ما مسیر را خلاصهتر میکنیم و به سراغ روشهایی میرویم که بر اساس داده یا بر اساس تجربه، روی موارد متحملتر تمرکز میکنند و یا اصلا به مواردی که خارج از احتمال است نمیپردازند. زیرا قاعده فازی امکان «برونیابی» (Extrapolation) را دارد و میتوان آن را تعمیم داد. ما اگر روی جاهایی که بیشتر در آنها داده داریم یا احتمال وقوع آنها بیشتر است، کافی خواهد بود.
یکی از این روشها این است که اگر کاربر داده دارد، مثلا با قاعده ANFIS آن را آموزش (Training) دهد. خود ANFIS، به ویژه مواردی که با استفاده از مثلا Fuzzy C-Means آموزش داده میشود، مثلا کاربر میگوید ده تا «خوشه» (Cluster) دارد و آن هم ده Rule را به کاربر میدهد. نیازی نیست که سه به توان پنج تا قاعده داشته باشد که فوقالعاده زیاد است. در واقع، یکی از راهکارها، کاهش قاعده است؛ منتها یک روش «Rule Reduction» آن است که بعد از طراحی این کار انجام شود که من اصلا این روش را توصیه نمیکنم و درست هم نیست؛ روش دیگر این است که کار به روشهایی سپرده شود که از همان ابتدا با کمترین تعداد قاعده ممکن سیستم را میسازند. زیرا واقعا لازم نیست. جایی که پنج ورودی باشد و هر کدام از ورودیها نیز سه تا تابع عضویت داشته باشند، این تعداد Rule واقعا لازم نیست. یعنی خیلی پیچدهتر از چیزی است که واقعا لازم باشد.
به همین دلیل من باز ارجاع میدهم به همان «آموزش سیستمهای فازی»؛ در آنجا این موضوع گفته شده که ما باید از روشهایی استفاده کنیم که کمترین تعداد قاعده را دارد. اینکه Grid-Based باشد، اینچنین بر اساس جدول جلو برویم به عنوان یک مثال آموزشی یا برای تعداد ورودی کم خوب است؛ اما برای مسالهای که تعداد ورودیهای آن بالا رفته بالا و مساله پیچدهتر شده، مناسب نخواهد بود.
برای دانلود کردن و شنیدن دیگر پادکستهای دکتر سید مصطفی کلامی هریس در مجله فرادرس، روی این لینک [+] کلیک کنید.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای سیستمها و منطق فازی
- آموزش سیستمهای فازی در متلب
- مجموعه آموزشهای مهندسی کنترل
- آموزش دادهکاوی یا Data Mining در متلب
- مجموعه آموزشهای شبکههای عصبی مصنوعی
^^