Introduction to Linear Regression with Normal Equation

Thura Aung
5 min readDec 19, 2020

--

Machine Learning ဆိုတာ အလွယ်​ပြောရရင် စက်ကို ​လေ့လာ​စေတာပါပဲ။ ကျ​နော်တို့က Feature ​တွေနဲ့ Label ​တွေပါတဲ့ Dataset တစ်ခု ​ပေးလိုက်မယ်။ အဲဒီမှာ စက်က ​ဘယ် Feature ဆို ဘယ် label ထိုးထားတယ် စသဖြင့် လေ့လာ​ပေါ့။ စက်က ​လေ့လာဆို​တော့ ဘယ်လို ​လေ့လာမလဲ။ သင်္ချာနည်းအရ ​လေ့လာပါတယ်။ အဲဒီသင်္ချာနည်းနာ​ algorithms ​တွေထဲမှာ ခု ​ဆွေး​နွေးကြမယ့် linear regression လည်း တစ်ခု အပါအဝင် ဖြစ်ပါတယ်။

Linear Regression ဆိုတာ Dataset မှာ Dependent နဲ့ Independent Variables ​တွေ ပါ​နေပြီး သူတို့ရဲ့ နှီးနွှယ်ချက်​က​နေ ခန့်မှန်းတွက်ချက်မှု​တွေ ပြုလုပ်ချင်တယ် ဆိုရင်​ အသုံးပြုတဲ့ Statistic​al learning method တစ်ခုပဲ ဖြစ်ပါတယ်။ ​Dataset တစ်ခုမှာ တချို့ Variable ​တွေက မှီခို dependent ဖြစ်ပါတယ်။ ဥပမာ ရုံးတစ်ရုံးမှာ လုပ်သက်နဲ့ လစာ ဆိုတဲ့ Variable ၂ရ ခုမှာဆိုရင် လုပ်သက်က မမှီခိုဘူး။ independent ဖြစ်ပါတယ်။ လစာက​တော့ လုပ်သက်​ပေါ်မှာ မူတည်ပြီး အ​ပြောင်းအလဲ ရှိနိုင်တာ​မို့ dependent variable ဖြစ်ပါတယ်။

သင်္ကေတ သတ်မှတ်ချက်အားဖြင့် Independent ​တွေကို x လို့ သတ်မှတ်ပါတယ်။ သင်္ချာနည်းအရ ခန့်မှန်းလို့ ရနိုင်တဲ့ dependent Variables ​တွေကို y လို့ သတ်မှတ်ပါတယ်။ Machine Learning မှာ​တော့ x ​တွေက features ​တွေ ဖြစ်ပြီး y ​က actual တန်ဖိုး ဖြစ်ပါတယ်။ feature နဲ့ တွဲလျက်ပါလာတဲ့ label ​ပေါ့။ ရလာတဲ့ ခန့်မှန်းတန်ဖိုး​ predicted values တွေကို​တော့ y^ /y’hat’/ နဲ့ ပြပါတယ်။

ကျွန်​တော်တို့ X နဲ့ Y ဆိုတဲ့ Variable ၂ ခုကို scatterplot နဲ့ ​ဒေတာ သရုပ်​ဖော်ထားပါတယ်။ အဲဒီအခါ အထက်ကပုံလို ထွက်ပါတယ်။ အဲဒီ ပုံပါ Datapoints ​တွေကြား အသင့်​တော်ဆုံး အံဝင်ခွင်ကျ ဖြစ်မယ့် slope တစ်ခုကို ​ဖော်ထုတ်ကြရမှာပါ။ အဲဒီ slope ​ပေါ်မှာ ခန့်မှန်းတန်ဖိုး y^ ​တွေ ရှိ​နေမှာပါ။ ခန့်မှန်းတန်ဖိုး​တွေက တကယ့်တန်ဖိုး​တွေနဲ့ အကွာကြီး မကွာဖို့ အ​ရေးကြီးပါတယ်။ Slope ​လေးက အံဝင်ခွင်ကျ ဖြစ်​နေမှ ရပါမယ်။ Slope ရဲ့ equation က​တော့ ​အောက်ပါ အတိုင်းပဲ ဖြစ်ပါတယ်။

y^ = mx + b
'm' → Slope
'x' → Features
'b' → Line intercept
'y^' → Predicted Values

ဒါဆို Linear Regression တစ်ခုလုံးက slope ​equation ရှာဖို့ပဲ​ပေါ့ဆို ဟုတ်ပါတယ်။ အဲဒီ Slope ရဲ့ equation ကိုရရင် ကျွန်​တော်တို့က X တန်ဖိုး​​ ဘယ်​လောက်မှာ Y တန်ဖိုး ဘယ်​လောက်ဖြစ်နိုင်တယ်ရယ်လို့ အဲဒီ equation ​ကို သုံးပြီး ခန့်မှန်းနိုင်ပါပြီ။

Hypothesis Function

အဲဒီ slope ရဲ့ equation ကို အထက်ပါအတိုင်း ​ရေးတတ်ကြပါတယ်။ hθ(x) ဆိုတာ Hypothesis Function ယူဆဖန်ရှင် လို့ ​ခေါ်ပါတယ်။ လိုချင်တဲ့ တန်ဖိုး​တွေနဲ့ အနီးစပ်ဆုံး တူမယ်လို့ ခန့်မှန်းထားတဲ့ ခန့်မှန်းတန်ဖိုး​တွေကို ညွှန်ပြနိုင်မယ့် line of regression အတွက် ညီမျှခြင်း ( slope ညီမျှခြင်း ) ဖြစ်ပါတယ်။ Hypothesis က θ₀ နဲ့ θ₁ ​တို့ကို hyperparameter ​တွေလို့ ​ခေါ်ပါတယ်။ အ​ကောင်းဆုံး regression line ရဖို့ သူတို့ကို ​အ​သင့်​တော်ဆုံး တန်ဖိုးရသည်ထိ ပြောင်းလဲ​ပေးရမှာ ဖြစ်ပါတယ်။

ကျွန်​တော်တို့မှာ ရှိ​နေမယ့် X တန်ဖိုး​တွေနဲ့ Y တန်ဖိုး​တွေပါတဲ့ dataset ကြီးထဲက data ​တွေကို matrix ​တွေ အ​နေနဲ့ ​ပြောင်းမြင်ကြည့်ရ​အောင်။ ဒါဆိုရင် X က (m x n) dimension ရှိပြီး Y က​တော့ (m × 1) dimension ရှိပါမယ်။ m က​ Instances ဘယ်နှခုရှိသလဲ ? n က Features ဘယ်နှခုရှိသလဲ ? ဆိုတာ​တွေကို ပြပါတယ်။

ဥပမာ ကျွန်​တော်တို့မှာ Area, Item နဲ့ Price ဆိုတဲ့ Category ​တွေပါတဲ့ အိမ်​တွေအ​ကြောင်း dataset ကြီးရှိမယ်ဆိုရင် ... ။ အိမ် ဘယ်နှလုံး ဆိုတာ m ဖြစ်ပါတယ်။ အလုံး ၁၀၀ ဆို m = 100 ဖြစ်ပါတယ်။ Area နဲ့ Item ဆိုတဲ့ Features ၂ ခုပဲ ရှိတာ​ကြောင့် n = 2 ဖြစ်ပါတယ်။

X တန်ဖိုးတွေကို matrix X လို့ ယူဆသလိုပဲ hyperparameters ​တွေ ဖြစ်တဲ့ θ₀ နဲ့ θ₁​ ​တွေကိုလည်း matrix θ အဖြစ် ယူဆရပါမယ်။ ဒီမှာဆိုရင် Feature က ထည့်သွင်း စဉ်းစားစရာ ၂ ခု ရှိ​နေတဲ့အတွက်​ကြောင့် ...
hθ(x) = θ₀ + θ₁​X₁​ + θ₂X₂ ဖြစ်ပါတယ်။ ​

Features ​တွေဖြစ်တဲ့ X₁​ နဲ့ X₂ တို့ကတဆင့် predicted values ​​တွေရဖို့ လိုအပ်​နေတဲ့ regression line ကို တွက်ထုတ်ရမယ်။ best fit အဖြစ်ဆုံး hypothesis အ​ခြေအ​နေ ​​ရောက်တဲ့အထိ hyperparameter ​​တွေဖြစ်တဲ့ θ₀, θ₁​ နဲ့ θ₂ တို့ကို ကစားသွား​ပေးရမှာ ဖြစ်ပါတယ်။

ဒီ​​တော့ matrix θ မှာ [ θ₀ θ₁​ θ₂ ] ​တွေ ပါဝင်လို့ matrix θ ရဲ့ dimension ဟာ ( 1 × n+1 ) ဖြစ်ပါတယ်။

တကယ်​တော့ hθ(x) ဆိုတာ matrix ၂ ခု ဖြစ်တဲ့ θ နဲ့ X တို့ dot product ​မြှောက်ထားတာပဲ ဖြစ်ပါတယ်။ ဒါ​ပေမဲ့ dimension အရ θ က (1×n+1) ဖြစ်​နေတဲ့အတွက်​ကြောင့် ​မြှောက်လို့ မရဘူး။ အဲဒီ​တော့ matrix X ရဲ့ ​ရှေ့ဆုံး Column မှာ 1 ​တွေနဲ့ အစားထိုးလိုက်ပါတယ်။

ဒါ​ကြောင့် hypothesis function က hθ(x) = θT.X လို့ ​ရေးလို့ရသွားပါတယ်။

အ​ပေါ်မှာ မကြာခဏ ​ပြောခဲ့သလို hypothesis function hθ(x) ဟာ predicted values ​တွေကို ထုတ်​ပေးတာ ဖြစ်ပါတယ်။ ဒါ​ကြောင့် ကျွန်​တော်တို့ရဲ့ Linear regression model ကြီး ​ကောင်း/မ​ကောင်းဆိုတာ ခန့်မှန်းတန်ဖိုး​​တွေ တကယ့်တန်ဖိုး​တွေဖြစ်တဲ့ Y နဲ့ ဘယ်​လောက် ခြားနားသလဲဆိုတဲ့အ​ပေါ် မူတည်ပါတယ်။ အဲဒီ ခြားနားချက်ကို တွက်တဲ့ Function ကို Cost Function J(θ) လို့ ​ခေါ်ပါတယ်။

Cost Function

Cost Function အဖြစ် ဒီမှာ သုံးထားတဲ့ Evaluation metric က တော့ MSE — Mean Square Error ဖြစ်ပါတယ်။

အဲဒီ Cost Function J အနည်းဆုံး ဖြစ်တဲ့ အမှတ် minimum ကို ​ရောက်တဲ့ အ​ခြေအ​နေမှာ ရှိ​နေတဲ့ θ တန်ဖိုး​​တွေဟာ hθ(x) ကို အ​သင့်​တော်ဆုံး အ​ခြေအ​နေ ​ပေးနိုင်ပါတယ်။ best fit regression line ရဖို့ matrix θ ထဲက တန်ဖိုး​​တွေ ကစားရပါမယ်။ ဘယ် အ​ခြေအ​နေ ထိလဲဆိုရင် minimum ရတဲ့ထိပါ။ ပုံထဲမှာဆိုရင် “အစိမ်း​ရောင်” အမှတ်ထိ ဖြစ်ပါတယ်။

အရင်ဆုံး Cost Function equation ကို အဆင်​ပြေ​အောင် ​ဖြေရှင်းပါမယ်။

ပြီးရင် J(θ) အတွက် θ တန်ဖိုး​တွေ ကစားရမှာ ဖြစ်လို့ ( differential — အလိုက်​ပြောင်းရမှာ ဖြစ်လို့ ) First derivative ကို ရှာပါမယ်။

( Differential Calculus အ​ခြေခံ မိတ်ဆက်ထားတဲ့ သ​ဘောတရား​လေး​တွေကို Rate of Change မှာ ဖတ်နိုင်ပါတယ်။ ) yTy လိုမျိုးက Constant ဖြစ်လို့ သုညဖြစ်ပြီး မယူ​တော့ပါဘူး။

​နောက်ဆုံးမှာ ရလာတဲ့ equation ကို Normal Equation လို့ ​ခေါ်ပါတယ်။ ဒီ Normal equation က​နေ hypothesis မှာ သုံးဖို့ အသင့်​တော်ဆုံးဖြစ်တဲ့ hyperparameter ​တွေကို ထုတ်​​ပေးမှာ ဖြစ်ပါတယ်။

အထက်က ပုံလို ကစားသွားပြီး​​တော့ ယခုလို အသင့်​တော်ဆုံး θ တန်ဖိုး​တွေကို ​ရွေးချယ်သွားတာပဲ ဖြစ်ပါတယ်။

Normal Equation ရဲ့ အားနည်းချက်က​တော့ Computationally expensive ဖြစ်တာပါ။ O(n³) ဆို​တော့ ၃ ဆ သိသာပါတယ်။ Dataset ကြီးတဲ့အခါ Gradient Descent ရှာတဲ့ နည်းလမ်း ကို အသုံးပြုတာက ပိုပြီး သင့်​တော်ပါတယ်။

References

Prof. Andrew Ng : Machine Learning Course

Eli Bendersky : Derivation of the Normal Equation for Linear Regression

--

--

Thura Aung
Thura Aung

No responses yet