TSK Modeling
TSK Modeling
در روش مدلسازی تاکاگی سوگنو تمامی توابع عضویتها خطی میباشند و بخش then partمربوط
به هر ruleنیز یک ابر صفحه از ورودیهای سیستم هستند .شکل کلی قوانین به صورت زیر میباشد :
توابع عضویت هم به صورت کامال خطی با شیبهای مثبت و منفی است .در شکل زیر این توابع عضویت
نمایش داده شدهاند.
نتیجهی if partرا معموال به صورت minمیزان اعتبار درستی هر بخش از آن در نظر میگیرند ،ما برای
پیادهسازی طبق مقالهای که از آن استفاده کردیم حاصلضرب آنها را به عنوان میزان اعتبار هر قانون در نظر
میگیریم.
1
Takagi Sugeno modeling
𝑛𝑖𝜇 ∗ … 𝜇𝑖 = 𝜇𝑖1 ∗ 𝜇𝑖2
𝑖̂𝑦 𝑖𝜇 ∑
= ̂𝑦 𝑖𝜇 ∑
∗∗
اما توابع عضویت و ضرایب ابرصفحهی خروجی باید با استفاده از یک عملیات بهینهسازی بدست آید .در
مقالهای که ما از آن استفاده کردیم فرض بر آن است که هر ورودی را به قسمتهای برابر تقسیم میکنیم و
در نتیجه مسالهی بهینهسازی غیر خطی پیدا کردن ضرایب خروجی هر قانون و ابتدا و انتهای هر تابع عضویت
تنها به پیدا کردن ضرایب 𝑛𝑖𝑝 𝑝𝑖0 , … ,ها محدود میشود .بنابراین اگر فرض کنیم محدودهی ورودی 𝑟𝑥 به
4قسمت تشکیل شده است توابع عضویت زیر را خواهیم داشت.
حال باید ضرایب را پیدا کنیم .برای پیدا کردن ضرایب باید یک مسئلهی least squareرا حل کنیم .با توجه
به اینکه ما دادههایی از سیستم داریم اگر فرض کنیم دادههای خروجی واقعی را با 𝑦 نشان دهیم و خروجی
ناشی از تخمین مدل ساخته شده را با ̂𝑦 نشان دهیم باید ضرایب را طوری تخمین بزنیم که:
‖𝜖‖2 = ‖𝑦 − 𝑦̂‖2
که در آن 𝜖 خطای تخمین و ] 𝑛𝑦 𝑦 = [𝑦1 , … ,و ] 𝑛̂𝑦 𝑦̂ = [𝑦̂1 , … ,بردارهای خروجی واقعی و
تخمینی هستند .با توجه به اینکه رابطهی∗∗ برای محاسبهی خروجی ،یک رابطهی خطی از 𝑗𝑖𝑝 است ،از
این رو میتوان محاسبات را به شکل خطی ماتریسی زیر نشان داد:
𝑃)𝑥(𝐴 = ̂𝑦
−1
𝑦 𝑇)𝑥(𝐴 ))𝑥(𝐴 𝑇)𝑥(𝐴( = 𝑃 >=
بنابراین بردار ضرایب 𝑃 با استفاده از شبه معکوس ماتریس )𝑥(𝐴 بدست میآید .ماتریس با استفاده
از ورودیهای آموزش سیستم و مقدار تابع عضویت بدست میآید.
مرجع:
• Manfred Mannel "Identifying rule based TSK fuzzy model ", Proc.
Seventh Eur. Congr. Intelligent Techniques Soft, 1999
نتایج شبیهسازی
در این بخش ما چهار تابع متفاوت را بوسیله الگوریم TSمدل مینماییم .در اینجا ما به ازای تعداد
تقسیمات متفاوت در ورودیها ( N xو ،) N xخروجی مدلسازی را نمایش میدهیم.
2 1
این تابع مطابق شکل زیر فقط به متغیر x 1بستگی دارد .ما به ازای مقادیر متفاوت تعداد خوشه
عمل مدلسازی را انجام میدهیم .بدون اثر بودن x 2در شکلهای زیر به راحتی نمایان است،
هنگامی که x 1را در مدلسازی در نظر نمیگیریم یعنی ، N x = 0عمال هیچگونه عمل مدل
1
سازی انجام نمیشود اما برای حالتی که ، N x = 0متغیر x 1توانسته تقریب خیلی خوبی از تابع
2
ارائه دهد ..در ادامه به ازای مقادیر متفاوت N xو N x = 0نتایج مدلسازی نشان داده شده
2 1
است.
y = ((sin(x 2 ) − sin(.5x 1 ))x 2 + sin(x 2 )) / 3 مدلسازی تابع
شکل تابع مطابق زیر میباشد .تفاوت این این تابع با تابع قبلی در این است که هر دو متغیر در خروجی موثر
هستند.
مدلسازی تابع
تابع مطابق شکل صفحه بعد ،حاصل از جابهجایی تابع سینوسی بر روی سهمی میباشد .در شکل دو نمای
این تابع نشان داده شده است .کد نویسی این تابع به شکل زیر میباشد:
;)[X1,Y1]=meshgrid(-10:.05:10,-10:.05:10
;)[m,n]=size(X1
;t=-20:.4:10000
;)sn=sin(.055*t
))for k=1: length(X1(:,1
;)yy(k,:)=-sn(round(2*X1(1,k)^2)+1+12500:round(2*X1(1,k)^2)+m+12500
end
مدلسازی سوگنو یاسوکاوا
Sugeno-Yasukawa Modeling
روش مدلسازی :Sugeno-Yasukawa
همانگونه که میدانیم روش Sugeno-yasukawaیک روش مدل سازی سیستم با استفاده از دادههای
ورودی و خروجی است بدین معنی که Nداده مشاهده از رفتار این سیستم در دست داریم و میخواهیم رفتار
آن را با استفاده از استنتاج فازی مدل نماییم .در واقع هدف بدست آوردن قواعد استنتاج ،شکل و پارامترهای
توابع عضویت از روی دادههاست.
فرقی که این روش مدلسازی با روشهای دیگر مدلسازی فازی دارد این است که در اغلب روشهای مدل-
سازی فازی ،ابتدا پارامترهای بخش مقدم مانند تعداد افرازهای انجام شده بر روی متغیر های ورودی ،شکل
توابع عضویت و شکل قواعد استنتاج تعیین میشوند و سپس با انجام روشهای بهینهسازی ،پارامترهای بخش
تالی مشخص میشوند .از جمله معایب اینگونه مدلسازیها میتوان به افزایش تعداد قواعد استنتاج (که
برخی از آنها واقعاً نقش چندانی در نتیجه مدلسازی ندارند) ،بار محاسباتی باال و فرض اولیه در مورد شکل
توابع عضویت اشاره کرد.
فرق اصلی این روش مدلسازی با بقیه روشها نیز در همین بخش است ،در روش ،Sugeno-Yasukawa
ابتدا پارامترهای بخش تالی سیستم استنتاج مشخص میشوند و از آنجا با نگاشت آنها بر روی فضای ورودی
پارامترهای بخش مقدم خودبخود مشخص میگردند.
این روش مدلسازی به طور مختصر به چند بخش کلی تقسیم میشود:
اولین کاری که در این روش مدلسازی صورت میگیرد کالستر کردن دادههای خروجی سیستم است که به
یکی از طرق روشهای کالسترینگ فازی صورت میپذیرد که ما در اینجا از روش کالستر کردن FCM
استفاده نمودهایم (دستور fcmدر متلب) .تنها نکتهای که در اینجا وجود دارد ،تعیین تعداد کالسترهاست،
زیرا همانگونه که میدانیم در این روش کالستر کردن تعداد کالسترها از قبل باید مشخص باشد .برای تعیین
تعداد کالسترها بصورت زیر عمل میکنیم :ابتدا از 1کالستر شروع میکنیم و سیستم را مدل میکنیم و
میزان خطای مدلسازی را با دادههای آزمایش اندازهگیری میکیم .سپس به ترتیب تعداد کالستر ها را افزایش
داده و همین اعمال را تکرار میکنیم تا وقتیکه به اولین مینیمم محلی در مقدار خطای مدلسازی برسیم .در
اینصورت این تعداد کالستر بهینه خواهد بود.
اگر فرض کنیم دادههای خروجی مطابق با شکل زیر به سه کالستر تقسیم شدهاند:
μ0 μ0
x10 x20
اگر همین کار را برای دیگر نقاط متعلق با کالستر C1انجام دهیم ،شکل توابع عضویت بر روی ورودیها شکلی
شبیه به زیر بدست خواهد آمد.
که معموالً به علت سادگی در محاسبات بر روی آن یک ذوزنقه fitمیکنیم مانند شکل زیر:
A1 A2
X1 X2
با همین عمل نگاشت ساده شکل قاعده استنتاج نیز بدست میآید که بصورت زیر خواهد بود:
اگر x1متعلق است به A1و x2متعلق است به A2در این صورت yمتعلق است به .C1
اگر همین عمل را برای دیگر کالسترها نیز تکرار کنیم ،به تعداد کالسترها قاعده خواهیم داشت و لذا با اینکار
شکل توابع عضویت بر روی فضای ورودی ،تعداد افرازها بر روی فضای ورودی و قواعد استنتاج همه بدست
میآیند.
در اینجا ما به جای fitکردن ذوزنقه از نمودار تکه خطیای استفاده میکنیم .تابعهای عضویت بدست امده
از تصویرسازی فضای خروجی دارای یک فرم منظم نمیباشند .ازاین رو ما در ابتدا یک عمل فیلترینگ
پایینگذر را بر روی انها در جهت نرمسازی توابع عضویت انجام میدهیم .انگاه از نمودارهای بدست آمده از
فیلتریگ ،نمونهبرداری میکنیم .حال از نمونههای بدست امده به عنوان تابع عضویت استفاده مینماییم .در
برنامه paramdet_m.mاین عمل انجام میشود .در آنجا از تابع عضویت 20نقطه به عنوان نماینده در نظر
میگیریم .در شکل زیر ،نمودار 3تابع عضویت را قبل و بعد از فیلتر برای تابع سینک مانند
y = 3( sin( x1 ) )2 + 5( sin( x2 ) )2برای ورودی 𝑥1نشان داده شده است .در اینجا خروجی را به دو کالس
x1 x2
خوشهبندی نمودهایم .شکا تقریبی تابع بوسیله YSبوسیله دو خوشه نیز در زیر نشان داده شده است .همانطور
که از شکل تابع سینک نمایان است انتظار 3کالس در مراکز صفر و غیر صفر داریم و این در توابع عضویت
بدست آمده از تصویر فضای خروجی به ورودی ،نیزتایید شده است.
After Filtering
1
0.8
0.6
0.4
0.2
0
-10 -5 0 5 10
x1
نتایج شبیهسازی:
در اینجا ما چهار تابع را بوسیله الگوریتم YSمدلسازی میکنیم .هر تابع به ازای مقادیر متفاوت تعداد
خوشه 32 ،16 ،8 ،2و 64مدل سازی میشوند .بر روی هر نمایش هر مدل مقدار MSEنیز نمایش داده
شده است .برای هر تابع 10000نمونه تولید نموده ،و از آنها به عنوان دادههای ورودی خروجی مشاهده شده
استفاده میکنیم و با آنها عمل مدل سازی را انجام میدهیم.
این تابع ،یک تابع سینک مانند میباشد در ادامه به ازای تعداد خوشههای 8 ،2و ،16خروجی مدل به همراه
MSEنمایش داده شده است.
) y = x 1 sin(.5x 1 مدلسازی تابع
این تابع مطابق شکل زیر فقط به متغیر x 1بستگی دارد .ما به ازای مقادیر متفاوت تعداد خوشه عمل
مدلسازی را انجام میدهیم .البته در اینجا ما متغیر بیاثر را حذف نکردهایم و در مدلسازی آن را در نظر
گرفتهایم.
y = ((sin(x 2 ) − sin(.5x 1 ))x 2 + sin(x 2 )) / 3 مدلسازی تابع
شکل تابع مطابق زیر میباشد .تفاوت این این تابع با تابع قبلی در این است که هر دو متغیر در خروجی موثر
هستند.
همانطور که از نتایج شبیهسازی نمایان است ،در این مثال ،به نظر میرسد ،الگوریتم YSدر مدل کردن قله
موجود در تابع اصلی در این حالت خاص ناتوان است ،به طوری که با افزایش تعدادخوشهها تاثیری چندانی
در بهبود مدلینگ این ناحیه نداریم وبلکه این این قله در حدود 6-7بریده شده است.
مدلسازی تابع
تابع مطابق شکل صفحه بعد ،حاصل از جابهجایی تابع سینوسی بر روی سهمی میباشد .در شکل دو نمای
این تابع نشان داده شده است .کد نویسی این تابع به شکل زیر میباشد:
;)[X1,Y1]=meshgrid(-10:.05:10,-10:.05:10
;)[m,n]=size(X1
;t=-20:.4:10000
;)sn=sin(.055*t
))for k=1: length(X1(:,1
;)yy(k,:)=-sn(round(2*X1(1,k)^2)+1+12500:round(2*X1(1,k)^2)+m+12500
end
این شکل نمای باالی تابع است .نمودار سهمی به راحتی قابل رویت است.
همانطور که از شکلهای باال نمایان است ،به نظر میرسد الگوریتم YSدر مدل کردن قوس سهمی این تابع
ناتوان است .با توجه به اینکه تابع مقادیر تابع بین +1و -1است ،مقادیر MSEخیلی بزرگ هستند.