0Pricing
Learn AI with Python · Ders

Bağlantı Tahmini ve Graf Sınıflandırması

Kenar tahmini görevi, negatif örnekleme, graf düzeyinde havuzlama, graf sınıflandırması için GINConv.

Bağlantı Tahmini ve Graf Sınıflandırması, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

İki Yeni Çizge Görevi

GNN'ler düğümleri sınıflandırmanın yanı sıra şu görevleri de gerçekleştirir:

  • Bağlantı tahmini: iki düğüm arasında bir kenar bulunacak mı? (arkadaş önerileri, ilaç etkileşimleri)
  • Çizge sınıflandırma: tüm çizgeye bir etiket atama (bu molekül toksik mi?)

Bağlantı Tahmini Kurulumu

Bağlantı tahmininde önce bir GNN ile düğüm gömmelerini hesaplar, ardından aday düğüm çiftlerine puan veririz. Yüksek puan, modelin bu düğümleri bir kenarın birbirine bağlaması gerektiğine inandığı anlamına gelir.

Bir Kenara Puan Verme

Yaygın bir kenar puanı, iki düğüm gömmesinin noktasal çarpımıdır: score = dot(h_u, h_v). Benzer gömmeler yüksek bir noktasal çarpım üretir ve olası bir bağlantıyı öngörür.

h = gnn(data.x, data.edge_index)        # node embeddings
score = (h[u] * h[v]).sum(dim=-1)        # dot product per pair

Negatif Örnekleme

Çizge yalnızca var olan kenarları listeler (pozitifler). Bir sınıflandırıcıyı eğitmek için kenar bulunmayan çiftlere de ihtiyaç duyarız. Negatif örnekleme, bağlantısı olmayan düğüm çiftlerini negatif örnekler olarak rastgele seçerek eğitim kümesini dengeler.

from torch_geometric.utils import negative_sampling

neg_edge_index = negative_sampling(
    edge_index=data.edge_index,
    num_nodes=data.num_nodes,
    num_neg_samples=data.edge_index.size(1),
)

BCEWithLogitsLoss

Bağlantı tahmini ikilidir (kenar var veya yok). Pozitif ve negatif çiftlere sırasıyla 1 ve 0 etiketlerini verir, ardından sigmoid işlevini ikili çapraz entropiyle sayısal olarak kararlı bir biçimde birleştiren BCEWithLogitsLoss ile eğitim yaparız.

import torch

pos = (h[pos_u] * h[pos_v]).sum(-1)
neg = (h[neg_u] * h[neg_v]).sum(-1)
scores = torch.cat([pos, neg])
labels = torch.cat([torch.ones_like(pos), torch.zeros_like(neg)])
loss = torch.nn.functional.binary_cross_entropy_with_logits(scores, labels)

Çizge Sınıflandırmaya Geçiş

Çizge sınıflandırma için düğüm başına değil, çizge başına tek bir vektöre ihtiyacımız vardır. GNN katmanları düğüm gömmelerini ürettikten sonra bunları tek bir çizge düzeyi temsiline havuzlarız.

global_mean_pool

global_mean_pool, çizge boyutundan bağımsız olarak tek bir sabit boyutlu vektör üretmek için bir çizgedeki tüm düğüm gömmelerinin ortalamasını alır. Çizgeler birlikte toplu işlendiğinde, bir batch dizini hangi düğümlerin hangi çizgeye ait olduğunu belirtir.

from torch_geometric.nn import global_mean_pool

h = gnn(x, edge_index)               # [num_nodes, dim]
hg = global_mean_pool(h, batch)       # [num_graphs, dim]
logits = classifier(hg)

Havuzlama Neden Önemlidir

Havuzlama, modeli düğümlerin sıralamasına ve çizgenin boyutuna karşı değişmez hâle getirir: iki izomorfik çizge aynı havuzlanmış vektörü üretir. Ortalama havuzlama basittir; toplam ve maksimum havuzlama, farklı duyarlılıklara sahip alternatiflerdir.

GINConv

GINConv (Graf İzomorfizmi Ağı), daha ifade gücü yüksek bir evrişimdir. Grafik düzeyindeki görevlerde mesaj iletiminin ayırt edici gücünü en üst düzeye çıkarmak için özel olarak tasarlanmış bir MLP ve toplamaya dayalı birleştirme kullanır.

from torch_geometric.nn import GINConv
import torch

mlp = torch.nn.Sequential(
    torch.nn.Linear(in_dim, hid),
    torch.nn.ReLU(),
    torch.nn.Linear(hid, hid),
)
conv = GINConv(mlp)

Weisfeiler-Leman Bağlantısı

GIN, izomorfik olmayan grafikleri birbirinden ayırt etmek için kullanılan klasik bir algoritma olan Weisfeiler-Leman (WL) testi kadar güçlü olacak şekilde tasarlanmıştır. Daha basit birçok GNN belirli grafikleri birbirinden ayırt edemez; GIN ise WL testinin sınırları dâhilinde bunu yapabilir ve bu nedenle grafik sınıflandırmada güçlüdür.

Doğru Aracı Seçme

Mimarinin görevle eşleşmesini sağlayınız:

  • Bağlantı tahmini: GNN gömmeleri + nokta çarpımı puanlaması + negatif örnekleme + BCE kaybı
  • Grafik sınıflandırma: GINConv gibi ifade gücü yüksek evrişimler + küresel havuzlama + sınıflandırıcı

Hızlı Kontrol

Bilginizi sınayınız.

Özet

Bağlantı tahmini ve grafik sınıflandırmayı öğrendiniz:

  • Kenar puanı = dot(h_u, h_v); model, negatif örnekleme ve BCEWithLogitsLoss ile eğitilir
  • global_mean_pool, düğüm gömmelerini grafik düzeyinde bir vektöre dönüştürür
  • GINConv, Weisfeiler-Leman testi ile eşleşen, ifade gücü çok yüksek bir katmandır

Sıkça Sorulan Sorular

“Bağlantı Tahmini ve Graf Sınıflandırması” dersi ücretsiz mi?

Evet — “Bağlantı Tahmini ve Graf Sınıflandırması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Bağlantı Tahmini ve Graf Sınıflandırması” dersinde ne öğreneceğim?

Kenar tahmini görevi, negatif örnekleme, graf düzeyinde havuzlama, graf sınıflandırması için GINConv. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Bağlantı Tahmini ve Graf Sınıflandırması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Makine Öğrenmesi için Graf Teorisi
  2. Graf Evrişimli Ağlar (GCN)
  3. GNN ile Düğüm Sınıflandırma
  4. Bağlantı Tahmini ve Graf Sınıflandırması
← Learn AI with Python Sayfasına Dön