0% found this document useful (0 votes)
6 views29 pages

TSK Modeling

Uploaded by

mahsa.kh.1980
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views29 pages

TSK Modeling

Uploaded by

mahsa.kh.1980
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

‫بسم اهلل الرحمن الرحیم‬

‫مدلسازی تاکاگی سوگنو‬


Takagi Sugeno Modeling
‫‪1‬‬
‫روش مدلسازی تاکاگی سوگنو‬

‫در روش مدلسازی تاکاگی سوگنو تمامی توابع عضویتها خطی میباشند و بخش ‪ then part‬مربوط‬
‫به هر ‪ rule‬نیز یک ابر صفحه از ورودیهای سیستم هستند‪ .‬شکل کلی قوانین به صورت زیر میباشد ‪:‬‬

‫⏟ 𝑛𝑒‪𝑖𝑓 𝑥1 𝑖𝑠 𝐹1𝑟 𝑎𝑛𝑑 … 𝑎𝑛𝑑 𝑥𝑛 𝑖𝑠 𝐹𝑛𝑟 𝑡ℎ‬‬


‫⏟‬ ‫𝑛𝑥 𝑟𝑛𝑝 ‪𝑦𝑟 = 𝑝0𝑟 + 𝑝1𝑟 𝑥1 + ⋯ +‬‬
‫𝑡𝑟𝑎𝑝 𝑓𝑖‬ ‫𝑡𝑟𝑎𝑝 𝑛𝑒‪𝑡ℎ‬‬

‫توابع عضویت هم به صورت کامال خطی با شیبهای مثبت و منفی است‪ .‬در شکل زیر این توابع عضویت‬
‫نمایش داده شدهاند‪.‬‬

‫)𝑏 ‪−(𝑥 −‬‬


‫= )𝑥(𝜇‬
‫𝑎‪𝑏−‬‬

‫)𝑎 ‪(𝑥 −‬‬


‫= )𝑥(𝜇‬
‫𝑎‪𝑏−‬‬

‫نتیجهی ‪ if part‬را معموال به صورت ‪ min‬میزان اعتبار درستی هر بخش از آن در نظر میگیرند‪ ،‬ما برای‬
‫پیادهسازی طبق مقالهای که از آن استفاده کردیم حاصلضرب آنها را به عنوان میزان اعتبار هر قانون در نظر‬
‫میگیریم‪.‬‬

‫‪1‬‬
‫‪Takagi Sugeno modeling‬‬
‫𝑛𝑖𝜇 ∗ … ‪𝜇𝑖 = 𝜇𝑖1 ∗ 𝜇𝑖2‬‬

‫و خروجی نهایی سیستم را از فرمول زیر محاسبه میکنیم‪:‬‬

‫𝑖̂𝑦 𝑖𝜇 ∑‬
‫= ̂𝑦‬ ‫𝑖𝜇 ∑‬
‫∗∗‬

‫اما توابع عضویت و ضرایب ابرصفحهی خروجی باید با استفاده از یک عملیات بهینهسازی بدست آید‪ .‬در‬
‫مقالهای که ما از آن استفاده کردیم فرض بر آن است که هر ورودی را به قسمتهای برابر تقسیم میکنیم و‬
‫در نتیجه مسالهی بهینهسازی غیر خطی پیدا کردن ضرایب خروجی هر قانون و ابتدا و انتهای هر تابع عضویت‬
‫تنها به پیدا کردن ضرایب 𝑛𝑖𝑝 ‪ 𝑝𝑖0 , … ,‬ها محدود میشود‪ .‬بنابراین اگر فرض کنیم محدودهی ورودی 𝑟𝑥 به‬
‫‪ 4‬قسمت تشکیل شده است توابع عضویت زیر را خواهیم داشت‪.‬‬

‫حال باید ضرایب را پیدا کنیم‪ .‬برای پیدا کردن ضرایب باید یک مسئلهی ‪ least square‬را حل کنیم‪ .‬با توجه‬
‫به اینکه ما دادههایی از سیستم داریم اگر فرض کنیم دادههای خروجی واقعی را با 𝑦 نشان دهیم و خروجی‬
‫ناشی از تخمین مدل ساخته شده را با ̂𝑦 نشان دهیم باید ضرایب را طوری تخمین بزنیم که‪:‬‬

‫‪‖𝜖‖2 = ‖𝑦 − 𝑦̂‖2‬‬

‫که در آن 𝜖 خطای تخمین و ] 𝑛𝑦 ‪ 𝑦 = [𝑦1 , … ,‬و ] 𝑛̂𝑦 ‪ 𝑦̂ = [𝑦̂1 , … ,‬بردارهای خروجی واقعی و‬
‫تخمینی هستند‪ .‬با توجه به اینکه رابطهی∗∗ برای محاسبهی خروجی‪ ،‬یک رابطهی خطی از 𝑗𝑖𝑝 است‪ ،‬از‬
‫این رو میتوان محاسبات را به شکل خطی ماتریسی زیر نشان داد‪:‬‬

‫𝑃)𝑥(𝐴 = ̂𝑦‬

‫از دو رابطهیباال داریم‪:‬‬

‫)𝑃)𝑥(𝐴 ‪‖𝜖‖2 = ‖𝑦 − 𝑦̂‖2 = (𝑦 − 𝐴(𝑥)𝑃)𝑇 (𝑦 −‬‬


‫‪𝜕‖𝜖‖2‬‬
‫>=‬ ‫‪= −𝐴(𝑥)𝑇 (𝑦 − 𝐴(𝑥)𝑃) = 0‬‬
‫𝑃𝜕‬

‫‪−1‬‬
‫𝑦 𝑇)𝑥(𝐴 ))𝑥(𝐴 𝑇)𝑥(𝐴( = 𝑃 >=‬

‫بنابراین بردار ضرایب 𝑃 با استفاده از شبه معکوس ماتریس )𝑥(𝐴 بدست میآید‪ .‬ماتریس با استفاده‬
‫از ورودیهای آموزش سیستم و مقدار تابع عضویت بدست میآید‪.‬‬

‫مرجع‪:‬‬

‫• ‪Manfred Mannel "Identifying rule based TSK fuzzy model ", Proc.‬‬
‫‪Seventh Eur. Congr. Intelligent Techniques Soft, 1999‬‬

‫نتایج شبیهسازی‬
‫در این بخش ما چهار تابع متفاوت را بوسیله الگوریم ‪ TS‬مدل مینماییم‪ .‬در اینجا ما به ازای تعداد‬
‫تقسیمات متفاوت در ورودیها ( ‪ N x‬و ‪ ،) N x‬خروجی مدلسازی را نمایش میدهیم‪.‬‬
‫‪2‬‬ ‫‪1‬‬

‫‪sin( x1 ) 2‬‬ ‫‪sin( x2 ) 2‬‬ ‫مدلسازی تابع‬


‫(‪y = 3‬‬ ‫(‪) + 5‬‬ ‫)‬
‫‪x1‬‬ ‫‪x2‬‬
‫) ‪y = x 1 sin(.5x 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‬‬
‫ابتدا پارامترهای بخش تالی سیستم استنتاج مشخص میشوند و از آنجا با نگاشت آنها بر روی فضای ورودی‬
‫پارامترهای بخش مقدم خودبخود مشخص میگردند‪.‬‬

‫الگوریتم مدلسازی ‪Sugeno-Yasukawa‬‬

‫این روش مدلسازی به طور مختصر به چند بخش کلی تقسیم میشود‪:‬‬

‫‪ -1‬کالستر کردن فضای خروجی‬


‫‪ -2‬نگاشت کالسترهای تعیین شده به فضای ورودی و ساختن قواعد استنتاج‬
‫‪ -3‬بهبود نتایج از نظر تعیین دادههای موثر در مدلسازی‪ ،‬تعداد کالسترهای فضای خروجی و شکل توابع‬
‫عضویت‬

‫کالستر کردن فضای خروجی‪:‬‬

‫اولین کاری که در این روش مدلسازی صورت میگیرد کالستر کردن دادههای خروجی سیستم است که به‬
‫یکی از طرق روشهای کالسترینگ فازی صورت میپذیرد که ما در اینجا از روش کالستر کردن ‪FCM‬‬
‫استفاده نمودهایم (دستور ‪ fcm‬در متلب)‪ .‬تنها نکتهای که در اینجا وجود دارد‪ ،‬تعیین تعداد کالسترهاست‪،‬‬
‫زیرا همانگونه که میدانیم در این روش کالستر کردن تعداد کالسترها از قبل باید مشخص باشد‪ .‬برای تعیین‬
‫تعداد کالسترها بصورت زیر عمل میکنیم‪ :‬ابتدا از ‪ 1‬کالستر شروع میکنیم و سیستم را مدل میکنیم و‬
‫میزان خطای مدلسازی را با دادههای آزمایش اندازهگیری میکیم‪ .‬سپس به ترتیب تعداد کالستر ها را افزایش‬
‫داده و همین اعمال را تکرار میکنیم تا وقتیکه به اولین مینیمم محلی در مقدار خطای مدلسازی برسیم‪ .‬در‬
‫اینصورت این تعداد کالستر بهینه خواهد بود‪.‬‬

‫نگاشت کالسترهای تعیین شده به فضای ورودی و ساختن قواعد استنتاج‬

‫اگر فرض کنیم دادههای خروجی مطابق با شکل زیر به سه کالستر تقسیم شدهاند‪:‬‬

‫‪C1‬‬ ‫‪C2‬‬ ‫‪C3‬‬


‫‪μ0‬‬
‫* ** * ** ** * * ** *** ** * * * * ** *‬ ‫‪y‬‬
‫)‪(x10,x20,y0‬‬
‫و میخواهیم به عنوان مثال کالستر ‪ C1‬را بر روی فضای ورودی مثالً ‪ X1‬و ‪ X2‬نگاشت دهیم‪ .‬برای اینکار‬
‫تک تک دادههایی را که درجه تعلق آنها به کالستر ‪ C1‬بزرگتر از صفر است را در نظر میگیریم مانند ‪ y0‬با‬
‫درجه تعلق ‪ .µ0‬هر دادهء خروجی دارای یک ‪ x1‬و ‪ x2‬متناظر با آن است مانند ‪ x10‬و ‪ .x20‬برای نگاشت‬
‫داده ‪ y0‬بر روی فضاهای ورودی کافی است دو نقطه ‪ x10‬و ‪ x20‬را بر روی فضای ورودی در نظر گرفته و‬
‫به آنها درجه تعلق ‪ µ0‬نسبت میدهیم‪ .‬مانند شکل زیر‪:‬‬

‫‪μ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‬نمونه تولید نموده‪ ،‬و از آنها به عنوان دادههای ورودی خروجی مشاهده شده‬
‫استفاده میکنیم و با آنها عمل مدل سازی را انجام میدهیم‪.‬‬

‫‪sin( x1 ) 2‬‬ ‫‪sin( x2 ) 2‬‬ ‫مدلسازی تابع‬


‫(‪y = 3‬‬ ‫(‪) + 5‬‬ ‫)‬
‫‪x1‬‬ ‫‪x2‬‬

‫این تابع‪ ،‬یک تابع سینک مانند میباشد در ادامه به ازای تعداد خوشههای ‪ 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‬خیلی بزرگ هستند‪.‬‬

You might also like