"ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കുകൾ" (GNNs) എന്നറിയപ്പെടുന്ന ആഴത്തിലുള്ള പഠന വിദ്യകൾ ഗ്രാഫ് ഡൊമെയ്നിൽ പ്രവർത്തിക്കുന്നു. ഈ നെറ്റ്വർക്കുകൾ ഈയിടെയായി കമ്പ്യൂട്ടർ വിഷൻ, ശുപാർശ ചെയ്യുന്ന സിസ്റ്റങ്ങൾ, കോമ്പിനേറ്റോറിയൽ ഒപ്റ്റിമൈസേഷൻ എന്നിവയുൾപ്പെടെ വിവിധ മേഖലകളിൽ ഉപയോഗം കണ്ടെത്തി.
കൂടാതെ, ഈ നെറ്റ്വർക്കുകൾ സോഷ്യൽ നെറ്റ്വർക്കുകൾ, പ്രോട്ടീൻ-പ്രോട്ടീൻ ഇന്ററാക്ഷൻ നെറ്റ്വർക്കുകൾ, വിജ്ഞാന ഗ്രാഫുകൾ തുടങ്ങി നിരവധി പഠന മേഖലകളിലെ സങ്കീർണ്ണമായ സംവിധാനങ്ങളെ പ്രതിനിധീകരിക്കാൻ ഉപയോഗിക്കാം.
ചിത്രങ്ങൾ പോലെയുള്ള മറ്റ് തരത്തിലുള്ള ഡാറ്റകളിൽ നിന്ന് വ്യത്യസ്തമായി ഗ്രാഫ് ഡാറ്റ പ്രവർത്തിക്കുന്നത് നോൺ-യൂക്ലിഡിയൻ ഇടമാണ്. നോഡുകൾ വർഗ്ഗീകരിക്കുന്നതിനും ലിങ്കുകൾ പ്രവചിക്കുന്നതിനും ക്ലസ്റ്റർ ഡാറ്റയ്ക്കും ഗ്രാഫ് വിശകലനം ഉപയോഗിക്കുന്നു.
ഈ ലേഖനത്തിൽ, ഞങ്ങൾ ഗ്രാഫ് പരിശോധിക്കും ന്യൂറൽ നെറ്റ്വർക്ക് വിശദമായി, അതിന്റെ തരങ്ങൾ, അതുപോലെ PyTorch ഉപയോഗിച്ച് പ്രായോഗിക ഉദാഹരണങ്ങൾ നൽകുക.
അപ്പോൾ എന്താണ് ഗ്രാഫ്?
ഗ്രാഫ് എന്നത് നോഡുകളും വെർട്ടീസുകളും കൊണ്ട് നിർമ്മിച്ച ഒരു തരം ഡാറ്റാ ഘടനയാണ്. വിവിധ നോഡുകൾ തമ്മിലുള്ള കണക്ഷനുകൾ വെർട്ടിസുകളാൽ നിർണ്ണയിക്കപ്പെടുന്നു. നോഡുകളിൽ ദിശ സൂചിപ്പിക്കുകയാണെങ്കിൽ, ഗ്രാഫ് സംവിധാനം ചെയ്തതായി പറയപ്പെടുന്നു; അല്ലാത്തപക്ഷം, അത് ദിശാബോധമില്ലാത്തതാണ്.
ഗ്രാഫുകളുടെ ഒരു നല്ല പ്രയോഗം a ലെ വിവിധ വ്യക്തികൾ തമ്മിലുള്ള ബന്ധത്തെ മാതൃകയാക്കുക എന്നതാണ് സോഷ്യൽ നെറ്റ്വർക്ക്. ലിങ്കുകളും എക്സ്ചേഞ്ചുകളും പോലുള്ള സങ്കീർണ്ണമായ സാഹചര്യങ്ങൾ കൈകാര്യം ചെയ്യുമ്പോൾ, ഗ്രാഫുകൾ വളരെ സഹായകരമാണ്.
ശുപാർശ സംവിധാനങ്ങൾ, സെമാന്റിക് വിശകലനം, സോഷ്യൽ നെറ്റ്വർക്ക് വിശകലനം, പാറ്റേൺ തിരിച്ചറിയൽ എന്നിവയിലൂടെയാണ് അവർ ജോലി ചെയ്യുന്നത്
. ഗ്രാഫ് അധിഷ്ഠിത സൊല്യൂഷനുകൾ സൃഷ്ടിക്കുന്നത് സങ്കീർണ്ണവും പരസ്പരബന്ധിതവുമായ ഡാറ്റയെക്കുറിച്ചുള്ള ഉൾക്കാഴ്ചയുള്ള ധാരണ പ്രദാനം ചെയ്യുന്ന ഒരു പുതിയ ഫീൽഡാണ്.
ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്ക്
ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഒരു ഗ്രാഫ് ഡാറ്റ ഫോർമാറ്റിൽ പ്രവർത്തിക്കാൻ കഴിയുന്ന പ്രത്യേക ന്യൂറൽ നെറ്റ്വർക്ക് തരങ്ങളാണ്. ഗ്രാഫ് എംബെഡിംഗും കൺവല്യൂഷണൽ ന്യൂറൽ നെറ്റ്വർക്കുകളും (സിഎൻഎൻ) അവയിൽ കാര്യമായ സ്വാധീനം ചെലുത്തുന്നു.
ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കുകൾ പ്രവചിക്കുന്ന നോഡുകൾ, അരികുകൾ, ഗ്രാഫുകൾ എന്നിവ ഉൾപ്പെടുന്ന ടാസ്ക്കുകളിൽ ഉപയോഗിക്കുന്നു.
- ചിത്രങ്ങളെ തരംതിരിക്കാൻ CNN ഉപയോഗിക്കുന്നു. അതുപോലെ, ഒരു ക്ലാസ് പ്രവചിക്കാൻ, ഗ്രാഫ് ഘടനയെ പ്രതിനിധീകരിക്കുന്ന പിക്സൽ ഗ്രിഡിലേക്ക് GNN-കൾ പ്രയോഗിക്കുന്നു.
- ആവർത്തന ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിച്ച് ടെക്സ്റ്റ് വർഗ്ഗീകരണം. ഒരു വാക്യത്തിലെ ഓരോ വാക്കും ഒരു നോഡായ ഗ്രാഫ് ആർക്കിടെക്ചറുകളിലും GNN-കൾ ഉപയോഗിക്കുന്നു.
നോഡുകൾ, അരികുകൾ അല്ലെങ്കിൽ പൂർണ്ണമായ ഗ്രാഫുകൾ എന്നിവ പ്രവചിക്കുന്നതിന്, ജിഎൻഎൻ സൃഷ്ടിക്കാൻ ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉപയോഗിക്കുന്നു. നോഡ് തലത്തിലുള്ള ഒരു പ്രവചനത്തിന്, ഉദാഹരണത്തിന്, സ്പാം കണ്ടെത്തൽ പോലുള്ള ഒരു പ്രശ്നം പരിഹരിക്കാൻ കഴിയും.
ലിങ്ക് പ്രവചനം ശുപാർശ ചെയ്യുന്ന സിസ്റ്റങ്ങളിലെ ഒരു സാധാരണ സംഭവമാണ്, ഇത് എഡ്ജ്-വൈസ് പ്രവചന പ്രശ്നത്തിന്റെ ഉദാഹരണമായിരിക്കാം.
ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്ക് തരങ്ങൾ
നിരവധി ന്യൂറൽ നെറ്റ്വർക്ക് തരങ്ങൾ നിലവിലുണ്ട്, അവയിൽ ഭൂരിഭാഗത്തിലും കൺവ്യൂഷണൽ ന്യൂറൽ നെറ്റ്വർക്കുകൾ ഉണ്ട്. ഈ ഭാഗത്ത് ഏറ്റവും അറിയപ്പെടുന്ന GNN-കളെ കുറിച്ച് നമ്മൾ പഠിക്കും.
ഗ്രാഫ് പരിവർത്തന നെറ്റ്വർക്കുകൾ (ജിസിഎൻ)
അവ ക്ലാസിക് CNN-കളുമായി താരതമ്യപ്പെടുത്താവുന്നതാണ്. അടുത്തുള്ള നോഡുകൾ നോക്കുന്നതിലൂടെ ഇത് സ്വഭാവസവിശേഷതകൾ നേടുന്നു. നോഡ് വെക്റ്ററുകൾ സമാഹരിച്ച് ഔട്ട്പുട്ട് ഡെൻസ് ലെയറിലേക്ക് അയച്ചതിന് ശേഷം നോൺ-ലീനിയാരിറ്റി ചേർക്കാൻ ജിഎൻഎൻ-കൾ ആക്ടിവേഷൻ ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു.
ഇത് ഗ്രാഫ് കൺവ്യൂഷൻ, ലീനിയർ ലെയർ, നോൺ-ലേണർ ആക്ടിവേഷൻ ഫംഗ്ഷൻ എന്നിവ കൊണ്ടാണ് നിർമ്മിച്ചിരിക്കുന്നത്. GCN-കൾ രണ്ട് പ്രധാന ഇനങ്ങളിലാണ് വരുന്നത്: സ്പെക്ട്രൽ കൺവ്യൂഷണൽ നെറ്റ്വർക്കുകൾ, സ്പേഷ്യൽ കൺവ്യൂഷണൽ നെറ്റ്വർക്കുകൾ.
ഗ്രാഫ് ഓട്ടോ-എൻകോഡർ നെറ്റ്വർക്കുകൾ
ഗ്രാഫുകളെ പ്രതിനിധീകരിക്കുന്നത് എങ്ങനെയെന്ന് അറിയാൻ ഇത് ഒരു എൻകോഡറും ഇൻപുട്ട് ഗ്രാഫുകൾ പുനർനിർമ്മിക്കാൻ ശ്രമിക്കുന്നതിന് ഒരു ഡീകോഡറും ഉപയോഗിക്കുന്നു. എൻകോഡറും ഡീകോഡറും ബന്ധിപ്പിക്കുന്ന ഒരു തടസ്സ പാളിയുണ്ട്.
ക്ലാസ് ബാലൻസ് കൈകാര്യം ചെയ്യുന്നതിൽ ഓട്ടോ-എൻകോഡറുകൾ മികച്ച ജോലി ചെയ്യുന്നതിനാൽ, അവ ലിങ്ക് പ്രവചനത്തിൽ പതിവായി ഉപയോഗിക്കുന്നു.
ആവർത്തിച്ചുള്ള ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കുകൾ (RGNNs)
മൾട്ടി-റിലേഷണൽ നെറ്റ്വർക്കുകളിൽ, ഒരൊറ്റ നോഡിന് നിരവധി ബന്ധങ്ങളുണ്ട്, അത് ഒപ്റ്റിമൽ ഡിഫ്യൂഷൻ പാറ്റേൺ പഠിക്കുകയും ഗ്രാഫുകൾ നിയന്ത്രിക്കുകയും ചെയ്യുന്നു. സുഗമത വർദ്ധിപ്പിക്കുന്നതിനും ഓവർ-പാരാമീറ്ററൈസേഷൻ കുറയ്ക്കുന്നതിനും, ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കിന്റെ ഈ രൂപത്തിൽ റെഗുലറൈസറുകൾ ഉപയോഗിക്കുന്നു.
മികച്ച ഫലങ്ങൾ ലഭിക്കുന്നതിന്, RGNN-കൾക്ക് കുറഞ്ഞ പ്രോസസ്സിംഗ് പവർ ആവശ്യമാണ്. ടെക്സ്റ്റ് സൃഷ്ടിക്കൽ, സംഭാഷണം തിരിച്ചറിയൽ, മെഷീൻ വിവർത്തനം, ചിത്ര വിവരണം, വീഡിയോ ടാഗിംഗ്, ടെക്സ്റ്റ് സംഗ്രഹം എന്നിവയ്ക്കായി അവ ഉപയോഗിക്കുന്നു.
ഗേറ്റഡ് ന്യൂറൽ ഗ്രാഫ് നെറ്റ്വർക്കുകൾ (GGNNs)
ദീർഘകാല ആശ്രിത ജോലികൾ വരുമ്പോൾ, അവ RGNN-കളെക്കാൾ മികച്ചതാണ്. ദീർഘകാല ഡിപൻഡൻസികളിൽ നോഡ്, എഡ്ജ്, ടെമ്പറൽ ഗേറ്റുകൾ എന്നിവ ഉൾപ്പെടുത്തുന്നതിലൂടെ, ഗേറ്റഡ് ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കുകൾ ആവർത്തിച്ചുള്ള ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കുകൾ മെച്ചപ്പെടുത്തുന്നു.
ഗേറ്റഡ് ആവർത്തന യൂണിറ്റുകൾക്ക് (GRU) സമാനമായി ഗേറ്റുകൾ പ്രവർത്തിക്കുന്നു, കാരണം അവ വിവിധ ഘട്ടങ്ങളിൽ ഡാറ്റ തിരിച്ചുവിളിക്കാനും മറക്കാനും ഉപയോഗിക്കുന്നു.
Pytorch ഉപയോഗിച്ച് ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്ക് നടപ്പിലാക്കുന്നു
ഞങ്ങൾ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്ന നിർദ്ദിഷ്ട പ്രശ്നം ഒരു സാധാരണ നോഡ് വർഗ്ഗീകരണ പ്രശ്നമാണ്. ഞങ്ങൾക്ക് ഒരു വലിയ സോഷ്യൽ നെറ്റ്വർക്ക് ഉണ്ട് musae-github, ഇത് GitHub ഡെവലപ്പർമാർക്കായി ഓപ്പൺ API-യിൽ നിന്ന് സമാഹരിച്ചതാണ്.
എഡ്ജുകൾ നോഡുകൾ തമ്മിലുള്ള പരസ്പര അനുയായി ബന്ധങ്ങൾ കാണിക്കുന്നു, ഇത് കുറഞ്ഞത് 10 റിപ്പോസിറ്ററികളിൽ അഭിനയിച്ച ഡവലപ്പർമാരെ (പ്ലാറ്റ്ഫോം ഉപയോക്താക്കൾ) പ്രതിനിധീകരിക്കുന്നു (പരസ്പരം എന്ന വാക്ക് ദിശാബോധമില്ലാത്ത ബന്ധത്തെ സൂചിപ്പിക്കുന്നു).
നോഡിന്റെ ലൊക്കേഷൻ, നക്ഷത്രചിഹ്നമിട്ട ശേഖരണങ്ങൾ, തൊഴിൽദാതാവ്, ഇമെയിൽ വിലാസം എന്നിവയെ അടിസ്ഥാനമാക്കി, നോഡ് സവിശേഷതകൾ വീണ്ടെടുക്കുന്നു. ഒരു GitHub ഉപയോക്താവ് ഒരു വെബ് ഡെവലപ്പർ ആണോ അല്ലെങ്കിൽ എ മെഷീൻ ലേണിംഗ് ഡെവലപ്പർ നമ്മുടെ ചുമതലയാണ്.
ഈ ടാർഗെറ്റിംഗ് ഫംഗ്ഷന്റെ അടിസ്ഥാനമായി ഓരോ ഉപയോക്താവിന്റെയും ജോലി ശീർഷകം പ്രവർത്തിച്ചു.
PyTorch ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ആരംഭിക്കുന്നതിന്, ഞങ്ങൾ ആദ്യം ഇൻസ്റ്റാൾ ചെയ്യണം പൈടോർച്ച്. നിങ്ങളുടെ മെഷീന് അനുസരിച്ച് നിങ്ങൾക്ക് ഇത് കോൺഫിഗർ ചെയ്യാം ഇവിടെ. ഇതാ എന്റേത്:
മൊഡ്യൂളുകൾ ഇറക്കുമതി ചെയ്യുന്നു
ഇപ്പോൾ, ഞങ്ങൾ ആവശ്യമായ മൊഡ്യൂളുകൾ ഇറക്കുമതി ചെയ്യുന്നു
ഡാറ്റ ഇറക്കുമതി ചെയ്യുകയും പര്യവേക്ഷണം ചെയ്യുകയും ചെയ്യുക
ഡാറ്റ വായിച്ച് ലേബൽ ഫയലിൽ നിന്ന് ആദ്യത്തെ അഞ്ച് വരികളും അവസാന അഞ്ച് വരികളും പ്ലോട്ട് ചെയ്യുക എന്നതാണ് ഇനിപ്പറയുന്ന ഘട്ടം.
നാല് കോളങ്ങളിൽ രണ്ടെണ്ണം മാത്രം-നോഡിന്റെ ഐഡിയും (അതായത്, ഉപയോക്താവ്) ml_target, ഉപയോക്താവ് മെഷീൻ ലേണിംഗ് കമ്മ്യൂണിറ്റിയിൽ അംഗമാണെങ്കിൽ 1 ഉം അല്ലാത്തപക്ഷം 0 ഉം - ഈ സാഹചര്യത്തിൽ ഞങ്ങൾക്ക് പ്രസക്തമാണ്.
രണ്ട് ക്ലാസുകൾ മാത്രമുള്ളതിനാൽ, ഞങ്ങളുടെ ചുമതല ഒരു ബൈനറി വർഗ്ഗീകരണ പ്രശ്നമാണെന്ന് ഇപ്പോൾ നമുക്ക് ഉറപ്പിക്കാം.
കാര്യമായ ക്ലാസ് അസന്തുലിതാവസ്ഥയുടെ ഫലമായി, ക്ലാസിഫയർക്ക് പരിഗണിക്കപ്പെടേണ്ട മറ്റൊരു നിർണായക ഘടകമാക്കി, കുറഞ്ഞ പ്രതിനിധീകരിക്കുന്ന വർഗ്ഗത്തെ വിലയിരുത്തുന്നതിനുപകരം ഏത് ക്ലാസ് ഭൂരിപക്ഷമാണെന്ന് അനുമാനിക്കാം.
ഹിസ്റ്റോഗ്രാം (ഫ്രീക്വൻസി ഡിസ്ട്രിബ്യൂഷൻ) പ്ലോട്ട് ചെയ്യുന്നത് ചില അസന്തുലിതാവസ്ഥ വെളിപ്പെടുത്തുന്നു, കാരണം മറ്റ് ക്ലാസുകളേക്കാൾ മെഷീൻ ലേണിംഗിൽ (ലേബൽ=1) ക്ലാസുകൾ കുറവാണ്.
ഫീച്ചർ എൻകോഡിംഗ്
നോഡുകളുടെ സ്വഭാവസവിശേഷതകൾ ഓരോ നോഡുമായി ബന്ധപ്പെട്ടിരിക്കുന്ന സവിശേഷതയെക്കുറിച്ച് നമ്മെ അറിയിക്കുന്നു. ഡാറ്റ എൻകോഡ് ചെയ്യുന്നതിനുള്ള ഞങ്ങളുടെ രീതി നടപ്പിലാക്കുന്നതിലൂടെ, ഞങ്ങൾക്ക് ആ സവിശേഷതകൾ തൽക്ഷണം എൻകോഡ് ചെയ്യാൻ കഴിയും.
ഡിസ്പ്ലേയ്ക്കായി നെറ്റ്വർക്കിന്റെ ഒരു ചെറിയ ഭാഗം (പറയുക, 60 നോഡുകൾ) ഉൾക്കൊള്ളാൻ ഈ രീതി ഉപയോഗിക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. കോഡ് ഇവിടെ പട്ടികപ്പെടുത്തിയിരിക്കുന്നു.
ഗ്രാഫുകൾ രൂപകൽപ്പന ചെയ്യുകയും പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു
ഞങ്ങൾ ടോർച്ച് ജ്യാമിതീയ ഉപയോഗിക്കും. ഞങ്ങളുടെ ഗ്രാഫ് നിർമ്മിക്കുന്നതിനുള്ള ഡാറ്റ.
വ്യത്യസ്ത (ഓപ്ഷണൽ) ഗുണങ്ങളുള്ള ഒരൊറ്റ ഗ്രാഫ് മാതൃകയാക്കാൻ, ഒരു ലളിതമായ പൈത്തൺ ഒബ്ജക്റ്റായ ഡാറ്റ ഉപയോഗിക്കുന്നു. ഈ ക്ലാസും ഇനിപ്പറയുന്ന ആട്രിബ്യൂട്ടുകളും ഉപയോഗിക്കുന്നതിലൂടെ-ഇവയെല്ലാം ടോർച്ച് ടെൻസറുകളാണ്-നമ്മുടെ ഗ്രാഫ് ഒബ്ജക്റ്റ് സൃഷ്ടിക്കും.
എൻകോഡ് ചെയ്ത നോഡ് ഫീച്ചറുകൾക്ക് അനുവദിക്കുന്ന മൂല്യം x ന്റെ രൂപം [നോഡുകളുടെ എണ്ണം, ഫീച്ചറുകളുടെ എണ്ണം] ആണ്.
y യുടെ ആകൃതി [നോഡുകളുടെ എണ്ണം] ആണ്, അത് നോഡ് ലേബലുകളിൽ പ്രയോഗിക്കും.
എഡ്ജ് ഇൻഡക്സ്: ഒരു അൺഡയറക്ട് ഗ്രാഫ് വിവരിക്കുന്നതിന്, ഒരേ രണ്ട് നോഡുകളെ ബന്ധിപ്പിക്കുന്ന എന്നാൽ വിപരീത ദിശകളിലേക്ക് പോയിന്റ് ചെയ്യുന്ന രണ്ട് വ്യത്യസ്ത ദിശയിലുള്ള അരികുകൾ നിലനിൽക്കാൻ അനുവദിക്കുന്നതിന് യഥാർത്ഥ എഡ്ജ് സൂചികകൾ വികസിപ്പിക്കേണ്ടതുണ്ട്.
നോഡ് 100 മുതൽ 200 വരെയും മറ്റൊന്ന് 200 മുതൽ 100 വരെയും ചൂണ്ടിക്കാണിക്കുന്ന ഒരു ജോടി അരികുകൾ ആവശ്യമാണ്, ഉദാഹരണത്തിന്, നോഡുകൾ 100 നും 200 നും ഇടയിൽ. എഡ്ജ് സൂചികകൾ നൽകിയിട്ടുണ്ടെങ്കിൽ, ഇങ്ങനെയാണ് അൺഡയറക്ട് ഗ്രാഫ് പ്രതിനിധീകരിക്കുന്നത്. [2,2* യഥാർത്ഥ അരികുകളുടെ എണ്ണം] ടെൻസർ രൂപമായിരിക്കും.
ഒരു ഗ്രാഫ് പ്രദർശിപ്പിക്കുന്നതിന് ഞങ്ങൾ ഞങ്ങളുടെ ഡ്രോ ഗ്രാഫ് രീതി സൃഷ്ടിക്കുന്നു. നമ്മുടെ ഏകീകൃത നെറ്റ്വർക്ക് ഒരു NetworkX ഗ്രാഫാക്കി മാറ്റുക എന്നതാണ് ആദ്യപടി, അത് NetworkX.draw ഉപയോഗിച്ച് വരയ്ക്കാം.
ഞങ്ങളുടെ GNN മോഡൽ ഉണ്ടാക്കി അത് പരിശീലിപ്പിക്കുക
ലൈറ്റ്=ഫാൾസ് ഉപയോഗിച്ച് എൻകോഡ് ഡാറ്റ എക്സിക്യൂട്ട് ചെയ്ത് മുഴുവൻ ഡാറ്റയും എൻകോഡ് ചെയ്ത് ഞങ്ങൾ ആരംഭിക്കുന്നു, തുടർന്ന് ഗ്രാഫ് മുഴുവനായി നിർമ്മിക്കുന്നതിന് കൺസ്ട്രക്റ്റ് ഗ്രാഫ് ലൈറ്റ്=ഫാൾസ് ഉപയോഗിച്ച് വിളിക്കുന്നു. ഈ വലിയ ഗ്രാഫ് വരയ്ക്കാൻ ഞങ്ങൾ ശ്രമിക്കില്ല, കാരണം പരിമിതമായ ഉറവിടങ്ങളുള്ള ഒരു പ്രാദേശിക യന്ത്രമാണ് നിങ്ങൾ ഉപയോഗിക്കുന്നതെന്ന് ഞാൻ അനുമാനിക്കുന്നു.
0, 1 എന്നീ അക്കങ്ങൾ ഉപയോഗിച്ച് ഓരോ നിർദ്ദിഷ്ട മാസ്കിന്റെയും നോഡുകൾ തിരിച്ചറിയുന്ന ബൈനറി വെക്റ്ററായ മാസ്കുകൾ, പരിശീലന സമയത്ത് ഏത് നോഡുകൾ ഉൾപ്പെടുത്തണമെന്ന് പരിശീലന ഘട്ടത്തെ അറിയിക്കാനും ഏത് നോഡുകൾ ടെസ്റ്റ് ഡാറ്റയാണെന്ന് അനുമാന ഘട്ടത്തെ അറിയിക്കാനും ഉപയോഗിക്കാം. ടോർച്ച് geometric.transforms.
AddTrainValTestMask ക്ലാസിന്റെ പരിശീലന മാസ്ക്, വാൽ മാസ്ക്, ടെസ്റ്റ് മാസ്ക് പ്രോപ്പർട്ടികൾ എന്നിവ ഉപയോഗിച്ച് ഒരു നോഡ്-ലെവൽ സ്പ്ലിറ്റ് ചേർക്കാൻ കഴിയും, ഇത് ഗ്രാഫ് എടുക്കാനും ഞങ്ങളുടെ മാസ്ക്കുകൾ എങ്ങനെ നിർമ്മിക്കണമെന്ന് വ്യക്തമാക്കാനും ഞങ്ങളെ പ്രാപ്തമാക്കാനും ഇത് ഉപയോഗിക്കാം.
പരിശീലനത്തിനായി ഞങ്ങൾ 10% ഉപയോഗിക്കുകയും 60% മൂല്യനിർണ്ണയ സെറ്റായി ഉപയോഗിക്കുമ്പോൾ 30% ഡാറ്റ ടെസ്റ്റ് സെറ്റായി ഉപയോഗിക്കുകയും ചെയ്യുന്നു.
ഇപ്പോൾ, ഞങ്ങൾ രണ്ട് GCNConv ലെയറുകൾ സ്റ്റാക്ക് ചെയ്യും, അതിൽ ആദ്യത്തേതിൽ ഔട്ട്പുട്ട് ഫീച്ചർ കൗണ്ട് ഉണ്ട്, അത് ഇൻപുട്ട് ഫീച്ചറുകളായി നമ്മുടെ ഗ്രാഫിലെ ഫീച്ചറുകളുടെ എണ്ണത്തിന് തുല്യമാണ്.
രണ്ടാമത്തെ ലെയറിൽ, ഞങ്ങളുടെ ക്ലാസുകളുടെ എണ്ണത്തിന് തുല്യമായ ഔട്ട്പുട്ട് നോഡുകൾ അടങ്ങിയിരിക്കുന്നു, ഞങ്ങൾ ഒരു relu ആക്റ്റിവേഷൻ ഫംഗ്ഷൻ പ്രയോഗിക്കുകയും ഒളിഞ്ഞിരിക്കുന്ന സവിശേഷതകൾ നൽകുകയും ചെയ്യുന്നു.
എഡ്ജ് ഇൻഡക്സും എഡ്ജ് വെയിറ്റും ഫോർവേഡ് ഫംഗ്ഷനിൽ GCNConv-ന് സ്വീകരിക്കാൻ കഴിയുന്ന നിരവധി ഓപ്ഷനുകളിൽ രണ്ടാണ് x, എന്നാൽ ഞങ്ങളുടെ സാഹചര്യത്തിൽ, ഞങ്ങൾക്ക് ആദ്യത്തെ രണ്ട് വേരിയബിളുകൾ മാത്രമേ ആവശ്യമുള്ളൂ.
ഗ്രാഫിലെ എല്ലാ നോഡുകളുടെയും ക്ലാസ് പ്രവചിക്കാൻ ഞങ്ങളുടെ മോഡലിന് കഴിയുമെങ്കിലും, ഘട്ടത്തെ ആശ്രയിച്ച് ഓരോ സെറ്റിനും വെവ്വേറെ കൃത്യതയും നഷ്ടവും ഞങ്ങൾ നിർണ്ണയിക്കേണ്ടതുണ്ട്.
ഉദാഹരണത്തിന്, പരിശീലന വേളയിൽ, കൃത്യതയും പരിശീലന നഷ്ടവും നിർണ്ണയിക്കാൻ മാത്രമേ ഞങ്ങൾ പരിശീലന സെറ്റ് ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നുള്ളൂ, അതിനാൽ ഞങ്ങളുടെ മാസ്കുകൾ ഉപയോഗപ്രദമാകുന്നത് ഇവിടെയാണ്.
ഉചിതമായ നഷ്ടവും കൃത്യതയും കണക്കാക്കാൻ, മാസ്ക്ഡ് ലോസ്, മാസ്ക്ഡ് കൃത്യത എന്നിവയുടെ പ്രവർത്തനങ്ങൾ ഞങ്ങൾ നിർവ്വചിക്കും.
മോഡലിനെ പരിശീലിപ്പിക്കുന്നു
ടോർച്ച് ഉപയോഗിക്കുന്നതിനുള്ള പരിശീലന ഉദ്ദേശ്യം ഞങ്ങൾ ഇപ്പോൾ നിർവചിച്ചു. ആദം ഒരു മാസ്റ്റർ ഒപ്റ്റിമൈസർ ആണ്.
മൂല്യനിർണ്ണയ കൃത്യതയിൽ ശ്രദ്ധ പുലർത്തിക്കൊണ്ട് ഞങ്ങൾ നിശ്ചിത എണ്ണം യുഗങ്ങൾക്കായി പരിശീലനം നടത്തും.
വിവിധ കാലഘട്ടങ്ങളിൽ പരിശീലനത്തിന്റെ നഷ്ടങ്ങളും കൃത്യതകളും ഞങ്ങൾ ആസൂത്രണം ചെയ്യുന്നു.
ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കിന്റെ പോരായ്മകൾ
GNN-കൾ ഉപയോഗിക്കുന്നതിന് കുറച്ച് ദോഷങ്ങളുമുണ്ട്. ജിഎൻഎൻഎ എപ്പോൾ ഉപയോഗിക്കണമെന്നും ഞങ്ങളുടെ മെഷീൻ ലേണിംഗ് മോഡലുകളുടെ പ്രകടനം എങ്ങനെ മെച്ചപ്പെടുത്താമെന്നും അവയെക്കുറിച്ച് നന്നായി മനസ്സിലാക്കിയ ശേഷം നമുക്ക് വ്യക്തമാക്കും.
- GNN-കൾ ആഴം കുറഞ്ഞ നെറ്റ്വർക്കുകളാണെങ്കിലും, സാധാരണയായി മൂന്ന് ലെയറുകളുള്ള, മിക്ക ന്യൂറൽ നെറ്റ്വർക്കുകൾക്കും പ്രകടനം മെച്ചപ്പെടുത്താൻ കഴിയും. ഈ പരിമിതി കാരണം വലിയ ഡാറ്റാസെറ്റുകളിൽ ഏറ്റവും മികച്ച പ്രകടനം നടത്താൻ ഞങ്ങൾക്ക് കഴിയുന്നില്ല.
- ഗ്രാഫുകളിൽ ഒരു മോഡലിനെ പരിശീലിപ്പിക്കുന്നത് കൂടുതൽ ബുദ്ധിമുട്ടാണ്, കാരണം അവയുടെ ഘടനാപരമായ ചലനാത്മകത ചലനാത്മകമാണ്.
- ഈ ശൃംഖലകളുടെ ഉയർന്ന കമ്പ്യൂട്ടേഷണൽ ചെലവ് കാരണം, ഉൽപ്പാദനത്തിനുള്ള മോഡൽ സ്കെയിലിംഗ് വെല്ലുവിളികൾ അവതരിപ്പിക്കുന്നു. നിങ്ങളുടെ ഗ്രാഫ് ഘടന വലുതും സങ്കീർണ്ണവുമാണെങ്കിൽ ഉൽപ്പാദനത്തിനായി GNN-കൾ സ്കെയിലിംഗ് ചെയ്യുന്നത് വെല്ലുവിളിയാകും.
തീരുമാനം
കഴിഞ്ഞ കുറച്ച് വർഷങ്ങളായി, ഗ്രാഫ് ഡൊമെയ്നിലെ മെഷീൻ ലേണിംഗ് പ്രശ്നങ്ങൾക്കുള്ള ശക്തവും ഫലപ്രദവുമായ ടൂളുകളായി GNN-കൾ വികസിപ്പിച്ചെടുത്തിട്ടുണ്ട്. ഗ്രാഫ് ന്യൂറൽ നെറ്റ്വർക്കുകളുടെ അടിസ്ഥാന അവലോകനം ഈ ലേഖനത്തിൽ നൽകിയിരിക്കുന്നു.
അതിനുശേഷം, മോഡൽ പരിശീലിപ്പിക്കുന്നതിനും പരീക്ഷിക്കുന്നതിനും ഉപയോഗിക്കുന്ന ഡാറ്റാസെറ്റ് സൃഷ്ടിക്കാൻ നിങ്ങൾക്ക് ആരംഭിക്കാം. ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്നും അതിന്റെ കഴിവ് എന്താണെന്നും മനസിലാക്കാൻ, നിങ്ങൾക്ക് കൂടുതൽ ദൂരം പോയി മറ്റൊരു തരത്തിലുള്ള ഡാറ്റാസെറ്റ് ഉപയോഗിച്ച് പരിശീലിപ്പിക്കാം.
ഹാപ്പി കോഡിംഗ്!
നിങ്ങളുടെ അഭിപ്രായങ്ങൾ രേഖപ്പെടുത്തുക