Sepehr Mqp
Sepehr Mqp
خواندن ۴ دقیقه·۹ ماه پیش

ریاضیات پشت رگرسیون خطی(Linear Regression)

به نام خدا

سلام

امیدوارم حالتون خوب باشه



توی این مطلب میخوایم به ریاضیات مدل رگرسیون خطی بپردازیم که یکی از ساده ترین و در عین حال کاربردی از مدل های یادگیری ماشین تحت نظارت(Supervised Learning) هست. این مدل یا الگوریتم برای پیش بینی مقدار و در کل برای داده های پیوسته استفاده میشه و در حالت عادی نمیتونه به عنوان یک مدل طبقه بندی استفاده بشه.



رگرسیون‌ خطی(Linear Regression)

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

رگرسیون خطی چگونه کار میکند؟


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

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

پس از اینجا نتیجه میگیریم که باید یک الگوریتم بهینه سازی ای هم این وسط باشه که بتونه بهترین پارامتر های خطی رو که میشه به وجود آورد رو بدست بیاره.

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

مرحله ی ۲ رگرسیون خطی: محاسبه ی خطا با یکی از تابع های زیان(Cost function) موجود برای رگرسیون خطی(MSE , SSE)

مرحله ی ۳ رگرسیون خطی: بهینه سازی پارامتر های رابطه ی خط با استفاده از توابع زیان برای پیدا کردن بهترین خط.

مرحله ی ۴ رگرسیون خطی: تکرار، در این مرحله باید مراحل ۲ و ۳ اینقدر تکرار بشن تا بتونیم به بهترین مقادیر رابطه ی خط دست بیابیم.

ریاضیات رگرسیون خطی(Linear Regression)

رابطه ی خط:

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

این رابطه به این صورت نوشته میشه:

f(x) = ax + b

منظور از f(x) چیست؟ : نشان دهنده ی خروجی آن طرف معادله هست و با y یا متغیر وابسته یکی است

منظور از a چست؟ : a نشان دهنده شیب(تانژانت) خط است

منظور از b : نشان دهنده ی عرض از مبدا خط هستش

تابع زیان

توابع زیان(Cost Functions) در یادگیری ماشین کاربرد گسترده ای دارند و به منظور محاسبه ی خطای مدل استفاده میشن، در رگرسیون خطی ما از توابع زیان MSE(Mean Squared Error) و SSE(Sum Squared Error) استفاده میکنیم که به ترتیب به معنای میانگین خطای مربع و مجموع خطای مربع هستن.

تابع زیان MSE(میانگین خطای مربع)

MSE
MSE

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

در این تابع :

حرف yi مقدار واقعی y هست

و yi^ مقدار پیش بینی شده ی y توسط رابطه ی خط ماست

تابع زیان SSE(مجموع خطای مربع)

SSE
SSE

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

گرادیان کاهشی(Gradient Descent)

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

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

نحوه کارکرد گرادیان کاهشی

مرحله ۱: انتخاب یک مقدار رندوم برای x، نخست باید به صورت رندوم یک مقدار برای x انتخاب بشود.

مرحله ۲: محاسبه مقدار مشتق در این نقطه( برای رابطه ی خط چون ۲ پارامتر دارد مشتق جزئی یا چندگانه باید بگیریم)

مرحله ۳: بدست آوردن نقطه جدید با مشتق

و سپس تکرار ماحل ۲ و ۳ برای رسیدن به بهترین مقادیر

منبع: هوسم
منبع: هوسم


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



جمع بندی

توی این مطلب ریاضیات پشت رگرسیون خطی رو فهمیدیم، تونستیم بفهمیم رابطه ی خط چیه، بعدش رفتیم سراغ توابع هزینه که کاربرد های گسترده ای در یادگیری ماشین دارن، سپس رفتیم سراغ یکی از بهترین الگوریتم های بهینه سازی به نام گرادیان کاهشی که کارش پیدا کردن بهترین مقدار پارامتر های رابطه ی خط برای به مینیمم رسوندن مقدار تابع هزینه بود


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










رگرسیون خطیlinear regressionریاضیات رگرسیون خطیتوابع هزینهگرادیان کاهشی
Either try as much as you wish or wish as much as you try
شاید از این پست‌ها خوشتان بیاید