ആർട്ടിഫിഷ്യൽ ഇന്റലിജൻസ് (AI) സമീപ വർഷങ്ങളിൽ ഗണ്യമായ ജനപ്രീതി നേടിയിട്ടുണ്ട്.
നിങ്ങളൊരു സോഫ്റ്റ്വെയർ എഞ്ചിനീയറോ, കമ്പ്യൂട്ടർ ശാസ്ത്രജ്ഞനോ, അല്ലെങ്കിൽ പൊതുവെ ഡാറ്റാ സയൻസ് തത്പരനോ ആണെങ്കിൽ, ഈ ഫീൽഡ് നൽകുന്ന ഇമേജ് പ്രോസസ്സിംഗ്, പാറ്റേൺ തിരിച്ചറിയൽ, ഒബ്ജക്റ്റ് ഡിറ്റക്ഷൻ എന്നിവയുടെ അതിശയകരമായ ആപ്ലിക്കേഷനുകളിൽ നിങ്ങൾ ആകാംക്ഷാഭരിതരായിരിക്കാം.
നിങ്ങൾ ഒരുപക്ഷേ കേട്ടിട്ടുള്ള AI-യുടെ ഏറ്റവും പ്രധാനപ്പെട്ട ഉപവിഭാഗം ഡീപ് ലേണിംഗ് ആണ്. ഈ ഫീൽഡ് മനുഷ്യ മസ്തിഷ്ക പ്രവർത്തനത്തിന്റെ മാതൃകയിലുള്ള ശക്തമായ അൽഗോരിതങ്ങളിൽ (കമ്പ്യൂട്ടർ പ്രോഗ്രാം നിർദ്ദേശങ്ങൾ) ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു. ന്യൂറൽ നെറ്റ്വർക്കുകൾ.
ഈ ലേഖനത്തിൽ, ന്യൂറൽ നെറ്റ്വർക്കുകൾ എന്ന ആശയത്തെക്കുറിച്ചും ഈ മോഡലുകൾ എങ്ങനെ നിർമ്മിക്കാമെന്നും കംപൈൽ ചെയ്യാമെന്നും ഫിറ്റ് ചെയ്യാമെന്നും വിലയിരുത്താമെന്നും ഞങ്ങൾ പരിശോധിക്കും. പൈത്തൺ.
ന്യൂറൽ നെറ്റ്വർക്കുകൾ
മനുഷ്യ മസ്തിഷ്കത്തിന്റെ ജൈവിക പ്രവർത്തനത്തിന്റെ മാതൃകയിലുള്ള അൽഗോരിതങ്ങളുടെ ഒരു പരമ്പരയാണ് ന്യൂറൽ നെറ്റ്വർക്കുകൾ അഥവാ എൻഎൻ. ന്യൂറൽ നെറ്റ്വർക്കുകളിൽ ന്യൂറോണുകൾ എന്നും വിളിക്കപ്പെടുന്ന നോഡുകൾ അടങ്ങിയിരിക്കുന്നു.
ലംബമായ നോഡുകളുടെ ഒരു ശേഖരം പാളികൾ എന്നറിയപ്പെടുന്നു. മോഡലിൽ ഒരു ഇൻപുട്ട്, ഒരു ഔട്ട്പുട്ട്, മറഞ്ഞിരിക്കുന്ന നിരവധി പാളികൾ എന്നിവ അടങ്ങിയിരിക്കുന്നു. ഓരോ പാളിയിലും ന്യൂറോണുകൾ എന്നും വിളിക്കപ്പെടുന്ന നോഡുകൾ അടങ്ങിയിരിക്കുന്നു, അവിടെ കണക്കുകൂട്ടലുകൾ നടക്കുന്നു.
ഇനിപ്പറയുന്ന ഡയഗ്രാമിൽ, സർക്കിളുകൾ നോഡുകളെ പ്രതിനിധീകരിക്കുന്നു, നോഡുകളുടെ ലംബ ശേഖരം പാളികളെ പ്രതിനിധീകരിക്കുന്നു. ഈ മോഡലിൽ മൂന്ന് പാളികൾ ഉണ്ട്.
താഴെ കാണുന്നത് പോലെ ഒരു ലെയറിന്റെ നോഡുകൾ അടുത്ത ലെയറിലേക്ക് ട്രാൻസ്മിഷൻ ലൈനുകളിലൂടെ ബന്ധിപ്പിച്ചിരിക്കുന്നു.
ഞങ്ങളുടെ ഡാറ്റാസെറ്റിൽ ലേബൽ ചെയ്ത ഡാറ്റ അടങ്ങിയിരിക്കുന്നു. ഓരോ ഡാറ്റ എന്റിറ്റിക്കും ഒരു നിശ്ചിത നാമ മൂല്യം നൽകിയിട്ടുണ്ടെന്നാണ് ഇതിനർത്ഥം.
അതിനാൽ ഒരു മൃഗങ്ങളുടെ വർഗ്ഗീകരണ ഡാറ്റാസെറ്റിന്, ഞങ്ങളുടെ ഡാറ്റയായി പൂച്ചകളുടെയും നായ്ക്കളുടെയും ചിത്രങ്ങൾ ഉണ്ടാകും, 'പൂച്ച', 'നായ' എന്നിവ ഞങ്ങളുടെ ലേബലുകളായി.
നമ്മുടെ മോഡലിന് അർത്ഥമാക്കുന്നതിന് ലേബലുകൾ സംഖ്യാ മൂല്യങ്ങളിലേക്ക് പരിവർത്തനം ചെയ്യേണ്ടത് പ്രധാനമാണ്, അതിനാൽ ഞങ്ങളുടെ മൃഗങ്ങളുടെ ലേബലുകൾ പൂച്ചയ്ക്ക് '0' ആയും നായയ്ക്ക് '1' ആയും മാറുന്നു. ഡാറ്റയും ലേബലുകളും മോഡലിലൂടെ കടന്നുപോകുന്നു.
പഠന
മോഡൽ ഒരു എന്റിറ്റിയിലേക്ക് ഡാറ്റ ഒരു സമയം നൽകുന്നു. ഈ ഡാറ്റ കഷണങ്ങളായി വിഭജിച്ച് മോഡലിന്റെ ഓരോ നോഡിലൂടെയും കടന്നുപോകുന്നു. നോഡുകൾ ഈ ഭാഗങ്ങളിൽ ഗണിത പ്രവർത്തനങ്ങൾ നടത്തുന്നു.
ഈ ട്യൂട്ടോറിയലിനായി നിങ്ങൾ ഗണിത പ്രവർത്തനങ്ങളോ കണക്കുകൂട്ടലുകളോ അറിയേണ്ടതില്ല, എന്നാൽ ഈ മോഡലുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നതിനെക്കുറിച്ചുള്ള ഒരു പൊതു ആശയം ഉണ്ടായിരിക്കേണ്ടത് പ്രധാനമാണ്. ഒരു ലെയറിലെ കണക്കുകൂട്ടലുകളുടെ ഒരു പരമ്പരയ്ക്ക് ശേഷം, അടുത്ത ലെയറിലേക്കും മറ്റും ഡാറ്റ കൈമാറുന്നു.
പൂർത്തിയായിക്കഴിഞ്ഞാൽ, ഔട്ട്പുട്ട് ലെയറിലെ ഡാറ്റ ലേബൽ ഞങ്ങളുടെ മോഡൽ പ്രവചിക്കുന്നു (ഉദാഹരണത്തിന്, മൃഗങ്ങളുടെ വർഗ്ഗീകരണ പ്രശ്നത്തിൽ നമുക്ക് ഒരു പൂച്ചയ്ക്ക് '0' പ്രവചനം ലഭിക്കും).
ഈ പ്രവചിച്ച മൂല്യത്തെ യഥാർത്ഥ ലേബൽ മൂല്യവുമായി താരതമ്യം ചെയ്യാൻ മോഡൽ തുടരുന്നു.
മൂല്യങ്ങൾ പൊരുത്തപ്പെടുന്നെങ്കിൽ, ഞങ്ങളുടെ മോഡൽ അടുത്ത ഇൻപുട്ട് എടുക്കും, എന്നാൽ മൂല്യങ്ങൾ വ്യത്യസ്തമാണെങ്കിൽ, ലോസ് എന്ന് വിളിക്കപ്പെടുന്ന രണ്ട് മൂല്യങ്ങളും തമ്മിലുള്ള വ്യത്യാസം മോഡൽ കണക്കാക്കുകയും അടുത്ത തവണ പൊരുത്തപ്പെടുന്ന ലേബലുകൾ നിർമ്മിക്കുന്നതിന് നോഡ് കണക്കുകൂട്ടലുകൾ ക്രമീകരിക്കുകയും ചെയ്യും.
ആഴത്തിലുള്ള പഠന ചട്ടക്കൂടുകൾ
കോഡിൽ ന്യൂറൽ നെറ്റ്വർക്കുകൾ നിർമ്മിക്കുന്നതിന്, ഞങ്ങൾ ഇറക്കുമതി ചെയ്യേണ്ടതുണ്ട് ആഴത്തിലുള്ള പഠന ചട്ടക്കൂടുകൾ ഞങ്ങളുടെ ഇന്റഗ്രേറ്റഡ് ഡെവലപ്മെന്റ് എൻവയോൺമെന്റ് (IDE) ഉപയോഗിക്കുന്ന ലൈബ്രറികൾ എന്നറിയപ്പെടുന്നു.
ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങളെ സഹായിക്കുന്ന മുൻകൂട്ടി എഴുതിയ ഫംഗ്ഷനുകളുടെ ഒരു ശേഖരമാണ് ഈ ചട്ടക്കൂടുകൾ. ഞങ്ങളുടെ മാതൃക നിർമ്മിക്കാൻ ഞങ്ങൾ കേരസ് ചട്ടക്കൂട് ഉപയോഗിക്കും.
ആഴത്തിലുള്ള പഠനവും ആർട്ടിഫിഷ്യൽ ഇന്റലിജൻസ് ബാക്കെൻഡും ഉപയോഗിക്കുന്ന ഒരു പൈത്തൺ ലൈബ്രറിയാണ് കേരസ് ടെൻസർഫ്ലോ ലളിതമായ സീക്വൻഷ്യൽ മോഡലുകളുടെ രൂപത്തിൽ NN-കൾ എളുപ്പത്തിൽ സൃഷ്ടിക്കാൻ.
കേരസും അതിന്റെ തന്നെ മുൻകാല മോഡലുകളുമായി വരുന്നു, അത് ഉപയോഗിക്കാനും കഴിയും. ഈ ട്യൂട്ടോറിയലിനായി, ഞങ്ങൾ കേരസ് ഉപയോഗിച്ച് ഞങ്ങളുടെ സ്വന്തം മോഡൽ സൃഷ്ടിക്കും.
ഈ ആഴത്തിലുള്ള പഠന ചട്ടക്കൂടിനെക്കുറിച്ച് നിങ്ങൾക്ക് ഇതിൽ നിന്ന് കൂടുതലറിയാൻ കഴിയും കേരസ് വെബ്സൈറ്റ്.
ഒരു ന്യൂറൽ നെറ്റ്വർക്ക് നിർമ്മിക്കുന്നു (ട്യൂട്ടോറിയൽ)
പൈത്തൺ ഉപയോഗിച്ച് ഒരു ന്യൂറൽ നെറ്റ്വർക്ക് നിർമ്മിക്കുന്നതിലേക്ക് പോകാം.
പ്രശ്നം പ്രസ്താവന
ന്യൂറൽ നെറ്റ്വർക്കുകൾ AI അടിസ്ഥാനമാക്കിയുള്ള പ്രശ്നങ്ങൾക്കുള്ള ഒരു തരം പരിഹാരമാണ്. ഈ ട്യൂട്ടോറിയലിനായി ഞങ്ങൾ പിമ ഇന്ത്യൻസ് ഡയബറ്റിസ് ഡാറ്റയിലേക്ക് പോകും, അത് ലഭ്യമാണ് ഇവിടെ.
ഐസിയു മെഷീൻ ലേണിംഗ് ഈ ഡാറ്റാസെറ്റ് സമാഹരിച്ചിരിക്കുന്നു കൂടാതെ ഇന്ത്യൻ രോഗികളുടെ മെഡിക്കൽ റെക്കോർഡ് അടങ്ങിയിരിക്കുന്നു. 5 വർഷത്തിനുള്ളിൽ രോഗിക്ക് പ്രമേഹം ഉണ്ടാകുമോ ഇല്ലയോ എന്ന് ഞങ്ങളുടെ മാതൃക പ്രവചിക്കേണ്ടതുണ്ട്.
ഡാറ്റാസെറ്റ് ലോഡുചെയ്യുന്നു
Microsoft Excel ഉപയോഗിച്ച് എളുപ്പത്തിൽ കൈകാര്യം ചെയ്യാൻ കഴിയുന്ന 'diabetes.csv' എന്ന ഒരൊറ്റ CSV ഫയലാണ് ഞങ്ങളുടെ ഡാറ്റാസെറ്റ്.
ഞങ്ങളുടെ മോഡൽ സൃഷ്ടിക്കുന്നതിന് മുമ്പ്, ഞങ്ങളുടെ ഡാറ്റാസെറ്റ് ഇറക്കുമതി ചെയ്യേണ്ടതുണ്ട്. ഇനിപ്പറയുന്ന കോഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇത് ചെയ്യാൻ കഴിയും:
pdas pd ആയി ഇറക്കുമതി ചെയ്യുക
ഡാറ്റ = pd.read_csv('diabetes.csv')
x = data.drop (“ഫലം”)
y = ഡാറ്റ[“ഫലം”]
ഇവിടെ നമ്മൾ ഉപയോഗിക്കുന്നത് പാണ്ഡകൾ ഞങ്ങളുടെ CSV ഫയൽ ഡാറ്റ കൈകാര്യം ചെയ്യാൻ ലൈബ്രറിക്ക് കഴിയും, read_csv() എന്നത് പാണ്ടസിന്റെ ഒരു ബിൽറ്റ്-ഇൻ ഫംഗ്ഷനാണ്, അത് നമ്മുടെ ഫയലിലെ മൂല്യങ്ങൾ 'ഡാറ്റ' എന്ന വേരിയബിളിലേക്ക് സംഭരിക്കാൻ അനുവദിക്കുന്നു.
വേരിയബിൾ x-ൽ ഫല (ലേബലുകൾ) ഡാറ്റ ഇല്ലാതെ ഞങ്ങളുടെ ഡാറ്റാസെറ്റ് അടങ്ങിയിരിക്കുന്നു. x-നുള്ള ലേബലുകൾ നീക്കം ചെയ്യുന്ന data.drop() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഞങ്ങൾ ഇത് നേടുന്നു, അതേസമയം y-ൽ ഫല (ലേബൽ) ഡാറ്റ മാത്രമേ അടങ്ങിയിട്ടുള്ളൂ.
ബിൽഡിംഗ് സീക്വൻഷ്യൽ മോഡൽ
ഘട്ടം 1: ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യുന്നു
ഒന്നാമതായി, നമ്മുടെ മോഡലിന് ആവശ്യമായ ചില പാരാമീറ്ററുകൾക്കൊപ്പം TensorFlow, Keras എന്നിവ ഇറക്കുമതി ചെയ്യേണ്ടതുണ്ട്. ഇനിപ്പറയുന്ന കോഡ് ഇത് ചെയ്യാൻ ഞങ്ങളെ അനുവദിക്കുന്നു:
tf ആയി tensorflow ഇറക്കുമതി ചെയ്യുക
ടെൻസർഫ്ലോ ഇറക്കുമതി കേരകളിൽ നിന്ന്
tensorflow.keras.models-ൽ നിന്ന് സീക്വൻഷ്യൽ ഇറക്കുമതി ചെയ്യുക
tensorflow.keras.layers-ൽ നിന്ന് ഇറക്കുമതി സജീവമാക്കൽ, സാന്ദ്രത
tensorflow.keras.optimizers-ൽ നിന്ന് ആദം ഇറക്കുമതി ചെയ്യുക
tensorflow.keras.metrics-ൽ നിന്ന് categorical_crossentropy ഇറക്കുമതി ചെയ്യുക
ഞങ്ങളുടെ മോഡലിന് ഞങ്ങൾ ഇടതൂർന്ന പാളികൾ ഇറക്കുമതി ചെയ്യുന്നു. ഇവ പൂർണ്ണമായും ബന്ധിപ്പിച്ച പാളികളാണ്; അതായത്, ഒരു ലെയറിലെ ഓരോ നോഡും അടുത്ത ലെയറിലെ മറ്റൊരു നോഡുമായി പൂർണ്ണമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു.
ഞങ്ങളും ഇറക്കുമതി ചെയ്യുന്നു സജീവമാക്കൽ നോഡുകളിലേക്ക് അയച്ച ഡാറ്റ സ്കെയിലിംഗിന് ആവശ്യമായ പ്രവർത്തനം. ഒപ്റ്റിമൈസറുകൾ നഷ്ടം കുറയ്ക്കാൻ ഇറക്കുമതി ചെയ്യുകയും ചെയ്തു.
ഞങ്ങളുടെ മോഡൽ അപ്ഡേറ്റ് നോഡ് കണക്കുകൂട്ടലുകൾ കൂടുതൽ കാര്യക്ഷമമാക്കുന്ന ഒരു പ്രശസ്ത ഒപ്റ്റിമൈസറാണ് ആദം categorical_crossentropy അതായത് ഞങ്ങൾ ഉപയോഗിക്കുന്ന ലോസ് ഫംഗ്ഷന്റെ തരം (യഥാർത്ഥവും പ്രവചിച്ചതുമായ ലേബൽ മൂല്യങ്ങൾ തമ്മിലുള്ള വ്യത്യാസം കണക്കാക്കുന്നു).
ഘട്ടം 2: ഞങ്ങളുടെ മോഡൽ രൂപകൽപ്പന ചെയ്യുക
ഞാൻ സൃഷ്ടിക്കുന്ന മോഡലിന് ഒരു ഇൻപുട്ട് (16 യൂണിറ്റുകൾ ഉള്ളത്), ഒന്ന് മറച്ച (32 യൂണിറ്റുകൾ ഉള്ളത്), ഒരു ഔട്ട്പുട്ട് (2 യൂണിറ്റുകൾ ഉള്ളത്) ലെയർ എന്നിവയുണ്ട്. ഈ സംഖ്യകൾ നിശ്ചയിച്ചിട്ടില്ല, നൽകിയിരിക്കുന്ന പ്രശ്നത്തെ പൂർണ്ണമായും ആശ്രയിച്ചിരിക്കും.
ശരിയായ എണ്ണം യൂണിറ്റുകളുടെയും ലെയറുകളുടെയും എണ്ണം ക്രമീകരിക്കുന്നത് പരിശീലനത്തിലൂടെ ഓവർടൈം മെച്ചപ്പെടുത്താൻ കഴിയുന്ന ഒരു പ്രക്രിയയാണ്. ഒരു നോഡിലൂടെ കടന്നുപോകുന്നതിന് മുമ്പ് ഞങ്ങളുടെ ഡാറ്റയിൽ ഞങ്ങൾ നടത്തുന്ന സ്കെയിലിംഗ് തരവുമായി ആക്റ്റിവേഷൻ യോജിക്കുന്നു.
Relu, Softmax എന്നിവ ഈ ടാസ്ക്കിനുള്ള പ്രശസ്തമായ ആക്റ്റിവേഷൻ ഫംഗ്ഷനുകളാണ്.
മോഡൽ = സീക്വൻഷ്യൽ([
സാന്ദ്രത(യൂണിറ്റുകൾ = 16, ഇൻപുട്ട്_ഷാപ്പ് = (1,), ആക്ടിവേഷൻ = 'റെലു'),
സാന്ദ്രത (യൂണിറ്റുകൾ = 32, സജീവമാക്കൽ = 'relu'),
സാന്ദ്രത (യൂണിറ്റുകൾ = 2, ആക്ടിവേഷൻ = 'സോഫ്റ്റ്മാക്സ്')
])
മോഡലിന്റെ സംഗ്രഹം എങ്ങനെയായിരിക്കണം എന്നത് ഇതാ:
മാതൃകയെ പരിശീലിപ്പിക്കുന്നു
ഞങ്ങളുടെ മോഡൽ രണ്ട് ഘട്ടങ്ങളിലായി പരിശീലിപ്പിക്കപ്പെടും, ആദ്യത്തേത് മോഡൽ കംപൈൽ ചെയ്യുന്നു (മോഡൽ ഒരുമിച്ച് ചേർക്കുന്നു) അടുത്തത് നൽകിയിരിക്കുന്ന ഡാറ്റാസെറ്റിൽ മോഡൽ ഘടിപ്പിക്കുന്നു.
model.fit() ഫംഗ്ഷനുശേഷം model.compile() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഇത് ചെയ്യാം.
model.compile(optimizer = Adam(learning_rate = 0.0001), നഷ്ടം = 'binary_crossentropy', metrics = ['കൃത്യത'])
model.fit(x, y, epochs = 30, batch_size = 10)
'കൃത്യത' മെട്രിക് വ്യക്തമാക്കുന്നത് പരിശീലന സമയത്ത് ഞങ്ങളുടെ മോഡലിന്റെ കൃത്യത നിരീക്ഷിക്കാൻ ഞങ്ങളെ അനുവദിക്കുന്നു.
ഞങ്ങളുടെ ലേബലുകൾ 1, 0 എന്നിവയുടെ രൂപത്തിലായതിനാൽ, യഥാർത്ഥവും പ്രവചിച്ചതുമായ ലേബലുകൾ തമ്മിലുള്ള വ്യത്യാസം കണക്കാക്കാൻ ഞങ്ങൾ ഒരു ബൈനറി ലോസ് ഫംഗ്ഷൻ ഉപയോഗിക്കും.
ഡാറ്റാസെറ്റ് 10 ബാച്ചുകളായി വിഭജിക്കപ്പെടുന്നു (ബാച്ച്_സൈസ്) കൂടാതെ മോഡലിലൂടെ 30 തവണ (യുഗങ്ങൾ) കൈമാറും. തന്നിരിക്കുന്ന ഒരു ഡാറ്റാഗണത്തിന്, x എന്നത് ഡാറ്റയും y എന്നത് ഡാറ്റയുമായി ബന്ധപ്പെട്ട ലേബലുകളും ആയിരിക്കും.
പ്രവചനങ്ങൾ ഉപയോഗിച്ച് മോഡൽ പരിശോധിക്കുന്നു
ഞങ്ങളുടെ മോഡൽ വിലയിരുത്തുന്നതിന്, പ്രെഡിക്റ്റ്() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഞങ്ങൾ ടെസ്റ്റ് ഡാറ്റയിൽ പ്രവചനങ്ങൾ നടത്തുന്നു.
പ്രവചനങ്ങൾ = model.predict(x)
അത്രമാത്രം!
എന്നതിനെക്കുറിച്ച് ഇപ്പോൾ നിങ്ങൾക്ക് നല്ല ധാരണ ഉണ്ടായിരിക്കണം ആഴത്തിലുള്ള പഠനം ആപ്ലിക്കേഷൻ, ന്യൂറൽ നെറ്റ്വർക്കുകൾ, അവ പൊതുവായി എങ്ങനെ പ്രവർത്തിക്കുന്നു, പൈത്തൺ കോഡിൽ ഒരു മോഡൽ എങ്ങനെ നിർമ്മിക്കാം, പരിശീലിപ്പിക്കാം, പരീക്ഷിക്കാം.
നിങ്ങളുടെ സ്വന്തം ഡീപ് ലേണിംഗ് മോഡലുകൾ സൃഷ്ടിക്കുന്നതിനും വിന്യസിക്കുന്നതിനുമുള്ള കിക്ക്സ്റ്റാർട്ട് ഈ ട്യൂട്ടോറിയൽ നിങ്ങൾക്ക് നൽകുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു.
ലേഖനം സഹായകമായിരുന്നെങ്കിൽ അഭിപ്രായങ്ങളിൽ ഞങ്ങളെ അറിയിക്കുക.
നിങ്ങളുടെ അഭിപ്രായങ്ങൾ രേഖപ്പെടുത്തുക