ዝርዝር ሁኔታ[ደብቅ][አሳይ]
"ግራፍ ነርቭ ኔትወርኮች" (ጂኤንኤን) በመባል የሚታወቁት ጥልቅ የመማር ዘዴዎች በግራፍ ጎራ ውስጥ ይሰራሉ። ጥቂቶቹን ለመጥቀስ እነዚህ ኔትወርኮች የኮምፒዩተር እይታን፣ የአስተያየት ሰጪ ስርዓቶችን እና ጥምር ማመቻቸትን ጨምሮ በተለያዩ መስኮች በቅርብ ጊዜ ጥቅም ላይ ውለዋል።
በተጨማሪም, እነዚህ አውታረ መረቦች ማህበራዊ አውታረ መረቦችን, የፕሮቲን-ፕሮቲን መስተጋብር መረቦችን, የእውቀት ግራፎችን እና ሌሎችን ጨምሮ ውስብስብ ስርዓቶችን ለመወከል ሊያገለግሉ ይችላሉ.
ዩክሊዲያን ያልሆነው ቦታ የግራፍ መረጃ የሚሰራበት ነው፣ እንደ ስዕሎች ካሉ ሌሎች የመረጃ አይነቶች በተቃራኒ። አንጓዎችን ለመከፋፈል፣ አገናኞችን ለመተንበይ እና የክላስተር ውሂብን ለመገመት የግራፍ ትንተና ጥቅም ላይ ይውላል።
በዚህ ጽሑፍ ውስጥ, ግራፉን እንመረምራለን የነርቭ አውታረመረብ በዝርዝር, የእሱ ዓይነቶች, እንዲሁም PyTorch ን በመጠቀም ተግባራዊ ምሳሌዎችን ያቅርቡ.
ስለዚህ ግራፍ ምንድን ነው?
ግራፍ በአንጓዎች እና ጫፎች የተሰራ የውሂብ መዋቅር አይነት ነው። በተለያዩ አንጓዎች መካከል ያሉ ግንኙነቶች የሚወሰኑት በቋሚዎቹ ነው. መመሪያው በኖዶች ውስጥ ከተጠቆመ, ግራፉ ተመርቷል ይባላል; አለበለዚያ ግን ያልተመራ ነው.
ጥሩ የግራፍ አተገባበር በተለያዩ ግለሰቦች መካከል ያለውን ግንኙነት በመቅረጽ ነው። ማህበራዊ አውታረ መረብ. እንደ አገናኞች እና ልውውጦች ካሉ ውስብስብ ሁኔታዎች ጋር ሲገናኙ, ግራፎች በጣም ይረዳሉ.
እነሱ በጥቆማ ስርዓቶች፣ የትርጉም ትንተና፣ በማህበራዊ አውታረመረብ ትንተና እና በስርዓተ-ጥለት ማወቂያ ተቀጥረዋል።
. በግራፍ ላይ የተመሰረቱ መፍትሄዎችን መፍጠር ስለ ውስብስብ እና እርስ በርስ የተያያዙ መረጃዎች ጥልቅ ግንዛቤን የሚሰጥ አዲስ መስክ ነው።
ግራፍ የነርቭ አውታረ መረብ
የግራፍ ነርቭ ኔትወርኮች በግራፍ ዳታ ፎርማት ላይ ሊሠሩ የሚችሉ ልዩ የነርቭ ኔትወርክ ዓይነቶች ናቸው። የግራፍ መክተት እና ኮንቮሉሽን ነርቭ ኔትወርኮች (ሲኤንኤን) በእነሱ ላይ ከፍተኛ ተጽእኖ አላቸው።
የግራፍ ነርቭ ኔትወርኮች የመስቀለኛ ቋቶችን፣ ጠርዞችን እና ግራፎችን መተንበይ በሚያካትቱ ተግባራት ውስጥ ተቀጥረዋል።
- ሲኤንኤን ምስሎችን ለመመደብ ይጠቅማሉ። በተመሳሳይ፣ ክፍልን ለመተንበይ ጂኤንኤን የግራፍ አወቃቀሩን በሚወክል የፒክሰል ፍርግርግ ላይ ይተገበራል።
- ተደጋጋሚ የነርቭ አውታረ መረቦችን በመጠቀም የጽሑፍ ምደባ። ጂኤንኤን ከግራፍ አርክቴክቸር ጋርም ጥቅም ላይ ይውላሉ በአንድ ሀረግ ውስጥ ያለው እያንዳንዱ ቃል መስቀለኛ መንገድ ነው።
አንጓዎችን፣ ጠርዞችን ወይም ሙሉ ግራፎችን ለመተንበይ የነርቭ ኔትወርኮች ጂኤንኤን ለመፍጠር ያገለግላሉ። ለምሳሌ በመስቀለኛ ደረጃ ላይ ያለ ትንበያ እንደ አይፈለጌ መልዕክት ማግኘት ያለ ችግርን ሊፈታ ይችላል።
የግንኙነት ትንበያ በአማካሪ ስርዓቶች ውስጥ የተለመደ ጉዳይ ነው እና የጠርዝ-ጥበበኛ ትንበያ ችግር ምሳሌ ሊሆን ይችላል።
ግራፍ የነርቭ ኔትወርክ ዓይነቶች
በርካታ የነርቭ አውታር ዓይነቶች አሉ፣ እና ኮንቮሉሽን ነርቭ ኔትወርኮች በአብዛኛዎቹ ውስጥ አሉ። በዚህ ክፍል ውስጥ በጣም የታወቁትን GNNs እንማራለን.
ግራፍ ኮንቮሉሽን ኔትወርኮች (ጂሲኤን)
እነሱ ከተለመዱት CNNs ጋር ይነጻጸራሉ። በአቅራቢያ ያሉ አንጓዎችን በማየት ባህሪያትን ያገኛል. የማግበሪያ ተግባሩ የመስቀለኛ መንገድ ቬክተሮችን በማሰባሰብ እና ውጤቱን ወደ ጥቅጥቅ ያለ ንብርብር ከላከ በኋላ መስመር-አልባነትን ለመጨመር በጂኤንኤን ይጠቀማል።
እሱ በመሰረቱ በግራፍ ኮንቮሉሽን፣ በመስመራዊ ንብርብር እና ያልተማረ የማግበር ተግባር ነው። GCNs በሁለት ዋና ዋና ዓይነቶች ይመጣሉ፡ Spectral Convolutional Networks እና Spatial Convolutional Networks።
ግራፍ ራስ-ኢንኮደር አውታረ መረቦች
ግራፎችን እንዴት እንደሚወክሉ ለመማር ኢንኮደርን ይጠቀማል እና የግቤት ግራፎችን እንደገና ለመስራት ዲኮደርን ይጠቀማል። ኢንኮደር እና ዲኮደርን የሚያገናኝ የጠርሙስ አንገት ንብርብር አለ።
ራስ-መቀየሪያዎች የክፍል ሚዛን አያያዝን በጣም ጥሩ ስራ ስለሚሰሩ በአገናኝ ትንበያ ውስጥ በተደጋጋሚ ጥቅም ላይ ይውላሉ.
ተደጋጋሚ ግራፍ የነርቭ አውታረ መረቦች (RGNNs)
በባለብዙ-ግንኙነት ኔትወርኮች ውስጥ፣ አንድ መስቀለኛ መንገድ ብዙ ግንኙነቶች ባሉበት፣ በጣም ጥሩውን የስርጭት ንድፍ ይማራል እና ግራፎችን ማስተዳደር ይችላል። ቅልጥፍናን ለመጨመር እና ከመጠን በላይ መመዘኛዎችን ለመቀነስ, በዚህ የግራፍ ነርቭ አውታረመረብ ውስጥ መደበኛ ሰሪዎች ጥቅም ላይ ይውላሉ.
የተሻሉ ውጤቶችን ለማግኘት፣አርጂኤንኤንዎች አነስተኛ የማስኬጃ ሃይል ይፈልጋሉ። ለጽሑፍ ማመንጨት፣ የንግግር ማወቂያ፣ የማሽን ትርጉም፣ የሥዕል መግለጫ፣ የቪዲዮ መለያ እና የጽሑፍ ማጠቃለያ ጥቅም ላይ ይውላሉ።
የታጠቁ የነርቭ ግራፍ አውታረ መረቦች (ጂጂኤንኤን)
የረዥም ጊዜ ጥገኛ ተግባራትን በተመለከተ፣ ከአርጂኤንኤን ይበልጣሉ። መስቀለኛ መንገድ፣ ጠርዝ እና ጊዜያዊ በሮች በረጅም ጊዜ ጥገኞች ላይ በማካተት የተከለከሉ የግራፍ ነርቭ ኔትወርኮች ተደጋጋሚ የግራፍ ነርቭ ኔትወርኮችን ያሳድጋሉ።
በሮቹ በተለያዩ ደረጃዎች መረጃን ለማስታወስ እና ለመርሳት ስለሚውሉ ከ Gated Recurrent Units (GRUs) ጋር ተመሳሳይነት አላቸው።
ፒቶርች በመጠቀም የግራፍ ነርቭ ኔትወርክን መተግበር
የምናተኩርበት ልዩ ጉዳይ የጋራ የመስቀለኛ ክፍል ምደባ ጉዳይ ነው። የሚባል ትልቅ ማህበራዊ አውታረ መረብ አለን። musae-githubለ GitHub ገንቢዎች ከክፍት ኤፒአይ የተጠናቀረ።
ጠርዞች ቢያንስ በ10 ማከማቻዎች ውስጥ ኮከብ ያደረጉ ገንቢዎችን (የመሳሪያ ስርዓት ተጠቃሚዎችን) የሚወክሉ በአንጓዎች መካከል ያለውን የጋራ ተከታይ ግንኙነቶች ያሳያሉ (መጋራት የሚለው ቃል ያልተመራ ግንኙነትን እንደሚያመለክት ልብ ይበሉ)።
በመስቀለኛ መንገድ፣ ኮከብ የተደረገባቸው ማከማቻዎች፣ አሰሪ እና የኢሜይል አድራሻ ላይ በመመስረት የመስቀለኛ መንገድ ባህሪያት ተሰርስረዋል። የ GitHub ተጠቃሚ የድር ገንቢ እንደሆነ ወይም ሀ የማሽን ትምህርት ገንቢ የእኛ ተግባር ነው።
የእያንዳንዱ ተጠቃሚ የስራ ርዕስ ለዚህ ኢላማ ተግባር መሰረት ሆኖ አገልግሏል።
PyTorchን በመጫን ላይ
ለመጀመር, መጀመሪያ መጫን አለብን ፒቶርች. በማሽንዎ መሰረት ማዋቀር ይችላሉ። እዚህ. የእኔ ነው፡-
ሞጁሎችን በማስመጣት ላይ
አሁን, አስፈላጊዎቹን ሞጁሎች እናስመጣለን
ውሂቡን ማስመጣት እና ማሰስ
የሚከተለው እርምጃ ውሂቡን ማንበብ እና የመጀመሪያዎቹን አምስት ረድፎች እና የመጨረሻዎቹን አምስት ረድፎች ከመለያው ፋይል ውስጥ ማቀድ ነው።
ከአራቱ ዓምዶች ውስጥ ሁለቱ ብቻ ናቸው-የመስቀለኛ መንገድ መታወቂያ (ማለትም፣ ተጠቃሚ) እና ml_target፣ ይህም 1 ተጠቃሚው የማሽን መማሪያ ማህበረሰብ አባል ከሆነ እና 0 ካልሆነ በዚህ ሁኔታ ለእኛ ጠቃሚ ናቸው።
ሁለት ክፍሎች ብቻ እንዳሉ ስንመለከት፣ አሁን የእኛ ተግባር የሁለትዮሽ ምደባ ጉዳይ መሆኑን እርግጠኛ መሆን እንችላለን።
ጉልህ በሆነ የመደብ አለመመጣጠን ምክንያት፣ ክላሲፋዩ ዝቅተኛ ውክልና ያለውን ክፍል ከመገምገም ይልቅ የትኛው ክፍል ብዙ እንደሆነ ብቻ ሊገምት ይችላል፣ ይህም የክፍል ሚዛን ሌላ ሊታሰብበት የሚገባ ወሳኝ ነገር ያደርገዋል።
ሂስቶግራም (ድግግሞሽ ስርጭት) ማሴር የተወሰነ አለመመጣጠን ያሳያል ምክንያቱም ከሌሎቹ ክፍሎች ይልቅ በማሽን መማር (መለያ=1) ጥቂት ክፍሎች አሉ።
የባህሪ ኢንኮዲንግ
የአንጓዎቹ ባህሪያት ከእያንዳንዱ መስቀለኛ መንገድ ጋር የተያያዘውን ባህሪ ያሳውቁናል. መረጃን ለመቀየሪያ ዘዴያችንን በመተግበር እነዚያን ባህሪያት በቅጽበት መክተት እንችላለን።
ይህንን ዘዴ ለመጠቀም የኔትወርክን ትንሽ ክፍል (60 ኖዶች ይናገሩ) ለዕይታ ለማቅረብ እንፈልጋለን። ኮዱ እዚህ ተዘርዝሯል።
ግራፎችን መንደፍ እና ማሳየት
ችቦ ጂኦሜትሪክን እንጠቀማለን። የእኛን ግራፍ ለመገንባት ውሂብ.
ነጠላ ግራፍ ከተለያዩ (አማራጭ) ባህሪያት ጋር ለመቅረጽ፣ ቀላል የፓይዘን ነገር የሆነ መረጃ ጥቅም ላይ ይውላል። ይህንን ክፍል እና የሚከተሉትን ባህሪያት በመጠቀም - ሁሉም የችቦ ማሰሪያዎች ናቸው - የግራፍ እቃችንን እንፈጥራለን።
የዋጋ x መልክ፣ ለተሰየሙት የመስቀለኛ ክፍል ባህሪያት የሚመደብ፣ [የአንጓዎች ብዛት፣ የባህሪዎች ብዛት] ነው።
የ y ቅርጽ [የአንጓዎች ቁጥር] ነው, እና በመስቀለኛ መለያዎች ላይ ይተገበራል.
የጠርዝ ኢንዴክስ፡- ያልተመራውን ግራፍ ለመግለጽ፣ ተመሳሳይ ሁለቱን አንጓዎች የሚያገናኙ ነገር ግን ወደ ተቃራኒ አቅጣጫዎች የሚያመለክቱ ሁለት የተለዩ የተመሩ ጠርዞች እንዲኖሩ ለማስቻል የመጀመሪያውን የጠርዝ ኢንዴክሶችን ማስፋፋት አለብን።
አንድ ጥንድ ጠርዝ፣ አንደኛው ከመስቀለኛ 100 እስከ 200 እና ሌላኛው ከ200 እስከ 100፣ ለምሳሌ በ100 እና 200 መካከል ባሉት አንጓዎች መካከል ያስፈልጋል። [2,2፣XNUMX*የመጀመሪያዎቹ ጠርዞች ብዛት] የ tensor ቅጽ ይሆናል።
ግራፍ ለማሳየት የእኛን የግራፍ ዘዴ እንፈጥራለን. የመጀመሪያው እርምጃ የእኛን ተመሳሳይነት ያለው አውታረ መረብ ወደ NetworkX ግራፍ መቀየር ነው, ከዚያም NetworkX.draw በመጠቀም መሳል ይቻላል.
የጂኤንኤን ሞዴላችንን ይስሩ እና ያሰለጥኑት።
ኢንኮድ ዳታ በብርሃን = ሐሰት እና በመቀጠል የኮንስትራክሽን ግራፍ በብርሃን = ሐሰት በመደወል ሙሉውን የዳታ ስብስብ በመቀየስ እንጀምራለን። ይህንን ትልቅ ግራፍ ለመሳል አንሞክርም ምክንያቱም ውስን ሀብቶች ያሉት የሀገር ውስጥ ማሽን እየተጠቀሙ ነው ብዬ እገምታለሁ።
ማስክ (ሁለትዮሽ ቬክተር) የሆኑት የትኞቹ ኖዶች አሃዞች 0 እና 1ን በመጠቀም የእያንዳንዱ ልዩ ጭንብል ክፍል እንደሆኑ የሚለዩ ሲሆን በስልጠናው ወቅት የትኞቹ አንጓዎች መካተት እንዳለባቸው ለስልጠናው ምዕራፍ ለማሳወቅ እና የትኛዎቹ አንጓዎች የፈተና መረጃ እንደሆኑ ለመንገር መጠቀም ይቻላል ። ችቦ ጂኦሜትሪክ.ይለውጣል።
የAddTrainValTestMask ክፍል የስልጠና ማስክ፣ ቫል ማስክ እና የሙከራ ማስክ ባሕሪያትን በመጠቀም የመስቀለኛ ደረጃ መሰንጠቅ መጨመር ይቻላል፣ ይህም ግራፍ ለመውሰድ እና ጭምብላችንን እንዴት እንዲገነባ እንደምንፈልግ እንድንገልጽ ያስችለናል።
እኛ ለስልጠና 10% ብቻ እንጠቀማለን እና 60% መረጃን እንደ የሙከራ ስብስብ እንጠቀማለን ፣ 30% እንደ ማረጋገጫ ስብስብ እንጠቀማለን።
አሁን፣ ሁለት GCNConv ንብርብሮችን እንቆልላለን፣ የመጀመሪያው የውጤት ባህሪ ቆጠራው በግራፍ ውስጥ ካሉት የባህሪዎች ብዛት ጋር እኩል ነው።
ከክፍሎቻችን ብዛት ጋር እኩል የሆነ የውጤት ኖዶችን በያዘው በሁለተኛው ንብርብር የሬሉ ማግበር ተግባርን እንተገብራለን እና ድብቅ ባህሪያትን እናቀርባለን።
የጠርዝ ኢንዴክስ እና የጠርዝ ክብደት GCNConv ወደፊት ተግባር ውስጥ ሊቀበላቸው ከሚችላቸው በርካታ አማራጮች x ሁለቱ ናቸው, ነገር ግን በእኛ ሁኔታ, የመጀመሪያዎቹ ሁለት ተለዋዋጮች ብቻ እንፈልጋለን.
ምንም እንኳን የእኛ ሞዴል በግራፉ ውስጥ ያሉትን የእያንዳንዱን አንጓዎች ክፍል መተንበይ ቢችልም ፣ በእያንዳንዱ ደረጃ ላይ በመመስረት ለእያንዳንዱ ስብስብ ትክክለኛነት እና ኪሳራ አሁንም መወሰን አለብን።
ለምሳሌ፣ በስልጠና ወቅት፣ የስልጠናውን ስብስብ የምንፈልገው ትክክለኝነት እና የስልጠና መጥፋትን ለመወሰን ብቻ ነው፣ እና ስለዚህ ጭምብላችን ጠቃሚ የሚሆነው እዚህ ላይ ነው።
ተገቢውን ኪሳራ እና ትክክለኛነት ለማስላት, የተደበቀ የመጥፋት እና የተሸሸገ ትክክለኛነት ተግባራትን እንገልጻለን.
ሞዴሉን ማሰልጠን
አሁን ችቦው የሚውልበትን የሥልጠና ዓላማ ገልፀናል። አዳም ዋና አመቻች ነው።
የማረጋገጫ ትክክለኛነትን እየተከታተልን ለተወሰነ ክፍለ ዘመናት ስልጠናውን እናካሂዳለን።
የሥልጠናውን ኪሳራ እና ትክክለኛነት በተለያዩ ወቅቶች እናቀርባለን።
የግራፍ ነርቭ ኔትወርክ ጉዳቶች
ጂኤንኤን መጠቀም ጥቂት ጉዳቶች አሉት። GNna መቼ እንደሚቀጠር እና የማሽን መማሪያ ሞዴሎቻችንን አፈጻጸም እንዴት ማሳደግ እንደምንችል የተሻለ ግንዛቤ ካገኘን በኋላ ሁለቱም ግልፅ ይሆናሉ።
- ጂኤንኤን ጥልቀት የሌላቸው ኔትወርኮች ሲሆኑ፣በተለምዶ በሶስት እርከኖች፣አብዛኞቹ የነርቭ ኔትወርኮች አፈፃፀሙን ለማሻሻል ወደ ጥልቅ መሄድ ይችላሉ። በዚህ ውሱንነት ምክንያት በትልልቅ የውሂብ ስብስቦች ላይ ጫፍ ላይ ማከናወን አልቻልንም።
- የእነሱ መዋቅራዊ ተለዋዋጭነት ተለዋዋጭ ስለሆነ ሞዴልን በግራፎች ላይ ማሰልጠን የበለጠ ከባድ ነው።
- በነዚህ ኔትወርኮች ከፍተኛ ስሌት ወጪዎች ምክንያት ለምርት ሞዴሉን ማመጣጠን ፈተናዎችን ይፈጥራል። የግራፍዎ መዋቅር ግዙፍ እና የተወሳሰበ ከሆነ GNN ዎችን ለማምረት ፈታኝ ይሆናል።
መደምደሚያ
ባለፉት ጥቂት አመታት፣ ጂኤንኤን በግራፍ ጎራ ውስጥ ለማሽን መማሪያ ጉዳዮች ወደ ኃይለኛ እና ውጤታማ መሳሪያዎች አዳብረዋል። የግራፍ ነርቭ ኔትወርኮች መሠረታዊ አጠቃላይ እይታ በዚህ ጽሑፍ ውስጥ ተሰጥቷል.
ከዚያ በኋላ ሞዴሉን ለማሰልጠን እና ለመሞከር የሚያገለግል የውሂብ ስብስብ መፍጠር መጀመር ይችላሉ። እንዴት እንደሚሰራ እና ምን ማድረግ እንደሚችል ለመረዳት፣ በጣም ርቀው መሄድ እና የተለየ የውሂብ ስብስብ በመጠቀም ማሰልጠን ይችላሉ።
መልካም ኮዴክ!
መልስ ይስጡ