Artificial Intelligence (AI) သည် မကြာသေးမီနှစ်များအတွင်း ရေပန်းစားလာခဲ့သည်။
အကယ်၍ သင်သည် ယေဘုယျအားဖြင့် ဆော့ဖ်ဝဲအင်ဂျင်နီယာ၊ ကွန်ပျူတာသိပ္ပံပညာရှင် သို့မဟုတ် ဒေတာသိပ္ပံကို ဝါသနာပါသူဖြစ်ပါက၊ ဤနယ်ပယ်မှ ပံ့ပိုးပေးထားသည့် ရုပ်ပုံလုပ်ဆောင်ခြင်း၊ ပုံစံအသိအမှတ်ပြုခြင်းနှင့် အရာဝတ္ထုရှာဖွေခြင်း၏ အံ့သြဖွယ်အပလီကေးရှင်းများကြောင့် သင်စိတ်ဝင်စားဖွယ်ကောင်းပေမည်။
သင်ကြားဖူးသလောက် AI ၏ အရေးကြီးဆုံးနယ်ပယ်ခွဲမှာ Deep Learning ဖြစ်သည်။ ဤနယ်ပယ်သည် လူသားတို့၏ ဦးနှောက်လုပ်ဆောင်နိုင်စွမ်းကို စံနမူနာပြုထားသည့် အစွမ်းထက်သော အယ်လဂိုရီသမ်များ (ကွန်ပျူတာ ပရိုဂရမ် ညွှန်ကြားချက်များ) ကို အာရုံစိုက်သည်။ အာရုံကြောကွန်ယက်များ.
ဤဆောင်းပါးတွင်၊ ကျွန်ုပ်တို့သည် Neural Networks ၏ သဘောတရားနှင့် ဤမော်ဒယ်များကို အသုံးပြု၍ တည်ဆောက်ပုံ၊ စုစည်းပုံ၊ အံဝင်ခွင်ကျ နှင့် အကဲဖြတ်နည်းကို ဆွေးနွေးပါမည်။ Python ကို.
အာရုံကြောကွန်ယက်များ
Neural Networks (သို့) NNs များသည် လူ့ဦးနှောက်၏ ဇီဝကမ္မလုပ်ဆောင်မှုနောက်တွင် စံပြထားသော အတွဲလိုက် အယ်လဂိုရီသမ်တစ်ခုဖြစ်သည်။ Neural Networks များတွင် နျူရွန်များဟုခေါ်သော node များပါဝင်သည်။
ဒေါင်လိုက် ဆုံမှတ်များ အစုအဝေးကို အလွှာများဟု ခေါ်သည်။ မော်ဒယ်တွင် ထည့်သွင်းမှုတစ်ခု၊ အထွက်တစ်ခုနှင့် လျှို့ဝှက်အလွှာများစွာ ပါဝင်ပါသည်။ အလွှာတစ်ခုစီတွင် တွက်ချက်မှုများပြုလုပ်သည့် နျူရွန်များဟုခေါ်သော node များပါရှိသည်။
အောက်ပါပုံတွင်၊ စက်ဝိုင်းများသည် node များကိုကိုယ်စားပြုပြီး node များ၏ဒေါင်လိုက်စုစည်းမှုသည် အလွှာများကိုကိုယ်စားပြုသည်။ ဒီမော်ဒယ်မှာ အလွှာသုံးလွှာရှိပါတယ်။
အလွှာတစ်ခု၏ ဆုံမှတ်များသည် အောက်ဖော်ပြပါအတိုင်း ထုတ်လွှင့်မှုလိုင်းများမှတစ်ဆင့် နောက်အလွှာသို့ ချိတ်ဆက်ထားသည်။
ကျွန်ုပ်တို့၏ဒေတာအတွဲတွင် တံဆိပ်တပ်ထားသောဒေတာများပါဝင်သည်။ ဆိုလိုသည်မှာ data entity တစ်ခုစီသည် အချို့သော name value ကို သတ်မှတ်ပေးထားပါသည်။
ထို့ကြောင့် တိရစ္ဆာန်အမျိုးအစားခွဲခြားမှုဒေတာအတွဲအတွက် ကျွန်ုပ်တို့၏အညွှန်းများအဖြစ် 'ကြောင်' နှင့် 'ခွေး' တို့ကို ကျွန်ုပ်တို့၏ဒေတာအဖြစ် ကြောင်နှင့် ခွေးပုံများပါရှိသည်။
၎င်းတို့ကို နားလည်သဘောပေါက်စေရန် ကျွန်ုပ်တို့၏မော်ဒယ်အတွက် အညွှန်းများကို ဂဏန်းတန်ဖိုးများအဖြစ်သို့ ပြောင်းလဲရန် လိုအပ်ကြောင်း မှတ်သားထားရန်လိုသည်၊ ထို့ကြောင့် ကျွန်ုပ်တို့၏တိရစ္ဆာန်တံဆိပ်များသည် ကြောင်အတွက် '0' နှင့် ခွေးအတွက် '1' ဖြစ်လာသည်ကို သတိပြုရန်အရေးကြီးပါသည်။ ဒေတာနှင့် အညွှန်းနှစ်ခုလုံးကို မော်ဒယ်မှတဆင့် ဖြတ်သန်းပါသည်။
သင်ယူ
ဒေတာကို မော်ဒယ်တစ်ခုတွင် တစ်ကြိမ်လျှင် ပေးဆောင်သည်။ ဤဒေတာကို အပိုင်းများခွဲပြီး မော်ဒယ်၏ node တစ်ခုစီကိုဖြတ်သွားပါသည်။ Node များသည် ဤအပိုင်းများပေါ်တွင် သင်္ချာဆိုင်ရာ လုပ်ဆောင်ချက်များကို လုပ်ဆောင်သည်။
ဤသင်ခန်းစာအတွက် သင်္ချာလုပ်ဆောင်ချက်များ သို့မဟုတ် တွက်ချက်မှုများကို သင်သိရန်မလိုအပ်သော်လည်း၊ ဤမော်ဒယ်များ အလုပ်လုပ်ပုံနှင့်ပတ်သက်၍ ယေဘူယျစိတ်ကူးရှိရန် အရေးကြီးပါသည်။ အလွှာတစ်ခုတွင် ဆက်တိုက် တွက်ချက်မှုများ ပြုလုပ်ပြီးနောက်၊ ဒေတာများကို နောက်အလွှာသို့ လွှဲပြောင်းပေးသည်။
ပြီးသည်နှင့်၊ ကျွန်ုပ်တို့၏မော်ဒယ်သည် အထွက်အလွှာရှိ ဒေတာအညွှန်းကို ခန့်မှန်းပေးသည် (ဥပမာ၊ တိရစ္ဆာန်အမျိုးအစားခွဲခြားခြင်းပြဿနာတစ်ခုတွင် ကျွန်ုပ်တို့သည် ကြောင်အတွက် ခန့်မှန်းချက် '0' ကို ရရှိသည်)။
ထို့နောက် မော်ဒယ်သည် ဤခန့်မှန်းတန်ဖိုးကို တကယ့်တံဆိပ်တန်ဖိုးနှင့် နှိုင်းယှဉ်ရန် ဆက်လက်လုပ်ဆောင်သည်။
တန်ဖိုးများ တူညီပါက၊ ကျွန်ုပ်တို့၏ မော်ဒယ်သည် နောက်တစ်ကြိမ် ထည့်သွင်းမှုအား ယူလိမ့်မည်၊ သို့သော် တန်ဖိုးများ ကွဲပြားပါက မော်ဒယ်သည် တန်ဖိုးနှစ်ခုလုံးကြား ကွာခြားချက်ကို တွက်ချက်ပေးမည်ဖြစ်ပြီး၊ ဆုံးရှုံးမှုဟု ခေါ်သော၊ နောက်တစ်ကြိမ် ကိုက်ညီသော အညွှန်းများကို ထုတ်လုပ်ရန်အတွက် node တွက်ချက်မှုများကို ချိန်ညှိမည်ဖြစ်သည်။
နက်ရှိုင်းသောသင်ယူမှုဘောင်များ
ကုဒ်တွင် Neural Networks တည်ဆောက်ရန်၊ ကျွန်ုပ်တို့ ထည့်သွင်းရန် လိုအပ်သည်။ Deep Learning မူဘောင်များ ကျွန်ုပ်တို့၏ Integrated Development Environment (IDE) ကို အသုံးပြု၍ စာကြည့်တိုက်များဟု လူသိများသည်။
ဤဘောင်များသည် ကျွန်ုပ်တို့အား ဤသင်ခန်းစာတွင် ကူညီပေးမည့် ကြိုတင်ရေးသားထားသော လုပ်ဆောင်ချက်များ စုစည်းမှုဖြစ်သည်။ ကျွန်ုပ်တို့၏မော်ဒယ်ကိုတည်ဆောက်ရန် Keras မူဘောင်ကိုအသုံးပြုပါမည်။
Keras သည် နက်နဲသော သင်ယူမှုနှင့် ဉာဏ်ရည်တုနောက်ခံကို အသုံးပြုသည့် Python စာကြည့်တိုက်တစ်ခုဖြစ်သည်။ ရက်စက်မှု ရိုးရှင်းသော sequential မော်ဒယ်များပုံစံဖြင့် NN များကို လွယ်ကူစွာ ဖန်တီးပါ။
Keras သည် ၎င်း၏ ယခင်ရှိပြီးသား မော်ဒယ်များ လည်း ပါ၀င်ပါသည်။ ဤသင်ခန်းစာအတွက်၊ ကျွန်ုပ်တို့သည် Keras ကိုအသုံးပြု၍ ကျွန်ုပ်တို့၏ကိုယ်ပိုင်မော်ဒယ်ကို ဖန်တီးပါမည်။
ဤ Deep Learning မူဘောင်အကြောင်း ပိုမိုလေ့လာနိုင်ပါသည်။ Keras ဝဘ်ဆိုဒ်.
Neural Network တည်ဆောက်ခြင်း (ကျူတိုရီရယ်)
Python ကို အသုံးပြု၍ Neural Network တစ်ခုတည်ဆောက်ခြင်းသို့ ဆက်သွားကြပါစို့။
ပြProbleနာဖော်ပြချက်
Neural Networks များသည် AI အခြေခံပြဿနာများအတွက် ဖြေရှင်းနည်းတစ်မျိုးဖြစ်သည်။ ဤသင်ခန်းစာအတွက် ကျွန်ုပ်တို့သည် ရရှိနိုင်သော Pima Indians Diabetes Data ကို ကျော်သွားပါမည်။ ဒီမှာ.
ICU Machine Learning သည် ဤဒေတာအတွဲကို ပြုစုထားသည်။ အိန္ဒိယလူနာများ၏ ဆေးမှတ်တမ်းပါရှိသည်။ ကျွန်ုပ်တို့၏ပုံစံသည် လူနာသည် 5 နှစ်အတွင်းဆီးချိုရောဂါစတင်ခြင်းရှိ၊ မရှိကိုခန့်မှန်းရန်လိုအပ်သည်။
ဒေတာအတွဲကို ဖွင့်နေသည်။
ကျွန်ုပ်တို့၏ဒေတာအတွဲသည် 'diabetes.csv' ဟုခေါ်သော CSV ဖိုင်တစ်ခုတည်းဖြစ်ပြီး Microsoft Excel ကို အသုံးပြု၍ အလွယ်တကူ ကိုင်တွယ်အသုံးပြုနိုင်ပါသည်။
ကျွန်ုပ်တို့၏ မော်ဒယ်ကို မဖန်တီးမီ၊ ကျွန်ုပ်တို့၏ ဒေတာအတွဲကို တင်သွင်းရန် လိုအပ်ပါသည်။ အောက်ပါကုဒ်ကို အသုံးပြု၍ သင်ဤသို့လုပ်ဆောင်နိုင်သည်-
PD အဖြစ်သွင်းကုန် Pandas
ဒေတာ = pd.read_csv('diabetes.csv')
x = data.drop("ရလဒ်")
y = ဒေတာ["ရလဒ်"]
ဤတွင်ကျွန်ုပ်တို့အသုံးပြုနေပါသည်။ ပန်ဒါ ကျွန်ုပ်တို့၏ CSV ဖိုင်ဒေတာကို စီမံခန့်ခွဲနိုင်စေရန် စာကြည့်တိုက်၊ read_csv() သည် ကျွန်ုပ်တို့၏ဖိုင်အတွင်းရှိ တန်ဖိုးများကို 'ဒေတာ' ဟုခေါ်သော ကိန်းရှင်အဖြစ်သို့ သိမ်းဆည်းနိုင်စေသည့် Pandas ၏ built-in လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။
ကိန်းရှင် x တွင် ရလဒ် (အညွှန်းများ) ဒေတာမပါဘဲ ကျွန်ုပ်တို့၏ဒေတာအတွဲပါရှိသည်။ x အတွက် အညွှန်းများကို ဖယ်ရှားပေးသည့် data.drop() လုပ်ဆောင်ချက်ဖြင့် ၎င်းကို y တွင် ရလဒ် (တံဆိပ်) ဒေတာသာ ပါ၀င်သည်။
ဆင့်ကဲပုံစံတည်ဆောက်ခြင်း။
အဆင့် 1- စာကြည့်တိုက်များကို တင်သွင်းခြင်း။
ပထမဦးစွာ၊ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏မော်ဒယ်အတွက် လိုအပ်သော ကန့်သတ်ချက်များနှင့်အတူ TensorFlow နှင့် Keras ကို တင်သွင်းရန်လိုအပ်ပါသည်။ အောက်ပါကုဒ်သည် ကျွန်ုပ်တို့အား ဤသို့လုပ်ဆောင်နိုင်စေသည်-
tensorflow ကို tf အဖြစ် တင်သွင်းပါ။
tensorflow မှတင်သွင်းသော keras
tensorflow.keras.models ထံမှ Sequential တင်သွင်းသည်။
tensorflow.keras.layers မှ တင်သွင်းသည့် Activation၊ Dense
tensorflow.keras.optimizers မှ Adam ကိုတင်သွင်းပါ။
tensorflow.keras.metrics မှ categorical_crossentropy ကို တင်သွင်းပါ။
ကျွန်ုပ်တို့၏မော်ဒယ်အတွက်ကျွန်ုပ်တို့သည်သိပ်သည်းသောအလွှာများကိုတင်သွင်းနေသည်။ ၎င်းတို့သည် အပြည့်အဝချိတ်ဆက်ထားသော အလွှာများဖြစ်သည်။ ဆိုလိုသည်မှာ၊ အလွှာတစ်ခုရှိ node တစ်ခုစီသည် နောက်အလွှာရှိ အခြား node တစ်ခုနှင့် အပြည့်အဝချိတ်ဆက်ထားသည်။
ကျွန်တော်တို့လည်း တင်သွင်းနေပါတယ်။ activation node များသို့ပေးပို့သောဒေတာကိုစကေးချဲ့ရန်အတွက်လိုအပ်သောလုပ်ဆောင်ချက်။ အကောင်းမြင် ဆုံးရှုံးမှု နည်းပါးအောင်လည်း တင်သွင်းထားပါတယ်။
Adam သည် ကျွန်ုပ်တို့၏ model update node တွက်ချက်မှုများကို ပိုမိုထိရောက်စွာ ပြုလုပ်ပေးသည့် ကျော်ကြားသော optimizer တစ်ခုဖြစ်သည်။ categorical_crossentropy ဆိုသည်မှာ၊ ဆုံးရှုံးမှုအမျိုးအစား (ကျွန်ုပ်တို့အသုံးပြုမည့် အမှန်တကယ်နှင့် ခန့်မှန်းထားသော အညွှန်းတန်ဖိုးများကြား ကွာခြားချက်ကို တွက်ချက်သည်)။
အဆင့် 2- ကျွန်ုပ်တို့၏ Model ကို ဒီဇိုင်းဆွဲပါ။
ကျွန်ုပ်ဖန်တီးသော မော်ဒယ်တွင် ထည့်သွင်းမှုတစ်ခု (ယူနစ် 16 ခု)၊ ဝှက်ထားသော တစ်ခု (ယူနစ် 32 ပါသော) နှင့် အထွက်တစ်ခု (ယူနစ် 2 ယူနစ်ပါ) အလွှာတစ်ခု ရှိသည်။ ဤနံပါတ်များသည် ပုံသေမဟုတ်ပေ၊ ပေးထားသောပြဿနာအပေါ်တွင် လုံးလုံးမူတည်ပါမည်။
မှန်ကန်သော ယူနစ်အရေအတွက်နှင့် အလွှာများကို သတ်မှတ်ခြင်းသည် လက်တွေ့အားဖြင့် အချိန်ပိုတိုးတက်စေမည့် လုပ်ငန်းစဉ်တစ်ခုဖြစ်သည်။ အသက်သွင်းခြင်းသည် node တစ်ခုမှမဖြတ်သန်းမီ ကျွန်ုပ်တို့၏ဒေတာပေါ်တွင် လုပ်ဆောင်မည့် အတိုင်းအတာပမာဏနှင့် ကိုက်ညီပါသည်။
Relu နှင့် Softmax တို့သည် ဤလုပ်ငန်းအတွက် ကျော်ကြားသော အသက်သွင်းလုပ်ဆောင်ချက်များဖြစ်သည်။
မော်ဒယ် = Sequential([
သိပ်သည်းမှု(ယူနစ် = 16၊ အဝင်_ပုံသဏ္ဍာန် = (1၊)၊ အသက်သွင်းခြင်း = 'relu'),
သိပ်သည်းမှု(ယူနစ် = 32၊ အသက်သွင်းခြင်း = 'ရီလူ')၊
သိပ်သည်းမှု(ယူနစ်များ = 2၊ အသက်သွင်းခြင်း = 'Softmax')
])
ဤသည်မှာ မော်ဒယ်၏ အနှစ်ချုပ်သည် မည်ကဲ့သို့ ဖြစ်သင့်သည်-
မော်ဒယ်သင်တန်း
ကျွန်ုပ်တို့၏ မော်ဒယ်ကို အဆင့်နှစ်ဆင့်ဖြင့် လေ့ကျင့်ပေးမည်ဖြစ်ပြီး ပထမအချက်မှာ မော်ဒယ်ကို စုစည်းခြင်း (မော်ဒယ်ကို ပေါင်းစပ်ထည့်သွင်းခြင်း) နှင့် နောက်တစ်ခုက ပေးထားသည့် အချက်အလက်အစုံတွင် မော်ဒယ်ကို အံဝင်ခွင်ကျဖြစ်စေမည်ဖြစ်သည်။
model.fit() လုပ်ဆောင်ချက်နောက်တွင် model.compile() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ ၎င်းကို လုပ်ဆောင်နိုင်သည်။
model.compile(အကောင်းဆုံးဆော့ဖ်ဝဲ = Adam(သင်ယူမှု_နှုန်း = 0.0001)၊ ဆုံးရှုံးမှု = 'binary_crossentropy'၊ မက်ထရစ်များ = ['တိကျမှု'])
model.fit(x၊ y၊ epochs = 30၊ batch_size = 10)
'တိကျမှု' မက်ထရစ်ကို သတ်မှတ်ခြင်းသည် လေ့ကျင့်နေစဉ်အတွင်း ကျွန်ုပ်တို့၏ မော်ဒယ်၏ တိကျမှုကို စောင့်ကြည့်နိုင်စေပါသည်။
ကျွန်ုပ်တို့၏ အညွှန်းများသည် 1's နှင့် 0's ပုံစံဖြစ်သောကြောင့်၊ အမှန်တကယ်နှင့် ခန့်မှန်းထားသော တံဆိပ်များကြား ကွာခြားချက်ကို တွက်ချက်ရန်အတွက် binary loss လုပ်ဆောင်ချက်ကို အသုံးပြုပါမည်။
ဒေတာအတွဲကိုလည်း 10 (batch_size) အတွဲများအဖြစ် ပိုင်းခြားထားပြီး မော်ဒယ် အကြိမ် 30 (အချိန်ပိုင်း) ဖြတ်သန်းသွားမည်ဖြစ်သည်။ ပေးထားသောဒေတာအတွဲအတွက် x သည် ဒေတာဖြစ်ပြီး y သည် ဒေတာနှင့်သက်ဆိုင်သည့် အညွှန်းများဖြစ်ပါမည်။
ခန့်မှန်းချက်များကိုအသုံးပြု၍ စမ်းသပ်ခြင်းပုံစံ
ကျွန်ုပ်တို့၏ မော်ဒယ်ကို အကဲဖြတ်ရန်၊ ကျွန်ုပ်တို့သည် ကြိုတင်ခန့်မှန်း() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ စမ်းသပ်ဒေတာအပေါ် ခန့်မှန်းချက်များ ပြုလုပ်ပါသည်။
ခန့်မှန်းချက် = model.predict(x)
အဲ့ဒါပဲ!
ယခုသင်သည် ထိုအကြောင်းကို ကောင်းစွာနားလည်သင့်သည်။ နက်ရှိုင်းသောသင်ယူခြင်း အက်ပလီကေးရှင်း၊ Neural Networks၊ ယေဘူယျအားဖြင့် ၎င်းတို့လုပ်ဆောင်ပုံနှင့် Python ကုဒ်တွင် မော်ဒယ်တစ်ခုကို တည်ဆောက်ပုံ၊ လေ့ကျင့်ခြင်းနှင့် စမ်းသပ်နည်း။
သင့်ကိုယ်ပိုင် Deep Learning မော်ဒယ်များကို ဖန်တီးပြီး အသုံးပြုရန် ဤသင်ခန်းစာသည် သင့်အား kickstart ပေးမည်ဟု မျှော်လင့်ပါသည်။
ဆောင်းပါးက အထောက်အကူဖြစ်တယ်ဆိုရင် မှတ်ချက်မှာ ကျွန်တော်တို့ကို အသိပေးပါ။
တစ်ဦးစာပြန်ရန် Leave