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.
Generative Flow Networks, or GFlowNets, are a powerful machine learning framework designed for probabilistic modeling and amortized sampling. They excel at generating discrete, compositional objects by treating the generation process as a sequential decision-making task. Instead of simply maximizing a reward, as is common in traditional reinforcement learning, GFlowNets learn to sample objects with a probability that is proportional to a predefined reward function. This allows them to discover diverse sets of high-reward candidates within exceptionally large sample spaces, effectively mitigating the model collapse that often plagues other generative architectures like Generative Adversarial Networks (GANs).
Link to this sectionTemel İ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.
- İleri ve Geri Politikalar: Bir sinir ağı, verilen bir durumdan olası eylemler üzerindeki olasılık dağılımını belirleyen bir ileri politika öngörür. Model, bu durumlar arasındaki yörüngeleri eşleyerek olasılığın "akışını" öğrenir.
- Yörünge Denge Kaybı: Eğitim genellikle, belirli bir nesneyi oluşturma olasılığının gözlemlenen ödülüyle yakından hizalanmasını sağlayan yörünge denge kaybı gibi optimizasyon hedeflerine dayanır. Doğru hiperparametre ayarı, eğitim sırasında bu kayıp fonksiyonunu stabilize etmek için gereklidir.
- Orantılı Örnekleme: Sadece mutlak maksimumu aramak yerine ödüle orantılı örnekleme yaparak, GFlowNets doğal olarak çeşitliliği zorunlu kılar; bu da karmaşık kombinatoryal uzaylarda gezinirken çok önemlidir.
Link to this sectionGFlowNets ve Diğer Üretken Yapay Zeka#
Üretken Yapay Zeka birçok tekniği kapsasa da, GFlowNets benzersiz bir yere sahiptir. Standart Difüzyon Modelleri veya Akış Eşleştirme gibi teknikler tipik olarak sürekli gürültü dağılımlarını veriye dönüştürür. Buna karşılık, GFlowNets özellikle grafikler veya diziler gibi ayrık yapılar oluşturmak için tasarlanmıştır. Ayrıca, standart pekiştirmeli öğrenme ajanları Markov Karar Süreci (MDP) aracılığıyla tek bir optimal yol bulmayı hedeflerken, GFlowNets üretilen çıktıların geniş bir çeşitlilikte olmasını sağlamak için birden fazla yüksek ödüllü yol haritalar.
Link to this sectionGerç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.
- İlaç Keşfi ve Moleküler Tasarım: İlaç araştırmalarında, GFlowNets yeni terapötik peptidler ve moleküler grafikler oluşturmak için kullanılır. Atomic GFlowNets (A-GFN) gibi son gelişmeler, bağlanma afinitesi ve sentetik erişilebilirlik gibi özellikleri optimize etmek için molekülleri atom atom inşa eder. Bu süreç, önceden tanımlanmış parçalara dayanan yöntemlere kıyasla daha çeşitli ilaç adayları yaratır.
- Nedensel Yapı Öğrenme: GFlowNets ayrıca nedensel Bayes Ağlarının yapısını keşfetmek için de uygulanır. Yönlü Döngüsüz Graflar (DAG'ler) üzerindeki sonsal dağılımı tahmin ederek, araştırmacıların karmaşık veri ilişkilerini modellerken epistemik belirsizliğe dair gerçekçi bir bakış açısı korumalarına yardımcı olurlar.
Link to this sectionİleri Politikayı Uygulama#
Bir GFlowNet oluştururken, ileri politika bir 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 örneklenacağını göstermektedir. Ultralytics YOLO26 gibi vizyon modelleri oluşturmak sınırlayıcı kutu koordinatlarını tahmin etmeyi gerektirirken, bir 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 zeka çözümleri geliştiriyorsan, Ultralytics Platform kullanarak veri setlerini sorunsuz bir şekilde etiketleyebilir, modeller eğitebilir ve dağıtabilirsin. İster yüksek hızlı nesne algılama görevlerine odaklanıyor ister üretken mimarileri keşfediyor ol, modellerini etkili bir şekilde ölçeklendirmek için sağlam bir makine öğrenimi operasyonları (MLOps) hattına sahip olman şarttır.






