Introduction to Linear Regression with Normal Equation
Machine Learning ဆိုတာ အလွယ်ပြောရရင် စက်ကို လေ့လာစေတာပါပဲ။ ကျနော်တို့က Feature တွေနဲ့ Label တွေပါတဲ့ Dataset တစ်ခု ပေးလိုက်မယ်။ အဲဒီမှာ စက်က ဘယ် Feature ဆို ဘယ် label ထိုးထားတယ် စသဖြင့် လေ့လာပေါ့။ စက်က လေ့လာဆိုတော့ ဘယ်လို လေ့လာမလဲ။ သင်္ချာနည်းအရ လေ့လာပါတယ်။ အဲဒီသင်္ချာနည်းနာ algorithms တွေထဲမှာ ခု ဆွေးနွေးကြမယ့် linear regression လည်း တစ်ခု အပါအဝင် ဖြစ်ပါတယ်။
Linear Regression ဆိုတာ Dataset မှာ Dependent နဲ့ Independent Variables တွေ ပါနေပြီး သူတို့ရဲ့ နှီးနွှယ်ချက်ကနေ ခန့်မှန်းတွက်ချက်မှုတွေ ပြုလုပ်ချင်တယ် ဆိုရင် အသုံးပြုတဲ့ Statistical 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