Thuta Learning
Deep Learning with PyTorch
BasicAIintermediate

Deep Learning ဆိုတာ ဘာလဲ

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Deep Learning ဆိုတာ ဘာလဲ concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • နမူနာ PyTorch code ကို ကိုယ်တိုင် run ပြီး output စစ်နိုင်ရန်
  • Tutorial Platform project နှင့် production scenario တွင် မှန်ကန်စွာအသုံးချနိုင်ရန်

နားလည်ထားရမယ့် အချက်

Traditional machine learning မှာ features တွေကို လူက ကိုယ်တိုင် hand-engineer လုပ်ရတယ်။ ဥပမာ spam filter တစ်ခု ဒီဇိုင်းလုပ်တဲ့သူက 'winner' ဆိုတဲ့ စာလုံးပါလား၊ နံနက် ၃ နာရီမှာ ပို့ထားလား၊ sender domain က ထူးထူးဆန်းဆန်း ဖြစ်နေလား စတဲ့ signal တွေကို ကြိုတင်ဆုံးဖြတ်ပြီး ထည့်ပေးရတယ်၊ ပြီးမှ logistic regression လိုမျိုး model ရိုးရိုးလေးက ဒီ signal တွေကို weight ချိန်ညှိပြီး သင်ယူတာပါ။ ဒီနည်းလမ်းက လူရဲ့ intuition ကောင်းမှသာ အလုပ်ဖြစ်ပြီး၊ pixel တွေ၊ audio waveform တွေလို raw, unstructured data အတွက်တော့ လူက feature ကို hand-craft လုပ်ဖို့ မဖြစ်နိုင်တော့ဘူး။ Deep learning ကတော့ ဒီ bottleneck ကို ဖယ်ရှားပစ်တယ်— neural network ကို raw data ကို တိုက်ရိုက်ကျွေးပြီး၊ training လုပ်စဉ် feature hierarchy ကို ကိုယ်တိုင် သင်ယူသွားစေတယ်။ layer အစောပိုင်းတွေက image ထဲက edge တွေကို detect လုပ်ချင် လုပ်နိုင်တယ်၊ layer အလယ်ပိုင်းတွေက edge တွေကို ပေါင်းစပ်ပြီး shape တွေဖြစ်လာတယ်၊ layer နောက်ပိုင်းတွေက shape တွေကို ပေါင်းစပ်ပြီး object တွေအဖြစ် ခွဲခြားတယ်—ဒါတွေအားလုံးကို လူက သတ်မှတ်ပေးတာမဟုတ်ဘဲ data ထဲကနေ အလိုအလျောက် ရှာဖွေတွေ့ရှိသွားတာပါ။ ဒါက math အသစ်တော့ မဟုတ်ဘူး—layered network တွေ၊ backpropagation ရဲ့ core idea တွေက ဆယ်စုနှစ်ချီ ရှိနှင့်ပြီးသားပါ—ပြောင်းသွားတာက labeled data လုံလောက်စွာ ရှိလာပြီး၊ GPU (parallel matrix math အတွက် အထူးဒီဇိုင်းလုပ်ထားတဲ့ hardware) လိုမျိုး compute power တွေ လုံလောက်စွာ ရလာလို့ parameter သန်းချီ၊ ဘီလျံချီပါတဲ့ network တွေကို တကယ်တမ်း train လုပ်ပြီး အလုပ်ဖြစ်အောင် လုပ်နိုင်လာခြင်းသာ ဖြစ်ပါတယ်။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

ဒီ course က Tutorial Platform ကို deep-learning-powered feature အစစ်တွေ ထည့်ပေးဖို့ တည်ဆောက်သွားမှာပါ— learner feedback comment တွေ positive လား negative လား classify လုပ်တာ၊ fixed rule အစား learned relevance နဲ့ search result တွေကို rank လုပ်တာ၊ learner ရဲ့ past learning pattern ကနေ train လုပ်ထားတဲ့ model နဲ့ နောက် lesson ကို recommend လုပ်တာစတာတွေပေါ့။ ဒါတွေဟာ hand-engineered rule တွေနဲ့ချည်း လုပ်လို့မရနိုင်ဘူး—feedback text တွေ၊ learner behavior တွေက အရမ်းကွဲပြားလွန်းလို့ လူက useful signal အားလုံးကို ဖော်ထုတ်ပေးဖို့ မဖြစ်နိုင်ဘူး။ ဒီ course တစ်လျှောက် ဒီ feature တွေရဲ့ နောက်ကွယ်က mechanics အစစ်ကို tensors, gradients တွေကနေ စတည်ဆောက်ပြီး၊ နောက် chapter တွေမှာ ဒီပြဿနာတွေကို တကယ်ဖြေရှင်းဖို့သုံးမယ့် network architecture (CNN, RNN, transformer) တွေအထိ တည်ဆောက်သွားမှာပါ။

အတူတူ စမ်းရေးကြည့်မယ်

text
TRADITIONAL MACHINE LEARNING
-----------------------------
Raw Data --> [Human hand-engineers features] --> Simple Model --> Prediction
 (email)        "contains 'winner'?"           (e.g. logistic       (spam?)
                "sent at 3am?"                   regression)
                "odd sender domain?"
        (human decides which signals matter)


DEEP LEARNING
-----------------------------
Raw Data --> [Neural Network learns its own features] --> Prediction
 (pixels)      Layer 1: edges
                   |
               Layer 2: shapes
                   |
               Layer 3: objects
        (network discovers which signals matter, from data)
You should see
ဒီ diagram က traditional ML မှာတော့ raw data ကို လူ ရွေးချယ်ထားတဲ့ feature တွေကို ဖြတ်ပြီးမှ simple model ဆီ ရောက်တယ်၊ deep learning မှာတော့ raw data ကို network ဆီ တိုက်ရိုက် ကျွေးလိုက်ပြီး layer တွေက edge၊ shape၊ object ဆိုပြီး abstract level မြင့်တက်လာတဲ့ feature တွေကို training အတွင်း ကိုယ်တိုင် ရှာဖွေတွေ့ရှိသွားကြောင်း ပြသထားပါတယ်။

၅ မိနစ် စမ်းကြည့်

လက်တွေ့ classification ပြဿနာတစ်ခု (ဥပမာ ဓာတ်ပုံထဲက ကြောင် ရှာဖွေခြင်း) ကို ရွေးပြီး traditional ML approach အတွက် လူ hand-engineer လုပ်ရမယ့် feature ၅ ခုကို စာရင်းပြုစုပါ—ပြီးရင် ဘယ်လိုအကြောင်းကြောင့် တစ်ခုစီကို တိကျစွာ သတ်မှတ်ဖို့ ခက်ခဲမလဲဆိုတာ မှတ်ချက်ရေးပါ။

သတိလေးတစ်ချက်

Deep learning ကို လုံးဝ math discovery အသစ်လို့ထင်တာ—layered network နဲ့ backpropagation ရဲ့ math က ဆယ်စုနှစ်ချီ ရှိနှင့်ပြီးသားပါ၊ ဘာကြောင့်ပြောင်းလဲခဲ့သလဲ (data + compute) ဆိုတာ နားမလည်ဘဲ magic လိုထင်ရင် မမှန်ကန်တဲ့ မျှော်လင့်ချက်တွေ ဖြစ်စေနိုင်တယ်။

Deep learning ဟာ traditional ML ထက် အမြဲသာတယ်လို့ ယူဆတာ—dataset သေးငယ်ပြီး feature တွေ သိသာထင်ရှားတဲ့ tabular data အတွက်ဆိုရင် logistic regression ဒါမှမဟုတ် gradient-boosted trees လိုမျိုး simple model တွေက data၊ compute နည်းနည်းနဲ့ ကောင်းကောင်း အလုပ်လုပ်တတ်တယ်။

Wikipedia — Deep learningDeep Learning

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Deep learning ကို လုံးဝ math discovery အသစ်လို့ထင်တာ—layered network နဲ့ backpropagation ရဲ့ math က ဆယ်စုနှစ်ချီ ရှိနှင့်ပြီးသားပါ၊ ဘာကြောင့်ပြောင်းလဲခဲ့သလဲ (data + compute) ဆိုတာ နားမလည်ဘဲ magic လိုထင်ရင် မမှန်ကန်တဲ့ မျှော်လင့်ချက်တွေ ဖြစ်စေနိုင်တယ်။
  • Deep learning ဟာ traditional ML ထက် အမြဲသာတယ်လို့ ယူဆတာ—dataset သေးငယ်ပြီး feature တွေ သိသာထင်ရှားတဲ့ tabular data အတွက်ဆိုရင် logistic regression ဒါမှမဟုတ် gradient-boosted trees လိုမျိုး simple model တွေက data၊ compute နည်းနည်းနဲ့ ကောင်းကောင်း အလုပ်လုပ်တတ်တယ်။
  • နမူနာ code ကို production system ပေါ် တိုက်ရိုက်မစမ်းဘဲ local/test environment တွင် အရင်အတည်ပြုပါ။

လေ့ကျင့်ခန်း

လက်တွေ့ classification ပြဿနာတစ်ခု (ဥပမာ ဓာတ်ပုံထဲက ကြောင် ရှာဖွေခြင်း) ကို ရွေးပြီး traditional ML approach အတွက် လူ hand-engineer လုပ်ရမယ့် feature ၅ ခုကို စာရင်းပြုစုပါ—ပြီးရင် ဘယ်လိုအကြောင်းကြောင့် တစ်ခုစီကို တိကျစွာ သတ်မှတ်ဖို့ ခက်ခဲမလဲဆိုတာ မှတ်ချက်ရေးပါ။

You'll know it worked when: ဒီ diagram က traditional ML မှာတော့ raw data ကို လူ ရွေးချယ်ထားတဲ့ feature တွေကို ဖြတ်ပြီးမှ simple model ဆီ ရောက်တယ်၊ deep learning မှာတော့ raw data ကို network ဆီ တိုက်ရိုက် ကျွေးလိုက်ပြီး layer တွေက edge၊ shape၊ object ဆိုပြီး abstract level မြင့်တက်လာတဲ့ feature တွေကို training အတွင်း ကိုယ်တိုင် ရှာဖွေတွေ့ရှိသွားကြောင်း ပြသထားပါတယ်။

Deep Learning ဆိုတာ ဘာလဲ | Thuta Learning