0Pricing
Learn AI with Python · Pelajaran

Graph Convolutional Networks (GCN)

Kerangka kerja pengiriman pesan, GCNConv, agregasi fitur simpul, penyiapan PyTorch Geometric.

Graph Convolutional Networks (GCN) adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.

Dari CNN ke GCN

CNN memanfaatkan struktur kisi pada gambar. Jaringan Konvolusional Graf (GCN) menggeneralisasi konvolusi ke graf tidak beraturan, sehingga setiap simpul dapat memperbarui representasinya menggunakan informasi dari tetangganya. Cara ini menangani data yang tidak memiliki kisi tetap.

Penyampaian Pesan

GCN mengikuti kerangka kerja penyampaian pesan: pada setiap lapisan, setiap simpul (1) mengumpulkan pesan dari tetangganya, (2) mengagregasikannya, dan (3) memperbarui penyematan dirinya sendiri. Menumpuk beberapa lapisan memungkinkan informasi mengalir ke seluruh graf.

Agregasi Tetangga

Operasi intinya adalah mengagregasikan fitur tetangga. Lapisan GCN sederhana merata-ratakan vektor fitur tetangga sebuah simpul (termasuk simpul itu sendiri), lalu menerapkan transformasi linear dan fungsi nonlinier yang dipelajari.

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

Mengapa Ketetanggaan Dinormalisasi

Simpul dengan derajat tinggi akan mendominasi jika tetangga dijumlahkan begitu saja. GCN menggunakan ketetanggaan yang dinormalisasi untuk menyesuaikan kontribusi, sehingga besar penyematan simpul tetap stabil pada simpul-simpul dengan derajat yang berbeda.

Rumus Normalisasi

Normalisasi simetris menambahkan gelang-diri, lalu menyesuaikan skala berdasarkan derajat simpul, yang dituliskan sebagai D^(-1/2) (A + I) D^(-1/2). Penambahan matriks identitas I memungkinkan simpul mempertahankan fiturnya sendiri selama agregasi.

# 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) adalah pustaka standar untuk GNN dalam PyTorch. Pustaka ini menyediakan lapisan siap pakai seperti GCNConv yang menerapkan konvolusi penyampaian pesan ternormalisasi untuk Anda.

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

Satu Lapisan GCNConv

GCNConv(in_channels, out_channels) membuat satu konvolusi graf. Lapisan ini menerima matriks fitur simpul x dan edge_index (keterhubungan graf dalam format COO), lalu mengembalikan penyematan simpul yang telah diperbarui.

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]

GCN Dua Lapisan

GCN pada umumnya menumpuk dua lapisan: lapisan pertama memproyeksikan fitur dan mengagregasikan tetangga dalam satu lompatan, sedangkan lapisan kedua mengagregasikan tetangga dalam lompatan kedua, sehingga setiap simpul memiliki bidang penerimaan sejauh 2 lompatan.

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)

Bidang Penerimaan Bertambah Seiring Kedalaman

Setiap lapisan GCN memperluas bidang penerimaan sebuah simpul sejauh satu lompatan. Dua lapisan melihat lingkungan sejauh 2 lompatan, tiga lapisan melihat sejauh 3 lompatan, dan seterusnya. Kedalaman memungkinkan informasi yang jauh mencapai sebuah simpul.

Penghalusan Berlebihan

Namun, menumpuk terlalu banyak lapisan menyebabkan penghalusan berlebihan: perataan tetangga berulang kali membuat semua penyematan simpul menyatu menjadi vektor yang hampir sama, sehingga perbedaan yang diperlukan untuk klasifikasi hilang. Inilah alasan sebagian besar GCN hanya menggunakan 2 atau 3 lapisan.

Mengurangi Penghalusan Berlebihan

Teknik untuk mengatasi penghalusan berlebihan mencakup koneksi residual/lompatan, jaringan pengetahuan-lompatan yang menggabungkan keluaran lapisan, dan menjaga jaringan tetap dangkal. GCN dangkal sering mengungguli GCN dalam pada tolok ukur standar.

Uji Cepat

Uji pengetahuan Anda tentang GCN.

Rangkuman

Anda telah mempelajari Jaringan Konvolusional Graf:

  • GCN mengikuti kerangka kerja penyampaian pesan: mengagregasikan fitur tetangga, lalu memperbarui fitur
  • Ketetanggaan yang dinormalisasi dengan gelang-diri menjaga penyematan tetap stabil
  • GCNConv dalam PyTorch Geometric menerapkan satu konvolusi
  • Arsitektur yang umum adalah GCN 2 lapisan
  • Kedalaman yang berlebihan menyebabkan penghalusan berlebihan

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Graph Convolutional Networks (GCN)” gratis?

Ya — teks lengkap “Graph Convolutional Networks (GCN)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Graph Convolutional Networks (GCN)”?

Kerangka kerja pengiriman pesan, GCNConv, agregasi fitur simpul, penyiapan PyTorch Geometric. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn AI with Python?

Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Graph Convolutional Networks (GCN)” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?

Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Teori Graf untuk Pembelajaran Mesin
  2. Graph Convolutional Networks (GCN)
  3. Klasifikasi Simpul dengan GNN
  4. Prediksi Tautan dan Klasifikasi Graf
← Kembali ke Learn AI with Python