0Pricing
Learn AI with Python · Ders

Graf Evrişimli Ağlar (GCN)

Mesaj geçirme çerçevesi, GCNConv, düğüm özelliği toplulaştırma, PyTorch Geometric kurulumu.

Graf Evrişimli Ağlar (GCN), CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. 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.

CNN'lerden GCN'lere

CNN'ler görüntülerdeki ızgara yapısından yararlanır. Bir Çizge Evrişimsel Ağı (GCN), evrişimi düzensiz çizgelere geneller ve her düğümün komşularından gelen bilgileri kullanarak kendi temsilini güncellemesini sağlar. Bu yaklaşım, sabit bir ızgarası olmayan verileri işler.

Mesaj İletimi

GCN'ler mesaj iletimi çerçevesini izler: her katmanda her düğüm (1) komşularından mesajları toplar, (2) bunları birleştirir ve (3) kendi gömmesini günceller. Katmanları üst üste koymak, bilginin çizge boyunca akmasını sağlar.

Komşu Özelliklerini Birleştirme

Temel işlem komşu özelliklerini birleştirmektir. Basit bir GCN katmanı, bir düğümün komşularının (ve düğümün kendisinin) özellik vektörlerinin ortalamasını alır, ardından öğrenilmiş doğrusal bir dönüşüm ve doğrusal olmayanlık uygular.

# For each node v:
#   h_v = activation( W * mean(features of v and its neighbors) )

Komşuluk Matrisi Neden Normalleştirilir

Komşuları naif biçimde toplasaydık, derecesi yüksek düğümler baskın olurdu. GCN, katkıları ölçeklendirmek için normalleştirilmiş komşuluk matrisini kullanır ve farklı derecelere sahip düğümlerdeki düğüm gömmelerinin büyüklüğünü kararlı tutar.

Normalleştirme Formülü

Simetrik normalleştirme, öz-döngüler ekler ve ardından düğüm derecelerine göre ölçeklendirir; bu işlem D^(-1/2) (A + I) D^(-1/2) şeklinde yazılır. Birim matrisi I'nin eklenmesi, bir düğümün birleştirme sırasında kendi özelliklerini korumasını sağlar.

# A_hat = A + I  (add self-loops)
# D_hat = degree matrix of A_hat
# A_norm = D_hat^(-1/2) * A_hat * D_hat^(-1/2)

PyTorch Geometric

PyTorch Geometric (PyG), PyTorch'ta GNN'ler için kullanılan standart kütüphanedir. Sizin için normalleştirilmiş mesaj iletimi evrişimini uygulayan GCNConv gibi kullanıma hazır katmanlar sağlar.

import torch
import torch.nn.functional as F
from torch_geometric.nn import GCNConv

Tek Bir GCNConv Katmanı

GCNConv(in_channels, out_channels) bir çizge evrişimi oluşturur. Düğüm özellikleri matrisini x ve edge_index'i (COO biçimindeki çizge bağlantılılığı) alır ve güncellenmiş düğüm gömmelerini döndürür.

conv = GCNConv(in_channels=16, out_channels=32)
# x: [num_nodes, 16], edge_index: [2, num_edges]
h = conv(x, edge_index)  # -> [num_nodes, 32]

İki Katmanlı Bir GCN

Tipik bir GCN iki katmanı üst üste koyar: ilk katman özellikleri yansıtır ve komşuların bir sıçramasını birleştirir; ikinci katman ikinci sıçramayı birleştirerek her düğüme iki sıçramalık bir alıcı alanı sağlar.

class GCN(torch.nn.Module):
    def __init__(self, in_dim, hid, out):
        super().__init__()
        self.conv1 = GCNConv(in_dim, hid)
        self.conv2 = GCNConv(hid, out)

    def forward(self, x, edge_index):
        x = F.relu(self.conv1(x, edge_index))
        x = F.dropout(x, training=self.training)
        return self.conv2(x, edge_index)

Alıcı Alan Derinlikle Genişler

Her GCN katmanı, bir düğümün alıcı alanını bir sıçrama kadar genişletir. İki katman iki sıçramalık komşulukları, üç katman üç sıçramalık komşulukları görür ve bu şekilde devam eder. Derinlik, uzaktaki bilgilerin bir düğüme ulaşmasını sağlar.

Aşırı Yumuşama

Ancak çok fazla katmanın üst üste konması aşırı yumuşamaya neden olur: komşuların tekrar tekrar ortalamasının alınması, tüm düğüm gömmelerinin neredeyse aynı vektöre yakınsamasına ve sınıflandırma için gereken ayrımların yok olmasına yol açar. Bu nedenle çoğu GCN yalnızca 2 veya 3 katman kullanır.

Aşırı Yumuşamayı Azaltma

Aşırı yumuşamayı önleme teknikleri arasında artık/atlamalı bağlantılar, katman çıktılarını birleştiren atlamalı bilgi ağları ve ağın sığ tutulması yer alır. Sığ GCN'ler, standart kıyaslamalarda çoğu zaman derin olanlardan daha iyi sonuç verir.

Kısa Sınama

GCN bilginizi sınayın.

Özet

Çizge Evrişimsel Ağlarını öğrendiniz:

  • GCN'ler mesaj iletimi çerçevesini izler: komşu özelliklerini birleştirir, ardından günceller
  • Öz-döngülere sahip normalleştirilmiş komşuluk matrisi, gömmeleri kararlı tutar
  • PyTorch Geometric içindeki GCNConv tek bir evrişimi uygular
  • Yaygın bir mimari 2 katmanlı GCN'dir
  • Aşırı derinlik aşırı yumuşamaya neden olur

Sıkça Sorulan Sorular

“Graf Evrişimli Ağlar (GCN)” dersi ücretsiz mi?

Evet — “Graf Evrişimli Ağlar (GCN)” 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.

“Graf Evrişimli Ağlar (GCN)” dersinde ne öğreneceğim?

Mesaj geçirme çerçevesi, GCNConv, düğüm özelliği toplulaştırma, PyTorch Geometric kurulumu. 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 2. dersidir.

“Graf Evrişimli Ağlar (GCN)” 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