Neural Ordinary Differential Equations (Neural ODEs)
Sinirsel ODE'ler, katman yığınlarının yerine öğrenilmiş bir türev ve bir ODE çözücü kullanır. Eşlenik yöntemle nasıl eğitildikleri, hangi durumlarda işe yaradıkları ve çalıştırılabilir kod.
Sinirsel sıradan diferansiyel denklemler (Neural ODEs), sabit bir katman yığını yerine gizli durumun zaman içinde sürekli olarak nasıl değiştiğini tanımlayan sinir ağlarıdır. Küçük bir f ağı dh/dt = f(h, t) türevini öğrenir ve sayısal bir ODE çözücüsü, bu türevi başlangıç durumundan çıktının gerektiği zamana kadar bütünleştirir. Ricky Chen, Yulia Rubanova, Jesse Bettencourt ve David Duvenaud bu fikri, NeurIPS'te en iyi makale ödülünü alan 2018 tarihli bir makalede tanıttı.
Artık Bloklardan Sürekli Derinliğe#
Bir artık ağ, durumunu h(t + 1) = h(t) + f(h(t)) biçiminde günceller; bu, 1 adım büyüklüğüyle bir ODE çözmek için Euler yönteminin tam olarak bir adımıdır. Neural ODE, sonsuz sayıda sonsuz küçük adımın limitini alır ve tümleştirme işini bir çözücüye bırakır. SciPy'nin solve_ivp aracı gibi klasik sayısal yazılımlar, elle yazılmış denklemler için aynı tür başlangıç değer problemini çözer.
Bu yaklaşım, "derinliğin" ne anlama geldiğini değiştirir. Dormand-Prince yöntemi gibi Runge-Kutta ailesinden uyarlamalı çözücüler, dinamiklerin hızla değiştiği yerlerde küçük, düzgün olduğu yerlerdeyse büyük adımlar atar. İleri geçişin maliyeti, çözücünün ihtiyaç duyduğu işlev değerlendirmesi sayısıdır; bu sayı girdiye, öğrenilmiş dinamiklere ve hata toleransına bağlıdır. Çıkarımda toleransı gevşetmek, yeniden eğitim yapmadan doğruluktan ödün verip çıkarım gecikmesini düşürür.
Adjoint Yöntemiyle Eğitim#
Bir çözücü üzerinden yapılan sıradan geri yayılım, her ara durumu sakladığından bellek kullanımı çözücü adımlarının sayısıyla artar. Adjoint duyarlılık yöntemi, gradyanı taşıyan ikinci bir ODE'yi zamanda geriye doğru çözerek bu sorunu önler; durumları saklamak yerine bu süreçte yeniden hesaplar. Ek hesaplama ve ileri ile geri yörüngeler arasında küçük sayısal farklar pahasına bellek maliyeti derinlikten bağımsız kalır.
torchdiffeq paketi, odeint ile doğrudan geri yayılım ve odeint_adjoint ile adjoint yöntemi için PyTorch üzerinde türevlenebilir çözücüler sağlar:
import torch
from torch import nn
from torchdiffeq import odeint
torch.manual_seed(0)
# Ağ, 2B gizli durumun dh/dt türevini tahmin eder
dynamics = nn.Sequential(nn.Linear(2, 32), nn.Tanh(), nn.Linear(32, 2))
# Düzensiz zaman damgalarındaki durumu sorgula; seyrek sensör okumalarında olduğu gibi
initial_state = torch.tensor([[1.0, 0.0]])
times = torch.tensor([0.0, 0.3, 0.35, 1.1, 2.0])
trajectory = odeint(lambda t, h: dynamics(h), initial_state, times)
# Gradyanlar çözücü üzerinden ağ ağırlıklarına geri akar
loss = trajectory[-1].square().sum()
loss.backward()
print(trajectory.squeeze(1))
print(dynamics[0].weight.grad.norm())Yörünge, birbirine yakın 0.3 ve 0.35 zamanlarından 1.1'e kadarki uzun aralığa kadar, istenen her zamandaki durumu tutar; çözücü kendi iç adımlarını seçer. Sıfırdan farklı gradyan normu, son zamanda değerlendirilen bir kayıp işlevinin ağı çözücü üzerinden eğittiğini gösterir. odeint yerine odeint_adjoint kullanmak, dinamik işlevi nn.Module olarak belirtmen koşuluyla sabit bellek kullanan gradyan yöntemine geçer; böylece çözücü parametrelerini bulabilir.
Neural ODE'lerin Kullanım Alanları#
Düzensiz örneklenmiş zaman serileri en uygun kullanım alanıdır. Rubanova ve çalışma arkadaşlarının 2019'da tanıttığı Latent ODE modelleri, gözlem dizisini gizli bir duruma kodlar ve bu durumu sürekli biçimde evrimleştirir; böylece eşit olmayan aralıklara sahip tıbbi kayıtlar veya sensör günlükleri sabit bir ızgaraya zorlanmadan modellenebilir. Bir tekrarlayan sinir ağı yalnızca ayrık adımlarda güncellenir ve eksik veya düzensiz zaman damgalarını ele almak için ek bileşenlere ihtiyaç duyar; bu, zaman serisi analizinin temel sorunlarından biridir.
İzleme verileri de aynı biçimdedir. Ultralytics YOLO26 içindeki İzleme modu, her karede her izleme kimliği için bir konum çıktısı verir; nesne örtüldüğünde veya kaçırıldığında boşluklar oluşur. Varsayılan izleyici, kaybolan her izi track_buffer kare boyunca (varsayılan olarak 30) bir Kalman filtresi ile taşımaya devam eder. Sabit hızlı bu hareket modeli, kare başına bir kez ilerletilen sabit ve doğrusal bir ODE'dir. Aynı konumlara uydurulan bir Neural ODE, hareketin kendisini, kareler arasından veya çoklu nesne izleme sırasında bir boşluk boyunca sorgulanabilen sürekli bir yörünge olarak öğrenir.
Üretici modelleme ikinci büyük kullanım alanıdır. Özgün Neural ODE makalesinde geliştirilen ve FFJORD ile genişletilen sürekli normalleştirme akışları, öğrenilmiş bir vektör alanını bütünleştirerek basit bir dağılımı karmaşık bir dağılıma dönüştürür. Akış eşleme daha sonra, eğitim sırasında ODE çözmeye gerek kalmadan vektör alanını doğrudan öğrenerek bu modellerin eğitim maliyetini büyük ölçüde düşürdü. Stable Diffusion 3 gibi düzeltilmiş akış görüntü üreticileri, böyle bir ODE'yi bütünleştirerek örnek üretir. Difüzyon modelleri de olasılık akışı ODE'sini bütünleştirerek belirlenimci biçimde örneklenebilir.
Sınırlar ve İlgili Sürekli Zaman Modelleri#
Bir ODE'nin yörüngeleri kesişemez; bu nedenle girdinin kendi boyutunda çalışan bir Neural ODE bazı basit eşlemeleri temsil edemez. Emilien Dupont ve çalışma arkadaşlarının 2019'da önerdiği Artırılmış Neural ODE'ler, duruma ek boyutlar katarak bunu düzeltir. Sert dinamikler ve eğitim sırasında artan işlev değerlendirme sayıları, Neural ODE'leri sabit derinlikli bir ağdan daha yavaş hale getirebilir.
Diğer mimariler, farklı ödünleşimlerle sürekli zaman dinamiklerini temel alır. Sıvı sinir ağları, zaman sabitleri girdiye bağlı olan, ODE'lerle tanımlanmış yinelenen hücrelerdir. S4 ve Mamba gibi durum uzayı modelleri, x'(t) = Ax(t) + Bu(t) biçimindeki doğrusal sürekli zamanlı bir sistemle başlar ve bunu yinelenen bir yapıya dönüştürür. Bu yapı, uzun bir evrişim veya paralel tarama olarak da hesaplanabilir. Böylece genel bir Neural ODE'nin uyarlamalı çözücüye ihtiyaç duyduğu uzun dizilerde hızlı çalışırlar.










