برآورد پارامترهای رگرسیون خطی ساده

به منظور برآورد پارامترهای رگرسیون خطی ساده، کافی است تابع مجموع مربعات خطا را کمینه کرد. برای این کار مراحل زیر باید طی شوند:

  • محاسبه مجموع توان دوم خطا

∑(yi−(β^0+β^1xi))2

  • مشتق مجموع مربعات خطا برحسب پارامتر β^0

∑(−yi+β^0+β^1xi)

  • برابر قرار دادن مشتق با صفر به منظور پیدا کردن نقاط کمینه

∑(−yi+β^0+β^1xi)=0

  • پیدا کردن ریشه برای معادله حاصل برحسب β^0

β^0=y¯−β^1x¯

  • مشتق مجموع مربعات خطا بر حسب پارامتر  β^1

∑(−2xiyi+2β^0xi+2β^1xi2)

  • جایگذاری β^0 و پیدا کردن ریشه برای معادله حاصل برحسب β^1

−∑(xiyi+(y¯−β^1x¯)∑xi+β^1∑xi2)=0

β1^=∑(xi−x¯)(yi−y¯)∑(xi−x¯)2

به این ترتیب برآورد پارامترهای مدل خطی به صورت زیر خواهند بود.

β1^=∑(xi−x¯)(yi−y¯)∑(xi−x¯)2

β0^=y¯−β1^x¯

که در آن   و  میانگین x و y هستند.

برای راحتی محاسبات، می‌توان برآورد β1 را به فرم دیگری نیز نوشت:

β1^=n(xy¯−x¯y¯))(n−1)σx2

که منظور از xy¯ میانگین حاصلضرب x و y بوده و σx2 نیز بیانگر واریانس مقدارهای x است.

اگر y^ مقدار برآورد برای متغیر وابسته باشد، می‌توانیم آن را میانگین مشاهدات برای متغیر وابسته به ازای مقدار ثابت متغیر مستقل در نظر گرفت. پس با فرض اینکه میانگین جمله خطا نیز صفر است، خواهیم داشت:

y^=E(Y|X=x)=β0^+β1^x

که در آن E(Y|X=x) نشان‌دهنده امید ریاضی (متوسط) شرطی است و همچنین  β0^ و β^1 برآوردهای مربوط به هر یک از پارامترها هستند.

نکته: به راحتی دیده می‌شود که میانگین مربوط به متغیر مستقل و وابسته روی خط رگرسیون قرار دارند. یعنی این نقطه در معادله خط رگرسیون صدق می‌کند. زیرا با توجه به محاسبه β0 داریم:

β0^=y¯−β1^x¯→Y¯=β^0+β^1X¯

مثال

اطلاعات مربوط به ۵۰ خانه شامل قیمت (به میلیون ریال) و متراژ (متر مربع) در شهر تهران جمع‌آوری شده است. این اطلاعات را می‌توانید با قالب اکسل از اینجا دریافت کنید.

با توجه به ضریب همبستگی بین این دو متغیر که برابر با 0.9891 است،‌ مشخص است که رابطه خطی شدیدی بینشان برقرار است. اگر فرض کنیم قیمت خانه متغیری وابسته به متراژ است، محاسبات اولیه برای برآورد پارامترهای مدل رگرسیونی در جدول زیر قرار گرفته.

XY¯ σX2
84.9 451.136 40350.6 411.724

بر این اساس برآورد پارامترهای مدل خطی به صورت β^0=19.965 و β^1=5.078  خواهد بود. در نتیجه می‌توان معادله مربوط برآورد مقدار متغیر وابسته را به صورت زیر نوشت:

yi^=19.965+5.078xi

پس اگر لازم باشد که ارزش خانه‌ای با متراژ 61 متر محاسبه شود، کافی است در معادله بالا برای xi‌ مقدار 61 را جایگزین کرده،‌ مقدار y^i را بدست آوریم که برابر با 329.758 میلیون ریال است. در تصویر زیر نمودار مربوط به داده‌ها و خط رگرسیون دیده می‌شود.

yi^=19.965+5.078(61)=329.758

 

 

تعریف رگرسیون خطی (Linear Regression) قسمت 1
تعریف رگرسیون خطی (Linear Regression) قسمت 2
تعریف رگرسیون خطی (Linear Regression) قسمت 3
تعریف رگرسیون خطی (Linear Regression) قسمت 4
تعریف رگرسیون خطی (Linear Regression) قسمت 5
تعریف رگرسیون خطی (Linear Regression) قسمت 6
تعریف رگرسیون خطی (Linear Regression) قسمت 7

مفهوم رگرسیون

در آمار، رگرسیون خطی یک روریکرد مدل خطی بین متغیر «پاسخ» (Response) با یک یا چند متغیر «توصیفی» (Explanatory) است. اغلب برای کشف مدل رابطه‌ی خطی بین متغیرها از رگرسیون (Regression) استفاده می‌شود. در این حالت فرض بر این است که یک یا چند متغیر توصیفی که مقدار آن‌ها مستقل از بقیه متغیرها یا تحت کنترل محقق است، می‌تواند در پیش‌بینی متغیر پاسخ که مقدارش وابسته به متغیرهای توصیفی و تحت کنترل محقق نیست، موثر باشد. هدف از انجام تحلیل رگرسیون شناسایی مدل خطی این رابطه‌ است.

در ادامه از  متغیر وابسته به جای متغیر پاسخ و متغیر مستقل به جای متغیر توصیفی استفاده می‌کنیم.

از آنجایی که ممکن است علاوه بر متغیرهای مستقل، عوامل زیاد و ناشناخته‌ دیگری نیز در تعیین مقدار متغیر وابسته نقش داشته باشند، مدل رگرسیونی را با مناسب‌ترین تعداد متغیر مستقل در نظر گرفته و میزان خطا را به عنوان نماینده عوامل تصادفی دیگری که قابل شناسایی نبودند در نظر می‌گیریم که انتظار است کمتر در تغییرات متغیر وابسته نقش داشته باشند.

تاریخچه رگرسیون

واژه رگرسیون برای اولین بار در مقاله‌ معروف فرانسیس گالتون دیده شد که در مورد قد فرزندان و والدینشان بود. این واژه به معنی بازگشت است. او در مقاله خود در سال 1۸۷۷ اشاره می‌کند که قد فرزندان قد بلند به میانگین قد جامعه میل می‌کند. او این رابطه را «بازگشت» (Regress) نامید.

هر چند واژه رگرسیون در شاخه علوم زیستی معرفی شد ولی آنچه امروزه به نام رگرسیون می‌شناسیم،‌ روشی است که توسط «گاوس» (Gauss) در سال 1۸۰۹ معرفی شد تا به کمک آن پارامترهای مجهول رابطه بین مدار سیاره‌های منظومه شمسی را برآورد کند.

بعدها روش گاوس توسط پیرسون (Pearson) توسعه یافت و با مفاهیم آماری آمیخته شد. همچنین پیرسون توزیع توام متغیر وابسته و مستقل را توزیع گاوسی در نظر گرفت. بعدها «فیشر» (R. A. Fisher) توزیع متغیر وابسته به شرط متغیر مستقل را توزیع گاوسی محسوب کرد.

مدل رگرسیون خطی ساده

اگر برای شناسایی و پیش‌بینی متغیر وابسته فقط از یک متغیر مستقل استفاده شود، مدل را «رگرسیون خطی ساده» (Simple Linear Regression) می‌گویند. فرم مدل رگرسیون خطی ساده به صورت زیر است:

Y=β0+β1X+ϵ

همانطور که دیده می‌شود این رابطه، معادله یک خط است که جمله خطا یا همان ϵ‌ به آن اضافه شده. پارامترهای این مدل خطی عرض از مبدا (β0) و شیب خط (β1) است. شیب خط در حالت رگرسیون خطی ساده، نشان می‌دهد که میزان حساسیت متغیر وابسته به متغیر مستقل چقدر است. به این معنی که با افزایش یک واحد به مقدار متغیر مستقل چه میزان متغیر وابسته تغییر خواهد کرد. عرض از مبدا نیز بیانگر مقداری از متغیر وابسته است که به ازاء مقدار متغیر مستقل برابر با صفر محاسبه می‌شود. به شکل دیگر می‌توان مقدار ثابت یا عرض از مبدا را مقدار متوسط متغیر وابسته به ازاء حذف متغیر مستقل در نظر گرفت.

برای مثال فرض کنید کارخانه‌ای می‌خواهد میزان هزینه‌هایش را براساس ساعت کار برآورد کند. شیب خط حاصل از برآورد نشان می‌دهد به ازای یک ساعت افزایش ساعت کاری چه میزان بر هزینه‌هایش افزوده خواهد شد. از طرفی عرض از مبدا خط رگرسیون نیز هزینه ثابت کارخانه حتی زمانی که ساعت کاری نیست نشان می‌دهد. این هزینه را می‌توان هزینه‌های ثابت مانند دستمزد نگهبانان و هزینه روشنایی فضای کارخانه فرض کرد.

گاهی مدل رگرسیونی را بدون عرض از مبدا در نظر می‌گیرند و  β0=0 محسوب می‌کنند. این کار به این معنی است که با صفر شدن مقدار متغیر مستقل، مقدار متغیر وابسته نیز باید صفر در نظر گرفته شود. زمانی که محقق مطمئن باشد که که خط رگرسیون باید از مبدا مختصات عبور کند، این گونه مدل در نظر گرفته می‌شود. فرم مدل رگرسیونی در این حالت به صورت زیر است:

Y=β1X+ϵ

از آنجایی که پیش‌بینی رابطه بین متغیر وابسته و مستقل به شکل دقیق نیست، جمله خطا را یک «متغیر تصادفی» (Random Variable) با میانگین صفر در نظر می‌گیرند تا این رابطه دارای اریبی نباشد.

باید توجه داشت که منظور از رابطه خطی در مدل رگرسیون، وجود رابطه خطی بین ضرایب است نه بین متغیرهای مستقل. برای مثال این مدل y=β0+β1×2+ϵ را نیز می‌توان مدل خطی در نظر گرفت در حالیکه مدل y=β0xβ1+ϵ دیگر خطی نیست و به مدل نمایی شهرت دارد.

همچنین در فرضیات این مدل، خطا یک جمله تصادفی است و تغییرات آن مستقل از متغیر X‌ است. به این ترتیب مقدار خطا وابسته به مقدار متغیر مستقل نیست.

در رگرسیون خطی سعی می‌شود، به کمک معادله خطی که توسط روش رگرسیون معرفی می‌شود، برآورد مقدار متغیر وابسته به ازای مقدارهای مختلف متغیر مستقل توسط خط رگرسیون بدست آید. به منظور برآورد پارامترهای مناسب برای مدل، کوشش می‌شود براساس داده‌های موجود، مدلی انتخاب می‌شود که کمترین خطا را داشته باشد.

روش‌های مختلفی برای تعریف خطا و حداقل کردن آن وجود دارد. معیاری که در مدل رگرسیون خطی ساده به کار می‌رود، کمینه کردن مجموع مربعات خطا است. از آنجایی که میانگین مقدارهای خطا صفر در نظر گرفته شده است، می‌دانیم زمانی مجموع مربعات خطا، حداقل ممکن را خواهد داشت که توزیع داده‌ها نرمال باشند. در نتیجه، نرمال بودن داده‌های متغییر وابسته یا باقی‌مانده‌ها یکی از فرضیات مهم برای مدل رگرسیونی خطی ساده است.

شکل زیر به منظور توضیح نرمال بودن مقدار خطا ترسیم شده است. در هر مقدار از متغیر مستقل ممکن است بیش از یک مقدار برای متغیر وابسته مشاهده شود. مقدار پیش‌بینی شده برای هر یک از این مقدارها ثابت است که توسط معادله خط رگرسیون برآورد می‌شود.

برای مثال تعدادی مقدار برای متغیر وابسته براساس مقدار x=65 وجود دارد که شکل توزیع فراوانی آن‌ها به صورت نرمال با میانگین β0+β1×65 است. همچنین برای نقطه ۹۰ نیز مقدار پیش‌بینی یا برآورد برای متغیر وابسته به صورت β0+β1×90 خواهد بود. در هر دو حالت واریانس خطا یا واریانس مقدارهای پیش‌بینی‌شده (پهنای منحنی زنگی شکل)  ثابت است.

در تصویر زیر چهار نقطه از مشاهدات (x,y) به همراه خط رگرسیون دیده می‌شوند که در آن خط رگرسیون با رنگ آبی، نقطه‌های مربوط به مشاهدات با رنگ قرمز و فاصله هر نقطه از خط رگرسیون (خطای برآورد) با رنگ سبز نشان داده شده است.

 

Linear_least_squares
نمودار نقطه‌ای متغیر مستقل و وابسته،‌ میزان خطا و خط رگرسیون

برای برآورد کردن پارامترهای مدل رگرسیونی باید معادله خطی یافت شود که از بین همه خطوط دیگر دارای کمترین مجموع توان دوم خطا باشد. یعنی ∑ϵ2 برای آن از بقیه خطوط کمتر باشد.

points_for_linear_regression
خطوط مناسب برای بیان رابطه بین متغیر مستقل و وابسته

به نظر شما در تصویر بالا،‌ کدام خط دارای مجموع مربعات خطای کمتری است؟ امکان تشخیص بهترین خط بدون استفاده از ابزارهای محاسباتی امکان‌پذیر نیست.

 

تعریف رگرسیون خطی (Linear Regression) قسمت 1
تعریف رگرسیون خطی (Linear Regression) قسمت 2
تعریف رگرسیون خطی (Linear Regression) قسمت 3
تعریف رگرسیون خطی (Linear Regression) قسمت 4
تعریف رگرسیون خطی (Linear Regression) قسمت 5
تعریف رگرسیون خطی (Linear Regression) قسمت 6
تعریف رگرسیون خطی (Linear Regression) قسمت 7

تنظیم مدل (Regularization)

پیچیدگی مدلهای پارامتری با تعداد پارامترهای مدل و مقادیر آن‌ها سنجیده می‌شود. هرچه این پیچیدگی بیشتر باشد خطر بیش‌برازش (Overfitting) برای مدل بیشتر است پدیده بیش‌برازش زمانی رخ می‌دهد که مدل بجای یادگیری الگوهای داده، داده را را حفظ می‌کند و در عمل یادگیری به خوبی انجام نمی‌شود. برای جلوگیری از بیش‌برازش در مدلهای خطی مانند رگرسیون خطی یارگرسیون لجستیک جریمه‌ای به تابع هزینه اضافه می‌شود تا از افزایش زیاد پارامترها جلوگیری شود. به این کار تنظیم مدل یا Regularization گفته می‌شود. دو راه متداول تنظیم مدلهای خطی روشهای و هستند. در روش ضریبی از نُرمِ به تابع هزینه اضافه می‌شود و در روش ضریبی از نُرمِ  که همان نُرمِ اقلیدسی است به تابع هزینه اضافه می‌شود.

در تنظیم مدل به روش  تابع هزینه را به این شکل تغییر می‌دهیم:

این روش تنظیم مدل که به روش لاسو (Lasso) نیز شهرت دارد باعث می‌شود که بسیاری از پارامترهای مدل نهائی صفر شوند و مدل به اصلاح خلوت (Sparse) شود.

در تنظیم مدل به روش  تابع هزینه را به این شکل تغییر می‌دهیم:

در روش تنظیم از طریق سعی می‌شود طول اقلیدسی بردار کوتاه نگه داشته شود. در روش و یک عدد مثبت است که میزان تنظیم مدل را معین می‌کند. هرچقدرکوچکتر باشد جریمه کمتری برا بزرگی نرم بردار پارامترها یعنی پرداخت می‌کنیم. مقدار ایدئال  از طریق آزمایش بر روی داده اعتبار (Validation Data) پیدا می‌شود.

تفسیر احتمالی تنظیم مدل

اگر بجای روش درست نمایی بیشینه از روش بیشینه سازی احتمال پسین استفاده کنیم به ساختار «تنظیم مدل» یا همان regularization خواهیم رسید. اگر مجموعه داده را با نمایش بدهیم و پارامتری که به دنبال تخمین آن هستیم را با ، احتمال پسین ، طبق قانون بیز متناسب خواهد بود با حاصلضرب درست نمایی یعنی و احتمال پیشین یعنی :

ازین رو

معادله خط پیشین نشان می‌دهد که برای یافتن پارامتر بهینه فقط کافیست که احتمال پیشین را نیز در معادله دخیل کنیم. اگر احتمال پیشین را یک توزیع احتمال با میانگین صفر و کوواریانس در نظر بگیریم به معادله پایین می‌رسیم:

با ساده کردن این معادله به این جواب می‌رسیم، در اینجا برابر است با :

همان‌طور که دیدیم جواب همان تنظیم مدل با نرم است.

حال اگر احتمال پیشین را از نوع توزیع لاپلاس با میانگین صفر درنظر بگیریم به تنظیم مدل با نرم  خواهیم رسید.

منبع


استفاده از داده‌ها به منظور کشف رابطه بین آن‌ها اساس داده‌کاوی است. یکی از ابزار سنجش رابطه و مدل‌سازی استفاده از ابزار آماری رگرسیون است. امروزه به منظور تحلیل و کشف مدل روی «مه داده» (کلان‌داده | Big Data)، روش‌های مختلف رگرسیون توسعه یافته است. استفاده از تحلیل گرسیونی در علوم مختلف داده‌کاوی، بخصوص مبحث «آموزش ماشین» (Machine Learning)، فیزیک، شیمی و علوم زیستی کاربرد بسیاری دارد.

 

تعریف رگرسیون خطی (Linear Regression) قسمت 1
تعریف رگرسیون خطی (Linear Regression) قسمت 2
تعریف رگرسیون خطی (Linear Regression) قسمت 3
تعریف رگرسیون خطی (Linear Regression) قسمت 4
تعریف رگرسیون خطی (Linear Regression) قسمت 5
تعریف رگرسیون خطی (Linear Regression) قسمت 6
تعریف رگرسیون خطی (Linear Regression) قسمت 7

تخمین پارامترها برای مسائل چند متغیره

صورت مسئله

در بسیاری از مسائل رایج رگرسیون ورودی چند متغیره هست. به عنوان مثال اگر فرض کنیم متغیر ما بُعد دارد، یعنی ، مسئله رگرسیون به یک مسئله بهینه‌سازی برای پیدا کردن پارامتر تبدیل می‌شود. به این معنی که ما یک پارامتر چند متغیره به اسم داریم و سعی می‌کنیم که متغیر وابسته که همان است را با ترکیبی خطی از بردارد ورودیِ ، تخمین بزنیم یعنی . حال اگر یک بعد دیگر به متغیر اضافه کنیم و مقدارش را همیشه عدد ثابت در نظر بگیریم () و را به صورتِ تغییر دهیم، تخمینی که از داریم در واقع ضرب نقطه ای بردار ورودی و بردار پارامترهای ماست یعنی . حال فرض کنیم که تعداد مثالهایی که قرار است برای تخمین پارامترها استفاده کنیم است و این مثالها را به این شکل نمایش دهیم . پارامتر بهینه پارامتری است که یک تابع هزینه را به حداقل برساند و تخمینهایی ما را به متغیر وابسته بسیار نزدیک کند. تابع هزینه را با جمع مربع تفاضل تخمینها با متغیر وابسته تعریف می‌کنیم، به این شکل که ، با این حساب پارامتر بهینه می‌شود:

تخمین پارامتر بهینه از روش کمترین مربعات

در این روش برای بدست آوردن یا همان پارامتر بهینه، از تابع نسبت به گرادیان می‌گیریم و گرادیان را برابر صفر قرار می‌دهیم و پارامتر بهینه را بدست می‌آوریم. از آنجا که تابع نسبت به تابعی کاملاً محدب است، در نقطه مینیمم گرادیان ما صفر خواهد بود و این روش پارامتر بهینه را بدست می‌دهد. برای تسهیل کار شکل تابع را با بکارگیری چند ماتریس ساده می‌کنیم. دو ماتریس برای این کار نیاز داردیم ماتریس و ماتریس . ماتریس ماتریس ورودهای چندمتغیره ماست. هر سطر معادل یک نمونه از داده ماست، سطر ام برابر است با امین نمونه ورودی ما یعنی بردار ، از اینرو یک ماتریس خواهد بود. ماتریس از طرف دیگر برابر است با مجموعه متغیرهای وابسته داده ما. سطر ام این ماتریس برابر است با متغیر وابسته برای }امین نمونه داده ما یا همان . ماتریس یک ماتریس  است. با کمک این دو ماتریس می‌توان تابع هزینه را به شکل ذیل تعریف کرد:

حال گرادیان این تابع را نسبت به  پیدا می‌کنیم که می‌شود:

با برابر قرار دادن گرادیان با صفر پارامتر بهینه بدست می‌آید:

پس پارامتر بهینه ما برابر است با:

تخمین پارامتر بهینه از روش گرادیان کاهشی تصادفی (Stochastic Gradient Descent)

روش پارامتر تخمین پارامتر بهینه از طریق کمترین مربعات ممکن است چند اشکال اساسی داشته باشد. یکی آنکه محاسبه ممکن است زمانبر باشد. بُعدِ ماتریس مربعی  برابر است با  و اگر بعد  بالا باشد زمان محاسبه معکوس این ماتریس می‌تواند مسئله ساز شود. مضاف بر این، ماتریس ممکن است معکوس پذیر نباشد. از این رو روشهای کاراتر و سریعتری برای تخمین پارامتر بهینه مورد استفاده قرار می‌گیرد. یکی از این روشها روش گرادیان کاهشی تصادفی است. در این روش هر بار یک مثال را بصورت اتفاقی از نمونه‌های داده انتخاب کرده، گرادیان تابع هزینه را حساب می‌کنیم و کمی در جهت خلاف گرادیان پارامتر را حرکت می‌دهیم تا به یک پارامتر جدید برسیم. گرادیان جهت موضعی بیشترین افزایش را در تابع به ما نشان می‌دهد، برای بیشترین کاهش موضعی در خلاف جهت گرادیان باید حرکت کرد. اینکار را آنقدر ادامه می‌دهیم که گرادیان به اندازه کافی به صفر نزدیک شود. بجای اینکه داده‌ها را بصورت تصادفی انتخاب کنیم می‌توانیم به ترتیب داده شماره  تا داده شماره  را انتخاب کنیم و بعد دوباره به داده اولی برگردیم و این کار را چندین بار تکرار کنیم تا گرادیان تابع به اندازه کافی به صفر نزدیک شود. از لحاظ ریاضی این کار را می‌توان به شکل پایین انجام داد، پارامتر  را در ابتدا بصورت تصادفی مقدار دهی می‌کنیم و بعد برای داده  ام و تمامی ‌ها، یعنی از  تا  تغییر پایین را اعمال می‌کنیم، دراینجا  همان مقداریست که در جهت گرادیان هربار حرکت می‌کنیم و  مشتق جزئی داده ام در بُعد  ام است:

تفسیر احتمالی از طریق درست نمایی بیشینه

برای بدست آوردن پارامتر بهینه  تابع هزینه یعنی  را به حداقل می‌رسانیم. می‌توان به همین پارامتر بهینه از روش درست نمایی بیشینه هم رسید. فرض می‌کنیم که متغیر وابسته یعنی  یک متغیر تصادفی است که مقدارش از یک توزیع طبیعی (توزیع گاوسی) پیروی می‌کند. این توزیع احتمال، واریانس ثابتی به اسم  دارد ولی میانگین آن ترکیبی خطی از متغیرهای مستقل یعنی است. به عبارت دیگر میانگین ما برابر است با . با احتساب میانگین و واریانس توزیع متغیر وابسته ما می‌شود . حال اگر فرض کنیم داده‌های ما نسبت به هم مستقل هستند تابع درست نمایی برای تمام داده‌ها می‌شود:

حال باید به دنبال پارامتری باشیم که این تابع بزرگنمایی را بیشینه کند. از آنجا که تابع لگاریتم مطلقاً صعودیست، بجای بیشینه کردن این تابع لگاریتمش را هم می‌شود بیشنه کرد و پارامتر بهینه را از آن طریق پیدا کرد:

پارامتر بهینه از این طریق برابر است با:

همان‌طور که دیدم پارامتری که را بیشینه می‌کند همان پارامتری است که را به حداقل می‌رساند. این به معنی معادل بودن روش کمترین مربعات با روش درست نمایی بیشنه در رگرسیون خطی است.

تعریف رگرسیون خطی (Linear Regression) قسمت 1
تعریف رگرسیون خطی (Linear Regression) قسمت 2
تعریف رگرسیون خطی (Linear Regression) قسمت 3
تعریف رگرسیون خطی (Linear Regression) قسمت 4
تعریف رگرسیون خطی (Linear Regression) قسمت 5
تعریف رگرسیون خطی (Linear Regression) قسمت 6
تعریف رگرسیون خطی (Linear Regression) قسمت 7

رگرسیون خطی یا تنازل خطی یا وایازی خطی (Linear regression) یکی از روشهای تحلیل رگرسیون است. در رگرسیون خطی، متغیّر وابسته  ترکیب خطی‌ای از ورودی یا متغیرهای مستقل است. البته ضرورتاً متغیر وابسته لازم نیست که نسبت به متغیرهای مستقل، خطی باشد.

رگرسیون خطی با یک متغیر مستقل

رگرسیون خطی با یک متغیر مستقل

تخمین پارامترها برای مسائل تک متغیره

رگرسیون میزان اثر دو یا چند متغیر بر متغیر وابسته را می‌سنجد و همبستگی رابطه بین دو یا چند متغیر را مورد سنجش قرار می‌دهد.

مثلاً تحلیل رگرسیونی سادهٔ زیر با  نقطه، متغیر مستقل و ضرایب و  خطی است:

خط راست:

در هر دو حالت، مقدار خطاست و پانویس شمارهٔ هر مشاهده (هر جفت و ) را نشان می‌دهد. با داشتن مجموعه‌ای از این نقطه‌ها می‌توان مدل را به دست آورد:

عبارت مانده نام دارد: . روش رایج برای به‌دست‌آوردن پارامترها، روش کمترین مربعات است. در این روش پارامترها را با کمینه‌کردن تابع زیر به دست می‌آورند:

در مورد رگرسیون ساده، پارامترها با این روش برابر خواهند بود با:

که در آن و میانگین و  هستند.

تفاوت رگرسیون و همبستگی بر اساس هدف:

هدف مدل‌های همبستگی بررسی میزان رابطه دو یا چند متغیر است در حالیکه رگرسیون به دنبال پیش‌بینی یک یا چند متغیر براساس یک یا چند متغیر دیگر است. از آنجا که رگرسیون برپایه داده‌های گذشته انجام می‌شود به آن عنوان Regression یعنی بازگشت به گذشته داده‌اند؛ بنابراین از نظر هدف همبستگی میزان و شدت رابطه متغیرها را نشان می‌دهد اما رگرسیون معادله ای را برای پیش‌بینی متغیرها ارائه می‌کند.

تفاوت رگرسیون و همبستگی براساس روش:

آنچه در خروجی نتایج رگرسیون و همبستگی باعث ایجاد تفاوت می‌شود آن است که در همبستگی همیشه اثرات متغیرها به صورت دو به دو مورد سنجش قرار می‌گیرد اما در یک مدل رگرسیون اثرات متغیرها به صورت همزمان بررسی می‌شود. یعنی در همبستگی رابطه متغیر X با متغیر Y به وجود یا عدم وجود متغیر Z ارتباطی ندارد اما اما در رگرسیون تأثیر متغیر X بر متغیر Y به وجود یا عدم وجود متغیر Z بستگی دارد.

تعریف رگرسیون خطی (Linear Regression) قسمت 1
تعریف رگرسیون خطی (Linear Regression) قسمت 2
تعریف رگرسیون خطی (Linear Regression) قسمت 3
تعریف رگرسیون خطی (Linear Regression) قسمت 4
تعریف رگرسیون خطی (Linear Regression) قسمت 5
تعریف رگرسیون خطی (Linear Regression) قسمت 6
تعریف رگرسیون خطی (Linear Regression) قسمت 7

بخت حاشیه‌ای

همانند تخمین بازگشتی بیز که پیش‌تر بیان شد، فیلتر کالمن را می‌توان به عنوان یک مدل مولد دید. یعنی فرایندی برای تولید دنباله‌ای از مشاهدات تصادفی (… ,z = (z0z1z2. این فرایند به صورت زیر تعریف می‌شود:

  1. حالت پنهان را از توزیع گاوسی پیشین نمونه‌گیری کنید.
  2. حالت پنهان را از مدل مشاهده شده  نمونه‌گیری کنید.
  3. برای
    1. حالت پنهان را از مدل انتقالی محاسبه کنید.
    2. مشاهده را از مدل مشاهده شده محاسبه کنید.

این فرایند ساختاری مشابه مدل پنهان مارکوف دارد که حالات گسسته در آن به متغیرهای تصادفی پیوسته با توزیع گاوسی تبدیل شده‌است.

محاسبه بخت حاشیه‌ای به عنوان نتیجه‌ای از فیلتر کردن بازگشتی بسیار آسان است. به کمک قانون زنجیره‌ای احتمال، بخت از حاصلضرب احتمال هر مشاهده به شرط مشاهدات قبلی بدست می‌آید،

به علاوه چون فیلتر کالمن معرف یک فرایند مارکوف است، تمام دانش بدست آمده از مشاهدات قبلی به تخمین  محدود می‌شود. به این ترتیب بخت حاشیه‌ای به صورت زیر محاسبه می‌شود:

رابطه بالا حاصلضرب چند توزیع احتمال گاوسی است که هر یک نمایانگر یک مشاهده zk تحت فیلتر است؛ که از آپدیت‌های بازگشتی محاسبه می‌شود. برای راحتی محاسبه بهتر است از log بخت حاشیه‌ای یعنی استفاده شود. با فرض  محاسبه به صورت بازگشتی انجام می‌شود.

به‌طوری‌که  بعد بردار اندازه‌گیری‌ها می‌باشد.

فیلتر اطلاعاتی

در فیلتر اطلاعاتی یا فیلتر کوواریانس معکوس، تخمین کوواریانس و تخمین حالت به ترتیب با ماتریس اطلاعات و تابع اطلاعات جایگزین می‌شوند.

به طریق مشابه کوواریانس و بردار مشاهدات هم با عبارات هم‌ارز اطلاعاتی جایگزین می‌شوند.
با داشتن ماتریس و بردار مشاهدات که به صورت زیر تعریف شده‌اند
اطلاعات آپدیت شده به صورت زیر نوشته می‌شوند.

مزیت اصلی فیلتر اطلاعاتی این است که N مشاهده می‌توانند در هر بازه زمانی با جمع زدن ماتریس‌ها و بردارهای اطلاعاتی فیلتر شوند.

جهت پیش‌بینی فیلتر اطلاعات ماتریس و بردار اطلاعات به عبارات هم‌ارزشان در فضای حالات سیستم تبدیل می‌شوند. البته پیش‌بینی فضای اطلاعاتی هم قابل انجام است.

این مقادیر به شرطی قابل محاسبه‌اند که F و Q در زمان ثابت باشند. همچنینF و Q باید معکوس‌پذیر باشند.

تصفیه‌کننده تأخیر زمانی

تصفیه‌کننده بهینه تخمینی بهینه از برای تأخیر ثابت با استفاده از مشاهدات تا ارائه می‌کند. این تخمین به کمک روابط قبلی و برای یک حالت تکمیل شده به صورت زیر بدست می‌آید:

به‌طوری‌که:

  • و  با یک فیلتر استاندارد کالمن تخمین زده شده‌است.
  • و  متغیرهای جدیدی هستند که در فیلتر کالمن وجود نداشتند.
  • نتایج کالمن از رابطه زیر بدست می‌آیند:

به‌طوری‌که و کوواریانس خطاهای پیش‌بینی شده و نتایج فیلتر استاندارد کالمن هستند. ()

اگر تخمین کوواریانس خطا را به صورت زیر تعریف کنیم:

تخمین بهتری از  از رابطه زیر حاصل می‌شود.

تصفیه‌کننده بازه

تصفیه‌کننده بهینه تخمینی بهینه از () با استفاده از مشاهداتی در بازه تا  ارائه می‌کند. به این مبحث «تصفیه‌کننده کالمن» هم گفته می‌شود. الگوریتم‌های مختلفی با این منظور موجودند.

Rauch–Tung–Striebel

 

الگوریتمی دو مرحله‌ای و کارا برای تصفیه کردن بازه است. گام رو به جلو مشابه فیلتر عادی کالمن است. تخمین‌های فیلتر شده پیشین و پسین ، و ،  در گام رو به عقب کاربرد دارند.

در گام رو به عقب تخمین تصفیه‌شده و  را محاسبه می‌کنیم. بدین طریق که از آخرین بازه زمانی شروع کرده و به صورت عقب‌گرد معادلات بازگشتی زیر را می‌یابیم:

به‌طوری‌که
تخمین حالت پسین زمان و تخمین حالت پیشین زمان  است. درمورد کوواریانس نیز همین نوشتار به کار می‌رود.

تصفیه‌کننده Bryson–Frazier

این روش جایگزینی برای الگوریتم RTS است که توسط بیرمن ارائه شده‌است. این روش همچنین در گام رو به عقب داده‌های بدست آمده در گام رو به جلوی فیلتر کالمن استفاده می‌کند. معادلات رو به عقب شامل محاسبات بازگشتی که پس از هر مشاهده جهت تصفیه حالت و کوواریانس به کار برده می‌شود.

معادلات بازگشتی عبارتند از:

به‌طوری‌که کوواریانس باقیمانده‌است و . همچنین حالت و کوواریانس تصفیه‌شده با کمک معادلات زیر قابل محاسبه است.

یا

از مزیت‌های MBF عدم نیاز به یافتن معکوس ماتریس کوواریانس است.

تصفیه‌کننده کمینه واریانس

این روش می‌تواند بهترین خطای ممکن را با استفاده از پارامترها و آماره‌های نویزی شناخته‌شده بدست آورد. این تصفیه‌کننده مدل کلی‌تری از فیلتر غیر علی وینر است. (non-causal Wiener filter)

محاسبات در دو گام انجام می‌شود. محاسبات گام رو به جلو در یک مرحله پیش‌بینی صورت می‌گیرد:

این عبارات معکوس وینر-هوف (Wiener-Hopf) است. نتیجه گام رو به عقب می‌تواند با استفاده بازگشت در زمان و از گام رو به جلو از  محاسبه شود. در این حالت خروجی سیستم برابر است با:

با جایگذاری در رابطه بالا

این معادله برا ی فیلتر کالمن کمینه واریانس همواره یکسان است. حل معادلات بالا واریانس تخمین خطای خروجی را کمینه می‌کند. توجه کنید که در روش Rauch–Tung–Striebel فرض می‌شود که همه توزیع‌ها گاوسی هستند اما در اینجا چنین نیست.

فیلترهای وزن‌دار کالمن

توابع وزن‌دار جهت وزن دادن به میانگین توزیع توان خطا در یک بازه تغییر مشخص استفاده می‌شوند. فرض کنید یک تخمین خطای خروجی توسط فیلتر کالمن و یک تابع تخصیص وزن علی باشد. روش بهینه‌ای که واریانس () را کمینه می‌کند استفاده از  است.

نحوه طراحی فعلاً بی‌پاسخ است. یک راه آن شناسایی سیستمی که تخمین خطا را تولید می‌کند و قرارداد کردن به عنوان معکوس آن سیستم است. این روش می‌تواند جهت محاسبه خطای مربع میانگین استفاده شود تا هزینه فیلتر کاهش یابد. همچنین روش مشابهی جهت یافتن تصفیه‌کننده نیز وجود دارد.

فیلترهای غیرخطی

مبنای فیلتر کالمن، تبدیلات خطی است. اما سیستم‌های پیچیده‌تر می‌توانند غیرخطی باشند. مسئله غیرخطی بودن می‌تواند در مشاهدات، مدلسازی یا هر دو بروز پیدا کند.

فیلتر کالمن بسط‌یافته – EKF

در فیلتر بسط‌یافته کالمن (EKF) انتقال حالات و مشاهدات نیاز به توابع حالت خطی یا غیرخطی دارند. اینها توابعی مشتق‌پذیر هستند.

تابع f می‌تواند جهت محاسبه حالت پیش‌بینی شده از تخمین قبلی به کار رود. همچنین تابع h جهت یافتن مشاهده‌ای از حالت قبلی به کار می‌رود. توابع f و h نمی‌توانند مستقیماً به کوواریانس اعمال شوند، بلکه باید ماتریسی از مشتقات جزیی (ماتریس ژاکوبی) آن‌ها محاسبه شود.

در هر بازه زمانی ماتریس ژاکوبی با استفاده از حالات پیش‌بینی شده قبلی محاسبه می‌شود. این ماتریس‌ها در معادلات فیلتر کالمن کاربرد دارد. در واقع این فرایند عمل خطی کردن توابع غیرخطی را حول تخمین فعلی شامل می‌شود.

فیلتر کالمن از نوع UKF – Unscented

وقتی انتقال حالات و مشاهدات، یعنی توابع پیش‌بینی و آپدیت و ، کاملاً غیرخطی باشند، فیلتر کالمن بسط‌یافته کارایی پایینی خواهد داشت. به این دلیل که کوواریانس در عمل خطی‌سازی مدل غیرخطی افزایش می‌یابد. فیلتر کالمن Unscented از روش نمونه‌گیری قطعی که به Uncented Transform معروف است، استفاده می‌کند تا مجموعه نمونه مینیمالی از نقاط حول میانگین را جمع‌آوری کند. سپس این نقاط در تابع غیرخطی وارد شده تا میانگین و کوواریانس جدید حاصل شود. نتیجه برای سیستم‌های قطعی با قطعیت بیشتری مقدار میانگین و کوواریانس را ارائه می‌کند.[۳۰]این روش به عنوان روش مونت‌کارلو یا بسط تیلور برای آماره‌های پسین شناخته شده‌است. در واقع این روش ما را از محاسبه مستقیم ماتریس ژاکوبی که برای بعضی توابع بسیار پیچیده‌است، بی‌نیاز می‌کند.

پیش‌بینی

مشابه EKF، در روش UKF فاز پیش‌بینی در مقایسه با یک آپدیت خطی مستقل از آپدیت UKF انجام می‌شود. تخمین حالت و کوواریانس با کمک میانگین و کوواریانس فرایند بدست می‌آیند.

مجموعه‌ای شامل 2L + ۱ به کمک حالت و کوواریانس از حالت بعد L حاصل می‌شود.

به‌طوری‌که

iامین ستون ماتریس مربع ریشه  است.

با توجه به تعریف ریشه مربعی در ماتریس  بدست می‌آید:

ریشه مربعی باید به صورت عددی و توسط روش‌هایی مانند تفکیک کولسکی محاسبه شود.

نقاط بدست آمده به عنوان ورودی تابع انتقال f داده می‌شوند:

به‌طوری‌که . از نقاط وزن‌دار جهت محاسبه تخمین حالت و کوواریانس استفاده می‌شود

به‌طوری‌که وزن‌های مربوط به حالات و کوواریانس از روابط زیر بدست می‌آیند:

و گستردگی نقاط را کنترل می‌کنند. مربوط به توزیع  است.

اگر توزیع گاوسی باشد، مقادیر طبیعی برابر , و هستند.  بهینه است.

 

آپدیت

پیش‌بینی حالت و کوواریانس مطابق بالا حاصل می‌شوند به جز زمانی که میانگین و کوواریانس نویز مشاهده شده در دست باشد.

مطابق قبل مجموعه‌ای شامل 2L + ۱ نقطه درنظر می‌گیریم

اگر پیش‌بینی UKF استفاده شده‌باشد، نقاط به صورت زیر مستقلاً قابل محاسبه‌اند.

به‌طوری‌که

نقاط به عنوان ورودی تابع h استفاده می‌شوند

نقاط وزن‌دار جهت محاسبه مشاهده و کوواریانس مشاهدات پیش‌بینی شده استفاده می‌شوند.

کوواریانس ضربدری حالات و مشاهدات به صورت زیر محاسبه می‌شود

که برای محاسبه نتیجه فیلتر کالمن UKF استفاده می‌شود.

همانند فیلتر کالمن، حالت آپدیت شده از جمع حالت پیش‌بینی شده و وزن‌دار کردن نتیجه کالمن محاسبه می‌شود

همچنین کوواریانس آپدیت شده برابر است با تفاضل کوواریانس پیش‌بینی شده و کوواریانس محاسبه پیش‌بینی شده که با نتیجه کالمن وزن‌دار شده‌است.

 

فیلتر کالمن – بوسی

این فیلتر حالت پیوسته در زمان فیلتر کالمن می‌باشد که نام آن برگرفته از نام ریچارد اسنودن بوسی می‌باشد.

این فیلتر مبتنی بر فضای نمونه حالت مدل شده‌است

به‌طوری‌که و قوت نویزهای سفید و  را بیان می‌کند.

فیلتر از دو معادله دیفرانسیلی بدست می‌آید. یکی برای تخمین حالت و دیگری برای کوواریانس.

به‌طوری‌که

کوواریانس نویز مشاهده‌شده معادل کوواریانس خطای پیش‌بینی شده است. این دو کوواریانس تنها در حالت پیوسته زمان برابرند.

تمایز میان حالت پیش‌بینی و آپدیت فیلتر کالمن در اینجا وجود ندارد.

 

فیلتر کالمن هیبریدی

بسیاری از سیستم‌های فیزیکی به صورت پیوسته در زمان مدل می‌شوند درحالیکه مشاهدات ورودی توسط یک پردازنده دیجیتال و به صورت گسسته در زمان به آن ارائه می‌شوند. به این ترتیب مدل سیستم و مشاهدات به این صورت بیان می‌شود:

به‌طوری‌که

 

مقداردهی

پیش‌بینی

این معادلاتت از حالت پیوسته فیلتر کالمن، بدون آپدیت توسط مشاهدات حاصل می‌شوند به‌طوری‌که . حالت و کوواریانس پیش‌بینی شده با حل مجموعه‌ای از معادلات دیفرانسیلی دارای مقادیر اولیه تخمین حالت قبلی محاسبه می‌شوند.

آپدیت

معادلات آپدیت همان معادلات فیلتر کالمن گسسته هستند.

منبع


در ادامه برای یادگیری بیشتر و آشنایی با کاربردهای فیلتر کالمن پیشنهاد می کنیم فایل های زیر را دانلود و مشاهده فرمایید:

رمز فایل ها : behsanandish.com

kalman Filter

Mobile Robot Localization and Mapping using the Kalman Filter

تئوری تخمین و فیلترهای بهینه

فیلتر کالمن Kalman Filter

محاسبات عددی پیشرفته-فیلتر کالمن

تعریف فیلتر کالمن (Kalman filter) قسمت 1
تعریف فیلتر کالمن (Kalman filter) قسمت 2

 

فیلتر گابور یک فیلتر خطی است که در کاربردهای مختلفی دارد و در پردازش تصویر مورد استفاده قرار می‌گیرد. به عنوان نمونه، از این فیلتر در لبه‌یابی، استخراج ویژگی و غیره استفاده شده است. بسیاری معتقدند که استخراج ویژگی در گابور مشابه با استخراج ویژگی مغز انسان از تصاویر دریافتی چشم است. به همین خاطر با وجود قدیمی بودن این فیلتر و همچنین کمی زمانبر بودن، هیچ گاه اهمیت خود را از دست نداد و همواره مطالعات و روش‌های زیادی مبتنی بر آن در پردازش تصویر و بینایی ماشین ارایه شده است. فیلتر گابور مبتنی بر دو پارامتر مقیاس و چرخش تعریف می‌شود. با استفاده از مقیاس‌ها و چرخش‌های مختلف تعدادی بانک فیلتر تشکیل می‌شود که از این بانک فیلترها برای استخراج ویژگی در تصویر و یا سایر کاربردها استفاده می‌شود. در تصویر زیر نمونه‌ای از بانک فیلترها در ۵ مقیاس و ۸ چرخش را مشاهده می‌نمایید. با توجه به اینکه ساخت این بانک فیلترها و به دلیل بالا بودن تعداد آن‎‌ها، فیلتر گابور کمی زمانبر محسوب می‌شود، بنابراین کدنویسی بهینه آن بسیار مهم است. در این پست کدهایی از فیلتر گابور را برای شما قرار داده‌ایم که به دلیل عدم استفاده از حلقه‌های for در کدنویسی از سرعت بسیار بالا برخوردار است و همچنین کاملا دقیق پیاده‌سازی شده و می‌توانید با اطمینان از این کدها در پروژه‌های خود بهره ببرید. برای دانلود روی لینک زیر کلیک کنید.

 

Gabor filter in Matlab

Gabor Bank Filters

منبع


هم چنین برای دریافت کد های کاملتر همراه با کد GLCM بر روی لینک زیر کلیک کنید: 

Gabor filter in matlab with GLCM

تهیه کنندگان: فردین میرزاپور – حسن قاسمیان

رمز فایل : behsanandish.com

 

 

فیلتر کالمن (به انگلیسی: Kalman filter) که به عنوان تخمین خطی مرتبه دوم نیز از آن یاد می‌شود، الگوریتمی است که حالت یک سیستم پویا را با استفاده از مجموعه‌ای از اندازه‌گیری‌های شامل خطا در طول زمان برآورد می‌کند. این فیلتر معمولاً تخمین دقیق‌تری را نسبت به تخمین بر مبنای یک اندازه‌گیری واحد را بر مبنای استنباط بیزی و تخمین توزیع احتمال مشترکی از یک متغیر تصادفی در یک مقطع زمانی ارائه می‌کند. این فیلتر از نام رودولف ای کالمن، یکی از پایه‌گذاران این تئوری گرفته شده‌است.

فیلتر کالمن کاربردهای بسیاری در علم و فناوری مانند مسیریابی و پایش وسایل نقلیه، به خصوص هواپیما و فضاپیماها، دارد. فیلتر کالمن مفاهیم گسترده‌ای را در زمینه سری‌های زمانی، پردازش سیگنال و اقتصادسنجی مطرح می‌کند. این فیلتر از مفاهیم پایه در زمینه برنامه‌ریزی و پایش ربات‌ها و همچنین مدلسازی سیستم عصبی محسوب می‌شود. بر اساس تأخیر زمانی میان ارسال فرامین و دریافت پاسخ آن‌ها، استفاده از فیلتر کالمن در تخمین حالات مختلف سیستم را ممکن می‌سازد.

این الگوریتم در دو گام اجرا می‌شود. در گام پیش‌بینی، فیلتر کالمن تخمینی از وضعیت فعلی متغیرها را در شرایط عدم قطعیت ارائه می‌کند. زمانی که نتیجه اندازه‌گیری بعدی بدست آید، تخمین قبلی با میانگین وزن‌دار آپدیت می‌شود. به این ترتیب که وزن اطلاعاتی که دارای قطعیت بیشتری هستند، بیشتر خواهد بود. الگوریتم بازگشتی می‌باشد و با استفاده از ورودی‌های جدید و حالات محاسبه شدهٔ قبلی به‌صورت بی‌درنگ اجرا می‌شود.

درمورد ورودی‌های فیلتر کالمن نمی‌توان بیان کرد که تمام خطاها گوسی هستند. اما در عمل فیلتر برآوردهای احتمالاتی را با فرض توزیع طبیعی داشتن انجام می‌دهد.

 

Basic concept of Kalman filtering

 

مثال کاربردی

تهیه اطلاعات پیوسته و گسسته به روز و دقیق در مورد مکان و سرعت یک شی معین فقط به کمک توالی مشاهدات در مورد موقعیت آن شی، که هر کدام شامل مقداری خطاست امکان‌پذیر است. این فیلتر در طیف گسترده‌ای از کاربری‌های مهندسی از رادار گرفته تا بینایی رایانه‌ای کاربرد دارد. روش فیلتر کالمن یکی از عناوین مهم در تئوری کنترل و مهندسی سیستم‌های کنترلی می‌باشد.

به عنوان مثال، برای کاربری آن در رادار، آنجا که علاقه‌مند به ردیابی هدف هستید، اطلاعات در مورد موقعیت، سرعت و شتاب هدف با حجم عظیمی از انحراف به لطف پارازیت در هر لحظه اندازه‌گیریمی‌شود. فیلتر کالمن از پویایی هدف بهره می‌گیرد به این صورت که سیر تکاملی آن را کنترل می‌کند، تا تأثیرات پارازیت را از بین ببرد و یک برآورد خوب از موقعیت هدف در زمان حال (تصفیه کردن) و در آینده (پیش بینی) یا در گذشته (الحاق یا هموار سازی) ارائه می‌دهد. یک نسخه ساده شده فیلتر کالمن، فیلتر آلفا بتا (alpha beta filter)، که همچنان عموماً استفاده می‌شود از ثابت‌های static weighting به جای ماتریس‌های کواریانس استفاده می‌کند.

نام‌گذاری و تاریخچه توسعه

اگر چه Thorvald Nicolai Thiele و Peter Swerling قبلاً الگوریتم مشابهی ارائه داده بودند، این فیلتر به افتخار Rudolf E. Kalman، فیلتر کالمن نام‌گذاری شد و Stanley F. Schmidt عموماً به خاطر توسعه اولین پیاده‌سازی فیلتر کالمن شهرت یافت. این رخداد هنگام ملاقات با کالمن در مرکز تحقیقاتی ناسا (NASA Ames Research Center) روی داد و وی شاهد کارایی ایده کالمن در برآورد مسیر پرتاب پروژه آپولو بود، که منجر به الحاق آن به رایانه ناوبری آپولو شد. این فیلتر بر روی کاغذ در ۱۹۵۸ توسط Swerling، در ۱۹۶۰ توسط Kalman و در ۱۹۶۱ توسط Kalman and Bucy ایجاد و بسط داده شد.

این فیلتر بعضی مواقع فیلتر Stratonovich-Kalman-Bucy نامیده می‌شود، چرا که یک نمونه خاص از فیلتر بسیار معمولی و غیر خطی ای است که قبلاً توسط Ruslan L. Stratonovich ایجاد شده، در حقیقت معادله این نمونه خاص، فیلتر خطی در اسنادی که از Stratonovich قبل از تابستان ۱۹۶۰، یعنی زمانی که کالمن ،Stratonovich را در کنفرانسی در مسکو ملاقات کرد به چاپ رسید بود.

در تئوری کنترل، فیلتر کالمن بیشتر به برآورد مرتبه دوم (LQE) اشاره دارد. امروزه تنوع گسترده‌ای از فیلتر کالمن بوجود آمده، از فرمول اصلی کالمن در حال حاضر فیلترهای: کالمن ساده، توسعه یافته اشمیت، اطلاعاتی و فیلترهای گوناگون جذر بیرمن، تورنتون و بسیاری دیگر بوجود آمده‌اند. گویا مرسوم‌ترین نوع فیلتر کالمن فاز حلقهٔ بسته (phase-locked loop) می‌باشد که امروزه در رادیوها، رایانه‌ها و تقریباً تمامی انواع ابزارهای تصویری و ارتباطی کاربرد دارد.

 

اساس مدل سیستم پویا

فیلترهای کالمن بر اساس سیستم‌های خطی پویا (linear dynamical systems) گسسته در بازه زمانی هستند. آن‌ها بر اساس زنجیره مارکوف (Markov chain) به کمک عملگرهای خطی ساخته شده‌اند و توسط نوفه گاوسی (Gaussian noise) تحریک می‌شوند. حالت سیستم توسط برداری از اعداد حقیقی بیان می‌شود. در هر افزایش زمانی که در بازه‌های گسسته صورت می‌گیرد، یک عملگر خطی روی حالت فعلی اعمال می‌شود تا حالت بعدی را با کمی پارازیت ایجاد کند و اختیاراً در صورت شناخت روی کنترل‌کننده‌های سیستم برخی اطلاعات مرتبط را استخراج می‌کند. سپس عملگر خطی دیگر به همراه مقدار دیگری پارازیت خروجی قابل مشاهده‌ای از این حالت نامشخص تولید می‌کند. فیلتر کالمن قادر است مشابه مدل نامشخص مارکوف برخورد کند. با این تفاوت کلیدی که متغییرهای حالت نامشخص در یک فضای پیوسته مقدار می‌گیرند (نقطهٔ مقابل فضای حالت گسسته در مدل مارکوف). بعلاوه، مدل نامشخص مارکوف می‌تواند یک توزیع دلخواه برای مقادیر بعدی متغییرهای حالت ارائه کند، که در تناقض با مدل پارازیت گاوسی‌ای است که در فیلتر کالمن استفاده می‌شود. در اینجا یک دوگانگی بزرگ بین معادلات فیلتر کالمن و آن مدل مارکوف وجود دارد. مقاله‌ای در رابطه با این مدل و دیگر مدل‌ها در Roweis and Ghahramani و فصل ۱۳ Hamilton ارائه شده‌است.

برای تخمین حالت درونی یک فرایند که توسط مجموعه‌ای مشاهدات دارای پارازیت ارائه شده‌است باید آن را منطبق بر چارچوب فیلتر کالمن کنیم. به این منظور ماتریس‌های زیر را ارائه می‌کنیم:

Fk: مدل انتقال حالات،

Hk: مدل مشاهده شده،

Qk: کوواریانس پارازیت فرایند،

Rk: کوواریانس پارازیت مشاهده شده،

Bk: مدل ورودی-کنترل

فیلتر کالمن بیان می‌کند که می‌توان حالت k را با استفاده از حالت (k – 1) با استفاده از رابطه زیر محاسبه کرد:

به‌طوری‌که:

Fk: حالت انتقالی اعمال شده به xk−۱،

Bk: مدل ورودی-کنترل اعمال شده به بردار کنترلی uk,

wk: فرایند نویزی با توزیع نرمال، میانگین صفر و واریانس Qk

در زمان مشاهده zk با توجه به حالت xk به صورت زیر بدست می‌آید:

به‌طوری‌که Hk مدل مشاهده شده که به فضای مشاهده شده نگاشت می‌شود و همچنین vk نویز مشاهده شده با توزیع گاوسی، میانگین صفر و کوواریانس Rk است.

لازم است ذکر شود که حالت اولیه و بردار نویزی در هر محله از هم مستقل هستند.

بسیاری از سیستم‌های پویای واقعی از این مدل تبعیت نمی‌کنند. برخی سیستم‌های پویا حتی در زمانی که منبع ورودی ناشناخته‌ای را بررسی می‌کنیم، می‌توانند موجب کاهش تأثیر این فیلتر شوند. زیرا اثر این سیستم‌ها بر سیگنال ورودی تأثیرگذار است و به این ترتیب می‌تواند موجب ناپایداری تخمین فیلتر شود. به علاوه نویزهای سفید مستقل باعث منشعب شدن فیلتر نمی‌شوند. مسئله تفکیک نویز سفید و سیستم‌های پویا در شاخهٔ نظریه کنترل و در چارچوب کنترل مقاوم بررسی می‌شود.

Kalman filter model 2

شرح بیشتر

فیلتر کالمن یک تخمین‌گر بازگشتی است، یعنی تنها تخمین حالت قبل و مشاهده فعلی برای محاسبه تخمین حالت فعلی لازم است. برعکس بسیاری از تخمین‌گرها نیازی به نگهداری اطلاعات تخمین‌ها و مشاهدات تمام حالات قبل نیست. در اینجا بیانگر تخمینی از  در زمان n به شرط از مشاهدات پیش از این زمان است.

حالت فعلی فیلتر توسط دو متغیر تشریح می‌شود:

  •  تخمین حالت پسینی در زمان k به شرط مشاهدات پیش از k.
  •  ماتریس کوواریانس خطای پسین.

فیلتر کالمن توسط یک معادله بیان می‌شود اما معمولاً آن را به دو بخش پیش‌بینی و آپدیت تفکیک می‌کنند. در گام پیش‌بینی با استفاده از تخمین‌های حالات در بازه‌های زمانی پیشین، تخمینی برای حالت فعلی بدست می‌آید. این تخمین پیش‌بینی شده همان دانش پیشینی است زیرا تنها به تخمین‌های قبلی وابسته است و هیچ مشاهده‌ای در حالت فعلی سیستم را در برنمی‌گیرد. در گام آپدیت تخمین پیشین با مشاهدات فعلی ترکیب می‌شود تا تخمینی از حالت فعلی سیستم ارائه کند.

معمولاً این دو گام متناوباً تکرار می‌شوند، به این معنی که پیش‌بینی تا مشاهده بعدی انجام می‌شود و سپس با استفاده از مشاهدات فعلی آپدیت انجام می‌شود. اگر در بازه زمانی مشاهده‌ای انجام نشود، پیش‌بینی‌ها تا مشاهده بعدی انجام می‌شوند و آپدیت بر مبنای چند مرحله پیش‌بینی انجام می‌شود. به‌طور مشابه اگر در بازه زمانی چندین مشاهده مستقل انجام شود، بر مبنای هریک از آن‌ها چند آپدیت با ماتریس‌های Hk متفاوت بدست می‌آید.

پیش‌بینی

تخمین حالت پیش‌بینی شده (پیشین)
تخمین کوواریانس پیش‌بینی شده (پیشین)

آپدیت

مشاهده جدید وابسته
کوواریانس جدید وابسته
نتیجه بهینه کالمن
تخمین حالت آپدیت شده (پسین)
تخمین کوواریانس آپدیت شده (پسین)

فرمول کوواریانس آپدیت شده تنها در حالت بهینه بودن فیلتر کالمن کاربرد دارد و در باقی حالات فرمول‌های پیچیده‌تری موردنیاز است که در بخش مشتقات موجود است.

ثابت‌ها

اگر مدلسازی دقیق باشد و  و  بیانگر توزیع حالات ابتدایی سیستم باشند، مقادیر ثابت زیر بدست می‌آیند:

به‌طوری‌که امید ریاضی متغیر تصادفی  است. در بالا تمامی تخمین‌ها دارای امید ریاضی صفر هستند.

همچنین:

به این ترتیب ماتریس‌های کوواریانس نشان‌دهنده مقادیر تخمینی کوواریانس‌ها هستند.

تخمین کوواریانس‌های نویز Qk و Rk

پیاده‌سازی عملی فیلتر کالمن با توجه به سختی بدست آوردن تخمین ماتریس کوواریانس Qk و Rk بهینه دشوار است. مطالعات بسیاری جهت بدست آوردن تخمین‌های کوواریانس با توجه به داده‌های موجود انجام شده‌است. یکی از بهترین روش‌ها، تکنیک حداقل مربعات اتوکوواریانس(ALS) است که از اتوکوواریانس داده‌ها با ایجاد تأخیر زمانی برای تخمین استفاده می‌کند. از گنو آکتیو ومتلب جهت محاسبه ماتریس‌های کوواریانس نویز با استفاده از تکنیک حداقل مربعات اتوکوواریانس استفاده می‌شود. این کار به صورت آنلاین توسط پروانه عمومی همگانی گنو امکان‌پذیر است.

بهینگی و کارایی

فیلتر کالمن یک فیلتر خطی بهینه است زیرا الف) مدلسازی آن با دقت بالایی بر سیستم اصلی منطبق است. ب) نویز ورودی، نویز سفید ناهمبسته است. ج) مقدار کوواریانس نویز قابل محاسبه است. روش‌های بسیاری از جمله روش حداقل مربعات اتوکوواریانس که در بالا به آن اشاره شد برای تخمین کوواریانس نویز ارائه شده‌اند. پس از تخمین کوواریانس لازم است کارایی سیستم ارتقا یابد. این بدین معنی است که تخمین حالات سیستم دقیق‌تر شوند. اگر فیلتر کالمن بهینه باشد، نویز ورودی نویز سفید است که محاسبه کارایی سیستم را ممکن می‌سازد. روش‌های زیادی جهت محاسبه کارایی موجود است.

مثال کاربرد عملی

کامیونی دارای اصطکاک در مسیری مستقیم را در نظر بگیرید. کامیون در مکان صفر ثابت است و سپس در مسیری تحت تأثیر نیروهای تصادفی به حرکت در می‌آید. موقعیت کامیون را در هر Δt ثانیه اندازه‌گیری می‌کنیم. اما این اندازه‌گیری مبهم است چرا ما تنها مدلی از مکان و سرعت کامیون را در نظر می‌گیریم. در اینجا فیلتر کالمن را برای این مدل بیان می‌کنیم.

چون  ثابت هستند، شاخص‌های زمانی آن‌ها حذف می‌شوند.

موقعیت و سرعت کامیون در فضای خطی موقعیت آن توصیف می‌شود:

 سرعت، یعنی مشتق مکان نسبت به زمان است.

فرض کنیم در بازه زمانی میان (k − ۱) و k شتاب ak که دارای توزیع طبیعی با میانگین صفر و واریانسσa است به آن اعمال شود. طبق قوانین حرکت نیوتن داریم:

 نتیجه شتابak را به سیستم اعمال می‌کند و همچنین داریم

و

به این ترتیب

به‌طوری‌که  و

توزیع  کاملاً پیوسته نیست و بنابراین هیچ تابع توزیع احتمالی ندارد. روش دیگر بیان این توزیع به صورت زیر است:

در هر بازه زمانی، موقعیت کامیون که با نویزی آمیخته‌است در دست است. فرض کنیم این نویز vk دارای توزیع طبیعی با میانگین صفر و واریانس σz باشد،

به‌طوری‌که

و

می‌دانیم موقعیت اولیه کامیون مشخص است و به صورت زیر در نظر گرفته می‌شود

برای اینکه در فیلتر آگاهیمان نسبت به این موضوع را مشخص کنیم، یک ماتریس کوواریانس صفر تعریف می‌کنیم:

اگر حالت ابتدایی و سرعت به درستی و دقت در دست نباشند، ماتریس کوواریانس باید با توجه به واریانس‌های داده شده و به صورت قطری تعریف شود:

به این ترتیب فیلتر قادر به محاسبه اطلاعات مدل بر اساس مقادیر اولیه می‌شود.

مشتقات

مشتق‌گیری از ماتریس تخمینی کوواریانس پسین

با توجه به مقدار ثابت کوواریانس خطا Pk | k در بالا

با جایگذاری  از روابط اثبات شده خواهیم داشت

حال مقدار  را جایگزین می‌کنیم

همچنین  را نیز در رابطه جایگذاری می‌کنیم

با توجه به بردار خطا

چون خطای اندازه‌گیری شدهvk نسبت به سایر متغیرها ناهمبسته است، می‌توان گفت

با توجه به ویژگی‌های ماتریس کوواریانس

با توجه به ثابت بودن Pk | k−1 و تعریف Rk نتیجه می‌شود

این فرمول برای هر مقدار Kk معتبر است. فرمول بالا بیان می‌کند اگر Kk نتیجه بهینه کالمن باشد، رابطه به شکل زیر ساده خواهد شد.

مشتق نتیجه کالمن

فیلتر کالمن یک تخمین‌گر کمینه مربع میانگین خطا (MMSE) است. خطا در تخمین حالت پسین برابر است با

هدف ما کمینه کردن میانگین مربع این بردار خطا یعنی  است. این معادل کمینه کردن اثر تخمین پسین ماتریس کوواریانس  است. با بسط رابطه بالا نتیجه می‌شود:

اثر ماتریس زمانی کمینه می‌شود که حساب ماتریس صفر شود. با استفاده از خواص ماتریس گرادیان و تقارن ماتریس‌ها داریم:

اگر این معادله را برای Kk حل کنیم، نتیجه کالمن بدست می‌آید

این عبارت همان نتیجه بهینه کالمن است.

ساده کردن فرمول کوواریانس خطای پسین

با استفاده از نتیجه بهینه کالمن که در بالا بدست آمد می‌توان فرمول کوواریانس خطای پسین را ساده‌تر کرد. اگر طرفیت رابطه نتیجه بهینه کالمن را در SkKkT ضرب کنیم، داریم:

با استفاده از فرمول بسط داده شده کوواریانس خطای پسین

با ساده‌سازی دو جملهٔ آخر نتیجه می‌شود

این فرمول در محاسبه بسیار راحت‌تر است اما تنها برای نتیجه بهینه کاربرد دارد و زمانی که نتیجه کالمن بهینه نباشد باید از همان فرمول قبلی استفاده کرد.

تحلیل درستی

معادلات فیلتر کردن کالمن تخمینی بازگشتی برای حالت و کوواریانس خطای  ارائه می‌کند. دقت تخمین به پارامترهای سیستم و نویز ورودی تخمین‌گر بستگی دارد. در غیاب مقادیر ماتریس‌های کوواریانس و  عبارت

مقدار درست کوواریانس خطا را ارائه نمی‌کند. به عبارت دیگر، . در بسیاری از کاربردهای بی‌درنگ، ماتریس‌های کوواریانس مورد استفاده در طراحی فیلتر کالمن با مقادیر واقعی ماتریس‌های کوواریانس تفاوت دارند. این تحلیل بیان می‌دارد که تخمین کوواریانس خطا زمانی که ماتریس‌های ورودی سیستم و  باشند، نادرست است.

این بحث به حالتی که عدم قطعیت درمورد خطا داریم محدود می‌شود. حال مقادیر واقعی کوواریانس نویز را و تعریف می‌کنیم به‌طوری‌که مقادیر آن‌ها به ترتیب در روابط جایگزین و شوند. مقدار واقعی کوواریانس خطا را و با فیلتر کالمن محاسبه می‌شوند. اگر و خواهد بود. با محاسبه مقدار واقعی کوواریانس خطا و جایگذاری و در نظر داشتن اینکه and معادلات بازگشتی برای  بدست می‌آید:

و

محاسبه با فرض و انجام می‌شود. روابط بازگشتی برای و جز زمانی که و را به ترتیب به جای و  در نظر بگیریم، یکتا هستند.

ریشه مربع

یکی از مشکلات فیلتر کالمن ثبات عددی است. اگر کوواریانس نویز Qk کوچک باشد، مقدار ویژه آن منفی می‌شود. به این ترتیب ماتریس کوواریانس حالات P نامعین می‌شود در حالیکه باید مثبت معین باشد.

یک ویژگی ماتریس‌های مثبت معین این است که ریشه مربعی ماتریس مثلثی P = S·ST دارند. این ریشه می‌تواند به کمک روش تفکیک چولسکی (Cholesky decomposition) محاسبه شود. اگر کوواریانس به این فرم نوشته شود، هیچ‌گاه قطری یا متقارن نخواهد بود. یک فرم معادل این ماتریس که با استفاده از تفکیک U-D بدست می‌آید، P = U·D·UT

است کهیک ماتریس مثلثی واحد و D یک ماتریس قطری است. در میان این دو فرم، فرم U-D رایج‌تر است و نیاز به محاسبات کمتری دارد.

الگوریتم‌های کارای پیش‌بینی و آپدیت کالمن در فرم ریشه مربعی، توسط بیرمن و تورتون ارائه شدند.

تفکیک’L·D·LT ماتریس کوواریانسSk مبنای دیگر فیلترهای عددی و ریشه مربعی است. الگوریتم با تفکیک LU آغاز می‌شود و نتایج آن در ساختارL·D·LT وارد می‌شود تا به روش Golub و Van Loan (الگوریتم ۴٫۱٫۲) در ماتریس قطری غیر واحد انجام شود.

ارتباط با تخمین بازگشتی بیز

فیلتر کالمن یکی از ساده‌ترین شبکه‌های پویای بیزی است. فیلتر کالمن حالات فعلی سیستم را در طول زمان به صورت بازگشتی، با استفاده از اندازه‌گیری‌های ورودی در مدل فرایندی ریاضی تخمین می‌زند. به‌طور مشابه تخمین بازگشتی بیز، توابع توزیع احتمال ناشناخته را به صورت بازگشتی، با استفاده از اندازه‌گیری‌های ورودی در مدل فرایندی ریاضی در طول زمان تخمین می‌زند.[۲۰]

در تخمین بازگشتی بیز، حالت فعلی یک فرایند مارکوف مشاهده نشده در نظر گرفته می‌شود و اندازه‌گیری‌های مشاهده شده مدل پنهان مارکف (HMM) هستند.

 

HMM Kalman Filter Derivation

 

با فرض مارکوف، حالت فعلی سیستم مستقل از تمام حالات پیش از حالت قبلی آن است.

به‌طور مشابه اندازه‌گیری در بازه زمانی kام تنها به حالت قبلی وابسته است و مستقل از تمام حالات پیش از حالت قبلی آن است.

با این مفروضات، توزیع احتمال تمام حالات مدل پنهان مارکوف به صورت زیر بیان می‌شود:

هدف فیلتر کالمن تخمین حالت فعلی سیستم است. این تخمین با استفاده از حاشیه‌سازی تابع توزیع مشترک بر اساس حالت قبلی سیستم قابل محاسبه است. کافی است حاشیه‌سازی نسبت به تمام حالات قبل انجام شده و بر احتمال مجموعه اندازه‌گیری‌ها تقسیم شود.

به این ترتیب گام‌های پیش‌بینی و آپدیت فیلتر کالمن به صورت احتمالاتی بدست می‌آیند. توزیع احتمال حالت پیش‌بینی شده حاصل انتگرال حاصلضرب توابع توزیع احتمال انتقال از حالت (k-1)ام به حالت kام است و حالت قبلی روی تمام  های ممکن است.

اندازه‌گیری‌ها تا بازه زمانی kام عبارتند از:

توزیع احتمال آپدیت از حاصلضرب پیش‌بینی و احتمال بخت (likelihood) بدست می‌آید.

به‌طوری‌که

ضریب نرمال‌سازی است.

توابع توزیع احتمال باقی‌مانده عبارتند از:

توجه کنید که تابع چگالی احتمال حالت قبل، یک تخمین است. فیلتر کالمن فیلتری بهینه است و به این ترتیب توزیع احتمال به شرط اندازه‌گیری  یک تخمین بهینه توسط فیلتر کالمن است.

 

تعریف فیلتر کالمن (Kalman filter) قسمت 1
تعریف فیلتر کالمن (Kalman filter) قسمت 2