GNN como uma forma de Convolução
🖼️ CNN — Grade Regular
Kernel 3×3 sobre região da imagem
- Kernel desliza por uma grade regular
- Vizinhança = pixels adjacentes (posição fixa)
- Pesos aprendidos para cada posição do kernel
🕸️ GNN — Grafo Irregular
Região 3×3 como grafo — GCN sobre pixels
GCN Update (Kipf & Welling, ICLR 2017)
h'p₁₁ = σ( W · mean(N(p₁₁)) ) · mean ≈ 0.5
- Vizinhança = pixels adjacentes na grade 2D (nós conectados por arestas)
- Grau variável — borda tem menos vizinhos que o centro
- GCN (Kipf & Welling) usa mean-pooling normalizado pelo grau
Exemplo: atualização de p₁₁
| hp₁₁ | = −2 | (feature atual) |
| N(p₁₁) | {2,−1,0,1,1,0,2,−1} | (8 vizinhos) |
| Σhu | = 4 | 2−1+0+1+1+0+2−1 |
| mean | = 0.5 | Σ / 8 |
| z | = W · 0.5 | (W escalar) |
| h'p₁₁ | = ReLU(z) | ≥ 0 após ativação |
CNN
y[i] = Σk∈N wk · x[i+k]
Vizinhança fixa · Pesos por posição
GNN (mean-pooling)
hv(l+1) = σ( W · ( 1/|N(v)| · Σu∈N(v) hu(l) ) )
Vizinhança variável · Mean-pooling sobre vizinhos · Pesos compartilhados W
CNN é um caso especial de GNN em grafos do tipo grade! A convolução clássica nada mais é que message passing em um grafo regular 2D com pesos posicionais fixos.