Implicit Neural Representations (INRs)
Örtük sinirsel gösterimler, bir görüntüyü, şekli veya 3B sahneyi koordinatları değerlere eşleyen ve her çözünürlükte sorgulanabilen bir sinir ağı olarak saklar.
Örtük sinirsel gösterimler (INR), bir sinyali sinir ağı tarafından öğrenilen sürekli bir işlev olarak saklar. Bu ağ genellikle koordinatları değerlere eşleyen küçük bir çok katmanlı algılayıcıdır (MLP). Görüntü, piksel konumunu (x, y) renge eşleyen bir işlev; 3B şekil, bir noktayı (x, y, z) yüzeyden işaretli uzaklığına eşleyen bir işlev; sahne ise bir noktayı ve bakış yönünü renk ve yoğunluğa eşleyen bir işlev hâline gelir. Gösterim, ağın ağırlıklarıdır: piksel veya voksel ızgarası yoktur. Bu nedenle sinyal herhangi bir koordinatta sorgulanabilir, bellekte kapladığı alan çıktı çözünürlüğüyle artmaz ve türevleri otomatik türev alma sayesinde ek maliyet olmadan elde edilir. INR'ler koordinat tabanlı ağlar veya sinir alanları olarak da adlandırılır; sinirsel ışınım alanlarının ve modern 3B yeniden yapılandırmanın büyük bölümünün temelini oluştururlar.
Örtük Sinirsel Gösterimler Nasıl Çalışır#
Bir INR, her seferinde tek bir sinyale uydurulur. Eğitim sırasında koordinatlar örneklenir, ağın bu koordinatlardaki çıktısı gerçek değerlerle karşılaştırılır ve ağırlıklar gradyan inişi ile güncellenir; bu nedenle sinyale uydurma işlemi kasıtlı bir aşırı uyum sürecidir: amaç bu sinyali ezberlemektir. ReLU aktivasyonlarını kullanan yalın bir MLP zorlanır; çünkü ağlar düşük frekansları yüksek frekanslardan çok daha hızlı öğrenir; Nasim Rahaman ve çalışma arkadaşlarının 2019'da spektral yanlılık adını verdiği etki budur. Ham koordinatlar verildiğinde ağ, sinyalin bulanık bir sürümünü üretir. 2020'de iki çözüm INR'leri pratik hâle getirdi: koordinatları çok sayıda frekansta sinüs ve kosinüs fonksiyonlarıyla eşlemek (Matthew Tancik ve çalışma arkadaşlarının Fourier özellikleri ve NeRF'in konumsal kodlaması) ve ReLU'yu sinüs tabanlı bir aktivasyon fonksiyonu ile değiştirmek (Vincent Sitzmann ve çalışma arkadaşlarının geliştirdiği SIREN modelinde olduğu gibi).
Bu PyTorch örneği, aynı MLP'yi bir fotoğrafa iki kez, önce ham koordinatlarla, sonra Fourier özellikleriyle uydurur:
import torch
from skimage import data, transform
from torch import nn
torch.manual_seed(0)
# The signal: a 128 x 128 grayscale photo, and the (x, y) coordinate of every pixel in [-1, 1]
image = torch.tensor(transform.resize(data.camera(), (128, 128)), dtype=torch.float32).reshape(-1, 1)
grid = torch.linspace(-1, 1, 128)
coords = torch.stack(torch.meshgrid(grid, grid, indexing="ij"), dim=-1).reshape(-1, 2)
# Fourier features: sines and cosines of the coordinates at 128 random frequencies
proj = torch.pi * coords @ (10 * torch.randn(2, 128))
inputs = {"Raw coordinates": coords, "Fourier features": torch.cat([proj.sin(), proj.cos()], dim=-1)}
for name, x in inputs.items():
# The INR: a small MLP from coordinate to gray value, fit to this one image
mlp = nn.Sequential(nn.Linear(x.shape[1], 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, 1))
optimizer = torch.optim.Adam(mlp.parameters(), lr=1e-3)
for _ in range(1000):
loss = (mlp(x) - image).pow(2).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"{name}: PSNR {-10 * torch.log10(loss).item():.1f} dB")1.000 adımın ardından ham koordinat ağı 22.0 dB tepe sinyal-gürültü oranına ulaşır ve bulanık bir görüntü üretir; Fourier özellikleri kullanan ağ ise 46.0 dB'ye ulaşarak neredeyse birebir kopya oluşturur. Burada 10 olan frekans ölçeği her sinyale göre ayarlanır: çok düşük olursa sonuç bulanık kalır, çok yüksek olursa ağ örnekleri ezberler ve aralarındaki değerleri gürültülü üretir. Ultralytics paketinde çalışan Meta'nın Segment Anything Model modeli, nokta ve kutu istemlerinin koordinatlarını maske kod çözücüsüne göndermeden önce aynı rastgele Gauss Fourier özellikleriyle kodlar.
Şekiller, Sahneler ve Hız#
3B şekiller için INR'ler 2019'da ortaya çıktı. DeepSDF işaretli uzaklığı, Occupancy Networks ise herhangi bir 3B noktanın içeride veya dışarıda olma olasılığını tahmin etti; böylece her çözünürlükte bir ağ çıkarılabildi. 2020'de NeRF, yeni bakış sentezi için konumu ve bakış yönünü renk ve yoğunluğa eşledi. Saf MLP'lerin eğitimi ve sorgulanması yavaştır; bu yüzden hibrit tasarımlar öğrenilmiş özellikleri bir ızgarada saklar ve küçük bir MLP ile kodunu çözer. NVIDIA'dan Thomas Müller ve çalışma arkadaşlarının geliştirdiği Instant-NGP, özelliklerden oluşan çok çözünürlüklü bir karma tablosu kullanır ve NeRF'i saatler yerine saniyeler içinde uydurur.
INR'ler; değerleri doğrudan saklayan ve çözünürlükle birlikte, voksellerde kübik olarak büyüyen piksel ızgaraları, voksel ızgaraları, ağlar ve nokta bulutları gibi açık gösterimlerden farklıdır. Gaussian splatting, milyonlarca 3B Gauss dağılımını rasterleştirerek daha hızlı işleyen, NeRF'e güncel bir açık alternatiftir. Temel bir INR tek bir sinyale uydurulduğundan, birçok sinyale genellenmesi ek yöntemler gerektirir: gizil koddan INR ağırlıklarını üreten hiper ağlar veya yeni bir sinyale birkaç adımda uyacak bir başlangıç noktasını meta-öğrenme ile belirleme.
Gerçek Dünya Uygulamaları#
- Tıbbi görüntüleme: INR'ler, BT ve MR hacimlerini seyrek veya yetersiz örneklenmiş ölçümlerden yeniden oluşturur; sürekli işlev, edinilen örnekler arasındaki boşlukları düzgün ve verilerle tutarlı bir hacimle doldurur.
- Süper çözünürlük: LIIF gibi yerel örtük görüntü işlevleri, yakındaki özelliklerden yararlanarak herhangi bir sürekli koordinattaki rengi tahmin eder; böylece tek bir model, görüntüleri keyfî ölçeklerde büyütür.
- 3B içerik oluşturma: Metinden 3B ve görüntüden 3B üreten modeller çoğunlukla sinir alanlarını optimize eder veya tahmin eder; ardından bunlar oyunlar ve görsel efektler için ağlara dönüştürülür.
- Sıkıştırma: Emilien Dupont ve çalışma arkadaşlarının 2021'de geliştirdiği COIN, bir görüntüyü küçük bir MLP'nin nicemlenmiş ağırlıkları olarak saklar ve düşük bit hızlarında JPEG'den daha iyi sonuç verir.










