Generative Flow Networks (GFlowNets)
Generative Flow Networks'ün (GFlowNets) ilaç keşfi ve nedensel öğrenme için çeşitli, yüksek ödüllü ayrık nesneleri örneklemek üzere olasılıksal modellemeyi nasıl kullandığını keşfet.
Üretken Akış Ağları veya GFlowNets, olasılıksal modelleme ve amortized sampling için tasarlanmış güçlü bir machine learning çerçevesidir. Üretim sürecini ardışık bir karar alma görevi olarak ele alarak ayrık, kompozisyonel nesneler üretme konusunda başarılıdırlar. Geleneksel reinforcement learning süreçlerinde yaygın olduğu gibi sadece bir ödülü maksimize etmek yerine, GFlowNets nesneleri önceden tanımlanmış bir reward function ile orantılı bir olasılıkla örneklemeyi öğrenir. Bu, Generative Adversarial Networks (GANs) gibi diğer üretken mimarileri sıklıkla rahatsız eden model collapse durumunu etkili bir şekilde hafifleterek olağanüstü büyük örnek uzayları içinde yüksek ödüllü adaylardan oluşan çeşitli kümeler keşfetmelerini sağlar.
Temel İlkeler ve Mekanizmalar#
GFlowNets, nihai bir nesneyi oluşturmak için yapılandırılmış bir ortamda adım adım yapı taşları ekleyerek hareket eder.
- Forward and Backward Policies: Bir neural network, belirli bir durumdan olası eylemler üzerindeki olasılık dağılımını belirleyen ileri politikayı tahmin eder. Model, bu durumlar üzerinden yörüngeleri haritalandırarak olasılığın "akışını" öğrenir.
- Trajectory Balance Loss: Eğitim genellikle, belirli bir nesneyi üretme olasılığının gözlemlenen ödülüyle yakından uyumlu olmasını sağlayan yörünge denge kaybı gibi optimizasyon hedeflerine dayanır. Eğitim sırasında bu loss function değerini stabilize etmek için uygun hyperparameter tuning işlemleri esastır.
- Proportional Sampling: GFlowNets, mutlak maksimumu aramak yerine ödüle orantılı olarak örnekleme yaparak, karmaşık combinatorial spaces içinde gezinirken çok önemli olan çeşitliliği doğal olarak zorunlu kılar.
GFlowNets ve Diğer Üretken Yapay Zeka#
Generative AI birçok tekniği kapsasa da, GFlowNets benzersiz bir niş oluşturur. Standart Diffusion Models veya Flow Matching gibi teknikler tipik olarak 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 için özellikle uyarlanmıştır. Dahası, standart reinforcement learning aracıları Markov Decision Process (MDP) aracılığıyla tek bir optimal yol bulmayı hedeflerken, GFlowNets üretilen çıktıların geniş bir yelpazede olmasını sağlamak için birden fazla yüksek ödüllü yolu haritalandırır.
Gerçek Dünya Uygulamaları#
Çeşitli ve yüksek düzeyde optimize edilmiş adaylar oluşturma yeteneği, GFlowNets'i bilimsel ve yapısal alanlarda özellikle değerli kılar.
- Drug Discovery and Molecular Design: pharmaceutical research alanında GFlowNets, yeni terapötik peptitler ve moleküler grafikler üretmek için kullanılır. Atomik GFlowNets (A-GFN) gibi son gelişmeler, bağlanma afinitesi ve sentezlenebilirlik gibi özellikleri optimize etmek için molekülleri atom atom inşa eder. Bu süreç, önceden tanımlanmış parçalara güvenen yöntemlere kıyasla daha çeşitli ilaç adayları yaratır.
- Causal Structure Learning: GFlowNets ayrıca nedensel Bayesian Networks yapısını keşfetmek için de uygulanır. Directed Acyclic Graphs (DAGs) üzerindeki son nokta dağılımını yaklaştırarak araştırmacıların karmaşık veri ilişkilerini modellerken epistemic uncertainty hakkında gerçekçi bir görüş korumasına yardımcı olurlar.
İleri Politikayı Uygulama#
Bir GFlowNet oluştururken, ileri politikanın bir sonraki olası adım üzerindeki bir olasılık dağılımını tahmin etmesi gerekir. 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 vizyon modelleri oluşturmak sınırlayıcı kutu koordinatlarının tahmin edilmesini gerektirirken, bir GFlowNet üretim yolundaki bir sonraki durumu seçmek için categorical distributions 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 dilinde karmaşık AI çözümleri geliştiriyorsanız, Ultralytics Platform kullanarak veri kümelerini sorunsuz bir şekilde etiketleyebilir, modeller eğitebilir ve dağıtabilirsiniz. İster yüksek hızlı object detection görevlerine odaklanıyor olun ister üretken mimarileri keşfediyor olun, sağlam bir machine learning operations (MLOps) hattına sahip olmak modellerinizi etkili bir şekilde ölçeklendirmek için esastır.






