Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Evolutionary Algorithms

Evrimsel algoritmalar, seçilim, çaprazlama ve mutasyon yoluyla aday çözümlerden oluşan bir popülasyonu geliştirir. Başlıca türler, kod ve gerçek kullanım alanları ele alınır.

Evrimsel algoritmalar (EA), doğal seçilimi taklit eden bir optimizasyon algoritmaları ailesidir. Aday çözümlerden oluşan bir popülasyonu korur, her birini bir uygunluk fonksiyonuyla puanlar, en iyi adayların yeniden birleşme ve rastgele mutasyon yoluyla yavrular üretmesini sağlar ve popülasyon daha iyi çözümlere doğru kayana kadar bu süreci birçok nesil boyunca yineler. Bir EA'nın yalnızca adayları değerlendirmesi gerekir; gradyan hesaplaması gerekmez. Bu nedenle ayrık seçimler, türevlenemeyen veya gürültülü hedefler ve yerel optimumlarla dolu engebeli yüzeyler gibi gradyan inişinin başa çıkamadığı problemlerde çalışır. Bu özellik, EA'ları hiperparametre ayarı, sinir ağı mimarisi arama, mühendislik tasarımı ve zamanlama için standart bir araç hâline getirir.

Evrimsel Algoritmalar Nasıl Çalışır#

Her EA aynı bileşenlerden oluşur:

  1. Gösterim: Her aday, bit dizisi, gerçek sayılardan oluşan bir vektör veya program ağacı gibi bir genomla kodlanır.
  2. Başlatma: İlk nesil genellikle rastgele oluşturulur; bazen bilinen iyi çözümlerle başlatılır.
  3. Uygunluk değerlendirmesi: Bir uygunluk fonksiyonu, her adayı optimize edilen hedefe göre puanlar.
  4. Seçilim: Uygunluğu daha yüksek adayların ebeveyn olma olasılığı daha yüksektir. Örneğin turnuva seçimi, rastgele seçilmiş birkaç aday arasından daha iyisini belirler; elitizm ise en iyi adayı hiç değiştirmeden sonraki nesle kopyalar.
  5. Çeşitleme: Çaprazlama iki ebeveynin parçalarını birleştirir; mutasyon ise popülasyonun keşfetmeye devam etmesi için küçük rastgele değişiklikler yapar.

Makine öğrenmesinde (ML) uygunluk fonksiyonu genellikle doğruluk veya ortalama hassasiyet (mAP) gibi bir doğrulama metriğidir; dolayısıyla bir adayı değerlendirmek, açık ara en maliyetli adım olan modeli eğitip test etmek anlamına gelir. Döngü, bütçe tükenene veya uygunluk artışı durana kadar yinelenir:

Seçilim baskısı ve mutasyon gücü, sömürü ile keşif arasındaki dengeyi belirler. Küçük mutasyonlarla güçlü seçilim hızlı yakınsar ancak yerel bir optimumda takılı kalabilir; zayıf seçilim ve büyük mutasyonlar ise geniş çaplı keşif sağlar ama değerlendirmeleri boşa harcar.

Başlıca Evrimsel Algoritma Türleri#

  • Genetik algoritmalar (GA): Adayları genellikle bitlerden oluşan dizilerle kodlar ve büyük ölçüde çaprazlamaya dayanır. John Holland, bu algoritmaları 1975 tarihli Adaptation in Natural and Artificial Systems kitabında biçimselleştirdi.
  • Evrim stratejileri (ES): Çalışma sırasında adım boyutları uyarlanan Gauss mutasyonlarıyla gerçek sayılardan oluşan vektörleri optimize eder. Mutasyon dağılımının tam kovaryansını öğrenen CMA-ES, sürekli kara kutu problemlerinde en güçlü genel amaçlı yöntemlerden biridir.
  • Genetik programlama: Sembolik regresyon ve otomatik program tasarımında kullanılan, ağaçlarla gösterilen programları veya matematiksel ifadeleri evrimleştirir.
  • Nöroevrim: Sinir ağlarının ağırlıklarını ve bazen yapısını evrimleştirir. OpenAI, 2017'de binden fazla paralel çalışan üzerinde yürütülen evrim stratejilerinin 3B bir insansı robotu 10 dakikada yürümek üzere eğitebildiğini gösterdi; bu, pekiştirmeli öğrenmeye ölçeklenebilir bir alternatiftir.

Kodla Bir Genetik Algoritma#

Sırt çantası problemi, ağırlık sınırını aşmadan toplam değeri en üst düzeye çıkarmak için hangi öğelerin çantaya konacağını sorar; bu, gradyanı olmayan ayrık bir problemdir. Bu NumPy genetik algoritması, her öğe için bir bit içeren 50 bit dizili genomu turnuva seçimi, tekdüze çaprazlama, bit çevirme mutasyonu ve elitizm kullanarak evrimleştirir; ardından sonucu olası 1.048.576 seçeneğin tümüyle karşılaştırır:

import itertools

import numpy as np

rng = np.random.default_rng(0)
# Knapsack problem: pick from 20 items to maximize total value within a weight limit of 200
values, weights, limit = rng.integers(10, 100, 20), rng.integers(5, 50, 20), 200


def fitness(pop):
    """Return each selection's total value, or 0 if it exceeds the weight limit."""
    return np.where(pop @ weights <= limit, pop @ values, 0)


population = rng.random((50, 20)) < 0.2  # 50 random genomes, one bit per item
for generation in range(100):
    scores = fitness(population)
    # Tournament selection: each parent is the better of two random genomes
    pairs = rng.integers(50, size=(50, 2))
    parents = population[np.where(scores[pairs[:, 0]] > scores[pairs[:, 1]], pairs[:, 0], pairs[:, 1])]
    # Uniform crossover with the next parent, then flip each bit with probability 0.05
    children = np.where(rng.random((50, 20)) < 0.5, parents, np.roll(parents, 1, axis=0))
    children ^= rng.random((50, 20)) < 0.05
    children[0] = population[scores.argmax()]  # elitism: keep the best genome
    population = children

all_selections = np.array(list(itertools.product([0, 1], repeat=20)))
print(f"GA best: {fitness(population).max()}, true optimum: {fitness(all_selections).max()}")

GA best: 811, true optimum: 811 çıktısını verir. Algoritma, tüm seçenekleri kaba kuvvetle denetlemenin gerektirdiği bir milyon kontrolün yaklaşık %0,5'i kadar olan 5.000 uygunluk değerlendirmesinden sonra mümkün olan en iyi yerleşimi buldu.

Hiperparametreleri Evrimleştirme#

Öğrenme oranı, kayıp ağırlıkları ve artırma güçleri gibi eğitim ayarları, hiçbir formülün öngöremediği biçimlerde etkileşir. Her adayın tam bir eğitim çalışması gerektirmesi, evrimsel aramayı bu iş için uygun kılar. Ultralytics YOLO'daki tune() yöntemi, YOLO26 modellerinde bu yaklaşımı kullanır: Her yineleme, şimdiye kadarki en iyi dokuz yapılandırmadan uygunluğa göre ağırlıklandırılmış bir ebeveyn seçer; varsayılan arama alanındaki 26 hiperparametrenin yaklaşık yarısını arama aralıklarına göre ölçeklendirilmiş Gauss adımlarıyla mutasyona uğratır; bir model eğitir ve uygunluğunu kaydeder. Nesne algılama için uygunluk mAP50-95'tir. 30 sonuçtan sonra bazı mutasyonlarda en iyi yapılandırmaların %20'sinin kovaryansı da kullanılır; bu, CMA-ES'ten alınmış bir yaklaşımdır. Hiperparametre ayarlama kılavuzunda tüm arama alanı listelenir:

from ultralytics import YOLO

# Önceden eğitilmiş bir YOLO26 nano modeli yükle
model = YOLO("yolo26n.pt")

# Hiperparametreleri evrimleştir: 30 yineleme; her birinde mutasyona uğratılmış bir yapılandırmayı 10 dönem eğit
model.tune(data="coco8.yaml", epochs=10, iterations=30, plots=False)

Ayarlayıcı, her yapılandırmayı ve uygunluk değerini tune_results.ndjson dosyasına yazar ve kazananı best_hyperparameters.yaml dosyasına kaydeder; böylece tam eğitim çalışmasına hazır olur.

Diğer Uygulamalar#

  • Sinir ağı mimarisi arama: Google'ın AmoebaNet modeli, en kötü modeller yerine en eskileri devreden çıkaran, turnuva seçimine dayalı bir EA olan düzenlileştirilmiş evrimle ortaya çıktı ve 2018'de ImageNet'te %83,9 top-1 doğruluğa ulaştı.
  • Mühendislik tasarımı: NASA'nın Space Technology 5 görevi, 2006'da geleneksel tasarımla oluşturulmuş bir antenle aynı performansı sağlayan, bilgisayar tarafından evrimleştirilmiş ve düzensiz, bükülmüş telli bir X-bandı antenini uzaya gönderdi.
  • Algoritma keşfi: Google DeepMind'ın Mayıs 2025'te duyurduğu AlphaEvolve, kod değişiklikleri öneren Gemini modellerini otomatik değerlendiriciler ve programlardan oluşan evrimsel bir veri tabanıyla birleştirir. Geliştirdiği bir zamanlama sezgiseli, Google'ın veri merkezlerinde şirketin dünya çapındaki bilgi işlem kaynaklarının ortalama %0,7'sini geri kazandırıyor.
  • Gradyan inişi: Türevlenebilir bir kaybın gradyanını izler ve milyonlarca parametreye sahip ağ ağırlıklarını eğitmekte çok daha verimlidir. EA'lar az parametreli, değerlendirmesi maliyetli veya gradyanı olmayan problemlere uygundur.
  • Sürü zekâsı: Parçacık sürüsü optimizasyonu gibi yöntemler, kalıcı bir ajan kümesini arama alanında hareket ettirir. Her ajan kendi en iyi sonucuna ve komşularının sonuçlarına göre konumunu ayarlar; nesil değişimi, çaprazlama veya mutasyon uygulanmaz.
  • Bayesçi optimizasyon: Hedefin olasılıksal bir modelini uydurur ve bu modelin en büyük iyileşmeyi beklediği noktada bir sonraki denemeyi seçer. Küçük ve pürüzsüz arama alanlarında EA'lardan daha az değerlendirme gerektirir; ancak çok sayıda parametre ve paralel çalışanla ölçeklenmesi daha zordur.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla