Graafiteoria koneoppimista varten
Solmut, särmät, vierekkäisyysmatriisi, graafityypit, graafipiirteet, sosiaalisten verkostojen esitykset.
Graafiteoria koneoppimista varten on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.
Mikä on graafi
Graafi mallintaa entiteettejä ja niiden välisiä suhteita. Formaalisti graafi on G = (V, E), jossa V on kärkien (solmujen) joukko ja E on solmuparit yhdistävien kaarten joukko. Monet todelliset järjestelmät ovat luonteeltaan graafeja.
Solmut ja kaaret
Kukin solmu edustaa entiteettiä, kuten käyttäjää, atomia tai verkkosivua. Kukin kaari edustaa suhdetta, kuten ystävyyssuhdetta, kemiallista sidosta tai hyperlinkkiä. Graafikoneoppiminen oppii tästä yhteyksien rakenteesta eikä vain toisistaan erillisistä näytteistä.
Vierekkäisyysmatriisi
Vierekkäisyysmatriisi A ilmaisee, mitkä solmut ovat yhteydessä toisiinsa. Kun solmuja on n, A on kooltaan n kertaa n; A[i][j] = 1, jos kaari yhdistää solmut i ja j, ja muuten 0.
import numpy as np
# Triangle: 0-1, 1-2, 0-2
A = np.array([
[0, 1, 1],
[1, 0, 1],
[1, 1, 0],
])Solmujen piirteet X
Rakenteen lisäksi kukin solmu sisältää yleensä piirrevektorin. Yhdessä ne muodostavat muodoltaan (num_nodes, num_features) olevan piirrematriisin X. Sosiaalisessa graafissa rivi voi sisältää käyttäjän iän, julkaisujen määrän ja tilin iän.
X = np.array([
[25, 120, 3.0], # node 0
[31, 45, 5.5], # node 1
[22, 300, 1.2], # node 2
])Astematriisi
Solmun aste on sen kaarten lukumäärä. Astematriisi D on diagonaalimatriisi, jonka kukin diagonaalialkio on kyseisen solmun aste. Se on graafin Laplacian perusrakennusosa.
D = np.diag(A.sum(axis=1))
# Each diagonal entry = number of neighborsGraafin Laplacian
Graafin Laplacian määritellään muodossa L = D - A. Se kuvaa yhdistettyjen solmujen arvojen välisiä eroja ja on keskeinen spektraalisessa graafiteoriassa sekä monissa GNN-muotoiluissa.
L = D - A
print(L)Miksi Laplacian on tärkeä
Laplacian ominaisarvot ja ominaisvektorit paljastavat graafin yleisen rakenteen: yhteyksien muodostaman rakenteen, klusterit ja tasaisuuden. Graafikonvoluutiot johdetaan usein Laplacianista, joten L = D - A -muodon ymmärtäminen on olennaista GNN-verkkojen ymmärtämiseksi.
Suunnatut ja suuntaamattomat graafit
Suuntaamattomassa graafissa kaarella ei ole suuntaa, kuten ystävyyssuhteessa, joten A on symmetrinen. Suunnatussa graafissa kaaret osoittavat yhteen suuntaan, kuten seuraussuhteessa tai viittauksessa, joten A voi olla epäsymmetrinen: A[i][j] voi poiketa arvosta A[j][i].
# Directed: 0 -> 1 but not 1 -> 0
A_dir = np.array([
[0, 1, 0],
[0, 0, 1],
[0, 0, 0],
])Painotetut graafit
Kaariin voidaan liittää painoja, jotka kuvaavat voimakkuutta tai etäisyyttä. Tällöin vierekkäisyysmatriisin alkiot ovat reaalilukuja eivätkä vain arvoja 0 tai 1. Tieverkossa kaarien painot voivat kuvata matka-aikaa ja samankaltaisuusgraafissa kosinisamankaltaisuutta.
Kaarien tehokas esittäminen
Suurissa harvoissa graafeissa vierekkäisyysmatriisi tuhlaa muistia, koska useimmat alkiot ovat nollia. ML-kehykset tallentavat kaaret sen sijaan kaarilistana (COO-muoto): kaksi taulukkoa ilmoittaa kunkin kaaren lähde- ja kohdesolmun. PyTorch Geometric kutsuu tätä rakenteeksi edge_index.
# Triangle edges as edge_index [2, num_edges]
edge_index = [
[0, 0, 1], # sources
[1, 2, 2], # targets
]Graafikoneoppimisen sovellukset
Graafeja esiintyy kaikkialla:
- Sosiaaliset graafit: ystävien suosittelu, yhteisöjen tunnistaminen
- Molekyyligraafit: molekyylien ominaisuuksien ennustaminen (atomit = solmuja, sidokset = kaaria)
- Tietämysgraafit: yhteyksien ennustaminen entiteettien ja suhteiden välillä
- Web- ja viittausgraafit: järjestäminen ja luokittelu
Pikatesti
Testatkaa tietonne graafiteoriasta.
Kertaus
Opitte ML:n graafiteorian perusteet:
- Graafi on
G = (V, E), joka koostuu solmuista ja kaarista - Vierekkäisyysmatriisi A ilmaisee yhteydet; X sisältää solmujen piirteet
- Graafin Laplacian on
L = D - A - Graafit voivat olla suunnattuja tai suuntaamattomia sekä painotettuja tai painottamattomia
- Sovelluksia on sosiaali-, molekyyli- ja tietämysgraafeissa
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 53
- Oppitunnit
- 225
Usein kysytyt kysymykset
Onko oppitunti ”Graafiteoria koneoppimista varten” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “Graafiteoria koneoppimista varten”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Graafiteoria koneoppimista varten”?
Solmut, särmät, vierekkäisyysmatriisi, graafityypit, graafipiirteet, sosiaalisten verkostojen esitykset. Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Graafiteoria koneoppimista varten”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Oppikaa tekoälyä Pythonilla-oppitunnilla?
Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Graafiteoria koneoppimista varten
- Graafikonvoluutioverkot (GCN)
- Solmujen luokittelu GNN:llä
- Linkkien ennustaminen ja graafien luokittelu