ဆောင်းပါးတို Backpropagation ဆိုတာဘာလဲ။ - Unite.AI
ကြှနျုပျတို့နှငျ့အတူချိတ်ဆက်ပါ
AI Masterclass-

AI ၅၀

Backpropagation ဆိုတာဘာလဲ။

mm
နောက်ဆုံးရေးသားချိန် on

Backpropagation ဆိုတာဘာလဲ။

နက်ရှိုင်းသောသင်ယူမှုစနစ်များသည် အလွန်ရှုပ်ထွေးသောပုံစံများကို သင်ယူနိုင်ပြီး ၎င်းတို့၏အလေးချိန်များကို ချိန်ညှိခြင်းဖြင့် ၎င်းကို ပြီးမြောက်စေသည်။ နက်နဲသော အာရုံကြောကွန်ရက်၏ အလေးချိန်များကို အတိအကျ မည်သို့ချိန်ညှိသနည်း။ သူတို့ကတဆင့် ညှိတယ်။ လုပ်ငန်းစဉ်တစ်ခု ခေါ်တော် backpropagation. နောက်ကြောင်းပြန်ပြန့်ပွားခြင်းမရှိဘဲ၊ နက်နဲသော အာရုံကြောကွန်ရက်များသည် ရုပ်ပုံများကို မှတ်မိခြင်းနှင့် သဘာဝဘာသာစကားကို ဘာသာပြန်ခြင်းကဲ့သို့သော လုပ်ငန်းဆောင်တာများကို လုပ်ဆောင်နိုင်မည်မဟုတ်ပေ။ backpropagation အလုပ်လုပ်ပုံကို နားလည်ခြင်းသည် ယေဘူယျအားဖြင့် နက်နဲသော အာရုံကြောကွန်ရက်များကို နားလည်ရန် အရေးကြီးသည်၊ ထို့ကြောင့် backpropagation ကို ဆွေးနွေးပြီး ကွန်ရက်တစ်ခု၏ အလေးများကို ချိန်ညှိရန် လုပ်ငန်းစဉ်ကို မည်သို့အသုံးပြုသည်ကို ကြည့်ကြပါစို့။

Backpropagation သည် နားလည်ရန် ခက်ခဲနိုင်ပြီး နောက်ကြောင်းပြန်ပြန့်ပွားခြင်းကို ဆောင်ရွက်ရာတွင် အသုံးပြုသည့် တွက်ချက်မှုများသည် အတော်လေး ရှုပ်ထွေးနိုင်ပါသည်။ ဤဆောင်းပါးသည် ရှုပ်ထွေးသောသင်္ချာနည်းကို အနည်းငယ်အသုံးပြု၍ backpropagation ၏ အလိုလိုသိနားလည်မှုကို ပေးစွမ်းနိုင်မည်ဖြစ်သည်။ သို့သော် နောက်ကွယ်မှ သင်္ချာအကြောင်း ဆွေးနွေးချက်အချို့ လိုအပ်ပါသည်။

Backpropagation ၏ပန်းတိုင်

နောက်ကြောင်းပြန်ပြန့်ပွားခြင်း၏ ပန်းတိုင်ကို သတ်မှတ်ခြင်းဖြင့် စတင်ကြပါစို့။ နက်နဲသော အာရုံကြောကွန်ရက်တစ်ခု၏ အလေးချိန်များသည် အာရုံကြောကွန်ရက်တစ်ခု၏ ယူနစ်များကြား ချိတ်ဆက်မှု၏ အင်အားဖြစ်သည်။ အာရုံကြောကွန်ရက်ကို ထူထောင်သောအခါတွင် အလွှာတစ်ခုရှိ ယူနစ်များသည် ၎င်းနှင့် ချိတ်ဆက်ထားသော အလွှာများသို့ ချိတ်ဆက်ပုံနှင့် ပတ်သက်၍ ယူဆချက်များ ပြုလုပ်ကြသည်။ ဒေတာများသည် အာရုံကြောကွန်ရက်မှတဆင့် ရွေ့လျားလာသည်နှင့်အမျှ၊ အလေးချိန်များကို တွက်ချက်ပြီး ယူဆချက်များကို ပြုလုပ်ကြသည်။ ဒေတာသည် ကွန်ရက်၏ နောက်ဆုံးအလွှာသို့ ရောက်ရှိသောအခါ၊ ဒေတာအတွဲရှိ အတန်းများနှင့် အင်္ဂါရပ်များ မည်သို့ဆက်စပ်ကြောင်း ခန့်မှန်းချက်တစ်ခု ပြုလုပ်သည်။ ခန့်မှန်းတန်ဖိုးများနှင့် အမှန်တကယ်တန်ဖိုးများကြား ခြားနားချက်မှာ ဆုံးရှုံးမှု/အမှား၊ နှင့် နောက်ကြောင်းပြန်ဖြန့်ခြင်း၏ ပန်းတိုင်၊ ဆုံးရှုံးမှုကို လျှော့ချရန်ဖြစ်သည်။. ကွန်ရက်၏ အလေးချိန်များကို ချိန်ညှိခြင်းဖြင့် ပြီးမြောက်ပြီး ယူဆချက်များသည် ထည့်သွင်းမှုအင်္ဂါရပ်များကြား စစ်မှန်သော ဆက်ဆံရေးများနှင့် ပိုတူစေသည်။

နက်ရှိုင်းသော Neural Network လေ့ကျင့်ခြင်း။

backpropagation မပြုမီတစ်ခုပေါ်တွင်လုပ်ဆောင်နိုင်သည်။ အာရုံကြောကွန်ယက်ကိုအာရုံကြောကွန်ရက်တစ်ခု၏ ပုံမှန်/ရှေ့ဆက်လေ့ကျင့်ရေးလက်မှတ်ကို ဆောင်ရွက်ရပါမည်။ အာရုံကြောကွန်ရက်တစ်ခုကို ဖန်တီးသောအခါ၊ အလေးချိန်အစုတစ်ခုကို အစပြုသည်။ ကွန်ရက်ကို လေ့ကျင့်ထားသောကြောင့် အလေးများ၏တန်ဖိုး ပြောင်းလဲသွားပါမည်။ အာရုံကြောကွန်ရက်တစ်ခု၏ ရှေ့သို့ လေ့ကျင့်ပေးမှုအား သီးခြားအဆင့်သုံးဆင့်ဖြစ်သည့် နျူရွန်အသက်သွင်းခြင်း၊ နျူရွန်လွှဲပြောင်းခြင်းနှင့် ရှေ့သို့ပြန့်ပွားခြင်းတို့ကို လုပ်ဆောင်နိုင်သည်။

နက်ရှိုင်းသော အာရုံကြောကွန်ရက်ကို လေ့ကျင့်သောအခါ၊ ကျွန်ုပ်တို့သည် သင်္ချာဆိုင်ရာ လုပ်ဆောင်ချက်များစွာကို အသုံးပြုရန် လိုအပ်သည်။ နက်ရှိုင်းသော အာရုံကြောကွန်ရက်ရှိ နျူရွန်များသည် node အား စတင်ရန် လိုအပ်သည့်တန်ဖိုးကို ဆုံးဖြတ်ပေးသည့် အဝင်ဒေတာနှင့် လှုပ်ရှားလုပ်ဆောင်မှုတစ်ခုတို့ ပါဝင်ပါသည်။ နျူရွန်တစ်ခု၏ နိုးကြားမှုတန်ဖိုးကို အစိတ်အပိုင်းများစွာဖြင့် တွက်ချက်သည်၊ သွင်းအားစုများ၏ အလေးချိန်ကို တွက်သည်။ အလေးချိန်နှင့် ထည့်သွင်းမှုတန်ဖိုးများသည် activation ကိုတွက်ချက်ရန်အသုံးပြုသည့် node များ၏အညွှန်းအပေါ် မူတည်ပါသည်။ ဘက်လိုက်မှုတန်ဖိုးကို တွက်ချက်သည့်အခါ အခြားနံပါတ်များကို ထည့်သွင်းစဉ်းစားရပါမည်။ ဘက်လိုက်မှုတန်ဖိုးများသည် အတက်အကျမရှိသောကြောင့် ၎င်းတို့ကို အလေးချိန်နှင့် သွင်းအားစုများနှင့်အတူ မမြှောက်ဘဲ ပေါင်းထည့်ထားသည်။ ဤအရာအားလုံးသည် activation တန်ဖိုးကို တွက်ချက်ရန် အောက်ပါညီမျှခြင်းအား အသုံးပြုနိုင်ကြောင်း ဆိုလိုသည်-

အသက်သွင်းခြင်း = sum(အလေးချိန် * ထည့်သွင်းမှု) + ဘက်လိုက်မှု

နျူရွန်ကို အသက်သွင်းပြီးနောက်၊ နျူရွန်၏ အမှန်တကယ်ထွက်ရှိမည့် အထွက်ကို ဆုံးဖြတ်ရန် နိုးကြားမှုလုပ်ဆောင်ချက်ကို အသုံးပြုသည်။ မတူညီသော activation လုပ်ဆောင်ချက်များသည် မတူညီသော သင်ယူမှုလုပ်ငန်းများအတွက် အကောင်းဆုံးဖြစ်သည်၊ သို့သော် အသုံးများသော activation လုပ်ဆောင်ချက်များတွင် sigmoid လုပ်ဆောင်ချက်၊ Tanh လုပ်ဆောင်ချက်နှင့် ReLU လုပ်ဆောင်ချက်တို့ ပါဝင်ပါသည်။

အလိုရှိသော activation function မှတဆင့် အာရုံကြော၏ outputs များကို တွက်ချက်ပြီး၊ forward propagation ပြီးပါပြီ။ Forward propagation သည် အလွှာတစ်ခု၏ output များကို ယူပြီး နောက် layer ၏ input များအဖြစ် ပြုလုပ်ခြင်းသာဖြစ်သည်။ ထို့နောက် အသစ်သော inputs များကို activation functions အသစ်များကို တွက်ချက်ရန်အတွက် အသုံးပြုကြပြီး၊ ဤလုပ်ဆောင်ချက်၏ output သည် အောက်ပါအလွှာသို့ ရောက်သွားပါသည်။ ဤလုပ်ငန်းစဉ်သည် အာရုံကြောကွန်ရက်၏ အဆုံးအထိ တစ်လျှောက်လုံး ဆက်လက်လုပ်ဆောင်နေပါသည်။

Network တွင် Backpropagation

နောက်ကြောင်းပြန်ပြန့်ပွားခြင်းလုပ်ငန်းစဉ်သည် မော်ဒယ်တစ်ဦး၏ လေ့ကျင့်ရေးလက်မှတ်၏ နောက်ဆုံး ဆုံးဖြတ်ချက်များတွင် အကျုံးဝင်ပြီး ယင်းဆုံးဖြတ်ချက်များတွင် အမှားအယွင်းများကို ဆုံးဖြတ်သည်။ ကွန်ရက်၏ ရလဒ်များ/ဆုံးဖြတ်ချက်များနှင့် ကွန်ရက်၏ မျှော်လင့်ထားသော/အလိုရှိသော ရလဒ်များကို ယှဉ်တွဲ၍ အမှားအယွင်းများကို တွက်ချက်သည်။

ကွန်ရက်၏ ဆုံးဖြတ်ချက်များတွင် အမှားအယွင်းများကို တွက်ချက်ပြီးသည်နှင့်၊ ဤအချက်အလက်များကို ကွန်ရက်မှတစ်ဆင့် ပြန်လည်ဖြန့်ဝေပြီး ကွန်ရက်၏ ဘောင်များကို လမ်းကြောင်းတစ်လျှောက် ပြောင်းလဲသွားမည်ဖြစ်သည်။ ကွန်ရက်၏ အလေးများကို အပ်ဒိတ်လုပ်ရန် အသုံးပြုသည့် နည်းလမ်းသည် တွက်ချက်မှုတွင် အခြေခံထားပြီး အထူးသဖြင့် ၎င်းသည် ကွင်းဆက်စည်းမျဉ်းတွင် အခြေခံထားသည်။ သို့သော်လည်း နောက်ကြောင်းပြန်ပြန့်ပွားခြင်း၏ နောက်ကွယ်မှ အယူအဆကို နားလည်ရန် calculus ကို နားလည်ရန် မလိုအပ်ပါ။ နျူရွန်တစ်ခုမှ အထွက်တန်ဖိုးကို ထောက်ပံ့ပေးသောအခါ၊ အထွက်တန်ဖိုး၏ လျှောစောက်ကို လွှဲပြောင်းခြင်းလုပ်ဆောင်ချက်ဖြင့် တွက်ချက်ပြီး ဆင်းသက်လာသော အထွက်ကို ထုတ်ပေးကြောင်း သိထားပါ။ backpropagation လုပ်သောအခါ၊ တိကျသော neuron အတွက် error ကို အောက်ပါအတိုင်း တွက်ချက်သည်။ ရေးဆွဲရေး:

error = (expected_output – actual_output) * နျူရွန်၏ အထွက်တန်ဖိုး လျှောစောက်

အထွက်အလွှာရှိ နျူရွန်များကို လည်ပတ်သောအခါ၊ အတန်းတန်ဖိုးကို မျှော်လင့်ထားသည့်တန်ဖိုးအဖြစ် အသုံးပြုသည်။ အမှားကို တွက်ချက်ပြီးနောက်၊ အမှားကို လျှို့ဝှက်အလွှာရှိ နျူရွန်များအတွက် ထည့်သွင်းမှုအဖြစ် အသုံးပြုသည်၊ ဆိုလိုသည်မှာ ဤလျှို့ဝှက်အလွှာအတွက် အမှားသည် အထွက်အလွှာအတွင်းတွေ့ရှိရသော နူရွန်များ၏ အလေးချိန်ရှိသော အမှားများဖြစ်ကြောင်း ဆိုလိုသည်။ မှားယွင်းတွက်ချက်မှုများသည် အလေးများကွန်ရက်တစ်လျှောက် ကွန်ရက်မှတဆင့် နောက်ပြန်လှည့်သွားပါသည်။

ကွန်ရက်အတွက် အမှားအယွင်းများကို တွက်ချက်ပြီးနောက်၊ ကွန်ရက်အတွင်းရှိ အလေးချိန်များကို အပ်ဒိတ်လုပ်ရပါမည်။ ဖော်ပြခဲ့သည့်အတိုင်း၊ အမှားကိုတွက်ချက်ရာတွင် output value ၏ slope ကိုဆုံးဖြတ်ခြင်းပါဝင်သည်။ slope ကို တွက်ချက်ပြီးနောက်၊ gradient descent ဟုခေါ်သော လုပ်ငန်းစဉ်ကို network အတွင်းရှိ အလေးချိန်များကို ချိန်ညှိရန် အသုံးပြုနိုင်သည်။ gradient သည် slope တစ်ခုဖြစ်ပြီး ထောင့်/မတ်စောက်မှုကို တိုင်းတာနိုင်သည်။ slope ကို "y over" သို့မဟုတ် "run" ကျော် "တက်လာခြင်း" ဖြင့် တွက်ချက်သည်။ neural network နှင့် error rate တွင် “y” သည် တွက်ချက်ထားသော error ဖြစ်ပြီး “x” သည် network ၏ parameters များဖြစ်သည်။ ကွန်ရက်၏ ကန့်သတ်ချက်များသည် တွက်ချက်ထားသော အမှားတန်ဖိုးများနှင့် ဆက်စပ်မှုရှိပြီး ကွန်ရက်၏အလေးချိန်များကို ချိန်ညှိထားသောကြောင့် အမှားအယွင်းများ တိုးလာခြင်း သို့မဟုတ် လျော့ကျသွားခြင်း ဖြစ်သည်။

"Gradient မှဆင်းသက်ခြင်း" သည် အမှားအယွင်းနှုန်းလျော့နည်းသွားစေရန် အလေးများကို အဆင့်မြှင့်တင်ခြင်းလုပ်ငန်းစဉ်ဖြစ်သည်။ Backpropagation ကို အာရုံကြောကွန်ရက်၏ ကန့်သတ်ဘောင်များ နှင့် gradient ဆင်းသက်ရန်အတွက် ကွန်ရက်ကို သတ်မှတ်ပေးသည့် အမှားအယွင်းနှုန်းကြား ဆက်စပ်မှုကို ခန့်မှန်းရန် အသုံးပြုသည်။ ရှေ့သို့ပြန့်ပွားခြင်းမှတစ်ဆင့် အလေးချိန်များကို တွက်ချက်ခြင်း၊ အမှားကို နောက်ကြောင်းပြန်ဖြန့်ခြင်း၊ ထို့နောက် ကွန်ရက်၏အလေးချိန်များကို အပ်ဒိတ်လုပ်ခြင်းတို့ပါ၀င်သော gradient ဆင်းသက်သည့် ကွန်ရက်တစ်ခုကို လေ့ကျင့်သင်ကြားပေးခြင်း။

ဘလော့ဂါနှင့် ပရိုဂရမ်မာများအတွက် အထူးပြုပါ။ စက်သင်ယူ နှင့် နက်ရှိုင်းသောသင်ယူခြင်း အကြောင်းအရာများ လူမှုဆက်ဆံရေးကောင်းမွန်ရန်အတွက် AI ၏စွမ်းအားကို အခြားသူများအား ကူညီပေးနိုင်ရန် Daniel က မျှော်လင့်ထားသည်။