Clàr-innse[Falaich][Seall]
Tha na dòighean ionnsachaidh domhainn ris an canar “lìonraidhean graf neural” (GNNn) ag obair ann an raon grafa. O chionn ghoirid tha na lìonraidhean sin air cleachdadh a lorg ann an grunn raointean, a’ gabhail a-steach lèirsinn coimpiutair, siostaman molaidh, agus optimization combinatorial, gus beagan ainmeachadh.
A bharrachd air an sin, faodar na lìonraidhean sin a chleachdadh gus siostaman iom-fhillte a riochdachadh, a’ toirt a-steach lìonraidhean sòisealta, lìonraidhean eadar-obrachaidh pròtain-pròtain, grafaichean eòlais, agus feadhainn eile ann an grunn raointean sgrùdaidh.
Is e an t-àite neo-euclidean far a bheil dàta grafa ag obrachadh, an taca ri seòrsachan dàta eile leithid dealbhan. Gus nodan a sheòrsachadh, ceanglaichean a ro-innse, agus dàta cnuasachaidh, thathas a’ cleachdadh mion-sgrùdadh graf.
San artaigil seo, nì sinn sgrùdadh air a’ Ghraf Neural Lìonra gu mionaideach, na seòrsaichean aige, a bharrachd air eisimpleirean practaigeach a thoirt seachad a’ cleachdadh PyTorch.
Mar sin, dè a th’ ann an Graf?
Is e seòrsa de structar dàta a th’ ann an graf air a dhèanamh suas de nodan agus vertices. Tha na ceanglaichean eadar na diofar nodan air an co-dhùnadh leis na vertices. Ma tha an stiùireadh air a chomharrachadh anns na nodan, thathar ag ràdh gu bheil an graf air a stiùireadh; air dhòigh eile, tha e gun stiùireadh.
Tha cleachdadh math de ghrafaichean a’ modaladh nan dàimhean eadar diofar dhaoine ann an a lìonra sòisealta. Nuair a thathar a’ dèiligeadh ri suidheachaidhean iom-fhillte, leithid ceanglaichean agus iomlaidean, tha grafaichean gu math cuideachail.
Tha iad air am fastadh le siostaman molaidh, mion-sgrùdadh semantach, mion-sgrùdadh lìonra sòisealta, agus aithneachadh pàtrain
. Tha cruthachadh fhuasglaidhean stèidhichte air graf na raon ùr-nodha a bheir seachad tuigse lèirsinneach air dàta iom-fhillte agus eadar-cheangailte.
Grafaigeachd neural lìonra
Tha lìonraidhean neural graf nan seòrsachan lìonra neòil sònraichte a dh’ obraicheas air cruth dàta graf. Tha buaidh mhòr aig freumhachadh grafa agus lìonraidhean neural convolutional (CNNn) orra.
Tha Graph Neural Networks air am fastadh ann an gnìomhan a tha a’ toirt a-steach ro-innse nodan, oirean, agus grafaichean.
- Bithear a’ cleachdadh CNN gus ìomhaighean a sheòrsachadh. San aon dòigh, gus clas a ro-innse, thèid GNNn a chuir an sàs anns a’ ghriod piogsail a tha a’ riochdachadh structar a’ ghraf.
- Seòrsachadh teacsa a’ cleachdadh lìonraidhean neural ath-chuairteachaidh. Bithear cuideachd a’ cleachdadh GNNn le ailtireachd ghraf far a bheil gach facal ann an abairt na nód.
Gus ro-innse nodan, oirean, no grafaichean a chrìochnachadh, thathas a’ cleachdadh lìonraidhean neural gus GNNn a chruthachadh. Faodaidh ro-innse aig ìre nód, mar eisimpleir, fuasgladh fhaighinn air duilgheadas leithid lorg spama.
Tha ro-innse ceangail na chùis àbhaisteach ann an siostaman molaidh agus dh’ fhaodadh e a bhith na eisimpleir de dhuilgheadas ro-innse a tha glic.
Seòrsaichean Lìonra Neural Graf
Tha iomadh seòrsa lìonra neural ann, agus tha Convolutional Neural Networks an làthair anns a’ mhòr-chuid dhiubh. Ionnsaichidh sinn mu na GNNn as ainmeil sa phàirt seo.
Lìonraidhean convolutional graf (GCNn)
Tha iad an coimeas ri CNNn clasaigeach. Bidh e a’ faighinn feartan le bhith a’ coimhead air nodan faisg air làimh. Bidh an gnìomh gnìomhachaidh air a chleachdadh le GNNn gus neo-loidhneachd a chuir ris às deidh dhaibh vectaran nód a chruinneachadh agus an toradh a chuir chun t-sreath thiugh.
Tha e air a dhèanamh suas de Graph convolution, sreath sreathach, agus gnìomh gnìomhachaidh neo-neach-ionnsachaidh, gu dearbh. Tha GCNn a’ tighinn ann an dà phrìomh sheòrsa: Lìonraidhean Convolutional Spectral agus Lìonraidhean Co-labhairt Spàsail.
Graf de lìonraidhean fèin-chòdachadh
Bidh e a’ cleachdadh encoder gus ionnsachadh mar a riochdaicheas tu grafaichean agus decoder gus feuchainn ri grafaichean cuir a-steach ath-chruthachadh. Tha còmhdach botal ann a tha a’ ceangal an encoder agus an decoder.
Leis gu bheil fèin-chòdairean a’ dèanamh obair shàr-mhath ann a bhith a’ làimhseachadh cothromachadh clas, bidh iad gu tric air an cleachdadh ann an ro-innse ceangail.
Lìonraidhean Graf Neural ath-chuairteach (RGNNs)
Ann an lìonraidhean ioma-dàimheach, far a bheil grunn dhàimhean aig aon nód, ionnsaichidh e am pàtran sgaoilidh as fheàrr agus is urrainn dha na grafaichean a riaghladh. Gus rèidh a mheudachadh agus cus parameterization a lughdachadh, thathas a’ cleachdadh luchd-riaghlaidh anns an t-seòrsa seo de lìonra neural graf.
Gus builean nas fheàrr fhaighinn, feumaidh RGNNn nas lugha de chumhachd giollachd. Tha iad air an cleachdadh airson gineadh teacsa, aithneachadh cainnt, eadar-theangachadh inneal, tuairisgeul dhealbhan, tagadh bhidio, agus geàrr-chunntas teacsa.
Lìonraidhean Graf Neural Gated (GGNNs)
Nuair a thig e gu gnìomhan an eisimeil fad-ùine, tha iad a’ coileanadh nas fheàrr na RGNNs. Le bhith a’ toirt a-steach geataichean nód, iomall, agus ùineail air eisimeileachd fad-ùine, bidh lìonraidhean neural graf le gata ag adhartachadh lìonraidhean neural grafa ath-chuairteach.
Bidh na geataichean ag obair mar an ceudna ri Aonadan Ath-chuairteachaidh Gated (GRUn) leis gu bheil iad cleachdte ri bhith a’ cuimhneachadh agus a’ dìochuimhneachadh dàta aig diofar ìrean.
Cur an gnìomh Graf Neural Network a 'cleachdadh Pytorch
Is e a’ chùis shònraichte air am bi sinn a’ cuimseachadh na chùis cumanta air seòrsachadh nód. Tha lìonra sòisealta mòr againn ris an canar musae-ghithub, a chaidh a chur ri chèile bhon API fosgailte, airson luchd-leasachaidh GitHub.
Bidh oirean a’ sealltainn na dàimhean co-leanmhainn eadar na nodan, a tha a’ riochdachadh luchd-leasachaidh (luchd-cleachdaidh àrd-ùrlair) a tha air nochdadh ann an co-dhiù 10 tasgaidhean (thoir an aire gu bheil am facal da chèile a’ comharrachadh dàimh neo-stiùirichte).
Stèidhichte air far a bheil an nód, stòran le rionnagan, fastaiche, agus seòladh puist-d, gheibhear feartan nodan. A’ ro-innse a bheil neach-cleachdaidh GitHub na leasaiche lìn no a leasaiche ionnsachadh inneal is e ar dleastanas.
Bha tiotal obrach gach neach-cleachdaidh mar bhunait airson a’ ghnìomh targaid seo.
Stàladh PyTorch
Airson tòiseachadh, feumaidh sinn an toiseach a stàladh PyTorch. Faodaidh tu a rèiteachadh a rèir an inneal agad bho an seo. Seo mo chuid:
A 'toirt a-steach modalan
A-nis, bidh sinn a’ toirt a-steach na modalan riatanach
A’ toirt a-steach agus a’ sgrùdadh an dàta
Is e an ceum a leanas an dàta a leughadh agus na ciad còig sreathan agus na còig sreathan mu dheireadh a dhealbhadh bhon fhaidhle bileagan.
Chan eil ach dhà de na ceithir colbhan - id an nód (ie, neach-cleachdaidh) agus ml_target, is e sin 1 ma tha an neach-cleachdaidh na bhall den choimhearsnachd ionnsachaidh inneal agus 0 air dhòigh eile - buntainneach dhuinn san t-suidheachadh seo.
Leis nach eil ann ach dà chlas, faodaidh sinn a-nis a bhith cinnteach gur e cùis seòrsachaidh binary a th’ anns an obair againn.
Mar thoradh air mì-chothromachadh sònraichte sa chlas, faodaidh an seòrsaiche dìreach gabhail ris dè an clas a tha sa mhòr-chuid seach a bhith a’ measadh a’ chlas nach eil air a riochdachadh gu leòr, a’ dèanamh cothromachadh clas mar fheart deatamach eile airson beachdachadh.
Le bhith a’ dealbhadh an histogram (sgaoileadh tricead) nochdaidh beagan mì-chothromachadh leis gu bheil nas lugha de chlasaichean ann bho ionnsachadh inneal (label = 1) na bho na clasaichean eile.
Còdachadh feart
Tha feartan nan nodan ag innse dhuinn mun fheart a tha co-cheangailte ri gach nód. Le bhith a’ cur an gnìomh ar dòigh airson dàta a chòdachadh, is urrainn dhuinn na feartan sin a chòdachadh sa bhad.
Tha sinn airson an dòigh seo a chleachdadh gus pàirt bheag den lìonra a chuairteachadh (can, 60 nodan) airson a thaisbeanadh. Tha an còd air a liostadh an seo.
Dealbhadh agus taisbeanadh grafaichean
Cleachdaidh sinn lòchran geoimeatrach. dàta airson ar graf a thogail.
Gus aon ghraf a mhodail le feartan eadar-dhealaichte (roghainneil), thèid dàta a tha na nì Python sìmplidh a chleachdadh. Le bhith a’ cleachdadh a’ chlas seo agus na buadhan a leanas - agus iad uile nan teansan lòchrain - cruthaichidh sinn ar n-obair ghraf.
Is e cruth an luach x, a thèid a thoirt do na feartan nòta còdaichte, [àireamh nodan, àireamh de fheartan].
Is e cumadh y [àireamh nodan], agus thèid a chuir an sàs anns na bileagan nód.
clàr-amais iomall: Gus cunntas a thoirt air graf neo-stiùirichte, feumaidh sinn na clàran-iomaill tùsail a leudachadh gus leigeil le dà oir stiùiridh sònraichte a bhith ann a tha a’ ceangal an aon dà nod ach a tha a’ comharrachadh an taobh eile.
Tha feum air paidhir oirean, aon a’ comharrachadh bho nód 100 gu 200 agus am fear eile bho 200 gu 100, mar eisimpleir, eadar nodan 100 agus 200. Ma tha na clàran-amais air an toirt seachad, seo mar a ghabhas an graf neo-stiùiridh a riochdachadh. Bidh [2,2 * àireamh de dh’ oirean tùsail] mar chruth tensor.
Bidh sinn a’ cruthachadh ar modh grafa tarraing gus graf a thaisbeanadh. Is e a’ chiad cheum an lìonra aon-ghnèitheach againn a thionndadh gu graf NetworkX, a dh’ fhaodar an uairsin a tharraing a’ cleachdadh NetworkX.draw.
Dèan ar modal GNN agus trèanadh e
Tòisichidh sinn le bhith a’ còdachadh an t-seata dàta gu lèir le bhith a’ cur an gnìomh dàta còdaidh le solas = False agus an uairsin a’ gairm construct graph le solas = False gus an graf gu lèir a thogail. Cha bhith sinn a’ feuchainn ris a’ ghraf mhòr seo a tharraing oir tha mi a’ gabhail ris gu bheil thu a’ cleachdadh inneal ionadail aig nach eil mòran ghoireasan.
Faodar masgaichean, a tha nam vectaran dà-chànanach a chomharraicheas dè na nodan a bhuineas do gach masg sònraichte a’ cleachdadh àireamhan 0 agus 1, a chleachdadh gus fios a chuir chun ìre trèanaidh dè na nodan a bu chòir a bhith air an toirt a-steach rè trèanadh agus gus innse don ìre co-dhùnaidh dè na nodan a tha mar an dàta deuchainn. Torch geoimeatrach.transforms.
Faodar sgoltadh ìre nód a chuir ris le bhith a’ cleachdadh masg trèanaidh, masg val, agus feartan masg deuchainn a’ chlas AddTrainValTestMask, a ghabhas cleachdadh gus graf a ghabhail agus leigeil leinn sònrachadh mar a tha sinn airson ar masgaichean a thogail.
Bidh sinn dìreach a’ cleachdadh 10% airson trèanadh agus a’ cleachdadh 60% den dàta mar an t-seata deuchainn agus sinn a’ cleachdadh 30% mar an t-seata dearbhaidh.
A-nis, cruachaidh sinn dà shreath GCNConv, agus tha cunntas feart toraidh aig a’ chiad fhear dhiubh sin co-ionann ris an àireamh de fheartan sa ghraf againn mar fheartan cuir a-steach.
Anns an dàrna sreath, anns a bheil nodan toraidh co-ionann ris an àireamh de na clasaichean againn, bidh sinn a’ cur an gnìomh gnìomh gnìomh relu agus a’ toirt seachad na feartan falaichte.
Tha clàr-amais iomall agus cuideam iomall mar dhà de na h-iomadh roghainn x a dh’ fhaodas GCNConv gabhail ris san obair air adhart, ach nar suidheachadh, chan fheum sinn ach a’ chiad dà chaochladair.
A dh 'aindeoin gum bi e comasach don mhodail againn clas gach nód sa ghraf a ro-innse, feumaidh sinn fhathast dearbhadh dè cho ceart agus a tha gach seata air leth a rèir an ìre.
Mar eisimpleir, rè trèanadh, chan eil sinn airson ach an seata trèanaidh a chleachdadh gus faighinn a-mach dè cho ceart agus a tha an call trèanaidh, agus mar sin seo far am bi na masgaichean againn feumail.
Gus an call agus an cruinneas iomchaidh obrachadh a-mach, mìnichidh sinn gnìomhan call masgaichte agus cruinneas falaichte.
A 'trèanadh a' mhodail
A-nis gu bheil sinn air adhbhar an trèanaidh a mhìneachadh airson an tèid an lòchran a chleachdadh. Tha Adhamh na mhaighstir optimizer.
Nì sinn an trèanadh airson grunn amannan agus sinn a’ cumail sùil air neo-mhearachdachd an dearbhaidh.
Bidh sinn cuideachd a’ dealbhadh call agus cruinneas an trèanaidh tro dhiofar amannan.
Eas-bhuannachdan de Lìonra Neural Graf
Tha beagan eas-bhuannachdan ann a bhith a’ cleachdadh GNNs. Bidh cuin a bu chòir GNA fhastadh agus ciamar a leasaicheas sinn coileanadh ar modalan ionnsachaidh inneal le chèile air a dhèanamh soilleir dhuinn às deidh dhuinn tuigse nas fheàrr fhaighinn orra.
- Ged is e lìonraidhean eu-domhainn a th’ ann an GNNn, mar as trice le trì sreathan, faodaidh a’ mhòr-chuid de lìonraidhean neural a dhol domhainn gus coileanadh a leasachadh. Chan urrainn dhuinn coileanadh aig fìor thoiseach air stòran-dàta mòra mar thoradh air a’ chuingealachadh seo.
- Tha e nas duilghe modal a thrèanadh air grafaichean, leis gu bheil an daineamaigs structarail fiùghantach.
- Mar thoradh air cosgaisean àireamhachd àrd nan lìonraidhean sin, tha dùbhlain ann a bhith a’ sgèileadh a’ mhodail airson cinneasachadh. Bidh e dùbhlanach na GNNn airson cinneasachadh a dhèanamh ma tha structar a’ ghraf agad mòr agus toinnte.
Co-dhùnadh
Thairis air na beagan bhliadhnaichean a dh’ fhalbh, tha GNNn air fàs gu bhith nan innealan cumhachdach is èifeachdach airson cùisean ionnsachadh innealan ann an raon grafa. Tha tar-shealladh bunaiteach air lìonraidhean neural graf air a thoirt seachad san artaigil seo.
Às deidh sin, faodaidh tu tòiseachadh air an dàta a chruthachadh a thèid a chleachdadh gus am modail a thrèanadh agus fheuchainn. Gus tuigse fhaighinn air mar a tha e ag obair agus na tha e comasach dha, faodaidh tu cuideachd a dhol fada nas fhaide agus a thrèanadh le bhith a’ cleachdadh diofar sheòrsa dàta.
Còdadh sona!
Leave a Reply