Fizahan-takelaka[Afeno][Aseho]
Ny teknika fianarana lalina fantatra amin'ny anarana hoe "tambajotra neural grafika" (GNNs) dia miasa ao amin'ny sehatra grafika. Ireo tambajotra ireo tato ho ato dia nahita fampiasa amin'ny sehatra isan-karazany, ao anatin'izany ny fahitan'ny solosaina, ny rafitra mpanome soso-kevitra, ary ny fanatsarana mitambatra, raha tsy hilaza afa-tsy vitsivitsy.
Ankoatr'izay, ireo tambajotra ireo dia azo ampiasaina hanehoana rafitra sarotra, ao anatin'izany ny tambajotra sosialy, tambajotram-pifandraisana proteinina-proteinina, kisary fahalalana, ary ny hafa amin'ny sehatra fianarana maro.
Ny habaka tsy euclidean no toerana iasan'ny angon-drakitra, mifanohitra amin'ny karazana angona hafa toy ny sary. Mba hanasokajiana ny nodes, maminavina rohy, ary angona cluster, dia ampiasaina ny famakafakana grafika.
Ato amin'ity lahatsoratra ity dia handinika ny Graph isika Neural Network amin'ny antsipiriany, ny karazany, ary manome ohatra azo ampiharina amin'ny fampiasana PyTorch.
Noho izany, inona ny Graph?
Ny grafika dia karazana firafitry ny angona voaforona nodes sy vertices. Ny fifandraisana eo amin'ireo nodes isan-karazany dia faritana amin'ny alàlan'ny vertices. Raha aseho ao amin'ny nodes ny tari-dalana, dia lazaina fa mizotra ny kisary; raha tsy izany dia tsy voavily izany.
Ny fampiharana tsara ny grafika dia mamolavola ny fifandraisana eo amin'ny olona isan-karazany amin'ny a Tambazotram-pifandraisana. Rehefa miatrika toe-javatra sarotra, toy ny rohy sy ny fifanakalozana, dia tena manampy ny grafika.
Izy ireo dia ampiasaina amin'ny rafitra fanolorana, famakafakana semantika, famakafakana tambajotra sosialy, ary fanekena ny lamina
. Ny famoronana vahaolana mifototra amin'ny grafika dia sehatra vaovao izay manome fahatakarana mazava momba ny angona sarotra sy mifandray.
Graph Neural Network
Ny tambajotra neural graph dia karazana tambajotra neural manokana izay afaka miasa amin'ny endrika angon-drakitra grafika. Misy fiantraikany lehibe amin'izy ireo ny fametahana grafika sy ny tambajotra neural convolutional (CNNs).
Ny Graph Neural Networks dia ampiasaina amin'ny asa izay ahitana ny faminaniany ny nodes, ny sisiny ary ny grafika.
- Ny CNN dia ampiasaina hanasokajiana sary. Toy izany koa, mba haminavina kilasy iray, ny GNN dia ampiharina amin'ny grid pixel izay maneho ny rafitra grafika.
- Fanasokajiana lahatsoratra mampiasa tambajotra neural miverimberina. Ny GNN dia ampiasaina ihany koa amin'ny rafitra grafika izay misy node ny teny tsirairay ao anaty fehezanteny iray.
Mba haminavina ny nodes, ny sisiny, na ny grafika feno, dia ampiasaina ny tambajotra neural mba hamoronana GNN. Ny vinavina amin'ny ambaratonga node, ohatra, dia afaka mamaha olana toy ny fitadiavana spam.
Ny vinavinan'ny rohy dia tranga mahazatra amin'ny rafitra mpanome soso-kevitra ary mety ho ohatra iray amin'ny olan'ny faminanian'ny sisiny.
Karazana Network Neural Graph
Misy karazana tambajotra neural maro, ary ny Convolutional Neural Networks dia misy amin'ny ankamaroan'izy ireo. Hianatra momba ireo GNN fanta-daza indrindra amin'ity ampahany ity isika.
Graph Convolutional Networks (GCNs)
Izy ireo dia ampitahaina amin'ny CNN mahazatra. Mahazo toetra izy amin'ny fijerena ireo nodes eo akaiky eo. Ny fiasan'ny fampahavitrihana dia ampiasain'ny GNN mba hanampiana ny tsy-linearity aorian'ny fanangonana ireo vectors node sy ny fandefasana ny vokatra ho any amin'ny sosona matevina.
Izy io dia voaforon'ny Graph convolution, sosona tsipika, ary asa fampahavitrihana tsy mpianatra, raha ny tena izy. Misy karazany roa lehibe ny GCN: Networks Convolutional Spectral sy Networks Convolutional Spatial.
Tambajotra Auto-Encoder Graph
Mampiasa encoder izy io mba hianarana ny fomba fanehoana ny grafika sy ny decoder hanandrana hanorina ny kisary fampidirana. Misy sosona bottleneck mampifandray ny encoder sy ny decoder.
Satria ny auto-encoders dia manao asa tsara amin'ny fitantanana ny fifandanjana kilasy, dia matetika izy ireo no ampiasaina amin'ny faminaniana rohy.
Tambajotra Neural Graph Miverimberina (RGNNs)
Ao amin'ny tambajotram-pifandraisana maro, izay misy node tokana manana fifandraisana maro, dia mianatra ny fomba fanaparitahana tsara indrindra izy ary afaka mitantana ny grafika. Mba hampitomboana ny fahalalam-pomba sy hampihenana ny fanamafisam-peo tafahoatra, dia ampiasaina amin'ity endrika tambajotra neural grafika ity ny regularizers.
Mba hahazoana vokatra tsara kokoa, mila hery fanodinana kely kokoa ny RGNN. Izy ireo dia ampiasaina amin'ny famoronana lahatsoratra, famantarana ny kabary, fandikana milina, famaritana sary, fametahana horonan-tsary, ary famintinana lahatsoratra.
Tambajotran'ny grafofaonina Gated Neural Graph (GGNNs)
Raha ny momba ny asa miankina amin'ny fotoana maharitra dia mihoatra ny RGNNs izy ireo. Amin'ny fampidirana ny vavahady node, sisiny ary ara-nofo amin'ny fiankinan-doha maharitra, ny tambajotra neural graph gated dia manatsara ny tambajotra neural grafika miverimberina.
Ny vavahady dia miasa mitovy amin'ny Gated Recurrent Units (GRUs) satria izy ireo dia zatra mitadidy sy manadino ny angona amin'ny dingana isan-karazany.
Fampiharana ny Graph Neural Network mampiasa Pytorch
Ny olana manokana hifantohantsika dia olana fanasokajiana node mahazatra. Manana tambajotra sosialy lehibe antsoina hoe musae-github, izay natambatra avy amin'ny API misokatra, ho an'ny mpamorona GitHub.
Ny sisiny dia mampiseho ny fifandraisan'ny mpanara-dia eo amin'ireo nodes, izay misolo tena ny mpamorona (mpampiasa sehatra) izay nanana kintana tao amin'ny tahiry 10 farafahakeliny (mariho fa ny teny hoe mutual dia manondro fifandraisana tsy voarindra).
Mifototra amin'ny toerana misy ny node, ny tahiry misy kintana, ny mpampiasa ary ny adiresy mailaka, ny toetran'ny node dia alaina. Maminavina raha mpamorona tranonkala na mpampiasa GitHub a mpamorona fianarana milina anjarantsika.
Ny lohatenin'ny asa ho an'ny mpampiasa tsirairay no fototry an'io asa mikendry io.
Fametrahana PyTorch
Hanombohana dia mila mametraka aloha isika PyTorch. Azonao atao ny manamboatra azy araka ny milina avy amin'ny Eto. Ity ny ahy:
Manafatra modules
Ankehitriny, manafatra ireo modules ilaina izahay
Manafatra sy mikaroka ny angona
Ny dingana manaraka dia ny mamaky ny angon-drakitra ary mamolavola ny andalana dimy voalohany sy ny andalana dimy farany avy amin'ny rakitra labels.
Roa amin'ireo tsanganana efatra ihany—ny id ny node (izany hoe, mpampiasa) sy ml_target, izay 1 raha mpikambana ao amin'ny vondrom-piarahamonina fianarana milina ny mpampiasa ary 0 raha tsy izany—no mifanentana amintsika amin'ity toe-javatra ity.
Raha jerena fa misy kilasy roa fotsiny dia azontsika antoka izao fa olana fanasokajiana mimari-droa ny asantsika.
Vokatry ny tsy fifandanjan'ny saranga manan-danja, ny mpanasokajy dia afaka mihevitra fotsiny hoe kilasy iza no maro an'isa fa tsy manombana ny saranga tsy dia voasolo tena, ka mahatonga ny fifandanjana kilasy ho lafin-javatra lehibe iray hafa hodinihina.
Ny fametahana ny histograma (fizarana matetika) dia mampiseho tsy fifandanjana satria vitsy kokoa ny kilasy amin'ny fianarana milina (marika=1) raha oharina amin'ny kilasy hafa.
Encoding endri-javatra
Ny toetran'ny node dia mampahafantatra antsika ny endri-javatra mifandray amin'ny node tsirairay. Amin'ny alalan'ny fampiharana ny fomba ataontsika handrafetana angon-drakitra dia azontsika atao avy hatrany ireo toetra ireo.
Tianay ny hampiasa an'io fomba io mba hamehezana ampahany kely amin'ny tambajotra (milaza, 60 nodes) mba haseho. Voatanisa eto ny kaody.
Famolavolana sy fampisehoana grafika
Hampiasa geometrika fanilo izahay. angona mba hananganana ny grafantsika.
Mba hamolavolana grafika tokana manana toetra samihafa (tsy voatery), dia ampiasaina ny angona izay zavatra Python tsotra. Amin'ny alàlan'ny fampiasana ity kilasy ity sy ireto toetra manaraka ireto—ireo rehetra ireo dia fanilo fanala—dia hamorona ny sarin-tsika.
Ny endriky ny sanda x, izay hatokana ho an'ny endri-javatra node voakodia, dia [isan'ny nodes, isan'ny endri-javatra].
Ny endriky ny y dia [isan'ny nodes], ary hampiharina amin'ny etikety node izany.
fanondroan'ny sisiny: Mba hamaritana ny grafofaonina tsy misy tari-dalana, dia mila manitatra ireo tondro sisiny tany am-boalohany isika mba hamelana ny fisian'ny sisiny roa miavaka tsara izay mampifandray ireo node roa mitovy fa manondro amin'ny lalana mifanohitra.
Ny sisiny roa, ny iray manondro avy amin'ny node 100 ka hatramin'ny 200 ary ny iray avy amin'ny 200 ka hatramin'ny 100, dia ilaina, ohatra, eo anelanelan'ny node 100 sy 200. Raha omena ny mari-pamantarana ny sisiny, dia toy izao ny fomba hanehoana ny grafika tsy mizotra. [2,2*ny isan'ny sisiny tany am-boalohany] no endrika tensor.
Mamorona ny fomba fanaovana sary izahay mba hanehoana graph. Ny dingana voalohany dia ny manova ny tambajotra homogene ho lasa grafika NetworkX, izay azo alaina amin'ny alalan'ny NetworkX.draw.
Ataovy ny modely GNN ary ampio izy
Manomboka amin'ny fametahana ny angon-drakitra manontolo isika amin'ny fanatanterahana ny angon-drakitra encode miaraka amin'ny hazavana=Diso ary avy eo miantso ny graph construct with light=False mba hananganana ny grafika manontolo. Tsy hanandrana hanao sary an'ity grafika lehibe ity izahay satria ataoko fa mampiasa milina eo an-toerana izay manana loharano voafetra ianao.
Saron-tava, izay vectors binary izay mamaritra hoe iza no node ao amin'ny saron-tava tsirairay mampiasa ny isa 0 sy 1, dia azo ampiasaina hampahafantarana ny dingana fanofanana izay nodes tokony hampidirina mandritra ny fiofanana sy hilazana ny dingana inference izay nodes no angona fitsapana. Torch geometric.transforms.
Ny fizarazarana ambaratonga node dia azo ampiana amin'ny alàlan'ny saron-tava fanofanana, saron-tava val, ary fananan'ny saron-tava fitsapana an'ny kilasy AddTrainValTestMask, izay azo ampiasaina amin'ny fakana grafika ary ahafahantsika mamaritra ny fomba tiantsika hanamboarana ny saron-tava.
Mampiasa 10% fotsiny izahay amin'ny fampiofanana ary mampiasa 60% amin'ny angon-drakitra ho toy ny fitsapana ary mampiasa 30% ho fanamafisana.
Amin'izao fotoana izao, hanambatra sosona GCNConv roa isika, ny voalohany amin'izy ireo dia misy fanisana endri-javatra mivoaka izay mitovy amin'ny isan'ny endri-javatra ao amin'ny kisary ho endri-javatra fampidirana.
Ao amin'ny sosona faharoa, izay misy node mivoaka mitovy amin'ny isan'ny kilasy misy antsika, dia mampihatra ny fampahavitrihana relu isika ary manome ireo endri-javatra miafina.
Ny mari-pamantarana sisiny sy ny lanjan'ny sisiny dia roa amin'ireo safidy maro x azon'ny GCNConv ekena amin'ny fiasa mandroso, fa amin'ny toe-javatra misy antsika dia ireo fari-pahalalana roa voalohany ihany no ilaintsika.
Na dia eo aza ny zava-misy fa ny modelintsika dia afaka maminavina ny kilasin'ny node rehetra ao amin'ny grafika, dia mbola mila mamaritra ny marina sy ny fatiantoka ho an'ny andiany tsirairay isika miankina amin'ny dingana.
Ohatra, mandritra ny fiofanana dia tsy te hampiasa ny fiofanana ihany izahay hamaritana ny marina sy ny fahaverezan'ny fiofanana, ary noho izany dia eto no misy ny saron-tava.
Mba hamaritana ny fatiantoka mety sy marina, dia hamaritra ny asan'ny fahaverezan'ny saron-tava sy ny fahamarinan'ny saron-tava.
Fampiofanana ny modely
Amin'izao fotoana izao dia efa voafaritra ny tanjona fanofanana hampiasana ny fanilo. Adama dia optimizer mahay.
Hanao fiofanana ho an'ny vanim-potoana maromaro izahay sady hanara-maso ny fahamarinan'ny fanamarinana.
Mamolavola ny fatiantoka sy ny fahamarinan'ny fiofanana mandritra ny vanim-potoana samihafa ihany koa izahay.
Ny tsy fahampian'ny Graph Neural Network
Ny fampiasana GNN dia misy fatiantoka vitsivitsy. Rahoviana no hampiasana ny GNNa sy ny fomba hanatsarana ny fahombiazan'ny maodelin'ny fianarana milina dia samy hazava amintsika rehefa avy nahazo fahalalana tsara kokoa momba azy ireo isika.
- Na dia tambajotra marivo aza ny GNN, matetika misy sosona telo, ny ankamaroan'ny tambajotra neural dia afaka miditra lalina mba hanatsarana ny fahombiazany. Tsy afaka manao amin'ny faran'ny farany amin'ny angona lehibe izahay noho io fetra io.
- Sarotra kokoa ny manofana modely amin'ny grafika, satria mavitrika ny dinamika ara-drafitra.
- Noho ny vidin'ny kajy avo lenta amin'ireo tambajotra ireo dia miteraka fanamby ny fampitomboana ny modely amin'ny famokarana. Ny fametahana ny GNN ho an'ny famokarana dia ho sarotra raha lehibe sy sarotra ny rafitry ny kisarinao.
Famaranana
Tao anatin'ny taona vitsivitsy izay, ny GNN dia nivoatra ho fitaovana matanjaka sy mahomby amin'ny olan'ny fianarana milina ao amin'ny sehatry ny grafika. Ny topimaso fototra momba ny tambajotra neural grafika dia omena ato amin'ity lahatsoratra ity.
Aorian'izay dia azonao atao ny manomboka mamorona ny angona izay hampiasaina hanofanana sy hitsapana ny modely. Mba hahatakarana ny fomba fiasany sy ny fahaizany, dia azonao atao koa ny mandeha lavitra kokoa sy mampiofana azy amin'ny fampiasana karazana angona hafa.
Happy Coding!
Leave a Reply