Tabl Cynnwys[Cuddio][Dangos]
Mae'r technegau dysgu dwfn a elwir yn “rhwydweithiau niwral graff” (GNNs) yn gweithredu yn y parth graff. Yn ddiweddar, mae'r rhwydweithiau hyn wedi dod o hyd i ddefnydd mewn amrywiaeth o feysydd, gan gynnwys gweledigaeth gyfrifiadurol, systemau argymell, ac optimeiddio cyfun, i enwi ond ychydig.
Yn ogystal, gellir defnyddio'r rhwydweithiau hyn i gynrychioli systemau cymhleth, gan gynnwys rhwydweithiau cymdeithasol, rhwydweithiau rhyngweithio protein-protein, graffiau gwybodaeth, ac eraill mewn sawl maes astudio.
Y gofod an-ewclidaidd yw lle mae data graff yn gweithredu, mewn cyferbyniad â mathau eraill o ddata fel lluniau. Er mwyn dosbarthu nodau, rhagfynegi cysylltiadau, a data clwstwr, defnyddir dadansoddiad graff.
Yn yr erthygl hon, byddwn yn archwilio'r Graff Rhwydwaith nerfol yn fanwl, ei fathau, yn ogystal â darparu enghreifftiau ymarferol gan ddefnyddio PyTorch.
Felly, beth yw Graff?
Math o strwythur data yw graff sy'n cynnwys nodau a fertigau. Mae'r cysylltiadau rhwng y nodau amrywiol yn cael eu pennu gan y fertigau. Os nodir y cyfeiriad yn y nodau, dywedir bod y graff yn cyfeirio; fel arall, mae'n angyfeiriedig.
Mae cymhwysiad da o graffiau yn modelu'r perthnasoedd rhwng unigolion amrywiol yn a rhwydwaith cymdeithasol. Wrth ddelio ag amgylchiadau cymhleth, megis cysylltiadau a chyfnewid, mae graffiau yn ddefnyddiol iawn.
Fe'u cyflogir gan systemau argymell, dadansoddi semantig, dadansoddi rhwydwaith cymdeithasol, a chydnabod patrwm
. Mae creu datrysiadau seiliedig ar graffiau yn faes newydd sbon sy'n cynnig dealltwriaeth dreiddgar o ddata cymhleth a chydgysylltiedig.
Graff Rhwydwaith Niwral
Mae rhwydweithiau niwral graff yn fathau o rwydweithiau niwral arbenigol sy'n gallu gweithredu ar fformat data graff. Mae gwreiddio graffiau a rhwydweithiau niwral convolutional (CNNs) yn cael effaith sylweddol arnynt.
Defnyddir Rhwydweithiau Niwral Graff mewn tasgau sy'n cynnwys rhagfynegi nodau, ymylon a graffiau.
- Defnyddir CNN i ddosbarthu delweddau. Yn yr un modd, i ragweld dosbarth, mae GNNs yn cael eu cymhwyso i'r grid picsel sy'n cynrychioli strwythur y graff.
- Categoreiddio testun gan ddefnyddio rhwydweithiau niwral sy'n ailddigwydd. Defnyddir GNNs hefyd gyda saernïaeth graff lle mae pob gair mewn ymadrodd yn nod.
Er mwyn rhagweld nodau, ymylon, neu graffiau cyflawn, defnyddir rhwydweithiau niwral i greu GNNs. Gall rhagfynegiad ar lefel y nod, er enghraifft, ddatrys problem fel canfod sbam.
Mae rhagfynegi cyswllt yn achos nodweddiadol mewn systemau argymell a gallai fod yn enghraifft o broblem rhagfynegi ymylol.
Graff Mathau Rhwydwaith Niwral
Mae nifer o fathau o rwydweithiau niwral yn bodoli, ac mae Rhwydweithiau Niwral Convolutional yn bresennol yn y mwyafrif ohonynt. Byddwn yn dysgu am y GNNs mwyaf adnabyddus yn y rhan hon.
Graff Rhwydweithiau Convolutional (GCNs)
Maent yn debyg i CNNs clasurol. Mae'n caffael nodweddion trwy edrych ar nodau cyfagos. Defnyddir y swyddogaeth actifadu gan GNNs i ychwanegu aflinoledd ar ôl cydgrynhoi fectorau nodau ac anfon yr allbwn i'r haen drwchus.
Mae'n cynnwys convolution Graff, haen linellol, a swyddogaeth actifadu nad yw'n ddysgwyr, yn ei hanfod. Daw GCNs mewn dau brif fath: Rhwydweithiau Convolutional Sbectrol a Rhwydweithiau Convolutional Gofodol.
Graff Awto-Amgodiwr Rhwydweithiau
Mae'n defnyddio amgodiwr i ddysgu sut i gynrychioli graffiau a datgodiwr i geisio ail-greu graffiau mewnbwn. Mae haen dagfa yn cysylltu'r amgodiwr a'r datgodiwr.
Gan fod amgodyddion ceir yn gwneud gwaith rhagorol o drin cydbwysedd dosbarth, fe'u defnyddir yn aml wrth ragfynegi cyswllt.
Rhwydweithiau Niwral Graff Cylchol (RGNNs)
Mewn rhwydweithiau aml-berthnasol, lle mae gan un nod gysylltiadau niferus, mae'n dysgu'r patrwm tryledu gorau posibl ac yn gallu rheoli'r graffiau. Er mwyn cynyddu llyfnder a lleihau gor-parameterization, defnyddir rheoleiddwyr yn y math hwn o rwydwaith niwral graff.
Er mwyn cael canlyniadau gwell, mae angen llai o bŵer prosesu ar RGNNs. Fe'u defnyddir ar gyfer cynhyrchu testun, adnabod lleferydd, cyfieithu peirianyddol, disgrifio lluniau, tagio fideo, a chrynhoi testun.
Rhwydweithiau Graff Niwral Gât (GGNNs)
O ran tasgau dibynnol hirdymor, maent yn perfformio'n well na RGNNs. Trwy gynnwys nodau, ymyl, a gatiau amser ar ddibyniaethau hirdymor, mae rhwydweithiau niwral graff â gatiau yn gwella rhwydweithiau niwral graff rheolaidd.
Mae'r giatiau'n gweithredu'n debyg i Unedau Rheolaidd Gât (GRUs) gan eu bod wedi arfer adalw ac anghofio data mewn cyfnodau amrywiol.
Gweithredu Rhwydwaith Niwral Graff gan ddefnyddio Pytorch
Mae'r mater penodol y byddwn yn canolbwyntio arno yn fater categoreiddio nodau cyffredin. Mae gennym rwydwaith cymdeithasol sizable o'r enw musae-gitub, a luniwyd o'r API agored, ar gyfer datblygwyr GitHub.
Mae ymylon yn dangos y perthnasoedd cyd-ddilynwr rhwng y nodau, sy'n cynrychioli datblygwyr (defnyddwyr platfform) sydd wedi serennu mewn o leiaf 10 storfa (sylwch fod y gair cydfuddiannol yn dynodi perthynas angyfeiriedig).
Yn seiliedig ar leoliad y nod, ystorfeydd serennog, cyflogwr, a chyfeiriad e-bost, mae nodweddion nod yn cael eu hadalw. Rhagfynegi a yw defnyddiwr GitHub yn ddatblygwr gwe neu'n a datblygwr dysgu peiriant yw ein tasg.
Roedd teitl swydd pob defnyddiwr yn sail i'r swyddogaeth dargedu hon.
Gosod PyTorch
I ddechrau, yn gyntaf mae angen i ni osod PyTorch. Gallwch ei ffurfweddu yn ôl eich peiriant o yma. Dyma fy un i:
Mewnforio modiwlau
Nawr, rydym yn mewnforio'r modiwlau angenrheidiol
Mewnforio ac Archwilio'r data
Y cam canlynol yw darllen y data a phlotio'r pum rhes gyntaf a'r pum rhes olaf o'r ffeil labeli.
Dim ond dwy o'r pedair colofn - rhif adnabod y nod (hy, defnyddiwr) a ml_target, sef 1 os yw'r defnyddiwr yn aelod o'r gymuned dysgu peirianyddol a 0 fel arall - sy'n berthnasol i ni yn y sefyllfa hon.
O ystyried mai dau ddosbarth yn unig sydd, gallwn fod yn sicr yn awr mai mater dosbarthiad deuaidd yw ein tasg.
O ganlyniad i anghydbwysedd dosbarth sylweddol, gall y dosbarthwr dybio pa ddosbarth yw'r mwyafrif yn hytrach na gwerthuso'r dosbarth heb gynrychiolaeth ddigonol, gan wneud cydbwysedd dosbarth yn ffactor hanfodol arall i'w ystyried.
Mae plotio’r histogram (dosbarthiad amledd) yn datgelu rhywfaint o anghydbwysedd oherwydd bod llai o ddosbarthiadau o ddysgu peirianyddol (label=1) nag o’r dosbarthiadau eraill.
Amgodio Nodwedd
Mae nodweddion y nodau yn ein hysbysu o'r nodwedd sy'n gysylltiedig â phob nod. Trwy weithredu ein dull o amgodio data, gallwn amgodio'r nodweddion hynny ar unwaith.
Rydym am ddefnyddio'r dull hwn i grynhoi rhan fach o'r rhwydwaith (dyweder, 60 nod) i'w harddangos. Rhestrir y cod yma.
Dylunio ac arddangos graffiau
Byddwn yn defnyddio geometrig tortsh. data i adeiladu ein graff.
I fodelu un graff gyda gwahanol briodweddau (dewisol), defnyddir data sy'n wrthrych Python syml. Trwy ddefnyddio'r dosbarth hwn a'r priodoleddau canlynol - pob un ohonynt yn denwyr tortsh - byddwn yn creu ein gwrthrych graff.
Ffurf y gwerth x, a fydd yn cael ei ddyrannu i'r nodweddion nod wedi'u hamgodio, yw [nifer y nodau, nifer y nodweddion].
Siâp y yw [nifer y nodau], a bydd yn cael ei roi ar y labeli nodau.
mynegai ymyl: Er mwyn disgrifio graff heb ei gyfeirio, mae angen i ni ehangu'r mynegeion ymyl gwreiddiol er mwyn caniatáu ar gyfer bodolaeth dau ymyl cyfeiriedig gwahanol sy'n cysylltu'r un ddau nod ond sy'n pwyntio i gyfeiriadau dirgroes.
Mae angen pâr o ymylon, un yn pwyntio o nod 100 i 200 a'r llall o 200 i 100, er enghraifft, rhwng nodau 100 a 200. Os darperir y mynegeion ymyl, yna dyma sut y gellir cynrychioli'r graff heb ei gyfeirio. [2,2 * nifer yr ymylon gwreiddiol] fydd y ffurf tensor.
Rydyn ni'n creu ein dull tynnu graff i ddangos graff. Y cam cyntaf yw trawsnewid ein rhwydwaith homogenaidd yn graff NetworkX, y gellir ei lunio wedyn gan ddefnyddio NetworkX.draw.
Gwnewch ein model GNN a'i hyfforddi
Rydyn ni'n dechrau trwy amgodio'r set gyfan o ddata trwy weithredu data amgodio gyda golau = Gau ac yna galw lluniadu graff gyda golau = Gau i adeiladu'r graff cyfan. Ni fyddwn yn ceisio llunio'r graff mawr hwn oherwydd rwy'n cymryd yn ganiataol eich bod yn defnyddio peiriant lleol sydd ag adnoddau cyfyngedig.
Gellir defnyddio masgiau, sef fectorau deuaidd sy'n nodi pa nodau sy'n perthyn i bob mwgwd penodol gan ddefnyddio'r digidau 0 ac 1, i hysbysu'r cyfnod hyfforddi pa nodau y dylid eu cynnwys yn ystod yr hyfforddiant ac i ddweud wrth y cyfnod casglu pa nodau yw'r data prawf. Tortsh geometrig.transforms.
Gellir ychwanegu rhaniad lefel nod gan ddefnyddio mwgwd hyfforddi, mwgwd val, a phriodweddau mwgwd prawf y dosbarth AddTrainValTestMask, y gellir eu defnyddio i gymryd graff a'n galluogi i nodi sut yr ydym am i'n masgiau gael eu hadeiladu.
Rydym yn defnyddio 10% ar gyfer hyfforddiant ac yn defnyddio 60% o'r data fel y set prawf tra'n defnyddio 30% fel y set ddilysu.
Nawr, byddwn yn pentyrru dwy haen GCNConv, y mae gan y gyntaf ohonynt gyfrif nodwedd allbwn sy'n hafal i nifer y nodweddion yn ein graff fel nodweddion mewnbwn.
Yn yr ail haen, sy'n cynnwys nodau allbwn sy'n hafal i nifer ein dosbarthiadau, rydym yn cymhwyso swyddogaeth actifadu relu ac yn cyflenwi'r nodweddion cudd.
Mae mynegai ymyl a phwysau ymyl yn ddau o'r nifer o opsiynau x y gall GCNConv eu derbyn yn y swyddogaeth ymlaen, ond yn ein sefyllfa ni, dim ond y ddau newidyn cyntaf sydd eu hangen arnom.
Er gwaethaf y ffaith y bydd ein model yn gallu rhagweld dosbarth pob nod yn y graff, mae angen i ni benderfynu ar gywirdeb a cholled pob set ar wahân yn dibynnu ar y cyfnod.
Er enghraifft, yn ystod yr hyfforddiant, dim ond i bennu cywirdeb a cholled hyfforddiant yr ydym am ddefnyddio'r set hyfforddi, ac felly dyma lle mae ein masgiau'n dod yn ddefnyddiol.
I gyfrifo'r golled a'r cywirdeb priodol, byddwn yn diffinio swyddogaethau colled wedi'i guddio a chywirdeb wedi'i guddio.
Hyfforddi'r model
Nawr ein bod wedi diffinio'r pwrpas hyfforddi y bydd y dortsh yn cael ei ddefnyddio ar ei gyfer. Mae Adam yn feistr-optimydd.
Byddwn yn cynnal yr hyfforddiant am nifer penodol o gyfnodau tra'n cadw llygad ar gywirdeb dilysu.
Rydym hefyd yn plotio colledion a chywirdeb yr hyfforddiant trwy gydol y cyfnodau gwahanol.
Anfanteision Rhwydwaith Niwral Graff
Mae gan ddefnyddio GNNs rai anfanteision. Bydd pryd i gyflogi GNA a sut i wella perfformiad ein modelau dysgu peirianyddol yn cael eu gwneud yn glir i ni ar ôl i ni gael gwell dealltwriaeth ohonynt.
- Er bod GNNs yn rhwydweithiau bas, fel arfer gyda thair haen, gall y rhan fwyaf o rwydweithiau niwral fynd yn ddwfn i wella perfformiad. Ni allwn berfformio ar flaen y gad ar setiau data mawr oherwydd y cyfyngiad hwn.
- Mae'n anoddach hyfforddi model ar graffiau, gan fod eu deinameg strwythurol yn ddeinamig.
- Oherwydd costau cyfrifiannol uchel y rhwydweithiau hyn, mae graddio'r model cynhyrchu yn cyflwyno heriau. Bydd graddio'r GNNs ar gyfer cynhyrchu yn heriol os yw strwythur eich graff yn enfawr ac yn gymhleth.
Casgliad
Dros yr ychydig flynyddoedd diwethaf, mae GNNs wedi datblygu i fod yn offer pwerus ac effeithiol ar gyfer materion dysgu peiriannau yn y parth graff. Rhoddir trosolwg sylfaenol o rwydweithiau niwral graff yn yr erthygl hon.
Ar ôl hynny, gallwch chi ddechrau creu'r set ddata a ddefnyddir i hyfforddi a phrofi'r model. Er mwyn deall sut mae'n gweithredu a'r hyn y mae'n gallu ei wneud, gallwch hefyd fynd yn llawer pellach a'i hyfforddi gan ddefnyddio math gwahanol o set ddata.
Codio Hapus!
Gadael ymateb