Generative Flow Networks (GFlowNets)
Üretken Akış Ağlarının (GFlowNets) ilaç keşfi ve nedensel öğrenme için çeşitli, yüksek ödüllü ayrık nesneler örneklemek üzere olasılıksal modellemeyi nasıl kullandığını keşfet.
Üretken Akış Ağları veya GFlowNet'ler, olasılıksal modelleme ve amortize örnekleme için tasarlanmış güçlü bir makine öğrenimi çerçevesidir. Üretim sürecini sıralı bir karar verme görevi olarak ele alarak ayrık, bileşimsel nesneler üretmede başarılıdırlar. Geleneksel pekiştirmeli öğrenmede yaygın olduğu gibi yalnızca bir ödülü en üst düzeye çıkarmak yerine GFlowNet'ler, önceden tanımlanmış bir ödül işleviyle orantılı olasılıkla nesne örneklemeyi öğrenir. Böylece son derece geniş örnek uzaylarında yüksek ödüllü çeşitli aday kümeleri keşfedebilir ve diğer üretken mimarileri, örneğin Üretken Çekişmeli Ağları (GAN'lar), sıkça etkileyen model çökmesini etkili biçimde azaltabilirler.
Temel İlkeler ve Mekanizmalar#
GFlowNet'ler, nihai bir nesne oluşturmak için yapılandırılmış bir ortamda ilerler ve yapı taşlarını adım adım ekler.
- İleri ve Geri Politikalar: Bir sinir ağı, belirli bir durumdaki olası eylemlerin olasılık dağılımını belirleyen bir ileri politika tahmin eder. Model, bu durumlar arasındaki yörüngeleri eşleyerek olasılık "akışını" öğrenir.
- Yörünge Dengesi Kaybı: Eğitimde genellikle yörünge dengesi kaybı gibi optimizasyon hedefleri kullanılır; bu hedef, belirli bir nesneyi üretme olasılığının gözlemlenen ödülle yakından örtüşmesini sağlar. Eğitim sırasında bu kayıp fonksiyonunu kararlı hâle getirmek için doğru hiperparametre ayarı çok önemlidir.
- Orantılı Örnekleme: GFlowNets, yalnızca mutlak en yüksek değeri aramak yerine ödülle orantılı örnekleme yaparak çeşitliliği doğal biçimde güvence altına alır; bu da karmaşık kombinatoryal uzaylarda gezinirken kritik önem taşır.
GFlowNets ve Diğer Üretken Yapay Zekâ Yöntemleri#
Üretken yapay zekâ birçok tekniği kapsasa da GFlowNets kendine özgü bir alanda yer alır. Standart Difüzyon Modelleri veya Akış Eşleştirme gibi teknikler genellikle sürekli gürültü dağılımlarını veriye dönüştürür. Buna karşılık GFlowNets, grafikler veya diziler gibi ayrık yapılar üretmek üzere özel olarak tasarlanmıştır. Ayrıca standart pekiştirmeli öğrenme ajanları Markov Karar Süreci (MDP) aracılığıyla tek bir en iyi yolu bulmayı hedeflerken GFlowNets, üretilen çıktılarda geniş çeşitlilik sağlamak için yüksek ödüllü birden çok yolun haritasını çıkarır.
Gerçek Dünya Uygulamaları#
Çeşitli ve yüksek düzeyde optimize edilmiş adaylar üretebilme becerisi, GFlowNets'i bilimsel ve yapısal alanlarda özellikle değerli kılar.
- İlaç Keşfi ve Moleküler Tasarım: Farmasötik araştırmalarda GFlowNets, yeni terapötik peptitler ve moleküler grafikler üretmek için kullanılır. Atomik GFlowNets (A-GFN) gibi yakın tarihli gelişmeler, bağlanma afinitesi ve sentezlenebilirlik gibi özellikleri optimize etmek için molekülleri atom atom oluşturur. Bu süreç, önceden tanımlanmış parçalara dayanan yöntemlere kıyasla daha çeşitli ilaç adayları ortaya çıkarır.
- Nedensel Yapı Öğrenimi: GFlowNets, nedensel Bayes ağlarının yapısını keşfetmek için de kullanılır. Yönlü Döngüsüz Grafikler (DAG'ler) üzerindeki sonsal dağılıma yaklaşarak araştırmacıların karmaşık veri ilişkilerini modellerken epistemik belirsizliğe ilişkin gerçekçi bir bakış açısını korumasına yardımcı olurlar.
İleri Politikayı Uygulama#
Bir GFlowNet oluştururken ileri politika, sonraki olası adımlar üzerinde bir olasılık dağılımı tahmin etmelidir. Aşağıdaki PyTorch kod parçacığı, basit bir politika katmanının nasıl tanımlanacağını ve bir eylemin nasıl örnekleneceğini gösterir. Ultralytics YOLO26 gibi görme modelleri oluştururken sınırlayıcı kutu koordinatlarını tahmin etmek gerekirken GFlowNet, üretim yolundaki bir sonraki durumu seçmek için kategorik dağılımlar kullanır.
import torch
import torch.nn as nn
from torch.distributions import Categorical
# A simple linear policy mapping a 64-dim state to 4 possible actions
policy_network = nn.Sequential(nn.Linear(64, 4), nn.Softmax(dim=-1))
# Given a random state vector, compute action probabilities and sample
state = torch.randn(1, 64)
action_probs = policy_network(state)
sampled_action = Categorical(action_probs).sample()
print(f"Sampled Action: {sampled_action.item()}")Python ile karmaşık yapay zekâ çözümleri geliştiriyorsan Ultralytics Platform üzerinden veri kümelerine kolayca açıklama ekleyebilir, modelleri eğitebilir ve dağıtabilirsin. Yüksek hızlı nesne algılama görevlerine odaklanıyor veya üretken mimarileri araştırıyor ol, modellerini etkili biçimde ölçeklendirmek için sağlam bir makine öğrenimi operasyonları (MLOps) işlem hattı şarttır.









